Ingo Arnold Department Computer Science University of Basel Introduction Software Life-Cycle Management Software Lifce-Cycle Management Models Lecture Introduction
Agenda Waterfall Models Spiral Models Iterative Models Prototyping-based Models Agile Models Exemplified Walk-through Problem/Solution Department of Computer Sciences University of Basel 2
Software Life-Cycle Management Models A Software Life-Cycle Management Model describes an organizational frame a SW-development endeavour Phases Activities Component products, versions Criterions for completion of the computer system Qualification of team members Responsibilities and project roles Standards, regularities, methods, tools Department of Computer Sciences University of Basel 3
Software Life-Cycle Management Models LCM-models structural aspects: Department of Computer Sciences University of Basel 4
Software Life-Cycle Management Models LCM-models, utilized: Important aspect here is the model/method adoption, that helps to define the parts of the model, which need to be respected throughout a given engagement. Generic Process Model Specific Process Model Method Adoption Department of Computer Sciences University of Basel 5
Software Life-Cycle Management Models LCM-models are attractive Department of Computer Sciences University of Basel 6
Software Life-Cycle Management Models The simplest software development process Write Software Find bugs Repeatability of the process and reduction of the failure costs require more comprehensive and more complex process models Department of Computer Sciences University of Basel 7
Software Life-Cycle Management Models The Hacker knows only one activity.. Each activity produces one or more models.. Department of Computer Sciences University of Basel 8
Software Life-Cycle Management Models Each activity produces one or more models.. Department of Computer Sciences University of Basel 9
Software Life-Cycle Management Models Let s look at this equation: People Process Technology Service / Product New X New X New = New Very roughly we talked about Process and Technology so far however, one of the most determining factor always is People! Department of Computer Sciences University of Basel 10
Software Life-Cycle Management Models A few selected process models Waterfall models. Arrange life-cycle process along a sequence of activities Spiral models. Arrange life-cycle process as cyclic, risk-oriented sequence of development steps Iterative and incremental models. Arrange life-cycle process along a set of increments (i.e. deliveries) Prototyping-based models. Utilized within other models. Main purpose is risk mitigation. Agile models. Lean processes with focus on individuals Department of Computer Sciences University of Basel 11
Agenda Waterfall Models Spiral Models Iterative Models Prototyping-based Models Agile Models Exemplified Walk-through Problem/Solution Department of Computer Sciences University of Basel 12
Waterfall Models Waterfall Models Department of Computer Sciences University of Basel 13
Waterfall Models Waterfall Models characteristics Oldest systematic process model Development is understood as sequence of development- and verification-steps All major activities constitute a phase (e.g. requirements) Phases are left as soon as verified and accepted result is available Local (phase-internal) iterations possible Department of Computer Sciences University of Basel 14
Waterfall Models Waterfall Models criticism Non-local iterations are not model compliant, which makes project management difficult. Department of Computer Sciences University of Basel 15
Agenda Waterfall Models Spiral Models Iterative Models Prototyping-based Models Agile Models Exemplified Walk-through Problem/Solution Department of Computer Sciences University of Basel 16
Spiral Models Spiral Models Department of Computer Sciences University of Basel 17
Spiral Models Spiral Models Evolution of waterfall models Designed for complex and risky Computer Systems Bi-cyclic waterfall model (develop / verify) is replaced by a four-cyclic model: - Plan - Objectives - Evaluation, risks - Development, verification Department of Computer Sciences University of Basel 18
Agenda Waterfall Models Spiral Models Iterative Models Prototyping-based Models Agile Models Exemplified Walk-through Problem/Solution Department of Computer Sciences University of Basel 19
Iterative Models Iterative and incremental Models Department of Computer Sciences University of Basel 20
Iterative Models Iterative and incremental Models characteristics Approach: software-evolution Computer System is not (once) developed but instead grows steadily Synonyms: versions model, evolutionary model, incremental model Fundamental idea: organisation of software life-cycle process along a set of incrementally developed and ready-to-use elements of the final system. Overall process can be understood as a sequence of iterations Per iteration: a complete sub-set of overall solution is developed Individual iterations can be organized as autonomous sub-projects Continuous integration and short-pace builts as reference versions Department of Computer Sciences University of Basel 21
Iterative Models Iterative and incremental Models characteristics Department of Computer Sciences University of Basel 22
Iterative Models Iterative and incremental Models advantage / disadvantage + Model well the inherent behaviour of complex Computer Systems + Very well support Project Management + Iterative progress and incremental builts - Risk of diverging solution islands - Risk of undermining natural structures and concepts due to incremental evolution (e.g. natural structure = Data Warehouse cannot developed in one coherent go) Department of Computer Sciences University of Basel 23
Iterative Models Iterative and incremental Models should be used If the Computer System is complex and huge If anticipated development effort is huge If the full set of functionality is not required immediately (no big bang) If the Computer System cannot fully be anticipated in advance If a base product should be available, immediately Department of Computer Sciences University of Basel 24
Agenda Waterfall Models Spiral Models Iterative Models Prototyping-based Models Agile Models Exemplified Walk-through Problem/Solution Department of Computer Sciences University of Basel 25
Prototyping-based Models Protyping-based Models More a technique than a model Very adequate means for early detection and solution of problems Prototyp: excecutable piece of a Computer System which implements critical aspects, sub-sets at an early stage in order to proof a targeted approach Synonym: proof of concept (PoC), hot spot Different types of prototyping are distinguished: - Explorative and experimental - Evolutionary Department of Computer Sciences University of Basel 26
Prototyping-based Models Protyping-based Models Department of Computer Sciences University of Basel 27
Prototyping-based Models Protyping-based Models explorative and experimental Explorative and experimental prototyping is used to - Identify and detect requirements - Demonstrate and communicate to stakeholders - Proof a selected concept (feasability) - Evaluation of alternatives Explorative and experimental prototyping - May be undocumented - May be based on ugly solutions from a software-engineering perspective - Requires the prototyp to be decommissioned, once its purpose is fullfilled Department of Computer Sciences University of Basel 28
Prototyping-based Models Protyping-based Models evolutionary Characteristics of an evolutionary prototyping approach: - Prototype is a pilot-system - Prototype becomes kernel of to-be-developed Computer System - Prototype is not thrown away thus needs to comply with engineering best practices right from the beginning - Prototyping follows an incremental and iterative approach Department of Computer Sciences University of Basel 29
Agenda Waterfall Models Spiral Models Iterative Models Prototyping-based Models Agile Models Exemplified Walk-through Problem/Solution Department of Computer Sciences University of Basel 30
Agile Models Agile Models Idea: to map the techniques for developing very small Computer Systems onto the development of complex Computer Systems, so that the project is successful overall processes are simple and barely regulated Department of Computer Sciences University of Basel 31
Agile Models Agile Models Fundamental principles: The smaller the sub-systems and the shorter re-cycles the better this is The customer continuosly shapes the product. The customer is actively involved in the project The more independent the developers can organize their work items, the better this is Quality is assured at the origin: Pair programming Test-driven development Department of Computer Sciences University of Basel 32
Agenda Waterfall Models Spiral Models Iterative Models Prototyping-based Models Agile Models Exemplified Walk-through Problem/Solution Department of Computer Sciences University of Basel 33
Agile Models Agile Models do work well if Stakeholders are available, competent and empowered to draw decisions Overall problem can be decomposted into a meaningful sub-set of smaller problems / solutions Development-team is small or can be segmented into multiple parallel development-teams Software-Architect is competent and experienced (holistic view) Continuous integration is possible with minor effort Quality is determined and verified at the origin Department of Computer Sciences University of Basel 34
Exemplified Walk-through Problem/Solution A problem is stated Department of Computer Sciences University of Basel 35
Exemplified Walk-through Problem/Solution Functional requirements are identified and captured Department of Computer Sciences University of Basel 36
Exemplified Walk-through Problem/Solution Individual requirements are further detailed Department of Computer Sciences University of Basel 37
Exemplified Walk-through Problem/Solution Individual requirements are further detailed (continued) Department of Computer Sciences University of Basel 38
Exemplified Walk-through Problem/Solution Crucial domain concepts are modeled and captured Department of Computer Sciences University of Basel 39
Exemplified Walk-through Problem/Solution Black-box perspective is turned into white-box perspective in order to elaborate on the system s solution design Department of Computer Sciences University of Basel 40
Exemplified Walk-through Problem/Solution This gives us a first architectural solution Department of Computer Sciences University of Basel 41
Exemplified Walk-through Problem/Solution Revisit problem statement and detailed requirements (i.e. non-functional requirements) Department of Computer Sciences University of Basel 42
Exemplified Walk-through Problem/Solution Introduce (bottom-up) quality aspects. Here the Abstract- Factory-Class pattern was used to abstract future UI channels Department of Computer Sciences University of Basel 43
Questions? Department of Computer Sciences University of Basel 44