110 likes | 277 Views
COMP 3100/3500/4500 Software Engineering Group Project. ICT Development Lifecycles. Terms and Concepts. System : A set of interrelated components which interact with one another in an organised fashion toward a common purpose. (NASA Systems Engineering Handbook)
E N D
COMP 3100/3500/4500 Software Engineering Group Project ICT Development Lifecycles
Terms and Concepts • System: A set of interrelated components which interact with one another in an organised fashion toward a common purpose. (NASA Systems Engineering Handbook) • System-of-interest: The system whose life cycle is under consideration. (INCOSE Systems Engineering Handbook v3.1) • End product: The portion of a system that performs the operational functions and is delivered to an acquirer. (EIA 632) • Enabling product: An item that provides the means for a) getting an end product into service, b) keeping it in service, or c) ending its service. (EIA 632)
Development Lifecycle Models “All models are wrong, some are useful” (George Box)
Define the requirements Feedback loop Design the solution Build the solution Test and fix the solution Deploy the solution Waterfall Analyse once; design, build, test and fix once; deploy once
Incremental/Iterative #1 Analyse once; design, build and test many; deploy once ‘n’ build cycles Define the requirements Perform Increment Produce the solution Deploy the solution Design, build and test the solution
Incremental/Iterative #2 Analyse once; design, build and test many; deploy many ‘n’ build cycles Define the requirements Perform Increment Produce the solution Deploy the solution Design, build and test the solution
Evolutionary Analyse many; design, build and test many; deploy many ‘n’ build cycles Define the requirements Perform Increment Produce the solution Deploy the solution Design, build and test the solution
Spiral Analyse many; build many prototypes; deploy once or many From:A Spiral Model of Software Development and Enhancement, B Boehm, IEEE 1988
Agile Analyse many, build rapidly, deploy once or many, repeat • Most agile methods share other iterative and incremental development methods' emphasis on building releasable software in short time periods. • Agile methods focus on customer satisfaction by rapid, continuous delivery of useful software. • Agile development differs from other development models as in this model time periods are measured in weeks rather than months. • A normal development cycle (or Sprint) is usually 2 – 6 weeks in duration, and at the end of each Sprint, a useful set of software functions is completed, tested and accepted.
Lifecycle Selection The overall development approach needs to be tailored to suit project drivers, constraints and risks. • Waterfall - Use when you have stable requirements and low technical risk. • Incremental - Use when you have stable requirements and moderate to high technical risk. • Iterative/evolutionary - Use when you have unstable, immature, or incomplete sets of requirements. • Spiral - Use when you want a risk driven requirements and design refinement approach prior to committing to a final design. • Agile - Use when you have short timeframes, negotiable scope, and ready access to business stakeholders and skilled technical staff. • Combination - Tailor the overall development approach as necessary to suit drivers, constraints and risks.