CRC Modeling (class-relationship-collaborator)

Slides:



Advertisements
Similar presentations
Analysis Modeling.
Advertisements

Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
CS3773 Software Engineering Lecture 03 UML Use Cases.
1 SWE Introduction to Software Engineering Lecture 16 – System Modeling An Example.
© 2005 Prentice Hall8-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Chapter 8 Analysis Modeling
CRC Card By: Yusmadi Yah Jusoh. What is CRC card?  A Class Responsibility Collaborator (CRC) model (Beck & Cunningham 1989; Wilkinson 1995; Ambler 1995)
Chapter 21 Object-Oriented Analysis
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
7. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Detailed Object-Oriented Requirements Definitions  System Processes—A Use.
Sharif University of Technology1 Design and Use-case Realization Software Engineering Laboratory Fall 2006.
6. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain how events can be used to identify use cases that define requirements.
Object-Oriented Analysis
The chapter will address the following questions:
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
CS 4850/01: CS Senior Project Fall 2014 Overview of Software Requirements and OO Analysis.
Developed by Reneta Barneva, SUNY Fredonia for CSIT 425 Requirements Modeling.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 8: Analysis Modeling Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Object Oriented Analysis
1 A Student Guide to Object- Oriented Development Chapter 6 Identifying Functionality.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
CS 4850: Senior Project – Spring 2009 CS 4850: Senior Project Spring 2009 Overview of Software Requirements and OO Analysis.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Engineering Software Engineering - Mr. Ahmad Al-Ghoul.
 Week08.  Review Schedule Weeks 8-14  This week o Review last class o Introduce Class Diagrams o ICE-03 Sheridan SYST Engineering Quality Systems.
Lecture 18: Object-Oriented Design
Chapter 10 요구사항 모델링 : 클래스 기반 방법론 Requirements Modeling: Class-Based Methods 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for.
Slide 1 Classes and Objects. Slide 2 Messages and Methods.
Chapter 24 객체지향 응용프로그램 테스팅 Testing Object-Oriented Applications 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for the book.
UML (Unified Modeling Language)
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
1 8.1 Requirements Analysis Rules of Thumb Rules of Thumb Models should focus on requirements that are visible within the problem or business domain. The.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
CS 4500: Software Development Mondays and Wednesdays 2:50-4: Snell Engineering Center.
5 Systems Analysis and Design in a Changing World, Fourth Edition.
CompSci 280 S Introduction to Software Development
Chapter 8 Analysis Engineering
Cmpe 589 Spring 2006.
Object-oriented and Structured System Models
DATA REQIREMENT ANALYSIS
ATM OO Design and Implementation Case Study
Chapter 5: Structural Modeling
Object-Oriented Analysis and Design
Systems Analysis and Design With UML 2
Use case diagrams A use case diagram is UML’s notation for showing the relationships among a set of use cases and actors A use case diagram can help the.
Dynamic Modeling of Banking System Case Study - II
1.Introduction to Rational Unified Process (RUP)
Software Requirements analysis & specifications
CIS 339 Competitive Success/snaptutorial.com
CIS 339 Education for Service/snaptutorial.com
Introduction to UML Introduction to UML Shiyuan Jin September,23,2002
Object-Oriented Analysis
Chapter 24 Testing Object-Oriented Applications
Overview of Software Requirements
Introduction To System Analysis and Design PART 2
Object-Oriented Design
Chapter 10 Requirements Modeling: Class-Based Methods
Use Cases & Use Case Diagrams
CIS 375 Bruce R. Maxim UM-Dearborn
Chapter 19 Testing Object-Oriented Applications
Software Design Lecture : 15.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 8 Analysis Modeling copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Chapter 19 Testing Object-Oriented Applications
Chapter 22 Object-Oriented Systems Analysis and Design and UML
CIS 375 Bruce R. Maxim UM-Dearborn
Software Architecture Taxonomy
On to Object Design c. 14.
Presentation transcript:

CRC Modeling (class-relationship-collaborator) CIS 375 Bruce R. Maxim UM-Dearborn 11/30/2018

OOA Tasks Basic user requirements must be communicated between the customer and the software engineer. Use CRC cards to find classes, responsibilities, and collaborators. Use UML (unified modeling language) diagrams to record class relationships. Document classes and member functions. Model object behavior Reapply 1 through 5 iteratively until model is complete 11/30/2018

OOA Generic Steps Elicit customer requirements for system Identify scenarios or use cases Select classes and objects using basic requirements as a guide Identify attributes and operations for each system object Define structures and hierarchies that organize classes Build object-relationship model Build object-behavior model Review OOA model against use-cases (scenarios) 11/30/2018

Use Case Objectives Define the functional and operational requirements of system by defining a scenario of usage agreed upon by the end-user and software engineer Provide an unambiguous description of how the end-user and system interact with one another Provide a basis for validation testing 11/30/2018

Class-Responsibility-Collaborator (CRC) Modeling Develop a set of index cards that represent the system classes One class per card Cards are divided into three sections class name class responsibilities class collaborators Once a complete CRC card set is developed it is reviewed examining the usage scenarios 11/30/2018

CRC Card 11/30/2018

Creating a CRC Model Find 3 to 5 main classes and give them meaningful names Find responsibilities (what a class does and what information does it retain) Define collaborators (classes that may need to be defined to respond with requests for information or requests to perform tasks) Move the cards around on the table and see how they fit together 11/30/2018

Criteria CRC Class Inclusion Class information (data) should be retained Class Provides needed services Contains multiple attributes Common set of attributes apply to all object instances Common set of operations apply to all object instances External entities that produce or consume information 11/30/2018

Criteria for Defining Collaborators Any time a class cannot fulfill a responsibility on its own it needs to interact with another class A server object interacts with a client object to fulfill some responsibility 11/30/2018

Reviewing CRC Models - 1 Each review participant is given a subset of the CRC cards (collaborating cards must be separated) All use-case scenarios and use-case diagrams should be organized into categories Review leader chooses a use-case scenario and begins reading it out loud Each time a named object is read a token is passed to the reviewer holding the object's card 11/30/2018

Reviewing CRC Models - 2 When the reviewer receives the token, he or she is asked to describe the responsibilities listed on the card The group determines whether one of the responsibilities on the card satisfy the use-case requirement or not If the responsibilities and collaborations on the index card cannot accommodate the use-case requirements then modifications need to be made to the card set 11/30/2018

CRC Model for ATM System Form a group of 4 and look over the ATM user stories Create a set of CRC cards for the ATM system Determine the primary responsibilities for each card (both function and information) Determine the set of collaborations needed to allow each class fulfill its responsibilities 11/30/2018

Deriving Object-Relationship Model Was it easy to model a network of collaborators once the CRC cards are created? Would it have been better for you to create your own use case before reviewing the CRC card model? Did you make it to the end of your use case? How many new classes did you need to define? Did you need to move responsibilities? Do you believe we could continue the process until a complete object-relationship model has been produced? 11/30/2018

Allocating Responsibilities to Classes (Refactoring) Distribute system intelligence evenly State each responsibility as generally as possible Information and its related behaviors should reside within the same class Localize all information about one entity in a single class Share responsibilities among related classes when appropriate 11/30/2018