{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

CRCModeling - Using CRC Cards and Scenarios to Get Started...

Info icon This preview shows pages 1–8. Sign up to view the full content.

View Full Document Right Arrow Icon
Coming up: Motivation 1 Object-Oriented Analysis Using CRC Cards and Scenarios to Get Started on a Good Object-Oriented Design Slides from Jochen Rick adapted by Dan Fleck
Image of page 1

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Coming up: Good Object-Oriented Style 2 Motivation Programming classes teach What an object is How to create objects What is missing Design – finding/determining which objects should you create? Indeed given a set of requirements for an application and a development system like Smalltalk,  ‘finding the objects’ is easily the most difficult task an experienced OO developer has to face.  —Simon Lewis, The Art and Science of Smalltalk
Image of page 2
Com ing up: Design is a Process, not a Waterfall 3 Good Object-Oriented Style You can hack in any language, but how do you get reusable, maintainable code? Just using Objects doesn’t ensure a good design Many C++ programs have only have a single class That’s not good object-oriented style No process can guarantee good results A good process just makes them more likely
Image of page 3

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Com ing up: OOA vs. OOD 4 Design is a Process, not a Waterfall Design is an iterative activity Start with Object-Oriented Analysis and Design Move on to OO Programming Return to OOA/OOD when necessary When creating new functionality To solve problems with the code OO Analysis is just another perspective Good designers (in any field) shift perspective frequently to create a better design The boundary between OOA and OOD is fuzzy.
Image of page 4
Com ing up: Object-Oriented Analysis 5 OOA vs. OOD Understand the problem: In analysis, we are mostly concerned with the DOMAIN MODEL. What are the objects in the domain and how do they collaborate. I want the iPod to play music (MusicPlayer class) Understand the solution: In design, we need to integrate an APPLICATION MODEL. What objects do I need to add to get this thing to run on a computer and to be realized in some programming language? The iPod should have a play button, rewind/ffwd done with the wheel (MusicPlayer needs to interact with PlayButton and Wheel classes)
Image of page 5

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Com ing up: How things fit in CS421 6 Object-Oriented Analysis CRC Cards by Ward Cunningham Goal: Understand the Domain as Objects Object-Oriented Analysis is Language Independent Force Developers to “think” in objects Steps 1. Brainstorm Candidate Classes 2. Create Initial Class-Responsibility-Collaboration Cards 3. Come up with scenarios of use in the domain 4. Use scenarios and role playing to refine CRC Cards When do we do it? Before we begin coding (to get a good start) To add new functionality (update CRC cards and scenarios regularly)
Image of page 6
How things fit in CS421 Coming up: How things fit in CS421 7 Problem  Statement Use cases CRC Cards Class Diagram  (high level) Analysis Phase (understanding the problem) UML diagrams at any time for clarity : sequence, activity, swimlane, DFD, ERD, etc… UML diagrams at any time for clarity : sequence, activity, swimlane, DFD, ERD, etc…
Image of page 7

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Image of page 8
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern