Software Life-Cycle Models Hans Van Vliet, Software Engineering: Principles and Practices, 3rd edition, Wiley 2008. (Chapter 3) Eric J. Braude, Software Engineering, An Object-Oriented Perspective, Wiley, 2001. (Section 2.4. Identifying and retiring risks) Roger S. Pressman, Software Engineering, A Practitioner’s Approach, 6th edition, McGraw Hill, 2005. (Chapter 25. Risk Management) Software Life-Cycle Models • 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 • Q: In what order to perform these steps? 2 Many Life-Cycle Models • Several dimensions – – – – – Sequential vs. iterative Whole vs. incremental Elaborative vs. transformational Use of prototype … • Examples – Waterfall, Rapid prototyping, Incremental, Spiral, Model-driven, Feature-driven, Unified Process (UP), Extreme Programming (XP), … 3 Build and Fix Model • Problems – No specifications – No design • Totally unsatisfactory • Need life-cycle model – “Game plan” – Phases – Milestones 4 Waterfall Model • Characterized by – Feedback loops – Documentation-driven – Operational product at end • Advantages – Documentation – Maintenance may be easier • Disadvantages – Customer may not be aware of what getting – Costly when discrepancy found in later stages – Sometimes freezes part of development – May lead to badly structured systems 5 Rapid Prototyping Model (Throwaway) • Determine needs of customer • Refine with interaction of customers • Experiment with parts not understood • Prototype system poorly structured • Operational product at end 6 Evolutionary Prototyping • Process not visible (need deliverables) • Need highly skilled team • Appropriate – Small teams – Part of system not well understood – Short lifecycle system Problem description (outline) • Specification • Development • Validation Concurrent activities • Initial version • Intermediate version • Final version 7 Incremental Model • Divide project into builds • Operational quality portion of product within weeks • Smaller capital outlay, rapid return on investment • Need open architecture— maintenance implications • Requires skilled developers 8 Incremental Model (Variation) • More risky version—pieces may not fit 9 Transformation Model • Viewed as a sequence of steps that transforms a specification into an implementation • Use of formal specifications/models and transformation rules • Correctness by construction <-> program correctness proof • E.g., Model-driven development (MDD) Decisions, rationale and trans. rules Requirements Formal specifications (lower level) Requirements analysis and specification Formal specifications Reusable components Transformation /optimization Development history 10 Spiral Model • Keys: risk analysis and evaluation • Simplified form: Waterfall model plus risk analysis • Precede each phase by – Alternatives – Risk analysis • Follow each phase by – Evaluation – Planning of next phase 11 Simplified Spiral Model • Focus on eliminating errors early • Examines level of effort • Accommodates growth and change (evolution) • Restrictions – In-house development (not contracted) – Good for large-scale systems – Requires training in risk analysis and resolution 12 Full Spiral Model (contd) 13 Risk • A risk is something that may occur in the course of a project, and which, under the worst outcome, would affect it negatively and significantly [Braude 2001, Section 2.4]. • Two types: – Those that can be avoided or worked around – Those cannot be avoided • Problems are those risks that have not been identified. Risks must be managed! • Risk retirement is process whereby risks are reduced or eliminated. 14 Risk Management Activities Identification – Mindset: try to continually identify risks – Write down concerns and press all team members to think of more Retirement planning – Outline the steps that can be taken to retire the risk. Prioritization – Options: likelihood (10 most likely), impact (10 most impact), retirement cost (10 highest cost) – Formula: (11 - l) (11 - i) rc – Lowest is first to address Retirement or mitigation 15 Types of Risks (Pressman 2005, Chapter 25) • Generic (every project) – – – – – – – Product size Business impact (constraints imposed by mgm’t) Customer characteristics Process definition Development environment Technology to be built Staff size and experience • Product-specific (characteristics of product) – Examples? 16 Example Risks Underestimation of size Time lag in learning new tools Lack of top management commitment Personnel resign Changing scope and/or objectives Technical breakthroughs—change in product Unrealistic schedule Personnel lack required knowledge or skills 17 Feature Driven Development (FDD) 1) Selection of domain experts and development teams 2) Completion of requirements definition by guidance team Completion of the develop an overall model process Entry Criteria Completion of the build a feature list process Entry Criteria Completion of the plan by feature process Completion of the design by feature for each of the selected features Entry Criteria Entry Criteria Entry Criteria Develop an Overall Model Build a Feature List Exit Criteria Exit Criteria Plan by Feature Exit Criteria Design by Feature Exit Criteria Build by Feature Exit Criteria Completion of: Completion of: Completion of: Completion of: Completion of: a) the object model (class, sequence diagrams and explanatory notes) b) Interview Report c) Feasibility Report d) Use case scenarios a) feature list, including a list of major feature sets and a list of features within each feature set b) GUI c) Models d) Requirements a) development plan, consisting feature sets with completion dates a) design package, comprising a design document, referenced requirements in the form of documents, memos, supporting documentation, design alternatives, latest object model, class and method prologues, to do task list on affected classes for each team members a) development of one or more features (clientvalued functions) 18 Exam Questions • What is Extreme Programming? • What are the advantages and disadvantages of using Extreme Programming as development model? 19