Methods Models Madness l Long history of objectoriented
Methods, Models, Madness l Long history of object-oriented methods and models ä defacto standard modeling exists today: UML ä Unified Modeling Language (from Rational via others) ä ä l “three amigos”: Booch, Rumbaugh, Jacobsen emerging standard via OMG: object modeling group notational tool, as distinct from method/process Methods: Booch, Objectory, Fusion, [DOOM!] Learning OO ä programming, design, analysis (OOP, OOD, OOA) ä from UML Distilled “now that the methods war is over, I think that patterns will be where most of the interesting material about analysis and design will appear. ” http: //www. enteract. com/~bradapp/links/oo-links. html Duke CPS 108 21. 1
Basics of modeling l l l Modeling: coherent approach to designing a system Different techniques make up a system ä class diagrams: static notation ä CRC cards: classes, responsibilities, collaboration ä interaction, sequence diagrams ä state transistion diagrams ä use cases Syntax and semantics of models ä syntax is notational, can be formal or informal ä semantics depends on rigor, can be formally defind ä formal should mean “based on logic/mathematics” Duke CPS 108 21. 2
CRC card (see SCOOTER assignment) l l 3 x 5 index card ä developed after brainstorming about classes ä can be moved around, tacked to walls (portable and useful) ä facilitates group interaction/discussion ä both in analysis and design Class ä name, sub and super Responsibility ä scenarios, walkthroughs Collaboration ä other classes: Responsibilities Duke CPS 108 Robot move load unload Rocket Factory Box Rocket Process bot Factory Make box process bot Robot Box 21. 3
A simple process (based on Booch) l l Time frames for one-year project: ä conceptualization: 1 month ä analysis: 1 -2 months ä design: 1 month, 2 max ä evolution: 9 months Conceptualization: ä l Analysis: Model desired behavior Design: Create an architecture what, not how; all requirements Evolution/ Implementation Design ä ä l vision, priorities, prototypes Conceptualization, core requirements. logical/physical architecture plan releases Evolution ä Maintentance: post delivery sequence of releases, iterative Duke CPS 108 21. 4
Micro (compare previous Macro) process [Booch] Identify classes and objects specify interfaces implementations Used during design phase in specifying architecture l classes and objects, can include CRC cards for example l semantics include use-cases, class invariants, documentation l relationships include “is-a”, “hasa”, “uses-a”, class diagrams updated l types, signatures, algorithms for interfaces, implementations identify semantics identify class and object relationships Duke CPS 108 l 21. 5
Programming and Development l In the real world you have to deal with people ä people are not programmers/ programmers are not people ä programs are developed for users ä abstract factories are great, when I click this button I want something to happen l Development ä lessons from Scoobi, what’s important in developing a teamconstructed software product ä what can we do with Scooter, Harpoon? ä what has been good, what has been bad ä future for OO programming, Java, C++, . . . , CPS 108 Duke CPS 108 21. 6
- Slides: 6