[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] 15.html Mon Sep 28 15:44:35 PDT 2009

Contents


    CSci 375/15 More Analysis


    Table
    Date#Topic (Participation 2pt)Study pages (2 pts)Quiz(15 pts)Project Work(10 pts)
    Previous14Design..Code363-394-W6(GRASP)
    Today15More Analysis401-413Q7(1-413)-
    Next16GRASP II413-435-W7(Model 2: use cases, domain, interactions, classes)

    (Close Table)

    Revision History


    Table
    Version#DateDescriptionAuthor
    02005-01-03Used boiler plate to make templateRJB
    12005-02-17Added outlineRJB
    22005-02-28Added sample from Q7RJB
    32005-03-02Added Questions and some answersRJB
    42006-02-16UpdatedRJB
    52006-02-27Corrected chapter numbersRJB

    (Close Table)

    Project W6 (GRASP) due in

    Iteration 2

      Skip chapter 22 unless you really want to read it. It has some good practical advice on selecting tools. It also quotes three ways to use diagrams:

      1. Informal sketch to clarify ideas
      2. Formal Blueprint defining the code
      3. A programming language

      No questions on the final or in quizzes.

      23 Iteration 2

    1. Introduction.
    2. 23.1 moving from iteration 1 to iteration 2
    3. 23.2 Focus: Object design and Patterns

      24 Analysis (again)

    4. 24.1 NextGen (note)
    5. **** Figure 24.1 has an SSD with many external actors.
    6. 24.2 Monopoly (note)
    7. **** Focus on Generalization on pages 410 and 411.

        Any sub is a special kind of super

        [Smile and Frown as special kinds of face]

        Lots of examples

      1. +++ Notice [---|>] the form of the arrow head.

      2. Notice:-
        1. Special classes have all the properties of the general classes.
        2. Special classes are more complex than the general ones.
        3. Special classes add attributes and operations to the general class.
        4. Special versions of operations override the general versions.

      3. *** When sub--|>super is useful.
      4. * Make super classes abstract (normally)
      5. ** Include super class name in subclass name
      6. ++ refactoring: create a superclass to reduce repeated code.


      (note): Look at these changes to requirements to help understand the future design decisions in the book. I will not test you on your knowledge of NextPoS or Monopoly. You may, if you wish, ask questions on this chapter.

      Exercise, if time -- THe CSUSB Inventory

      Recall or reconstruct a doamin model based on the objects in the classroom... what would you add to it if we included objects found in other rooms on campus?

      Quiz 7

      [ Q15sample.gif ]

      Project Work 7: Second complete set of models due next Tuesday.

      [ w7.html ] (This is a big piece of work start working now)

      Questions and Answers Generalization etc

      [ 15q.html ]

      Next -- More GRASP

      [ 16.html ]

      Review Questions

      [ 15r.html ]

      Standard Definitions

    8. CS202::= See http://cse.csusb.edu/dick/cs202/.
    9. CS372::= See http://cse.csusb.edu/dick/cs372/.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    End