Archive for the ‘software’ Tag

Why do we need software engineering?

To understand the need for software engineering, we need a break only to look at the recent history of computer science. This story will help us, the problems started to clear late sixties and seventies has become understood, and solutions that led to the founding of the field of software engineering. These problems have been described by some as "the software crisis," ", named after the symptoms of the problem. The situation could also be used as" TheComplexity barrier, "so named for the primary cause of the problems. Some refer to the software crisis in the past. The crisis is far from over, but thanks to the development of many new technologies that are now under the title of the software engineering are included, and we made further progress to make.

In the early days of the calculation of the main concerns was the construction or purchase of hardware. Software was almost expected to look after themselves. The consensus stated that"Hardware has changed" hard ", while the software" "" Change soft "or easy to use. According to the majority of people in the industry, the development of hardware carefully planned, but was much less careful of the software. If the software does not work, so they thought it would be fairly easy to change until it worked. In that case, why make the effort to plan for?

The cost of the software equal to one thousandth of the cost of the hardware that nobody thought it was veryimportant for the management of their development. All, however, given the importance of programs that were running fast and efficient production, because this time saved on expensive hardware. Human time is expected to save time machine. Make the process efficient people receive low priority.

This approach has proved satisfactory in the early days of computers when the software was simple. However, as computing has grown increasingly complex programs and projects were increased whereas the programs hadas has been widely told, was written, managed and maintained, all from the same person who initiated programs developed by a team of programmers is to satisfy the expectations of someone else.

Individual efforts gave way to team performance. Communication and coordination, which was also once head of a person must be between the minds of many people, and the whole process much more complicated. As a result, the communication was, management, planning and documentationcritical.

Consider this analogy: carpenters can work alone to build a simple house for himself or without a general term of a plan. He or she could do things from work or adjustments, such as future work. Here's how the first programs were written. But if the house is more complicated, or if it was built for someone else who has the carpenter more carefully plan the house will be built. The plans must be revised with future owners before construction begins.And if the house is built by many carpenters, the whole project has certainly before the work, so that when a carpenter builds a house proposed is part of another building is not the other side of another house . Planning is essential so that contractors pour the concrete basement walls before the carpenters' early development. As the house becomes more complex and more people work must be coordinated policies and management plans are required.

AsPrograms become more complex, the methods used to make the first diagrams (flow charts), were no longer sufficient to constitute the greater complexity. And so it was difficult for a person who has written a program of mediation in order to require another person, the programmer wanted, what, or for programmers to each other what they are, to mediate. In fact, if not better methods of presentation, it was difficult even for a full schedule of what he or she thinksdo.

The time needed to write programs and their costs began to exceed all estimates. It was not uncommon that the systems cost more than twice what was estimated and weeks, months or years takes more time than expected. The systems turned clients often are not correct, because he had the money or the time before the programs could be functional as originally planned hypothesized. Or, the program was so complex that any attempt to solve a problem that resultsmore problems than it solved. When people finally saw what they always were often changed their minds about what they wanted. At least one very large software systems, military project worth several hundred million U.S. dollars has been abandoned because it could never work properly.

The quality of the programs was also a major concern. As computers and their programs of other important tasks have been used as the monitoring of life support equipment, the quality of the program took on new meaning. Sincehave increased our reliance on computers and can do no more, in many cases without them, we discovered how important it is that they are working properly.

A change in a complex program, it became very expensive. Often, too, to get the program to something slightly different was so hard that it was easier to throw the old program and then start from scratch. This was, of course, expensive. Part of the development of software engineering approach has been to develop learningSystems that are well built enough for the first time, so that even simple changes can be made easy.

At the same time, the hardware has grown less and less expensive. Tubes were replaced by transistors and transistors have been replaced by integrated circuits and micro-computer that costs less than three thousand dollars to several million dollars. As an indication of how quickly change was happening, the cost over a certain amount of calculation is reduced by half every two years. In light of theseReorientation of the time and cost of software development is no longer so small in comparison with the hardware that could be ignored.

Since the cost of hardware continues to drop the software by people whose salaries have risen to be written. The savings from increased productivity in software development for the use of assemblers, compilers, and database management systems do not go as fast as the cost savings in hardware. Today, in fact, the cost of software, which not only is no longerare ignored, must be larger than the cost of hardware. Some recent developments show how nonprocedural (fourth generation), languages and the use of artificial intelligence (fifth generation), promises to increase the productivity of software development, but we are only beginning to see their potential.

Another problem is that in the past, programs, often before they had understood what the program should do. Once the program was written, people began to expressDissatisfaction. And if the customer is satisfied, in the end, the manufacturer also unhappy. Learned over time, software developers layout with paper and pencil exactly what they do, are determined in advance. They could then review the plans with the client to determine whether they meet the expectations of customers. It is easier and less expensive to make changes to this document and the version in pencil, as one does after the system was constructed. With good planning, it is less likelyChanges must be made if the program is completed.

Unfortunately, until a few years ago, was not a good satisfactory method of presenting complex systems such as those being developed now describe. The only representation of what will be the type of product is the finished product itself. The development was not possible to show people what they expected. And customers could not see if what the software, which until she was finally built. Then itwas too expensive to change.

Also consider the analogy of building work. An architect can design a floor plan. The customer can usually get some understanding of what is being designed by the architect and provide feedback, whether it is appropriate. The plants are relatively simple to understand for the layman, because most families are represented by geometric designs

Buy Costumes