Your are here: Home // // Why do we need software engineering?

Why do we need software engineering?

In order to understand the need of software engineering, we have the recent history of computing must pause a moment to look back. This history we in the late '60s and early '70s, led to the creation of software engineering problems begin to understand the obvious solution will help. The symptoms of this problem, so the problem people "software crisis" was mentioned by some as. The situation of the main causes of the problem so named for the "complexity barrier" is called. Some see the software crisis in the past tense. End the crisis, but now the subject of software engineering, including the development of many new technologies, thanks to the progress we have made and are continuing.

The main concern at the beginning of the calculation, or acquisition hardware was built. The software was expected to take care of themselves almost. Agreement "software" easy to change "soft" state, or "hardware" change "hard," he held. According to most people in the industry to develop a carefully planned hardware, but the software was considerably less forethought. If the software did not work, they believe, it's the one day when it will be easy enough to change. In this case, why the effort to plan?

None of the cost of software development, it is very important to manage the hardware that does not take into account amounted to a small part of the cost. Everyone, however, the importance of efficient production program bogoyi was expensive hardware because it saves time in the early ran. People time to save the system time is assumed. People to make the process efficiently has received little priority.

The software was easy when this method has proved satisfactory in the early days of the computer. However, computing matures, the program is more complex, and after the program was designated as day-to-day, while project management, recording, grow larger, and keep all the same person, and the program to meet the expectations of others by a team of programmers began to develop.

Personal efforts gave way to a team effort. In one man's head continued communication and coordination making the whole process very much more complicated, and many people in between the head occurred. As a result, communications, management, planning and documentation were important.

Consider the analogy of a carpenter planning is not more than the general concept for his or her work can be simple home alone. He or she is doing to resolve or work in progress can be adjusted according to. This is how the initial program was recorded. However, a more sophisticated home, or it is built for someone else, if a carpenter to build a house more carefully plan how you should Before you start planning the construction of the future there is a need to review the owner. Many homes will be built by a carpenter, if the entire project is definitely a part of the work to build a house carpenter, another build another house to prevent the other side of the need to plan before you start. Before you begin, carpenters frame the basement walls poured cement companies to allow scheduling is a key element. House is more complex and more and more people need to adjust the work, as a blueprint and management plan is required.

As a more complex program that is used to create a blueprint for the initial method (flowchart) to represent a greater complexity was no longer satisfied. So it others, programmer, just what I wanted, or what they were doing to each other programmers to deliver a program written for delivery to a person in need has been difficult. In fact, no better way of expressing that he or she does what any programmer became difficult to track.

The time required to write the program and the costs expected to exceed all began. System is more than twice what was estimated costs and longer than expected to complete the week, to take a few months or a few years is not uncommon. System as originally intended the program can be made to work because of a lack of money or time before often do not work properly handed over to the client. Or a program to solve the problem and any attempt to create more problems than it solved was too complicated. Finally, they saw the client was getting, they are often about what they want has changed his mind. May not operate properly because the cost of hundreds of millions of dollars at least one very large military software system project was abandoned.

The quality of the program has been a big problem. Computers and their programs were used for more important tasks, such as monitoring, life support equipment and the quality of the program has a new meaning. Our reliance on computers increases, and in many cases no longer be able to get along without them, so that they work properly, we have discovered how important it is to.

Complex changes in the program turned out to be very expensive to make. Often a little something different to restart the program was easy to discard the old programs you can get too difficult. This, of course, was costly. Part of the evolution of software engineering methods to make it easy to change a simple enough to build the first was to develop a system to learn.

At the same time, hardware grew cheaper. The tubes cost thousands of dollars less than three millions of micro until replaced by integrated circuits and transistors were replaced by transistors. Rapid changes occur as a sign of the way, the computer is half the cost of a given amount is reduced every two years. This reorganization, given the time and cost to develop software that can be ignored, compared to hardware, no longer was so small.

Drop in the cost of hardware, software, the wage increases continued to be written by a man. Assemblers, compilers, database management systems, improve software development productivity in the use of the hardware costs savings did not go fast enough. In fact, today, as well as software costs can no longer be ignored, they are greater than the cost of the hardware. For example, the current development going, (4th generation) language and the use of artificial intelligence (the family) to show the promise of increased productivity software development, but we are starting to see their potential.

Another issue is the need to fully understand what the program prior to the past was often in the program. When the program was created, the client began to express dissatisfaction. If clients are satisfied, and ultimately also the producer, was unhappy. Time when software developers before they start the intention of the paper and a pencil correctly learned the layout. That they meet the expectations of our customers to ensure that the client and the plan can be reviewed. It is built the system to make sure it's more then paper-and-pencil version of the simple and inexpensive to change. Using a good plan change will be produced when the program is complete, is more likely.

Unfortunately, a few years ago, is there a better way of expression, such as those that are being developed today to explain the complex meets the system exists. Only a good representation of how the product will look like the finished product itself was The developer plans to customers that can not be one. The client software to be built until finally determine whether they want to do that failed. These changes are too expensive.

Also, consider the analogy of building construction. The architect can draw a floor plan. Typically, the client and the architect a part of the plan as to whether it is appropriate to understand and can feed back. Most people are familiar with the geometric object that represents the drawing floor plans because it reasonably easy for a layman to understand. Architects and clients for space and shape a common concept. However, software engineers, including client logic and information processing systems must be marked. Already have a general idea of ​​the language, because it does not communicate with each other before, a software engineer to a client must teach a new language.

Also, it is to be able to learn quickly, it is important to simplify the language.

filed under:

Leave a reply

Copyright © 2013 Computers & Technology.
Designed by imesh maduvantha.