230 likes | 413 Views
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)
E N D
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?
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), …
Build and Fix Model • Problems • No specifications • No design • Totally unsatisfactory • Need life-cycle model • “Game plan” • Phases • Milestones
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
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
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
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
Incremental Model (Variation) • More risky version—pieces may not fit
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) Reusable components Decisions, rationale and trans. rules Formal specifications (lower level) Requirements Requirements analysis and specification Transformation /optimization Formal specifications Development history
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
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
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.
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
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?
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
Exam Questions • What is Extreme Programming? • What are the advantages and disadvantages of using Extreme Programming as development model?