Alternative approaches to system development Knut H. Rolland Dept. of informatics University of Oslo ©Knut H. Rolland 2002 Slide 1 Overview ● ● ● Prototyping (Budde et al.); Mixed approaches: spiral model (Bohem; Mathiassen et al.) Complexity and uncertainty (Mathiassen et al.) ©Knut H. Rolland 2002 Slide 2 Why process models? ● ● Determine the order of stages Transition criteria for proceeding from one stage to the next • • ● ● ● ● What shall we do next? How long shall we continue doing it? Not the same as a method Software development is a complex activity to organize Guidance on the order of the different tasks Is there a need for alternative ways to software development? ©Knut H. Rolland 2002 Slide 3 Software crisis? New challenges? ● ● ● Only 16% of software projects are successful 53% of software projects exceeds their budget with over 189% The aging “software plant” • ● Today’s software systems are not build from scratch • • ● ● legacy systems software components & architectures (COM) Level of integration • • • ● even the smallest modification can cause the entire system to fail (Ex: NSB created an ‘Y2001 problem’) Internet technologies interfaces to existing systems (Intranets, ERPs) e-Commerce Global diversity Level of interaction • interactive web applications; groupware ©Knut H. Rolland 2002 Slide 4 Traditional models ● Highly focused on planning • • ● Engineering view • • • ● Business and strategy planning in the 1950s Rational decision making processes Software development deals with ‘hard problems’ Assume that problems are known and clearly defined ‘Divide and Conquer’ Transition criteria • • Code-driven Document-driven ©Knut H. Rolland 2002 Slide 5 Lessons... ● ● ● ● Requirements do not become apparent until a system is in use; Specifications are seldom completed during analysis; Users and developers must learn from each other; Flexibility... ©Knut H. Rolland 2002 Slide 6 Experimental methods ● Prototyping • ● ● ● ● ● ● 1970s, Smalltalk and Prolog, interactive environments Not the first specimen of a a large series of products; A prototype should demonstrate in practical use features of the system and not a simulation of it; Based on an evolutionary view of software development; Produce early working versions; Provides a communication basis; Software development as a learning process ©Knut H. Rolland 2002 Slide 7 Types ● Prototype proper • • • ● A breadboard • • ● constructed in parallel with the domain model; to clarify the problem at hand; user-interface or part of the functionality; to help clarify construction-related questions; derived from the specification or model; A pilot system • part of the finished system; ©Knut H. Rolland 2002 Slide 8 Different aspects of prototyping ● ● ● ● ● A “tangible” idea of the problem solution; Early evaluation; Executable specification - better understanding of the problem domain; Technical feasibility of the system design; Giving the users a “foretaste”. ©Knut H. Rolland 2002 Slide 9 Horizontal vs. vertical ● Horizontal prototyping • ● specific layers of the system are built (e.g. user interface) Vertical prototyping • • a selected part of the target system is fully developed appropriate when building a pilot ©Knut H. Rolland 2002 Slide 10 The spiral model ● Background • • ● based on experience with various refinements of the waterfall model in large government projects; combination of other models; Features • • • • Reducing uncertainties through a risk management approach to systems development. not detailed specifications before high-risk elements of the design has stabilized; prototyping as risk-reduction at any stage; detail is not necessary unless the absence of such detail jeopardizes the project; ©Knut H. Rolland 2002 Slide 11 “Stages” ● ● ● ● Determine objectives, alternatives, constrains; Evaluate alternatives, identify and resolve risks; Develop, verify next-level product; Plan next phases; ©Knut H. Rolland 2002 Slide 12 A typical cycle I ● Each cycle begins with identification of • • • the objectives (performance, functionality, ability to accommodate change...) the alternative means of implementing the product (design A, design B, buy product..) the constrains imposed on the application of the alternatives (cost, schedule...) ©Knut H. Rolland 2002 Slide 13 A typical cycle II ● ● ● The spiral gets started by a hypothesis that a particular operational mission could be improved by a software effort The spiral process involves a test of the hypothesis - if it fails the spiral is terminated Each cycle is completed with a review which covers all products (plans, software, manning...) ©Knut H. Rolland 2002 Slide 14 Risk management (Bohem) ● 1. 2. 3. 4. 5. The “situation” is presented as a list of risks: Identify the project’s top 10 risk items; Present plan for resolving each risk item; Update list of top risk items, plan, and results monthly; Highlight risk-item status in monthly project reviews; Initiate appropriate corrective actions. ©Knut H. Rolland 2002 Slide 15 Risk management - analysis Effects of risk Catastrophic Serious Tolerable Insignificant Probability of risk Very low Low Moderate High Very high (<10%) (10-25%) (25-50%) (50-75%) (>75%) ©Knut H. Rolland 2002 Slide 16 Action... ● Select an appropriate model according to the “risk” situation, for example: • • • high risk in budget and schedule predictability and control -> waterfall requirements stable, presence of errors constitutes a high risk -> detailed specifications high risk in getting the wrong GUI -> prototyping, evolutionary model ©Knut H. Rolland 2002 Slide 17 Advantages (Bohem) ● ● ● It focuses on eliminating errors and unattractive alternatives early; Can be used for both re-designs and new designs; It provides a viable framework for integrated hardware-software system development; ©Knut H. Rolland 2002 Slide 18 Critique... ● ● ● ● ● Too rational approach to risk management and decision making; New kinds of risks can be introduced through prototyping, new techniques etc. Ignores the political context of software development (e.g. list of risks have to be legitimated in the focal organization) Risks are part of the phenomena, not something that can be eliminated. Risks also mean opportunities. ©Knut H. Rolland 2002 Slide 19 Mathiassen et al.’s approach. ● ● ● Systems development always involves paradoxes; Uncertainty (risk) always related to complexity in systems development; Complexity • • ● amount of relevant information that is available for making design decisions abstraction and decomposition Uncertainty • • availability and reliability of the information used for making design decisions prototyping, alternative models ©Knut H. Rolland 2002 Slide 20 The UCLS experiments (1984) ● ● 7 student teams developed an interactive system for supporting the COCOMO software cost estimation model 4 teams -> specifying approach (waterfall) • • ● 3 teams -> prototyping approach • • ● rated high on functionality and robustness lower on ease of use and ease of learning 40% less code, 45% less effort lower on functionality and robustness Each approach focuses only on some of the properties that characterize software of high quality; Specifying and prototyping seem to complement each other!! ©Knut H. Rolland 2002 Slide 21 New experiments… (Mathiassen) ● ● ● ● ● ● Must be interpreted and adapted to the specific conditions of the project Supported the teams in distributing the effort more evenly over phases Difficult to use the model to manage time resources during the project Risk analysis was mainly based on intuition and experience During risk management, new risks were identified and the conception of the original risks was modified The model is a misleading metaphor for development necessary to initiate parallel spirals to deal with emerging problems ©Knut H. Rolland 2002 Slide 22 Characteristics... Complexity Situation Uncertainty Low High Low High Analytical Mode of operation Experimental Approach Means of expression Specifications Prototypes ©Knut H. Rolland 2002 Slide 23 Complexity & Uncertainty revisited ● ● ● ● Complexity and uncertainty are closely related Behaving in an analytic way -> introduces new sources of uncertainty Behaving in an experimental way -> produces new information, thereby increasing complexity Complexity or uncertainty in software development cannot be reduced without affecting the other ©Knut H. Rolland 2002 Slide 24 The principle of limited reduction ● Relying on analytical behaviour to reduce complexity introduces new sources of uncertainty requiring experimental countermeasures. Correspondingly, relying on experimental behaviour to reduce uncertainty introduces new sources of complexity requiring analytical countermeasures. ©Knut H. Rolland 2002 Slide 25