240 likes | 574 Views
1. Object-Oriented Analysis & Design. CSE 5324 Quiz 1 due at 5 PM, Saturday, 23 August 2014. Chapter 1 Objectives. Describe textbook’s goals and scope Define object-oriented analysis and design (OOA/D) Illustrate a brief OOA/D example
E N D
1. Object-Oriented Analysis & Design CSE 5324 Quiz 1 due at 5 PM, Saturday, 23 August 2014
Chapter 1 Objectives • Describe textbook’s goals and scope • Define object-oriented analysis and design (OOA/D) • Illustrate a brief OOA/D example • Overview the Unified Modeling Language (UML) and visual agile modeling
1.1 What Will You Learn—Is It Useful? • OOA/D is the art of allocating responsibilities to classes of objects. • UML is both a uniquely expressive language and a standard diagramming notation for OOA/D. • Design patterns are existing problem solutions that may be applied quickly to new problems. • Many case studies will apply OOA/D, UML and design patterns till the student can use them.
…Useful — Continued • Requirements analysis (e.g., use cases, model-based system design) is not OOA/D, but it will be an essential part of each case study. • We will apply OOA/D in an agile (light, flexible) approach to the unified iterative development process. Figure 1.1
1.2 The Most Important Learning Goal? • The skillful assignment of responsibilities to software objects is most important. • But OOA/D, UML and iterative development clarify the robustness, maintainability and reusability of assignment alternatives. • Nine design patterns (called “GRASP”) also simplify designs and boost the designer’s productivity.
1.3 What Are Analysis and Design? • Analysis… • discovers the problem’s requirements (what) and • enumerates the responsibilities to be assigned; • e.g., use cases, functions. • Design… • chooses one of many good conceptual solutions, • which fulfills (how) all requirements, • but stops short of implementation (code and test).
R U O K ? • Is this book about OOA/D and UML? __ a. Yes, OOA and OOD are presented as de facto software development processes, and UML is their de facto method of presentation. b. No, it is about applying them to software analysis and design processes in the context of agile, iterative software development projects.
R U O K ? Match the following terms with their definitions: 2. OOA/D __ 3. UML __ 4. Design patterns __ 5. Case studies __ 6. Requirements analysis __ 7. Unified iterative development Process (UP)__ 8. Agile development __ a. The art of allocating responsibilities to classes of objects. b. A uniquely expressive language and standard diagramming notation for OOA/D. c. Existing solutions that may be applied quickly to new problems. d. Applications of OOA/D, UML and design patterns, from which students learn to use them properly. e. Use cases or model-based system designs of real-world problems, which are essential to any software development project, but are not object oriented. f. A software development process in which the phases are repeated, till their results can be traced to the process’ evolving requirements. g. A light, flexible approach to the unified iterative process.
R U O K ? 9. What is the most important learning goal of CSE 5324? __ a. Learning to skillfully assign responsibilities to software objects. b. Learning to use OOA/D, UML and iterative development in clarifying the robustness, maintainability and reusability of many assignment alternatives. c. Learning to apply 9 design patterns (called “GRASP”), which simplify designs and boost designers’ productivity. d. All of the above. e. None of the above.
R U O K ? Match the two terms below with their definitions above. 10. Discovers what the problem’s requirements are. __ 11. Enumerates responsibilities to be assigned. __ 12. For example, use cases and functions. __ 13. Chooses one of many good conceptual solutions.__ 14. Tells howall requirements are met. __ 15. Stops short of implementation (code and test). __ • Analysis • Design
1.4 What are Object-Oriented Analysis & Design? • Object-oriented analysis (OOA)… • discovers the problem’s objects (concepts); • e.g., plane, flight, pilot in an Air Traffic Controller. • Object-oriented design (OOD)… • shows how those objects should collaborate; • e.g., each instantiated plane has TAILNUMBER attribute and getFlightPlan() method (see above). Figure 1.2
1.5 Short Example: Dice Game • Use cases: roll dice; display their sum; only a “7” wins. • OOA suggests domain model (Fig. 1.3): • Player, Die, DiceGame concepts (classes). • Their relationships (associations and attributes). • OOD assigns responsibilities (Fig. 1.4): • Objects’ collaborations (real-time messages). • In a sequence diagram for every use case. • Design class diagram (Fig. 1.5): • Add method and object details to (Fig. 1.3) above. • Lowers “representational gap” to the mental model. Figure 1.3 Figure 1.4 Figure 1.5
1.6 What is UML? • The Unified Modeling Language (UML) is the de facto standard for visualizing object-oriented software. • “A picture is worth a thousand words,” especially to us nonverbal engineers. • Many UML profiles speak the graphical lang-uages of various engineers (e.g., the DoDDAF Department of Defense Architecture Framework’s Strategic View).
UML – Continued • UML can be… • agile model (sketch) to clarify obscure problems, • blueprint for reverse or forward engineering or • (state diagram driven) programming language. • UML levels (perspectives) can be… • conceptual things in the real world (Fig. 1.3), • software specifications (Fig. 1.5) or • visual aids for use in coding and testing (Fig. 1.4). • Classes too can be conceptual, specs or codey.
1.7 Visual Modeling is a Good Thing • (UML) diagrams help us grasp the big picture and significant relationships among its elements, while hiding irrelevant details. • The Evelyn Wood Reading Dynamics course trains 200wpm readers to read as fast as they can turn pages with ~85% comprehension (e.g., 6000wpm in a fine-print Bible). But human eyes can readily accept the equivalent of 100,000 wpm from a large painting. We were designed to understand pictures, not printed words.
1.8 History 1960-70: Xerox PARC’s Alan Kay invented Simula and Smalltalk O-O programming languages. 1982: USAF Academy Captain Grady Booch invented OOD. 1988: Mellor & Schlaer invented OOA. 1991: Rumbaugh invented O-O modeling. 1994: Booch & Rumbaugh combined their methods to create the “Unified Method,” UML. Today: Object Modeling Group continually evolves UML standards.
R U O K ? Match the two terms below with their definitions above. 16. Discovers the problem’s conceptual objects. __ 17. For example, an Air Traffic Controller problem’s Plane, Flight and Pilot. __ 18. Shows how objects should collaborate. __ 19. For example, each instantiated plane’s TAILNUMBER attribute and getFlightPlan() method. __ a. Object-oriented analysis (OOA). b. Object-oriented design (OOD).
R U O K ? Match the 4 terms below with their examples or definitions above. 20. Roll dice; display sum; only a “7” wins. __ 21. Player, Die, DiceGame concepts are domain model classes.__ 22. Draw relationships (associations and attributes) among classes. __ 23. Objects’ collaborations become real-time messages. __ 24. Draw a sequence diagram for every use case. __ 25. Add method and object details to the second diagram. __ 26. Lower the “representational gap” to the mental model. __ • Use case requirements. • OOA. • OOD. • UML’s design class diagram.
R U O K ? 27. What is the Unified Modeling Language? __ • The de facto standard for visualizing object-oriented software. • A welcome change from traditionally verbal software design specs for us nonverbal engineers. • Many “profiles,” in which a wide variety of diagrams speak the graphical languages of diverse engineering groups; e.g., the DoDDAF Department of Defense Architecture Framework’s Strategic View. • All of the above. • None of the above.
R U O K ? 28. Which of the following does NOT accurately characterize UML? __ • An agile model sketch to clarify obscure problems. • A blueprint to reverse- or forward- engineer a problem. • A state-diagram-driven programming language. • A conceptual description of things in the real world. • A software specification. • A visual aid for use in coding and testing. • A class that conveys a concept, spec or code.
R U O K ? 29. True or false: UML diagrams help us grasp the big picture and significant relationships among its elements, while hiding irrelevant details. __ • True. • False.
R U O K ? Arrange the following events of the past half-century in their chronological order. 30. __ 31. __ 32. __ 33. __ 34. __ 35. __ a. Xerox PARC’s Alan Kay invents the Simula and Smalltalk O-O programming languages. b. USAF Captain Grady Boochinvents OOD. c. Mellor & Schlaerinvent OOA. d. Rumbaugh invents O-O modeling. e. Booch& Rumbaughcombine their methods to create the “Unified Method,” UML. f. Object Modeling Group evolves UML standards.
Monday’s Venue Let’s meet in ERB 124 at 11 AM on Monday, August 24th. We will identify the most important 20% of the Prospector Robot Project’s requirements then. Maybe we also will get a sense of what the project’s Inception phase will be like (see your textbook’s section 4.1).