Saturday, February 4, 2012

Why Do We Need Software Engineering?

To understand the necessity for software engineering, we must pause briefly to look back at the modern history of computing. This history will help us to understand the problems that started to come to be distinct in the late sixties and early seventies, and the solutions that have led to the creation of the field of software engineering. These problems were referred to by some as "The software Crisis," so named for the symptoms of the problem. The situation might also been called "The Complexity Barrier," so named for the primary cause of the problems. Some refer to the software urgency in the past tense. The urgency is far from over, but thanks to the amelioration of many new techniques that are now included under the title of software engineering, we have made and are continuing to make progress.

In the early days of computing the primary concern was with construction or acquiring the hardware. Software was roughly thinkable, to take care of itself. The consensus held that "hardware" is "hard" to change, while "software" is "soft," or easy to change. According, most citizen in the business considered planned hardware amelioration but gave considerably less forethought to the software. If the software didn't work, they believed, it would be easy sufficient to change it until it did work. In that case, why make the effort to plan?

Hardware Monitoring Software

The cost of software amounted to such a small fraction of the cost of the hardware that no one considered it very prominent to manage its development. Everyone, however, saw the point of producing programs that were effective and ran fast because this saved time on the expensive hardware. citizen time was assumed to save machine time. Manufacture the citizen process effective received miniature priority.

Why Do We Need Software Engineering?

Reliance Controls THP217 Automatic Phone-out Freeze Monitor Best

Rate This Product :


Reliance Controls THP217 Automatic Phone-out Freeze Monitor Feature

  • Quick plug-in installation
  • LCD display for easy programming
  • Built-in 110dB alarm
  • Battery backup for power failure

Reliance Controls THP217 Automatic Phone-out Freeze Monitor Overview

Phone-Out Freeze Alarm, Keypad Base Unit Plugs Into Phone Line And Electrical Outlet, Internal Temperature Sensor Monitors And Alarms When Temperature Drops Below 42 Degrees In Your Home, Cabin Or Office, Base Unit Calls Up To Five Telephone Numbers Anywhere In North America When Problem Occurs, Identifies Problem With A Tone Alarm, LED Readout Panel, Battery Included.


Customer Reviews




*** Product Information and Prices Stored: Feb 05, 2012 06:26:42

This advent proved satisfactory in the early days of computing, when the software was simple. However, as computing matured, programs became more involved and projects grew larger whereas programs had since been routinely specified, written, operated, and maintained all by the same person, programs began to be industrialized by teams of programmers to meet someone else's expectations.

Individual effort gave way to team effort. Communication and coordination which once went on within the head of one someone had to occur between the heads of many persons, Manufacture the whole process very much more complicated. As a result, communication, management, planning and documentation became critical.

Consider this analogy: a carpenter might work alone to build a simple house for himself or herself without more than a normal thought of a plan. He or she could work things out or make adjustments as the work progressed. That's how early programs were written. But if the home is more elaborate, or if it is built for someone else, the carpenter has to plan more considered how the house is to be built. Plans need to be reviewed with the time to come owner before construction starts. And if the house is to be built by many carpenters, the whole scheme indeed has to be planned before work starts so that as one carpenter builds one part of the house, someone else is not construction the other side of a different house. Scheduling becomes a key element so that cement contractors pour the basement walls before the carpenters start the framing. As the house becomes more involved and more people's work has to be coordinated, blueprints and administration plans are required.

As programs became more complex, the early methods used to make blueprints (flowcharts) were no longer satisfactory to recite this greater complexity. And thus it became difficult for one someone who needed a schedule written to carry to someone else person, the programmer, just what was wanted, or for programmers to carry to each other what they were doing. In fact, without better methods of representation it became difficult for even one programmer to keep track of what he or she is doing.

The times required to write programs and their costs began to exceed to all estimates. It was not unusual for systems to cost more than twice what had been estimated and to take weeks, months or years longer than thinkable, to complete. The systems turned over to the client oftentimes did not work correctly because the money or time had run out before the programs could be made to work as originally intended. Or the schedule was so involved that every effort to fix a problem produced more problems than it fixed. As clients finally saw what they were getting, they often changed their minds about what they wanted. At least one very large forces software systems scheme costing several hundred million dollars was abandoned because it could never be made to work properly.

The quality of programs also became a big concern. As computers and their programs were used for more vital tasks, like monitoring life retain equipment, schedule quality took on new meaning. Since we had increased our dependency on computers and in many cases could no longer get along without them, we discovered how prominent it is that they work correctly.

Making a change within a involved schedule turned out to be very expensive. Often even to get the schedule to do something slightly different was so hard that it was easier to throw out the old schedule and start over. This, of course, was costly. Part of the evolution in the software engineering advent was learning to originate systems that are built well sufficient the first time so that simple changes can be made easily.

At the same time, hardware was growing ever less expensive. Tubes were substituted by transistors and transistors were substituted by integrated circuits until micro computers costing less than three thousand dollars have come to be several million dollars. As an indication of how fast change was occurring, the cost of a given estimate of computing decreases by one half every two years. Given this realignment, the times and costs to originate the software were no longer so small, compared to the hardware, that they could be ignored.

As the cost of hardware plummeted, software prolonged to be written by humans, whose wages were rising. The savings from productivity improvements in software amelioration from the use of assemblers, compilers, and data base administration systems did not strike for home as rapidly as the savings in hardware costs. Indeed, today software costs not only can no longer be ignored, they have come to be larger than the hardware costs. Some current developments, such as nonprocedural (fourth generation) languages and the use of synthetic brain (fifth generation), show promise of addition software amelioration productivity, but we are only beginning to see their potential.

Another problem was that in the past programs were often before it was fully understood what the schedule needed to do. Once the schedule had been written, the client began to express dissatisfaction. And if the client is dissatisfied, finally the producer, too, was unhappy. As time went by software developers learned to lay out with paper and pencil exactly what they intended to do before starting. Then they could review the plans with the client to see if they met the client's expectations. It is simpler and less expensive to make changes to this paper-and-pencil version than to make them after the principles has been built. Using good planning makes it less likely that changes will have to be made once the schedule is finished.

Unfortunately, until several years ago no good recipe of representation existed to review satisfactorily systems as involved as those that are being industrialized today. The only good representation of what the goods will look like was the accomplished goods itself. Developers could not show clients what they were planning. And clients could not see either what the software was what they wanted until it was finally built. Then it was too expensive to change.

Again, think the analogy of construction construction. An architect can draw a floor plan. The client can regularly gain some comprehension of what the architect has planned and give feed back as to either it is appropriate. Floor plans are reasonably easy for the layperson to understand because most citizen are well-known with the drawings representing geometrical objects. The architect and the client share tasteless concepts about space and geometry. But the software engineer must recite for the client a principles enchanting logic and facts processing. Since they do not already have a language of tasteless concepts, the software engineer must teach a new language to the client before they can communicate.

Moreover, it is prominent that this language be simple so it can be learned quickly.

Why Do We Need Software Engineering?

No comments:

Post a Comment