Assigned Work 3: An initial domain model for your project
Table| Version# | Date | Description | Author
|
|---|
| 0 | 2005-01-25 | Drafted | RJB
|
| 2 | 2005-01-31 | Improved | RJB
|
| 3 | 2007-01-10 | Corrected typos | RJB
|
(Close Table)
Given
Requirements
- Vision
- Business Case
- Use Cases
- Supplementary Specifications(if any)
- Business Rules(if any)
- Glossary
Deliverables
- Domain model with classes, associations, and some attributes.
Process
- Review Chapter 9 and previous documentation.
- Think...
- Draw rough diagrams by hand.
- Get others to review them.
- Improve rough diagrams
- Prepare a less rough one to hand in
- Bring to class and present an visual version(5 minutes).
- Submit deliverables.
Hint: KISS
Keep It Simple!
Choose diagraming tools that you like and that
produce sharable images -- gif or png for example.
Embrace Change
By the way.... drawing a domain model often improves your
understanding of the requirements so you should note
the change in your use cases etc., but
I don't need to see them -- yet.
Example from Winter 2004
[ FIS1.html ]
Standard Definitions
- CS202::= See http://cse.csusb.edu/dick/cs202/.
- CS372::= See http://cse.csusb.edu/dick/cs372/.
- DCD::diagram="Design Class Diagram", shows the classes that will be implemented in code.
- DRY::XP="Don't Repeat Yourself".
- ESSUP::Process= See http://www.ivarjacobson.com/essup.cfm,
Ivar Jacobsen simplified "Essential" UP.
- Glossary::= See http://cse.csusb.edu/dick/cs375/uml.glossary.html.
- GoF::="Gang of Four",
[ patterns.html#GoF ]
- GRASP::patterns="General Responsibility Assignment Software Patterns",
a set of guidelines for designing objects and classes. They take a single
event that the system must handle and determine a good class to carry it out.
See
[ patterns.html#GRASP -- General Responsibility Assignment Software Patterns ]
- Grades::= See http://cse.csusb.edu/dick/cs375/grading/.
- KISS::Folk_law="Keep It Simple, Stupid", in agile processes this means never
drawing a diagram or preparing a document that doesn't provide value
to the clients and stakeholders. In all processes it means never
designing or coding what is not needed, see YAGNI.
- OO::shorthand="Object-Oriented".
- OOAD::="Object-Oriented Analysis and Design", See chapter 1 in text.
- patterns::="Documented families of problems and matching solutions", see
Patterns.
- Patterns::= See http://cse.csusb.edu/dick/cs375/patterns.html.
- Process::="How to develop software".
- RJB::=The author of this document,
RJB="Richard J Botting, Comp Sci Dept, CSUSB".
- RUP::Process="Rational UP", a proprietary version of UP.
- SSD::="System Sequence Diagrams", see chapter 10.
- TBA::="To Be Announced".
- UML::="Unified Modeling Language".
[ Unified_Modeling_Language ]
- UP::="Unified Process", an iterative, risk-driven, and evolutionary way to develop OO software.
- YAGNI::XP="You Ain't Gonna Need It", an XP slogan that stops you
planning and coding for things that are not yet needed. As
a rule the future is not predictable enough to program a feature
until the stakeholders actually need it now. In this class it means
"It won't be on the final or in quizzes".
- XP::="Extreme Programming", the ultimate iterative code-centric, user-involved
process.