CRCModeling

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

Info iconThis 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
Background image of page 1

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

View Full DocumentRight 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
Background image of page 2
C om ing up: Design is a Process, 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
Background image of page 3

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

View Full DocumentRight Arrow Icon
C om 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.
Background image of page 4
C om 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)
Background image of page 5

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

View Full DocumentRight Arrow Icon
C om ing up: How things fit in C S421 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)
Background 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…
Background image of page 7

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

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

Page1 / 38

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

This preview shows document pages 1 - 8. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online