From Inception to Elaboration

advertisement
FROM INCEPTION TO
ELABORATION
Use Cases, Domain Models & SSDs
Oh My!
The End of Inception

After the customer has so kindly taken your soul and
has given you a contract for getting it back, what
do you do?
 You

have the features, how do you implement them?
Options:
 Panic,
start coding!
 Design to death, the customer demands it!
 Take the middle road and see what’s feasible.
Let’s Take the Middle Road, Shall We?


To do so, the easiest way is to start by writing out
Use Cases.
Use Cases are descriptions of how some external
agent accesses your black box system.
 i.e.
What messages are passed between the user and
the system? How can the user control the system?
Initial Level of Detail

How detailed should these initial Use Cases be?
 We’re
going to want a high level overview of what Use
Cases we’ll probably need.
 Some of these use cases (usually 10%) will be critical to
the system.
 We
should “fully dress,” or painstakingly elaborate these
use cases.
What is a Fully Dressed Use Case?
A fully dressed use case answers the questions in this template.
Use Case Number: Use Case Name (Starts with a Verb)













Scope: The System Under Design
Level: Either a “User Goal” or a “Subfunction” that assist the user goal
Primary Actor: The user that initiates the system
Stakeholders and Interests: Who cares about this use case?
Precondition: What’s assumed, what do we tell the user?
Successful Completion: What’s defines success, and what do we tell the user?
Main Success Scenario: The normal successful path
Different colors for different users (primary actor vs. system)
Extensions: Alternate routes to success or failure
Special Requirements: Related non-functional requirements
Technology and Data Variations: Data structures used?
Frequency of Occurrence:
Miscellaneous:
By the End of Inception…

We need to have around 10% of our most
important use cases fully dressed so that we can
start the first iteration with project critical use cases.
Now We’re Ready for Elaboration

Elaboration is the phase where we fully solidify
what the requirements are (with the added benefit
that the major components of the system get built
too)
Before the First Iteration

Choose a Use Case from each category:
 High
Business Value
 High Risk
 Core Architecture

Set a deadline for the iteration:
 Estimate
the difficulty of implementing said use cases
 Have each team member put down the hours they can
work for the next couple of weeks
 Determine a feasible deadline
During the Iteration

During Elaboration, we will work on the following
project “Artifacts” in the following order:
 Use
Cases
 Domain Model
 System Sequence Diagrams
 Operational Contracts
 Logical Architecture
 Domain Layer
 UML Classes
 Code
After the Iteration


The Iteration ends when the deadline has elapsed.
After the iteration:
 We
want to evaluate the effectiveness of the use cases
and possibly “rescope” them if we couldn’t complete
them fully or they were too broad in nature
 We also want to have a working demo of our software
that demonstrates the new features
A
la the use cases
After the Iteration


We will then get with the customer and demonstrate
our product, receiving valuable feedback from the
business side of the project.
Then we will want to re-evaluate the use cases we
have yet to do, re-evaluate our current system, and
go through another iteration.
Conclusion


You should now know what an iteration in the
Elaboration phase of the project lifecycle consists of.
Terms to know:
 Use
Cases: Fully Dressed, Primary Actor, Happy
Scenario
 Iteration Process: Use Cases, Domain Model, System
Sequence Diagrams, Operational Contracts, Logical
Architecture, Domain Layer, UML Classes, Code
Download