Sunday, July 6, 2014

SOFTWARE ENGINEERING

"Software engineering is one of the fastest growing fields in the world today," says Ben Amaba, worldwide executive for IBM Complex Systems. "What we're seeing across all other disciplines is that software is becoming an invisible thread tying all disciplines together. Software is now embedded in almost all devices, mechanical devices all talk with each other, and developing products using software is faster and poses fewer risks than physical prototyping."

 Software engineering concerned with developing and maintaining software systems that behave reliably and efficiently, are affordable to develop and maintain, and satisfy all the requirements that customers have defined for them. It is important because of the impact of large, expensive software systems and the role of software in safety-critical applications.

 It integrates significant mathematics, computer science and practices whose origins are in engineering. Software engineering focuses on software development and goes beyond programming to include such things as eliciting customers’ requirements, and designing and testing software. Software Engineering students learn how to assess customer needs and develop usable software that meets those needs.

  Software Engineering has its roots in the theory and mathematics of computer science. While its study has a lot in common with computer science, software engineers learn much more about creating high-quality software in a systematic, controlled, and efficient manner. Software engineers are trained in all aspects of the software life cycle, from specification through analysis and design, to testing maintenance and evaluation of the product. They are concerned with safety and reliability of the product as well as cost and schedule of the development process.[1]

  In order to be a successful software engineering, [2]a person firstly must always do some extra activities apart from studies and related to any software that has some real time solution of any problem. Whenever you have free time spend it searching on the internet about new technologies in the market and also watch for the technologies that will be useful in the future. Next, after studying about all the fields related to Computer Science, choose a particular direction in Software Industry.

  Narrowing your choice down will help considerably in planning your career. Always think simple because the Software Industry itself is very complex. Learn about the field. The major difference between programmer and engineer is simply that engineers design tools, hence those are used by programmers to build solutions.

  Firstly, because it requires a complex skill set and high qualifications that are rare to find even today and because their demand is constantly increasing as demand for software goes up. So, people with right qualifications are a treasure companies are seeking, and once they get them, they pay them well to keep them on board. Plus, you may develop anything from business software to a gaming one, whatever you find more interesting. You can also make your own decision about whether you want to work alone or you require a team of other technology professionals to work with. [3]
 
  In today’s business environment, it is one of the most empowered jobs in the market. Being a software engineer gives you some of the best platforms to play with your creativity and design interfaces according to the user’s role. It should be professional, appealing and must match your customer’s profile to some extent. Lastly, being a software engineer can be quite challenging; a perfect choice for those who like a challenge and love computers. Every few days, there are new innovations and upgrades and a lot of new things to be learned. If you fail to keep up with the technology, you will be left behind. Software engineers surely remain on their toes all the time.

  The pros of software engineering are the job is perfect for people that love computers. This is a profession that pays well, and yet, most software engineers do not have to deal with the customers directly. You can freelance, not every software engineer can do this, but good programmers can choose to freelance, they work at home, work on projects posted on the Internet, and get paid. For cons of software engineering are hard to change jobs.

  There is a lot of competition. Next, there is too much to learn in too little time. This is related to the point above. Technology changes so fast, that if you don't keep up, you become irrelevant and could be replaced with younger, brighter and more tech savvy engineers. It is important to read the magazines that talk about the changes in computer technology.

  Software has three types which are system software, application software, and general purpose software. System software is a program that is designed for controlling input or output devices, memory and processor. While application software are designed for specific computer application and general purpose software is most programming language are designed to be good for one category of application but not necessarily for the other so general purpose software support both type.

Computer systems software engineers coordinate the construction, maintenance, and expansion of an organization's computer systems. Working with the organization, they coordinate each department's computer needs—ordering, inventory, billing, and payroll recordkeeping, for example—and make suggestions about its technical direction. They also might set up the organization's intranets—networks that link computers within the organization and ease communication among various departments. Often, they are also responsible for the design and implementation of system security and data assurance.

Systems software engineers also work for companies that configure, implement, and install the computer systems of other organizations. These workers may be members of the marketing or sales staff, serving as the primary technical resource for sales workers, or providing logistical and technical support. Since the selling of complex computer systems often requires substantial customization to meet the needs of the purchaser, software engineers help to identify and explain needed changes. In addition, systems software engineers are responsible for ensuring security across the systems they are configuring.

  Computer software engineers, also known as software developers, are a vital component of Oregon's workforce. Within this occupational group, there are two types of engineers: applications and systems. Applications engineers are charged with developing, creating, and modifying computer applications software or specialized utility programs.

  Systems engineers are charged with researching, designing, and developing operating systems-level software, compilers, and network distribution software. This article focuses on applications engineers as they makes up more than 80 percent of computer software engineers statewide.
Applications engineers work across numerous industries but are concentrated in three high-tech subsectors: semiconductor and other electronic component manufacturing; software publishing; and computer systems design and related services.

  The odds are really freaking good, and only some of the goods are odd.  Sure there are a bunch of socially awkward engineers, but because of the sheer scarcity of women in the field, if you are a single female you can have first pick of a lot of really nice available guys. Less Drama, at working with mostly men keeps the workplace drama-free. Not that all or most women are moody drama queens, but you know, it happens. It just seems to happen less with men. Being liked, it’s just nice to have some women in a male-dominated workspace.
  They generally remember to shower every so often, and if you ever bring brownies to work, you’re suddenly everyone’s favourite person for at least a few minutes (though this is true for males as well). Sure, if you’re a real bitch, no one’s going to like you, but most female engineers are easy to get along with and are well-liked and appreciated in their team.  It makes it a little less like; hey look at all this testosterone fuelling our coding hackathons in this smelly room.

  Determines operational feasibility by evaluating analysis, problem definition, requirements, solution development, and proposed solutions. Next, documents and demonstrates solutions by developing documentation, flowcharts, layouts, diagrams, charts, code comments and clear code. Prepares and installs solutions by determining and designing system specifications, standards, and programming. Improves operations by conducting systems analysis; recommending changes in policies and procedures. [4]
 
  Updates job knowledge by studying state-of-the-art development tools, programming techniques, and computing equipment; participating in educational opportunities; reading professional publications; maintaining personal networks; participating in professional organizations. Protects operations by keeping information confidential.

  Provides information by collecting, analyzing, and summarizing development and service issues. Accomplishes engineering and organization mission by completing related results as needed. Develops software solutions by studying information needs.

  The more the software industry matures, the more it is accepted by the software engineering community that the people involved in software development processes deserve more attention than the processes or technologies themselves. To this end, Human Aspects of Software Engineering details software engineering from the perspective of those involved in the process: individuals, teams, customers, and the organization. The book is written for software engineering students and professional software developers. It illustrates the richness and complexity of the human aspects of software engineering and covers the problems, questions, and conflicts that arise during development. The importance of these issues is widely acknowledged in the industry and academia, because many of the failures of software systems can be traced to human factors. [5]
 
  This, however, is the first textbook for a full course on the topic. Focusing on the different social and cognitive aspects of software development, the book addresses topics such as teamwork, customer - software-engineer relationships, and learning processes in software development. These topics are central to developers in understanding the multifaceted nature of the process. While the code and technology of software engineering are discussed, they are examined from the human perspective. In addition to the detailed topic coverage, activities, questions for discussion, and practical assignments are included.

   A software engineer has one of the most in-demand, lucrative careers in the world. Software engineers have advanced math skills, which allow them to write complex algorithms required for developing software. Those who design applications build software that will be used by a person without a programming background.

   Individuals in these computer careers may be employed by companies such as Microsoft or Adobe to develop retail software packages. Or they may work instead for a general business (or as a consultant to a general business) where they develop custom, proprietary software or adapt a retail package to meet specific business needs.

  Most employers prefer to hire people who have at least a college degree and experience with a variety of computer systems. Students seeking software engineering jobs can improve their chances by signing up as interns to get some experience. Large firms that can train new hires may take new grads with no experience. Persons looking at jobs in this field must have strong problem-solving skills. They also must be able to work with team members, other staff, and customers.

   Because they often deal with many tasks at the same time, they must be able to focus and pay close attention to detail. As technology advances in the computer field, employers want workers to keep up. Software engineers must learn new skills if they wish to remain in this advancing field. To help them keep up, employers, vendors, private training schools, and others offer a large number of courses.

  It is the job of these professionals to make user-friendly and efficient applications so that employees can be as productive as possible. Training employees to use the applications should also be straightforward. The software should be designed to cater to skills that end-users already have so that, for example, transition from one system to another is a smooth process.

  The range of work of an individual employed in one of many of the computer careers we reviewed depends on the size of the organization for which he works. If you work for a large organization, you are likely to fulfil a more narrow business role, but you are more likely to perform many other functions in a smaller organization.

    Software engineering also has its own requirement that have to be fulfilled by those who are interested in software engineering’s scope. Skill set in one of them. Successful Software Engineers need to know basic business functions, have a firm understanding of design methodology, and excellent communication skills.

  Software engineers normally work in well-lighted offices or labs. Most work at least 40 hours a week. If a big project is due, they may have to work nights or weekends to meet deadlines. Like other workers who sit for hours at a computer, they are susceptible to eyestrain, back ache, and hand and wrist pain.Software engineers who are employed by vendors and consulting firms spend time away from their offices to meet with customers. As networks expand, they may be able to use modems, laptops, e-mail, and the Internet to identify and fix problems from their own office.

  Both computer applications software engineers and computer systems software engineers are projected to be among the fastest growing occupations from 2008 to 2018. Rapid growth in the computer systems design industry should mean good opportunities for college grads with a degree and some experience. Employers will look for software engineers with a strong background in programming and systems analysis, along with business and people skills.

  The number of computer software engineers is expected to rise much faster than the average, as businesses are looking for new ways to get ahead of competition and make their computer systems the fastest. Also, growing concerns over "cyber security"—making sure only certain people can see private information—will mean more jobs for these engineers. Job growth will not be as fast as during the last decade because some work is outsourced to foreign countries.[6]

  Software engineering has brought humanity closer to the moon and taken it deeper into the earth. Along with all these miracles, software engineering has created many job opportunities. For a software engineer, the most important is which language he or she would like to learn in. just like how there are various speaking languages, there are various programming languages, which are used for several and certain purposes. C++ is a general purpose language. It is regarded as a middle level language. The language comprises of high level as well as low level language features.[7]

  Being software engineering in Islamic views are we can help other people to solve their problems. As we know that Islam encouraged us to help each others. Software engineer will help other people in specific problem related with engineering.




[1]Jessica Keyes. Software Engineering Handbook. Auerbach Publications (CRC Press), 2003.Contains complete examples of various SE documents.
[2] Ian K. Bray. An Introduction to Requirements Engineering. Pearson Addison Wesley; 1st edition (August 26, 2002).
[3] Alan M. Davis. Software Requirements: Objects, Functions, and States. Prentice Hall PTR; 2nd Revised edition (March 1993).
[4] Dean Leffingwell, Don Widrig. Managing Software Requirements: A Unified Approach. Addison-Wesley Pub Co; 1st edition (October 28, 1999).
[5] Michael Jackson. Problem Frames: Analyzing and Structuring Software Development Problems. Addison-Wesley Pub Co; 1st edition (December 15, 2000; ©2001).
[6] Capers Jones. Software Assessments, Benchmarks, and Best Practices. Addison-Wesley Pub Co; 1st edition (April 28, 2000).
[7] Gerard O'Regan. A Practical Approach to Software Quality. Springer Verlag; 1st edition (June 13, 2002).
Contents in brief: Introduction (functionality, reliability, usability, efficiency, maintainability, portability), Inspections and Testing, ISO 9000, CMM, SPICE 15504, Metrics, Formal Methods and Design.

No comments:

Post a Comment