ABSTRACT

Objectives In this chapter, you will learn about the software accomplishments. You will also learn about software properties and, in particular, about the contrast between accidental and essential properties. Among them, the essential difficulties of software are the biggest challenge for software engineers, and they shape the nature of the software engineering profession. After you have read this chapter, you will know:

◾ ‰e essential difficulties of software ◾ ‰ree software engineering paradigms and their history ◾ ‰e origins of software and ad hoc techniques of software creation ◾ ‰e reasons why software engineering became an established discipline ◾ ‰e waterfall model of software life span and its limits ◾ Software evolution and its role in software life span

***

Software is everywhere. While buying bread, driving a car, riding the bus, or washing clothes, you may be interacting with software running somewhere on a computer or on a computer chip. Software has penetrated the most unlikely venues; even cars now run tens of millions of lines of code that control everything from windshield wipers to engine ignition (Charette, 2009).