L8-S1 CRC Cards 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.

Slides:



Advertisements
Similar presentations
L3-S1 Practical Solutions 2003 SJSU -- CmpE Database Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
Advertisements

Fall 2002 SJSU -- CmpE Enterprise & Application Frameworks Dr. M.E. Fayad, Professor Computer Engineering Department – RM# College of Engineering San José.
L3-1-S1 OO Concepts © M.E. Fayad SJSU -- CMPE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room.
 Fayad SJSU -- CmpE Software Engineering Management Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
L3-5c-S1 Object Diagrams © M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department,
© M.E. Fayad SJSU -- CmpE Database Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San José.
L16-S1 Object Diagrams 2003 SJSU -- CmpE Software Patterns Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
L28-S1 Interaction Diagrams 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room.
May-June 2001 ISISTAN Research Institute – Tandil, Argentina Software Design Methodologies: UML in Action Dr. Mohamed Fayad, J.D. Edwards Professor Department.
© M.E. Fayad SJSU -- CmpE Database Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San José.
L19-S1 More on Class Diagrams 2003 SJSU -- CmpE Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
 Fayad SJSU – CmpE Software Engineering Management Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
L21-S1 Model-Based Arch SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
L3-5d-S1 Class Diagrams © M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room.
L03-S1 Stable Analysis Patterns 2003 SJSU -- CmpE Software Pattens Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
© M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
L26-S1 Interactions 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
© M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
L06-2-S1 Activity Diagrams 2003 SJSU -- CmpE Software Engineering II Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
© M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
P2-S1 MySQL 2003 SJSU -- CmpE-- M.E. Fayad Database Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
© M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
© M.E. Fayad SJSU -- CmpE Database Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San José.
SJSU -- CmpE © Dr. M. E. Fayad Database Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San.
L5-S1 Class Diagrams 2003 SJSU -- CmpE Software Patterns Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San.
© M.E. Fayad SJSU -- CmpE Database Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San José.
1999 – 2006 M.E. Fayad SJSU -- CmpE Software Engineering Management Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
© M.E. Fayad SJSU -- CmpE Analysis Heuristics Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San.
© M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
L18-S1 Getting Started 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
 Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San.
© M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
L04-S1 Stable Design Patterns 2003 SJSU -- CmpE Software Patterns Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
L3-6b-S1 Sequence Diagrams © M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room.
L6-1-S1Design Heuristics - 1 © M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department,
SJSU – CmpE Fall 2002 Enterprise & Application Frameworks Dr. M.E. Fayad, Professor Computer Engineering Department – RM# College of Engineering San José.
L2-S1Modeling 2003 SJSU -- CMPE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
L1-S1Introduction 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
L4-S1 Modeling Concepts 2003 SJSU -- CMPE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
L8-2-S1 Misc Topics © M.E. Fayad SJSU -- CmpE Database Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of.
Fall 2002 SJSU -- CMPE Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department – RM# College of Engineering San José.
ITEC0724 Modern Related Technology on Mobile Devices Lecture Notes #2 1.
L6-S1 MLPQ 2003 SJSU -- CmpE-- M.E. Fayad Database Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
L3-S1Analysis Heuristics 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
L1-S1 Infinite R-DB 2003 SJSU -- CmpE Database Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San.
L12-S1 Spatiotmporal DB 2003 SJSU -- CmpE Database Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
Object-Oriented Analysis & Design
Advanced Object-Oriented Analysis & Design
Database Design Dr. M.E. Fayad, Professor
Software Engineering Management
Software Patterns Dr. M.E. Fayad, Professor
Component-Based & Software Reuse
Software System Engineering
Object-Oriented Analysis & Design
Software Engineering Management
Advanced Object-Oriented Analysis & Design
Software System Engineering
Software System Engineering
Enterprise & Application Frameworks
Object-Oriented Analysis & Design
Database Design Dr. M.E. Fayad, Professor
Advanced Object-Oriented Analysis & Design
Advanced Object-Oriented Analysis & Design
Component Based & Software Reuse
Advanced Object-Oriented Analysis & Design
Database Design Dr. M.E. Fayad, Professor
Software System Engineering
Object-Oriented Analysis & Design
Presentation transcript:

L8-S1 CRC Cards 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San José State University One Washington Square San José, CA

L8-S2 CRC Cards 2003 SJSU – CmpE --- M.E. Fayad 2 Lesson 8: CRC Cards

L8-S3 CRC Cards 2003 SJSU – CmpE --- M.E. Fayad Lesson Objectives 3 Understand the existing CRC Cards Understand the problems with existing CRC Cards Understand and use my CRC Cards Learn how to create a CRC Cards

L8-S4 CRC Cards 2003 SJSU – CmpE --- M.E. Fayad CRC stands for Class, Responsibilities, Collaborations Basic Ideas –Create a card for each class –Assign responsibilities and attributes to each card –Identify collaborations between cards –Simulate design scenarios between sets of cards 4 Existing CRC Cards (1)

L8-S5 CRC Cards 2003 SJSU – CmpE --- M.E. Fayad 5 Existing CRC Cards (2) Class Name Superclasses Subclasses ResponsibilitiesCollaborators

L8-S6 CRC Cards 2003 SJSU – CmpE --- M.E. Fayad  Low Cohesion and High Coupling  Macho Class  Duplicate Functionality  No Clear Role is Defined  Difficulty in Defining Responsibilities  Hard to Map CRC Cards to Class Diagram 6 Major Problems with Existing CRC Cards

L8-S7 CRC Cards 2003 SJSU – CmpE --- M.E. Fayad 7 Proposed CRC Cards (1) Class (Role) ResponsibilityCollaboration ClientServer

L8-S8 CRC Cards 2003 SJSU – CmpE --- M.E. Fayad 9 CRC Cards (2) Class (Role) ResponsibilityCollaboration ClientServer Specify one, unique responsibility within the context that is based on the assigned role CollaboratorsServices or interfaces that are provided by the named class – no duplicates among classes 1. Define role 2. Provide one, unique responsibility 3. Identify collaborators

L8-S9 CRC Cards 2003 SJSU – CmpE --- M.E. Fayad  Reduces chances of low cohesion/high coupling by limiting responsibilities  Eliminates macho classes as the intelligence is distributed evenly  Including services addresses two problems:  verifies the validity of the class responsibility  ensures that overlapping functionality is avoided  Simplifies responsibility definition when a clear role is specified  Class Diagram constructs itself 6 The new CRC Cards address many of the stated problems

L8-S10 CRC Cards 2003 SJSU – CmpE --- M.E. Fayad Determining a role for each class is useful when defining the class responsibility Example: User- two distinct roles Analyst (modifier) Engineer (viewer) CRC Cards (3)

L8-S11 CRC Cards 2003 SJSU – CmpE --- M.E. Fayad CRC Cards (4)

L8-S12 CRC Cards 2003 SJSU – CmpE --- M.E. Fayad 11 The collaborations identified in the CRC cards can be used to connect the classes in the class diagram

L8-S13 CRC Cards 2003 SJSU – CmpE --- M.E. Fayad What are the good, bad, and ugly about CRC cards? Propose a process of how to use the CRC cards T/F –CRC stands for Common Responsible Class –CRC cards contains many responsibilities per class. –In the CRC cards, collaborators don’t have any relationship with the CRC’s named class. Define: –CRC, responsibilities, and collaborators 13 Discussion Questions

L8-S14 CRC Cards 2003 SJSU – CmpE --- M.E. Fayad Discuss how to identify objects, classes, attributes, operations, and relationships 14 Questions for the Next Lecture