Introduction to Software Engineering
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 Object-oriented technologies: Object-oriented analysis (requirements) Object-oriented design Object-oriented programming (implementation/coding)
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)