Scope of software Engineering

If errors are found early in the software life cycle, more money is saved. It must be determined that the specification are really what the customer wants.

The Software Crisis: Much of our software is delivered;
                1. late (deadlines are not met)
                2. over budget (cost limists are not met)
                3. with residual faults (of poor quality)

Example: During the Gulf War, the U.S. shipped Patriot missiles to Israel for protections against Scud missiles. However, the
                software for the Patriot missiles contained a cumulative timing fault. When in use for short periods of time, the fault
                had never had a significant effect. When it ran at Dhahran for over 100 hours, the accumulated time discrepancy
                became large enough to render the system inaccurate. 28 Americans were killed and 98 wounded.

SOFTWARE ENGINEERING is a discipline whose aim is the production of fault-free software, delivered on time and within budget that satisfies the user's needs. Software must also be easy to modify when those needs change.
 

Five Aspects of Software Engineering:
    Historical Aspects
    Economic Aspects
    Maintenance Aspects
    Specification and Design Aspects
    Team Programming Aspects

The Object-Oriented Paradigm
Terminology