What does software engineering entail?

The first point to be made about software engineering has to do with its scope of activities. Software engineering is the management of the entire development process of computer systems for problem solving.

As software systems have become more sophisticated and complex, software developers have sought new methods for their development. Software engineering is an answer to that need. Software engineering is still rapidly changing and maturing.

Usually, when someone is told to write a program, someone else has told them what the program should do and why; the programmer only cares about how to write it. However, as software engineers, we will be the ones to worry about the what and the why. Software engineering includes the full range of activities involved in problem solving, from helping the customer define the problem or opportunity, to evaluating customer satisfaction with the solution.

Building a software system may require writing an entire collection of programs to tell machines what to do, writing procedures to tell people what to do, and providing training so people understand how to do it. We may need to convert data from an old system so it can run on a new system, hire people and buy machines to run programs, and get space for machines and people to do their jobs. What we are building is a system of many parts working together. Such an effort requires patience and flexibility. We will have to fix the system when it does not do what we expected, or the client may ask us to change the system because he or she wants it to do something else that was not previously intended.

Programming cannot account for more than 20 percent of the total scope of software engineering, and the fraction of effort involved with programming can be expected to decrease as improved methods are used to develop software systems. As time goes on, more of our effort will go into managing the overall process and less into programming.

Leave a Reply

Your email address will not be published. Required fields are marked *