170 likes | 182 Views
CSC-3325: Chapter II. Chap1: Software Engineering Models ( Review ) Mandatory reading: chapter 3 of the reference book. Defining software engineering. Analyzing, Designing, Implementing and maintaining large software systems in a formal, transparent, predictable and cost effective way …
E N D
CSC-3325: Chapter II Chap1: Software Engineering Models (Review) Mandatory reading: chapter 3 of the reference book Dr Driss Kettani, from I. Sommerville
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… Dr Driss Kettani, from I. Sommerville
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 Dr Driss Kettani, from I. Sommerville
The software process • Structured set of activities (steps) required to develop a software system... • Activities vary depending on the organizationand the type of system being developed Dr Driss Kettani, from I. Sommerville
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... Dr Driss Kettani, from I. Sommerville
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 Dr Driss Kettani, from I. Sommerville
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 Dr Driss Kettani, from I. Sommerville
Typical SE process steps... • Specification • Analysis • Design • Implementation • Test • Deployment • Maintenance Dr Driss Kettani, from I. Sommerville
A typical waterfall model schema Dr Driss Kettani, from I. Sommerville
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 Dr Driss Kettani, from I. Sommerville
Prototyping Model Dr Driss Kettani, from I. Sommerville
Prototyping Categorization Prototyping Models Throw away model Evolutionary Models Iterative Models Incremental Dr Driss Kettani, from I. Sommerville
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... Dr Driss Kettani, from I. Sommerville
Throw-away prototyping • Objective is tounderstand the system requirements. • Should start with poorly understood requirements Dr Driss Kettani, from I. Sommerville
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 Dr Driss Kettani, from I. Sommerville
Reuse-oriented development Dr Driss Kettani, from I. Sommerville
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. Dr Driss Kettani, from I. Sommerville