Objectives
Elaboration is the initial series of iterations during which the team does the following
Serious investigation Discover & stabilize major requirements Mitigate/retire risks ( business value ) Build core architecture elements Estimate overall schedule and resources Establish a supporting environment
Short Requirements workshop Naming most actors, goals, use cases Keep use cases brief (10-20% are in fully dressed) Identify most risky & influential quality requirements First version of Supplementary Specification and vision are written
Risk list (including deadlines on demo) Technical feasibility investigation (does the requirements supported by our used technology? ) UI oriented prototypes to clarify vision Buy/build/reuse components (ex: recommendations to buy a tax calculator) High-level candidate architecture (a rough estimate of various accessories; a java front end? ) Plan for the first iteration Candidate tools list
Not a waterfall model ! Two to six weeks for each iteration Timeboxed iterations (deadlines should be strictly maintained) Each iteration products ends in a stable and tested release
Architecture Prototype/Baseline
Not a partial system Evolutionary prototype of final product Dont create throw-away prototypes Production subset of final system Also called Executable Architecture
Best Practices
Start programming early Adapt based on feedback from tests, users, developers Design, implement and test adaptively Test early and realistically Requirements and use case details through series of workshops (once per iteration)
Ranking
Rank work across iterations High ranking scenarios in early iterations (ex: process sales, logging, etc.) Rank adaptively
UP Artifacts planning
Iteration Plan:- only the next iteration is planned Change Request:- plan written in greater detailed whenever necessary Software Development Plan:- overall requirement ranking is recorded.
Artifacts starting in Elaboration (this will not be completed rather refined over iterations)
Domain Model (conceptual class diagram) Design Model (logical design: class diagram, object oriented diagram, etc.) Software Architecture Document (summary of ideas and motivations) Data Model (database schemas..) Test Model Implementation Model (source code, databases and so on. ) Use-Case Storyboards and UI Prototypes (description of user interfaces, navigations etc.
Main output is a stable software architecture, that enables quality planning of Construction and Deployment 15 to 25 percent of total project cost
No Timeboxed schedule Single Iteration Most requirements already defined No Risk mitigation/resolution No Executable Architecture Requirements Phase Attempt full and careful design
Minimal feedback and adaptation No early and realistic testing Frozen Architecture No Proof-of-concept programming No multiple requirements workshops