Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter II Chap1: Software Engineering Models (Review) Mandatory reading: chapter 3 of the reference book
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville2 Defining software engineering Analyzing, Designing, Implementing and maintaining large software systems in a formal, transparent, predictable and cost effective way… It is concerned with the final product and the development process…
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville3 Software product attributes Maintainability It should be possible for the software to evolve to meet changing requirements Dependability The software should not cause physical or economic damage in the event of failure (Reliability, Security and Safety) Efficiency The software should not make wasteful use of system resources Usability Software should have an appropriate user interface and documentation
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville4 The software process Structured set of activities (steps) required to develop a software system... Activities vary depending on the organization and the type of system being developed
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville5 Process attributes Understandability: Is the process defined and understandable... Visibility: Is the process progress externally visible Supportability: Can the process be supported by CASE tools... Acceptability: Is the process acceptable to those involved in it...
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville6 Process attributes (cont.) Reliability:Are process errors discovered before they result in product errors Robustness: Can the process continue in spite of unexpected problems Maintainability: Can the process evolve to meet changing organizational needs Rapidity: How fast can the system be produced
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville7 Generic software process models The waterfall model Separate and distinct phases of specification and development Prototyping development Specification and development are interleaved Also called some times (wrongly) Iterative/Evolutionary model... Component-based development The system is assembled from existing components
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville8 Typical SE process steps... Specification Analysis Design Implementation Test Deployment Maintenance
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville9 A typical waterfall model schema
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville10 A typical Waterfall model phases Requirements analysis and definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance The drawback of the waterfall model is the difficulty of accommodating change after the process is underway
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville11 Prototyping Model
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville12 Prototyping Categorization Prototyping Models Throw away model Iterative ModelsIncremental Evolutionary Models
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville13 Evolutionary models The objective is to work with customers and to evolve, from an initial prototype based on an initial outline, to a final system, via several intermediary prototype version… Two sub models: Iterative: A relatively poor requirements understanding... Incremental: A relatively good understood requirements … Must set an initial architecture before developing increments...
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville14 Throw-away prototyping Objective is to understand the system requirements. Should start with poorly understood requirements
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville15 Reuse-oriented development Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems Process stages Component analysis Requirements modification System design with reuse Development and integration This approach is becoming more important but still limited experience with it
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville16 Reuse-oriented development
Soft. Eng. II, Spring 2002Dr Driss Kettani, from I. Sommerville17 Conclusion This chapter presents an overview of: What is Software Engineering; The software life cycle; Software products attributes; Software Process attributes; A Software Engineering processes taxonomy. Student must carefully read I. Sommerville, Chapter 3, in order to complement these slides…They must note the differences and ask for clarifications if need be.