CRC Card Design A CRC Model is a collection of cards (usually standard index cards or larger) that are divided into three sections. 1. Class 2. Responsibility.

Slides:



Advertisements
Similar presentations
“What do you want me to do now?”
Advertisements

6-1 Chapter Goals Determine whether a problem is suitable for a computer solution Describe the computer problem-solving process and relate it to Polya’s.
Problem Solving and Algorithm Design
Chapter 6 Problem Solving and Algorithm Design. 6-2 Chapter Goals Determine whether a problem is suitable for a computer solution Describe the computer.
Automating Tasks With Macros
Algorithms and Problem Solving-1 Algorithms and Problem Solving Mainly based on Chapter 6: “Problem Solving and Algorithm Design” from the Book: “Computer.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Algorithms and Problem Solving
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Lecture 4 Class Responsibility Collaboration Cards
Chapter 6 Problem Solving and Algorithm Design Nell Dale John Lewis.
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
Microsoft Visual Basic 2005 CHAPTER 8 Using Procedures and Exception Handling.
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
Microsoft Visual Basic 2012 Using Procedures and Exception Handling CHAPTER SEVEN.
Developed by Reneta Barneva, SUNY Fredonia for CSIT 425 Requirements Modeling.
CS Overview of CRC CS 4311 B. Beck and W. Cunningham, A Laboratory for Teaching Object-Oriented Thinking, OOPSLA ’89, October 1-6, R. Wirfs-Brock,
Object-Oriented System Analysis and Design Chapter III- Requirement Elicitation Collecting and organizing users requirement- WHAT- User needs.
Designing Classes Chapter 3. 2 Chapter Contents Encapsulation Specifying Methods Java Interfaces Writing an Interface Implementing an Interface An Interface.
Interaction Diagrams Interaction Diagrams allow the designer to show how groups of objects collaborate in some behavior. –Interaction Diagrams will show.
AP STATISTICS Section 5.1 Designing Samples. Objective: To be able to identify and use different sampling techniques. Observational Study: individuals.
Chapter 17 – Object- Oriented Design. Chapter Goals To learn about the software life cycle To learn about the software life cycle To learn how to discover.
Chapter 10 요구사항 모델링 : 클래스 기반 방법론 Requirements Modeling: Class-Based Methods 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for.
Product V Process Planning Tool for Classes Relationship Between Layers Presentation (Use cases)Middle (Classes)Data (Entities)
SWE 4743 Responsibility Driven Design with CRC cards Richard Gesick.
How To Make Easysite Forms By Joshua Crawley Contact:
XP Chapter 1 Succeeding in Business with Microsoft Office Access 2003: A Problem-Solving Approach 1 Level 2 Objectives: Understanding and Creating Table.
PowerTeacher Gradebook PTG and PowerTeacher Pro PT Pro A Comparison The following slides will give you an overview of the changes that will occur moving.
Recruitment and Selection
An informal, team oriented, OO design system
Improving customer service
In this session, you will learn to:
Object-Orientated Programming
How Can I use a graph to solve?
Object-Oriented Analysis (OOA)
Introduction To Database IT-402
Fullerton College SLOA Workshop:
System Design Ashima Wadhwa.
Do You Want To Pass In First Attempt?
GO! with Microsoft Office 2016
Data Structures Interview / VIVA Questions and Answers
Ordered Array.
UNIT 2 – CHAPTER 2 – LESSON 7 Introduction to Data.
INTRODUCTION TO OOP Objective:
Using Procedures and Exception Handling
Chap 7. Building Java Graphical User Interfaces
Object-Oriented Analysis
Object-Oriented Design
Teaching Listening Based on Active Learning.
Section 5.1 Designing Samples
Data Analysis.
CRC: Classes, Responsibilities, and Collaborations
Chapter 4 void Functions
Chapter 10 Requirements Modeling: Class-Based Methods
Designing Experiments
Slides by Steve Armstrong LeTourneau University Longview, TX
Personalize Practice with Accelerated Math
Interaction diagrams Interaction diagrams are models that describe how groups of objects collaborate in some behavior. Typically, an interaction diagram.
Warm Up!!! Solve the following problems: 1. 4
Discovering Classes.
Sorting Chapter 8.
Algorithms and Problem Solving
Chapter 5: Producing Data
ECE 352 Digital System Fundamentals
CHAPTER 2 - Database Requirements and ER Modeling
Humble Independent School District Parent Information Guide
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Creating and Using Pointer Variables in C++ By: Ed Brunjes
Use Case Analysis – continued
Presentation transcript:

CRC Card Design A CRC Model is a collection of cards (usually standard index cards or larger) that are divided into three sections. 1. Class 2. Responsibility 3. Collaborator

Sample CRC Card This is a sample CRC Card

Class A Class represents a collection of similar objects. Objects are things of interest in the system being modeled. They can be a person, place, thing, or any other concept important to the system at hand. The Class name appears across the top of the CRC card.

Responsibility A Responsibility is anything that the class knows or does. These responsibilities are things that the class has knowledge about itself, or things the class can do with the knowledge it has. For example, a person class might have knowledge (and responsibility) for its name, address, and phone number. In another example an automobile class might have knowledge of its size, its number of doors, or it might be able to do things like stop and go. The Responsibilities of a class appear along the left side of the CRC card.

Collaborator A Collaborator is another class that is used to get information for, or perform actions for the class at hand. It often works with a particular class to complete a step (or steps) in a scenario. The Collaborators of a class appear along the right side of the CRC card.

Finding Classes A Class represents a collection of similar objects. Objects are things of interest in the system being modeled. They can be a person, place, thing, or any other concept important to the system at hand. There are many ways to identify classes. One of the easiest to start with is noun extraction. Noun extraction identifies all of the Nouns in a problem statement and/or use-case scenario. The nouns extracted make excellent candidate classes. Other ways to identify classes are to look for items that interact with the system, or things that are part of the system. Ask if there is a customer of the system, and identify what the customer interacts with. Screens and reports represent interface classes, but for the sake of a CRC session, a single GUI class can represent these. If a class can’t be named with less than three words, then it’s probably not a class but a responsibility of another class.

Finding Responsibilities A Responsibility is anything that the class knows or does. These responsibilities are things that the class has knowledge about itself, or things the class can do with the knowledge it has. To compliment the 'Noun Extraction' technique above is verb extraction. Verb extraction identifies all of the verbs in a problem statement and/or use-case scenario. These are usually good indicators of actions that must be performed by the classes of the system. Other techniques included asking what the class knows, and what information must be stored about the class to make it unique. Ask what the class does, and then flesh out how the class might do it.

Finding Collaborators Collaboration occurs when a class needs information that it doesn’t have. Classes know specific things about themselves. Very often to perform a task a class needs information that it doesn't have. Often it's necessary to get this information from another class, in the form of collaboration. Collaboration can also occur if a class needs to modify information that it doesn’t have. One property of information that a class knows about itself is the ability to update the information. Often a class will want to update information that it doesn't have. When this happens, the class will often ask another class, in the form of a collaboration, to update the information for it. Generally for a collaboration to occur, one class is the initiator. In other words, there has to be a starting point for collaboration. Often times the initiating class is doing very little work beyond initialing the collaboration itself. However, be careful that a class doesn't just 'pass the buck', just to have it passed again. For example, if class A collaborates with class B, just to have class B pass the work to class C, consider eliminating the collaboration with class B.