Software Engineering 3 rd Bachelor Informatics Ahmed Lamkanfi October 15, 2009.

Slides:



Advertisements
Similar presentations
ACM/JETT Workshop - August 4-5, :Design of Classes using CRC cards.
Advertisements

Binder Object-Oriented Testing Metrics. Lack of Cohesion in Methods b b In order to calculate the lack of Cohesion in methods, the Software Engineer must.
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.
Unit 251 Summary  Requirements may be represented in itemized format or in visual modeling (UML). Once the complete set of requirements are in our hand,
Ch 12: Object-Oriented Analysis
1 Classes. 2 Finding classes w Choosing classes is first step in defining essence of problem w If you can recognize an abstraction, you’ve found a candidate.
Lecture 9 Object-Oriented Analysis
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.
Slide 1 Systems Analysis & Design CS183 Spring Semester 2008 Dr. Jonathan Y. Clark Course Website:
Algorithms and Problem Solving
Slide 1 Chapter 7 Structural Modeling. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
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
Object Oriented Analysis Process
Chapter 6 Problem Solving and Algorithm Design Nell Dale John Lewis.
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
© M.E. Fayad SJSU -- CmpE Software System Engineering Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering.
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
The chapter will address the following questions:
CMPT 275 Software Engineering
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
From Problem Statement to Design
Introduction to Role Playing as an Instructional Method
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Analysis Modeling.
Big Java Chapter 12. Software Process - Waterfall Analysis Design Implementation Testing Deployment Does not work well when rigidly applied! established.
1 Responsibility Driven Design Responsibility Driven Design, Rebecca Wirfs Brock, 1990 The Coffee Machine Design Problem, Alistair Cockburn, C/C++ User's.
1 Object-Oriented Analysis Use Case Driven. 2 The outline method for OOA 1.Identify object classes within the problem domain 2.Define the behaviour of.
Structural Modeling Chapter 7
Slide 1 Structural Modeling Chapter 7. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
Understanding Objects and Classes
Developed by Reneta Barneva, SUNY Fredonia for CSIT 425 Requirements Modeling.
1 Responsibility Driven Design Responsibility Driven Design, Rebecca Wirfs Brock, 1990 The Coffee Machine Design Problem, Alistair Cockburn, C/C++ User's.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 8: Analysis Modeling Software Engineering: A Practitioner’s Approach, 6/e Chapter.
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,
1 Class Diagrams: The Essentials. 2 Terms and Concepts A class is... The most important building block of any object-oriented system. A description of.
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
Lecture OO05 Object Scenarios Object Interaction Diagrams
1 System Analysis and Design Using UML INSTRUCTOR: Jesmin Akhter Lecturer, IIT, JU.
Structural Modeling Chapter 7. Key Ideas A structural or conceptual model describes the structure of the data that supports the business processes in.
1 Structural Modeling Chapter 7. 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business processes.
Interaction Diagrams Interaction Diagrams allow the designer to show how groups of objects collaborate in some behavior. –Interaction Diagrams will show.
CSC480 Class Design Pepper. Goals How to design classes StarUML Code Generation.
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.
Software Engineering Zhang Shuang
Slide 1 Classes and Objects. Slide 2 Messages and Methods.
1 Introduction to Classes. 2 Terms and Concepts A class is... –The most important building block of any object- oriented system. –A description of a set.
Chapter 24 객체지향 응용프로그램 테스팅 Testing Object-Oriented Applications 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for the book.
SWE 4743 Responsibility Driven Design with CRC cards Richard Gesick.
OO DomainModeling With UML Class Diagrams and CRC Cards Chapter 6 Princess Nourah bint Abdulrahman University College of Computer and Information Sciences.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
Identification of Classes. Object Oriented Analysis (OOA) OOA is process by which we identify classes that play role in achieving system goals & requirements.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
CRC Cards: Construction Emerson Murphy-Hill Creative Commons Attribution 4.0 License. Material Produced by NCSU Software Engineering Faculty.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
An informal, team oriented, OO design system
Advanced Object-Oriented Analysis & Design
OO Domain Modeling With UML Class Diagrams and CRC Cards
OO Domain Modeling With UML Class Diagrams and CRC Cards
Object-Oriented Analysis
Object-Oriented Design
CRC Modeling (class-relationship-collaborator)
INFS 6225 Object Oriented Systems Analysis & Design
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.
Algorithms and Problem Solving
Presentation transcript:

Software Engineering 3 rd Bachelor Informatics Ahmed Lamkanfi October 15, 2009

1 Objective Get initial system design from specification  Use Cases as requirements specification  CRC Cards to create and validate design Role playing exercise

2 Example system E-Finance case:  Basic banking services: current and savings accounts  Private investments: buying and selling stocks Specified using Use Cases

3 Use Case model

4 Agenda Team building: ~5 persons per team Extract candidate classes from specification Role-playing scenarios  Select Use Cases  While playing the scenario: Extract responsibilities and collaborations Build hierarchies  Assess the simulation, revise CRC cards  Repeat until all scenarios go smoothly

5 A CRC card

6 Classes Look for noun phrases  Derive candidate classes Distinguish:  Core, irrelevant and undecided classes  Attribute or class?  Aliases?

7 Responsibilities Look for verb phrases Responsibilities = what instead of how  What a class must know about itself  What a class must be able to do Beware of:  God classes: doing most of the work  Mere data containers: doing practically nothing

8 Collaborations Responsibilities the class does not fulfill independently Clues for collaborations  Client-server  Dependencies Forcefully break up complex classes  Move responsibilities to collaborators

9 Hierarchy Building Look for “kind-of” relationships  Distinguish from “part-of” relationships! Extract common behavior Insert abstract classes if necessary Fill out subclass/superclass fields on cards

10 Role playing The core of CRC cards:  Interactive review of the design Fosters shared meaning, common understanding Enacted system simulation  Reading aloud, acting out  Involves everybody in the team  Experimental, playful technique

11 Questions for the review Are classes called frequently by same class?  Is the responsibility in the right place?  Are they really separate classes? Does every class have all necessary information to carry out its responsibilities? Do classes have responsibilities that never come into play? Have necessary classes been left out?

12 Use Case sets Basic banking services Open a current account Withdraw from a current account Deposit on an account Transfer between two accounts Process a deposit Process a withdrawal Process a transfer Process a charge Investment services Transfer between two accounts Open a custody account Place a direct order for a stock Place a limited order for a stock Execute put option Execute call option