[Skip Navigation] [ CSUSB ] / [CNS] / [Comp Sci & Engineering] / [R J Botting] / [CS375] [Search ]
[About] [Contact] [Grades] [Objectives] [Patterns] [Projects] [Question] [Schedule] [Syllabus]
Session: [01] [02] [03] [04] [05] [06] [07] [08] [09] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]
[Text Version] w3.html Mon Sep 28 15:48:37 PDT 2009

Contents


    Assigned Work 3: An initial domain model for your project


    Table
    Version#DateDescriptionAuthor
    02005-01-25DraftedRJB
    22005-01-31ImprovedRJB
    32007-01-10Corrected typosRJB

    (Close Table)

    Given

    Requirements
    1. Vision
    2. Business Case
    3. Use Cases
    4. Supplementary Specifications(if any)
    5. Business Rules(if any)
    6. Glossary

    Deliverables


    1. Domain model with classes, associations, and some attributes.

    Process


    1. Review Chapter 9 and previous documentation.
    2. Think...
    3. Draw rough diagrams by hand.
    4. Get others to review them.
    5. Improve rough diagrams
    6. Prepare a less rough one to hand in
    7. Bring to class and present an visual version(5 minutes).
    8. 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

  1. CS202::= See http://cse.csusb.edu/dick/cs202/.
  2. CS372::= See http://cse.csusb.edu/dick/cs372/.

  3. DCD::diagram="Design Class Diagram", shows the classes that will be implemented in code.
  4. DRY::XP="Don't Repeat Yourself".

  5. ESSUP::Process= See http://www.ivarjacobson.com/essup.cfm, Ivar Jacobsen simplified "Essential" UP.

  6. Glossary::= See http://cse.csusb.edu/dick/cs375/uml.glossary.html.
  7. GoF::="Gang of Four", [ patterns.html#GoF ]
  8. 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 ]
  9. Grades::= See http://cse.csusb.edu/dick/cs375/grading/.

  10. 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.

  11. OO::shorthand="Object-Oriented".

  12. OOAD::="Object-Oriented Analysis and Design", See chapter 1 in text.
  13. patterns::="Documented families of problems and matching solutions", see Patterns.
  14. Patterns::= See http://cse.csusb.edu/dick/cs375/patterns.html.

  15. Process::="How to develop software".

  16. RJB::=The author of this document, RJB="Richard J Botting, Comp Sci Dept, CSUSB".
  17. RUP::Process="Rational UP", a proprietary version of UP.

  18. SSD::="System Sequence Diagrams", see chapter 10.

  19. TBA::="To Be Announced".

  20. UML::="Unified Modeling Language". [ Unified_Modeling_Language ]

  21. UP::="Unified Process", an iterative, risk-driven, and evolutionary way to develop OO software.

  22. 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".

  23. XP::="Extreme Programming", the ultimate iterative code-centric, user-involved process.

End