Software Engineering A definition: A technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost estimates. In contrast to software for personal use, a software product has multiple developers, users, and maintainers. Most often the developers, users, and maintainers are distinct entities. - Fairley
Software Engineering Software engineering is based on the following disciplines: • Computer science • Management science • Economics • Communications • Engineering approach to problem solving
Software Engineering Software life-cycle: Phases in the development of a software product • Problem definition • Requirements analysis • Design (architecture) • Implementation/construction • Testing (system, integration, acceptance) • Maintenance (including future improvements)
Object-Oriented Software Engineering Software engineering methodology: Systematic application of a set of technologies to analysis, design, and implementation Object-oriented methodologies: • • Object Modeling Techniques – OMT (Rumbaugh, et al. ) Rational Rose (Grady Booch) Others Unified Process – UP (Larman)