Overview
Software is designed and built by software engineers.
Software is used by virtually everyone in society.
Software is pervasive in our commerce, our culture, and our everyday lives.
Software engineers have a moral obligation to build reliable software that does no harm to other people.
Software engineers view computer software, as being made up of the programs, documents, and data required to design and build the system.
Software users are only concerned with whether or not software products meet their expectations and make their tasks easier to complete.
Important Questions for Software Engineers
Why does it take so long to get software finished?
Why are development costs so high?
Why can’t we find all errors before we give the software to our customers?
Why do we spend so much time and effort maintaining existing programs?
Why do we continue to have difficulty in measuring progress as software is being developed?
Software
Software is both a product and a vehicle for delivering a product (information).
Software is engineered not manufactured.
Software does not wear out, but it does deteriorate.
Industry is moving toward component-based software construction, but most software is still custom-built.
Software Application Domains
System software
Application software
Engineering or Scientific Software
Embedded software
Product-line software (includes entertainment software)
Web-Applications
Artificial intelligence software
New Software Challenges
Open-world computing
Creating software to allow machines of all sizes to communicate with each other across vast networks
Netsourcing
Architecting simple and sophisticated applications that benefit targeted end-user markets worldwide
Open Source
Distributing source code for computing applications so customers can make local modifications easily and reliably
Reasons for Legacy System Evolution
Software