Why process models? Topic 3 Software 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). 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 of the term SE requires studying models for systematic software development (main objective of SE)! Version: Oct. 29, 2005 (D Nov. 06, 2003) 4 Project organization: Otherwise: sporadic, uncoordinated project management Experience: high-quality SW is impossible without a systematic approach to SW development Relevance of process models Process models are relevant for Project analysis: What are the weak points in the development process? Time and cost planning Qualitative assessment of SW companies Certification for ISO 9000 2 5 Process models: used terminology What is a process model? 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) Process model In general: Development plan, which specifies the general process of developing a software product. More precisely: 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. What is SW-specific? Role coworker, who accomplish a certain activity e.g. test engineer, project leader, specialist, programmer, software ergonomist 3 6 1
Performing an activity: basic scheme (activity = subprocess of a process model) Most familiar process models: Overview Given artifacts Methods Guidelines Conventions Check lists Samples Coworker Y Role X Tools Changed or new artifact Legend: Activity Role Coworker Model (Artifact) Document (Artifact) Classical phase model Prototyping (evolutionary SE) Process models Spiral model Iterative phase model (life cycle) V-model Source: Balzert, vol. 1, p. 60 7 10 Software artifacts Notes 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 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 8 11 9 12 2
Software development process until 1970: considered as a black box informal requirements Only until 1970? and and The classical waterfall model (1970) Customer Software development process Program code Problems? Test Test What happens inside? Usage Usage and and 13 16 The classical waterfall model (1970) Documents of SW development and and Customer's requests Specification Code Test Test Customer Analyst er Programmer Usage Usage and and Required features (empty circles) got lost, unnecessary (filled circles) are added Source: Schneider, SEUH 43, p. 123 14 17 Phases of SW development: subject and products (overview) Information flow in SW projects and of the problem + of the requirements to the SW, focus: external behavior of the SW system intensive cooperation: client contractor requirement specifications, product model and others Specification of the structure of the SW (software architecture), specification of components and their relations software architecture, detailed, and others 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 How the customer explained it How the Project Leader understood it How the Business How the project was Consultant described it documented How the Software architect ed it How the customer was billed How the Programmer wrote it How thetester left it How it was supported What the customer really needed 18 Source: unknown 3
Iterative phase model and and Problems? Test Test Usage Usage and and 19 22 Cost allocation in the software life cycle Phases according to Jacobson Requirement analysis 3% Specification 3% 5% Coding 7% Unit Testing 8% analysis Preliminary Detailed Coding 67% Integration Testing 7% Unit testing Integration System test Source: R. Klösch, H.Gall: Objektorientiertes Reverse Engineering. Springer, 1995 20 Jacobson: Object-oriented Software Engineering p. 32 23 Error statistics: occurrence and correction requirements implementation 20 % 38 % 42 % 1 % 2 % 20 % 30 % 40 % 7 % requirements review review code review + unit test subsystem test faults introduced to the software system and acceptance test field faults System Specification Data model User Interface System Integration Subsystem definition Phases according to Denert Functional Model System Construction Database Modularity Module Module specification Process organization faults detected Subsystem testing Module construction Source: Software Metrics Symposium 1996, p. 176 System testing Module testing Denert: Software Engineering, Springer Verlag, 1992, p. 39 21 24 4
Component SKONTO is connected with the aaaaaaaaaskonto is aaaaaaaaaaaabatt aaaaaaaaaaaalookup IF kunde = 99999 CASE PlaubaTT = 1 IF kunde = nnnnnnn PlaubaTT, I Problem Phases in CASE-Tool MAESTRO II SEtec Process Model, Integration & Test Phases according to Balzert (detail) I SW-Development 1 phase 2 phase organization hierarchy rough data model task processes task hierarchy Rough Concept userinterface function processes function hierarchy data model Detailed Concept system model database model interface specification Software integration model DB definitions, SQL... GUI objects program logic Software System Client/Server OS/2, Motif MS-Windows UNIX/RDBs IBM MVS COBOL, CICS DB2 IMS DB/DC SNI BS2000 COBOL, UTM SESAM, UDS 3 phase 4 phase 5 Acceptance and Introduction 6 phase SEtec Result Model Source: SoftLab, Munich, MAESTRO II (most well-known German CASE-Tool) 25 28 Unified Software Development Process (USDP) Phase model in the Space shuttle Program (NASA) Process of object-oriented software development due to Jacobson, Booch, Rumbaugh (1999) Test Part of the phase and, in which the basic use cases of the systems will be detected: use case diagrams Part of the phase and, in which the basic classes of the problem will be detected: class diagrams 26 OI Release I K M O Q 1990 1992 1994 1996 1998 2000 Development Lifecycle for each OI (Operational Increment) Facts: 22 releases (versions, OI = Operational Increment) 1981-2001 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 Validation Mission Preparation Operational lifetime Source: M. Zelkovitz, I. Rus: ICSM 2001, p. 119 29 1 Fundamentals Introduction and Overview V Enterprise Modelling 2 Object-oriented Enterprise Modelling Phases according to Balzert Special phase model I SW-Management I SW-Development III SW-Quality Assurance Project What is remarkable? 1 Bases 1 phase 1 Bases 2 Planing 3 Organization 4 Personal 2 phase 3 phase 4 phase 2 Quality Assurance 3 Manual Proof Methods 4 Process Quality Construction Production planning Preparation of work Production 5 Leadership 5 Acceptance and Introduction 5 Product Quality Components Test 6 Control 6 phase 6 Product Quality System How to be interpreted? Contract Begin of production Delivery 1 Principles and Methods 2 CASE IV Cross-sections and Views 3 Re-use 4 Reorganization Balzert: Textbook of Software Technology vol. 1, 2001 1 Year Source: R.Bronsart, SEUH 1996 27 30 5
Phase model of Samsonite Prototyping Operational area: 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) 31 34 Test of suitcases Phases of iterative prototyping a solution Establish the Problem Spaces Evaluate Implement Solution Summative Evaluation & Delivery 32 Boyle: of Multimedia Learnnig, Prentice Hall Europe (1997), p. 186 35 Dynamic Systems Development Method (DSDM) Standard non-proprietary RAD method based upon userdriven iterative prototyping (1995) Evaluation Feasibility and business study Functional iterations iterations Placing the system in user environment 33 36 6
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 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 s, next turns correspond to the phases A&D,,... 37 40 Problem analysis: goals alternatives Introduction to spiral model Risk analysis: evaluation of alternatives Realization: construction of the product test Characteristics of the phases? : next project steps Review 38 The phase model as a special case of the spiral model Operation and maintenance R e v i e w one turn = one phase Problem analysis Risk analysis GUI sales forecast of Project plan analysis phase planning product definition Validation of of implementation, integration and Test Software Simulation Realization Integration and system test Installation Acceptance test Coding and unit test Pagel, Six p.72 41 Spiral model due to Boehm (1988) Evolutionary software development as a special case of the spiral model Problem analysis: determination of goals, alternatives and additional requirements of a new spiral cycle Risk analysis: evaluation of alternatives; identification and reduction of risks Operation and maintenance Problem analysis Risk analysis end of cycle: Review R e v i e w sales forecast Project plan GUI Realization project progress in the spiral cycle : planning of next steps, i.e. of the next spiral cycle Realization: construction and test of the current product one turn = one of the first of the second Validation of the revised project plan Prototype 1 Validation of the Installation Acceptance test Usable product Prototype n Pagel, Six p.73 39 42 7