CSSE 374 Introduction to Object Oriented Analysis and
CSSE 374: Introduction to Object. Oriented Analysis and Design Steve Chenoweth Office: Moench Room F 220 Phone: (812) 877 -8974 Email: chenowet@rose-hulman. edu Chandan Rupakheti Office: Moench Room F 203 Phone: (812) 877 -8390 Email: rupakhet@rose-hulman. edu These slides and others derived from Shawn Bohner, Curt Clifton, Alex Lo, and others involved in delivering 374. Q 1
Learning Outcomes: O-O Design Demonstrate object-oriented design basics like domain models, class diagrams, and interaction (sequence and communication) diagrams. n n Understand OOA to OOD http: //enterprisegeeks. com/blog/2009/07/ transition Examine elaboration & refinement in design Walkthrough OOD example Explain model structure for UML
As we discussed yesterday, design organizes things for implementation. So, what makes software design different than other engineering disciplines? n n Again, think for 15 seconds… Turn to a neighbor and discuss it for a minute
Why is Software Design Important? n Size n Complexity n Constraints n Performance n Communication Needs, Features, & Requirements Software System Q 2
Thinking at the Right Level n Abstraction - hiding irrelevant details to focus attention at right level n Process of component identification is top-down, decomposing the system into successively smaller, less complex components n Process of integration, which is bottom-up, building (composing) the target system by combining components in useful ways © 2000 -2002 Mc. Quain WD & Keller BJ Q 3
Elaboration and Refinement… n n Starting with Abstract Requirements Successively Elaborate and Refine them into specifications, models, and ultimately implementation
Key Questions for Res pon Object-Oriented Design Drive sibil ityn. D esig n 1. 2. 3. 4. What classes do we get from the application domain? How should responsibilities be allocated to classes? What classes should do what? How should objects collaborate? Guided by design patterns Q 4
Topics Covered in Book http: //www. craiglarman. com/wiki/images/4/43/Craig_larman_head. JPG Q 5
Assigning responsibilities to software objects is a critical ability in Object. Oriented development. Why? n n Again, think for 15 seconds… Turn to a neighbor and discuss it for a minute Q 6
Analysis versus Design n Analysis Classes/Objects ¨ Investigation of the problem and requirements, rather than a solution ¨ Do the right thing… Patterns n O-O Design Operations /Methods Design ¨A conceptual solution, rather than its implementation n Data/Attributes Excludes low level details ¨ Do the thing right… Q 7
Analysis and Design Concepts Analysis Concept Design Concept
Unified Modeling Language (UML) Grady Booch Ivar Jacobson Jim Rumbaugh
Let’s do a Quick Example: Dice n Define Use Cases ¨ Play a dice game: Players requests to roll the dice. System presents results: If the dice face value totals seven, player wins; otherwise player loses n Define a Domain Model n Assign Object Responsibilities, Draw Interaction Diagrams n Define Design Class Diagrams
Domain Model for a Dice Game
Sequence Diagram for Play Dice Game
Design Class Diagram for Dice Game How does it differ from the domain model? Q 8
Three Perspectives to Apply UML n Conceptual perspective (Sketch) n Software specification perspective (Blueprint) n Software implementation perspective (Executable programming language) Q 9
Abstract Requirements to Concrete Systems Concrete Implementation Classes (Language) Software Classes (Design Class Diagrams) Analysis/ Conceptual Classes (Domain Model) Abstract Requirements Platform Independent Model Computational Independent Model Platform Specific Model
The Case Studies n Next. Gen Point of Sale (POS) System n Monopoly Game n The case study is organized in three iterations ¨ Each iteration conducts analysis and design on the features for that current software release
Reading, Homework, Project, … n See the course schedule!
- Slides: 20