Sunteți pe pagina 1din 14

From Inception to Elaboration

Chapter 8 Applying UML and Patterns -Craig Larman


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

Inception - Artifacts and Activities (1)

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

Inception - Artifacts and Activities ( 2 )

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

Elaboration - Key Ideas

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)

Requirements and Iterations ranking depends on.

Risk -includes technical complexity and other factors. Coverage -whether all major parts are covered or not. Criticality -functions of high business value.


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.

Inception and Elaboration

Main output is a stable software architecture, that enables quality planning of Construction and Deployment 15 to 25 percent of total project cost

You didnt Understand Elaboration When

No Timeboxed schedule Single Iteration Most requirements already defined No Risk mitigation/resolution No Executable Architecture Requirements Phase Attempt full and careful design

You didnt Understand Elaboration When (2)...

Minimal feedback and adaptation No early and realistic testing Frozen Architecture No Proof-of-concept programming No multiple requirements workshops