Slide 3.1 Development Methodologies Prof. Dr. Josef M. Joller jjoller@hsr.ch Development Methodologies Prof. Dr. Josef M. Joller 1
Session 3 Slide 3.2 SOFTWARE LIFE-CYCLE MODELS Development Methodologies Prof. Dr. Josef M. Joller 2
Overview Slide 3.3 Build-and-fix model Waterfall model Rapid prototyping model Incremental model Extreme programming Synchronize-and-stabilize model Spiral model Object-oriented life-cycle models Comparison of life-cycle models Development Methodologies Prof. Dr. Josef M. Joller 3
Software Life-Cycle Models Slide 3.4 Life-cycle model (formerly, process model) The steps through which the product progresses Requirements phase Specification phase Design phase Implementation phase Integration phase Maintenance phase Retirement Development Methodologies Prof. Dr. Josef M. Joller 4
Build and Fix Model Slide 3.5 Problems No specifications No design Totally unsatisfactory Need life-cycle model Game plan Phases Milestones Development Methodologies Prof. Dr. Josef M. Joller 5
Waterfall Model (contd) Slide 3.6 Characterized by Feedback loops Documentation-driven Advantages Documentation Maintenance easier Disadvantages Specifications Joe and Jane Johnson Mark Marberry Development Methodologies Prof. Dr. Josef M. Joller 6
Rapid Prototyping Model Slide 3.7 Linear model Rapid Development Methodologies Prof. Dr. Josef M. Joller 7
Three Key Points of Prototyping Slide 3.8 Do not turn into product Rapid prototyping may replace specification phase never the design phase Comparison: Waterfall model try to get it right first time Rapid prototyping frequent change, then discard Development Methodologies Prof. Dr. Josef M. Joller 8
Waterfall and Rapid Prototyping Models Slide 3.9 Waterfall model Many successes Client needs Rapid prototyping model Not proved Has own problems Solution Rapid prototyping for requirements phase Waterfall for rest of life cycle Development Methodologies Prof. Dr. Josef M. Joller 9
Extreme Programming Slide 3.10 Somewhat controversial new approach Stories (features client wants) Estimate duration and cost of each story Select stories for next build Each build is divided into tasks Test cases for task are drawn up first Pair programming Continuous integration of tasks Unusual features Computers are put in center of large room lined with cubicles Client representative is always present Cannot work overtime for 2 successive weeks No specialization Refactoring (improve existing system : cost / benefit?) Development Methodologies Prof. Dr. Josef M. Joller 10
Synchronize-and Stabilize Model Slide 3.11 Microsoft s life-cycle model Requirements analysis interview potential customers Draw up specifications Divide project into 3 or 4 builds Each build is carried out by small teams working in parallel At the end of the day synchronize (test and debug) At the end of the build stabilize (freeze build) Components always work together Get early insights into operation of product Development Methodologies Prof. Dr. Josef M. Joller 11
Spiral Model Slide 3.12 Simplified form Waterfall model plus risk analysis Precede each phase by Alternatives Risk analysis Follow each phase by Evaluation Planning of next phase Development Methodologies Prof. Dr. Josef M. Joller 12
Full Spiral Model (contd) Slide 3.13 Development Methodologies Prof. Dr. Josef M. Joller 13
Analysis of Spiral Model Slide 3.14 Strengths Easy to judge how much to test No distinction between development, maintenance Weaknesses For large-scale software only For internal (in-house) software only Development Methodologies Prof. Dr. Josef M. Joller 14
Object-Oriented Life-Cycle Models Slide 3.15 Need for iteration within and between phases Fountain model Recursive/parallel life cycle Round-trip gestalt Unified software development process All incorporate some form of Iteration Parallelism Incremental development Danger Infinite loop Development Methodologies Prof. Dr. Josef M. Joller 15
RUP Rational Unified Process Slide 3.16 The Rational Unified Process and the UML developed hand-in-hand by Rational Contributions by major vendors Microsoft HP IBM Oracle Standard through OMG Texas Instruments MCI SystemHouse Development Methodologies Prof. Dr. Josef M. Joller 16
1. Important Features of the Iterative Approach Slide 3.17 Attacks risks Continuous integration Frequent, executable releases Continuous end user involvement Initial Planning Planning Requirements Capture Management Environment Analysis & Design Implementation Deployment Evaluation Test Development Methodologies Prof. Dr. Josef M. Joller 17
2. Manage Your Requirements Slide 3.18 Elicit, organize, and document required functionality and constraints Track and document tradeoffs and decisions Business requirements are easily captured and communicated through use cases Use cases are important planning instruments Use-Case Model Use Cases drives the work from analysis through test realization Design Model influenced by Implementation Model verifies Test Model Development Methodologies Prof. Dr. Josef M. Joller 18
3. Employ Component-based Architecture Slide 3.19 Design, implement and test your architecture up-front! A systematic approach to define a good architecture resilient to change by using well-defined interfaces by using and reverse engineering components derived from top rank use cases intuitively understandable System- software Application- specific Business- specific Component-based Architecture with layers Middleware Development Methodologies Prof. Dr. Josef M. Joller 19
4. Model Software Visually Slide 3.20 Capture the structure and behavior of architectures and components Show how the elements of the system fit together Maintain consistency between a design and its implementation Promote unambiguous communication Sub Systems Visual Modeling raises the level of abstraction Classes Code Development Methodologies Prof. Dr. Josef M. Joller 20
5. Verify Software Quality Slide 3.21 Create tests for each key scenario to ensure that all requirements are properly implemented Unacceptable application performance hurts as much as unacceptable reliability Verify software reliability - memory leaks, bottle necks Test every iteration - automate test! Software problems are 100 to 1000 times more costly to find and repair after deployment Cost Development Deployment Development Methodologies Prof. Dr. Josef M. Joller 21
6. Control Changes to Software Slide 3.22 Control, track and monitor changes to enable iterative development Establish secure workspaces for each developer Provide isolation from changes made in other workspaces Control all software artifacts - models, code, docs, etc. Automate integration and build management Workspace Management Parallel Development CM is more than just check-in and check-out Process Integration REPORT ALERT Build Management Development Methodologies Prof. Dr. Josef M. Joller 22
Process Overview Slide 3.23 Inception Elaboration Construction Transition Business Modeling Requirements Analysis & Design Implementation Test Deployment Configuration Management Project Management Environment Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Development Methodologies Prof. Dr. Josef M. Joller 23
Phases in the Process Slide 3.24 Major Milestones Inception Elaboration Construction Transition time The Rational Unified Process has four phases: Inception - Define the scope of project Elaboration - Plan project, specify features, baseline architecture Construction - Build the product Transition - Transition the product into end user community Development Methodologies Prof. Dr. Josef M. Joller 24
Iterations and Phases Slide 3.25 Releases Inception Elaboration Construction Transition Preliminary Iteration Architect. Iteration Architect. Iteration Devel. Iteration Devel. Iteration Devel. Iteration Transition Iteration Transition Iteration An iteration is a distinct sequence of activities with an established plan and evaluation criteria, resulting in an executable release (internal or external). Development Methodologies Prof. Dr. Josef M. Joller 25
Models and Workflows Slide 3.26 Business Modeling Requirements Workflow Business Model Each major workflow describes how to create and maintain a particular model realized by Analysis Design Workflow Use-Case Model implemented by Implementation Workflow Test Workflow Design Model Implementation Model verified by Test Model Development Methodologies Prof. Dr. Josef M. Joller 26
Process Workflows Bringing It All Together... Inception Elaboration Phases Construction Slide 3.27 In an iteration, you walk through all workflows Transition Business Modeling Requirements Analysis & Design Implementation Test Deployment Supporting Workflows Configuration Mgmt Workflows group activities logically Management Environment Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iterations Iter. #n+2 Iter. #m Iter. #m+1 Development Methodologies Prof. Dr. Josef M. Joller 27
Example of a Workflow Slide 3.28 Development Methodologies Prof. Dr. Josef M. Joller 28
Slide 3.29 Rational Unified Process (RUP) Trial http://www.rational.com/products/rup/tryit/eval/gen_eval.jsp Username jjoller@hsr.ch Password KmiVF1wP valid approx until end of April 2002! Development Methodologies Prof. Dr. Josef M. Joller 29
Conclusions Slide 3.30 Different life-cycle models Each with own strengths Each with own weaknesses Criteria for deciding on a model include The organization Its management Skills of the employees The nature of the product Best suggestion Mix-and-match life-cycle model Development Methodologies Prof. Dr. Josef M. Joller 30