Saturday, April 05, 2008

Software Engineering

Course Overview
# Instructors
# Textbooks
# Policies
# Lecture Schedule

Classic Definition (1969)
"The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines."

IEEE Definition (1993)
"Software Engineering: (1) The application of a systematic, disciplines, quantifiable approach to the development, operation, and maintenance of software; that is the application of engineering to software. (2) The study of approaches as in (1)."

Problem Solving

Evolving Role of Software
– Early Years
• Batch
• Custom
– Second Era
• Multi-user, Real-time
• Database
• Product software
- Third Era
• Distributed systems
• Low cost hardware
- Fourth Era
• Desktop systems
• Object Oriented Technologies
• Expert Systems
• AI, neural networks
• Parallel computing
• Network computers
Ongoing Problems
– Hardware advances outpace ability to build software to tap potential
– Ability to build new programs cannot meet demand for new programs, nor do we build fast enough to meet business and market needs
– Widespread use of computers has made society increasingly dependent
– Struggle to build software with high reliability & quality

No comments: