Topic 3 Software process models

Size: px
Start display at page:

Download "Topic 3 Software process models"

Transcription

1 Topic 3 Software process models DAAD Project Joint Course on Software Engineering Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Niš, University of Kragujevac Version: Oct. 29, 2005 (D Nov. 06, 2003) 1

2 3. Process models a) Why process models? b) Overview of existing models c) Classical and iterative phase model (waterfall model) d) Alternative phases in phase models e) Prototyping f) Spiral model 2 2

3 Process models: used terminology Software process models Phase models Life cycle models Software development models Project models (Note: terms are similar, but with differences; e.g. life cycle model: development and maintenance, software development model: without maintenance) 3 3

4 Why process models? SE is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software... (IEEE Standard Glossary of Software Engineering Terminology, 1990). Definition of the term SE requires studying models for systematic software development (main objective of SE)! 4 4

5 Relevance of process models Process models are relevant for Project organization: Otherwise: sporadic, uncoordinated project management Experience: high-quality SW is impossible without a systematic approach to SW development Project analysis: What are the weak points in the development process? Time and cost planning Qualitative assessment of SW companies Certification for ISO

6 What is a process model? Process model In general: Development plan, which specifies the general process of developing a software product. More precisely: Definition that states, which activities are to be performed, by which person, acting in which role; in which order the activities will be performed, and which products will be developed and how to evaluate them. Role What is SW-specific? coworker, who accomplish a certain activity e.g. test engineer, project leader, design specialist, programmer, software ergonomist 6 6

7 Performing an activity: basic scheme (activity = subprocess of a process model) Given artifacts Methods Guidelines Conventions Check lists Samples Tools Changed or new artifact Legend: Activity Role Coworker Model (Artifact) Document (Artifact) Coworker Y Role X Source: Balzert, vol. 1, p

8 Software artifacts Software artifact Product of art created by humans Can be a document, a model or a program Examples : - Document, e.g. requirements specification - Model, e.g. OOA model - Program, e.g. C++-Program. Software product Set of software artifacts 8 8

9 3. Process models a) Why process models? b) Overview of existing models c) Classical and iterative phase model (waterfall model) d) Alternative phases in phase models e) Prototyping f) Spiral model 9 9

10 Most familiar process models: Overview Classical phase model (waterfall model) Iterative phase model (life cycle) Process models Prototyping (evolutionary SE) Spiral model V-model 10 10

11 Notes Models are always idealized, they give only a framework and must allow flexible working must not hinder work Different classes of SW development problems different suitable models e.g. AI program: gradual evolution Prototyping model is often used 11 11

12 3. Process models a) Why process models? b) Overview of existing models c) Classical and iterative phase model (waterfall model) d) Alternative phases in phase models e) Prototyping f) Spiral model 12 12

13 Software development process until 1970: considered as a black box informal requirements Only until 1970? Software development process Program code Customer What happens inside? 13 13

14 Analysis and and Definition The classical waterfall model (1970) Design Design Implementation Test Test Usage Usage and and Maintenance 14 14

15 Phases of SW development: subject and products (overview) Analysis and Definition Analysis of the problem + Definition of the requirements to the SW, focus: external behavior of the SW system intensive cooperation: client contractor requirement specifications, product model and others Design Specification of the structure of the SW (software architecture), specification of components and their relations software architecture, detailed design, and others Implementation Software architecture is filled out : programming of the components program (code) Test Testing of the components, testing of their integration test cases, test protocols and others 15 15

16 Analysis and and Definition The classical waterfall model (1970) Design Design Implementation Problems? Test Test Usage Usage and and Maintenance 16 16

17 Documents of SW development Customer's requests Specification Design Code Customer Analyst Designer Programmer Required features (empty circles) got lost, unnecessary (filled circles) are added Source: Schneider, SEUH 43, p

18 Information flow in SW projects How the customer explained it How the Project Leader understood it How the Software architect designed it How the Programmer wrote it How thetester left it How the Business How the project was Consultant described it documented How the customer was billed How it was supported What the customer really needed 18 Source: unknown 18

19 Analysis and and Definition Iterative phase model Design Design Implementation Problems? Test Test Usage Usage and and Maintenance 19 19

20 Cost allocation in the software life cycle Requirement analysis 3% Specification 3% Design 5% Coding 7% Unit Testing 8% Maintenance 67% Integration Testing 7% Source: R. Klösch, H.Gall: Objektorientiertes Reverse Engineering. Springer,

21 Error statistics: occurrence and correction requirements design implementation 20 % 38 % 42 % faults introduced to the software 1 % 2 % 20 % 30 % 40 % 7 % requirements review design review code review + unit test subsystem test system and acceptance test field faults faults detected Source: Software Metrics Symposium 1996, p

22 3. Process models a) Why process models? b) Overview of existing models c) Classical and iterative phase model (waterfall model) d) Alternative phases in phase models e) Prototyping f) Spiral model 22 22

23 Phases according to Jacobson Requirements analysis Preliminary design Detailed design Coding Unit testing Characteristics? Integration System test Jacobson: Object-oriented Software Engineering p

24 Phases according to Denert System Specification User Interface System Construction Modularity Functional Model Database design Data model Characteristics? Process organization System Integration System testing Subsystem definition Subsystem testing Module Implementation Module specification Module construction Module testing Denert: Software Engineering, Springer Verlag, 1992, p

25 Phases in CASE-Tool MAESTRO II SEtec Process Model Problem Analysis Requirements Definition Design Implementation, Integration & Test rough data model task processes task hierarchy organization hierarchy function hierarchy data model userinterface design function processes system model database model interface specification Component SKONTO is connected with the aaaaaaaaaskonto is aaaaaaaaaaaabatt aaaaaaaaaaaalookup integration model DB definitions, SQL... GUI objects program logic IF kunde = CASE PlaubaTT = 1 IF kunde = nnnnnnn Client/Server OS/2, Motif MS-Windows UNIX/RDBs IBM MVS COBOL, CICS DB2 IMS DB/DC PlaubaTT, I SNI BS2000 COBOL, UTM SESAM, UDS Rough Concept Detailed Concept Software Design Software System SEtec Result Model Characteristics? Source: SoftLab, Munich, MAESTRO II (most well-known German CASE-Tool) 25 25

26 Unified Software Development Process (USDP) Process of object-oriented software development due to Jacobson, Booch, Rumbaugh (1999) Requirements Analysis Design Implementation Test Part of the phase Analysis and Definition, in which the basic use cases of the systems will be detected: use case diagrams Part of the phase Analysis and Definition, in which the basic classes of the problem will be detected: class diagrams 26 26

27 1 Fundamentals Introduction and Overview V Enterprise Modelling 2 Object-oriented Enterprise Modelling Phases according to Balzert I SW-Management I SW-Development III SW-Quality Assurance 1 Bases 1 Planning phase 1 Bases 2 Planing 2 Definition phase 2 Quality Assurance 3 Organization 3 Design phase 3 Manual Proof Methods 4 Personal 4 Implementation phase 4 Process Quality 5 Leadership 6 Control 5 Acceptance and Introduction 6 Maintenance phase 5 Product Quality Components 6 Product Quality System 1 Principles and Methods 2 CASE IV Cross-sections and Views 3 Re-use 4 Reorganization Balzert: Textbook of Software Technology vol. 1,

28 Phases according to Balzert (detail) I SW-Development 1 Planning phase 2 Definition phase Characteristics? 3 Design phase 4 Implementation phase 5 Acceptance and Introduction 6 Maintenance phase 28 28

29 Phase model in the Space shuttle Program (NASA) I OI Release K M O Q Development Validation Mission Preparation Operational lifetime Lifecycle for each OI (Operational Increment) Source: M. Zelkovitz, I. Rus: ICSM 2001, p. 119 Facts: 22 releases (versions, OI = Operational Increment) development until 2020 each year: a new release for each release: 2 years development time several releases at the same time in process strong effects to project management 29 29

30 Special phase model Project What is remarkable? Design Construction Production planning Preparation of work Production Test How to be interpreted? Contract Begin of production Delivery 1 Year Source: R.Bronsart, SEUH

31 Phase model of Samsonite 31 31

32 Test of suitcases 32 32

33 3. Process models a) Why process models? b) Overview of existing models c) Classical and iterative phase model (waterfall model) d) Alternative phases in phase models e) Prototyping f) Spiral model 33 33

34 Prototyping Operational area: Requirements imprecise at the beginning and/or constantly changed Prototype: runable software system, Substantial parts of the final product already finished (e.g. user interface, basic behavior), Other parts still to be done (e.g. ineffective, special cases) Application cases: Prototype (may be thrown away) (addition of the requirement analysis : rapid prototyping) Advancement to the final product (evolutionary software development) 34 34

35 Phases of iterative prototyping Design a solution Establish the Problem Spaces Evaluate Implement Solution Summative Evaluation & Delivery Characteristics? Boyle: Design of Multimedia Learnnig, Prentice Hall Europe (1997), p

36 Dynamic Systems Development Method (DSDM) Standard non-proprietary RAD method based upon userdriven iterative prototyping (1995) Requirements Analysis Design Feasibility and business study Functional prototype iterations Design prototype iterations Implementation Evaluation Placing the system in user environment 36 36

37 3. Process models a) Why process models? b) Overview of existing models c) Classical and iterative phase model (waterfall model) d) Alternative phases in phase models e) Prototyping f) Spiral model 37 37

38 Introduction to spiral model Problem analysis: goals alternatives Risk analysis: evaluation of alternatives Characteristics of the phases? Realization: construction of the product test Planning: next project steps Review 38 38

39 Spiral model due to Boehm (1988) Problem analysis: determination of goals, alternatives and additional requirements of a new spiral cycle Risk analysis: evaluation of alternatives; identification and reduction of risks end of cycle: Review Planning: planning of next steps, i.e. of the next spiral cycle Realization: construction and test of the current product project progress in the spiral cycle 39 39

40 The essence of the spiral model abstract model: meta model abstraction from other models of SW development (one turn = one phase or development of next prototype or...) orients to similar activities of each step (problem analysis, risk analysis, realization, planning, review) risk analysis: comparison of possible alternatives (examples: selection of a programming language, of the A-&D-method, of the staff, usage of tools) flexible: first turn produce prototypes, next turns correspond to the phases A&D, design,

41 The phase model as a special case of the spiral model Operation and maintenance Problem analysis Risk analysis R e v i e w one turn = one phase Planning Planning of analysis phase GUIprototype Designplanning Planning of implementation, integration and Test sales forecast Project plan Validation of product definition Acceptance test Analysis Software design Simulation Realization Integration and system test Installation Coding and unit test Pagel, Six p

42 Evolutionary software development as a special case of the spiral model Operation and maintenance Problem analysis Risk analysis R e v i e w sales forecast Project plan GUIprototype Realization Planning one turn = one prototype Planning of the first prototype Planning of the second prototype Validation of the prototype Installation Acceptance test revised project plan Prototype 1 Validation of the prototype Usable product Prototype n Pagel, Six p