OOAD Adapted from Object Oriented Analysis and Design Methodology A Tech Talk by Ed Sullivan.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Advertisements

Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
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.
Introduction To System Analysis and Design
Objects First With Java A Practical Introduction Using BlueJ Designing object-oriented programs How to write code in a way that is easily understandable,
Slide 6B.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Slide 1 Systems Analysis & Design CS183 Spring Semester 2008 Dr. Jonathan Y. Clark Course Website:
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.
Lecture 4 Class Responsibility Collaboration Cards
Basic OOP Concepts and Terms
1 Objectives To introduces the concept of software Design. To introduce the concept of Object- Oriented Design (OOD). To Define various aspects about object.
Object Oriented Analysis Process
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
Slide 7B.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
NJIT 1 Domain Model Visualizing Concepts Chapter 9 Applying UML and Patterns Craig Larman.
Systems Analysis & Design Sixth Edition Systems Analysis & Design Sixth Edition Toolkit Part 5.
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
חוזים – Contracts 1. Larman – Chapter 10 – SSDs 10.2 What are System Sequence Diagrams? (introduction) Use cases describe how external actors interact.
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
Chapter 7: The Object-Oriented Approach to Requirements
Introduction To System Analysis and design
OBJECT-ORIENTED ANALYSIS PHASE
Slide 12.1 © The McGraw-Hill Companies, CS 4310: Software Engineering Lecture 7 Systems Analysis Object-Oriented Design.
From Problem Statement to Design
Introduction to Objects Adapted from “TEN STEPS TO OBJECT-SPEAK” a CPT Tech Talk by Joy Starks September 17, 1999.
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Introduction To System Analysis and Design
An Introduction to Java Chapter 11 Object-Oriented Application Development: Part I.
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
Dynamic Modeling Chapter 11 Part of Analysis Modeling Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
1 Analysis Extracting from Use Cases to Create Diagrams.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
Structural Modeling Chapter 7
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Structural Modeling. Objectives O Understand the rules and style guidelines for creating CRC cards, class diagrams, and object diagrams. O Understand.
Systems Analysis & Design 7 th Edition Chapter 5.
Systems Analysis and Design 8 th Edition Chapter 6 Object Modeling.
2 Object-Oriented Analysis and Design and the Unified Process Objectives  Explain the purpose and objectives of object- oriented design  Develop design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Slide 1 Systems Analysis and Design with UML Version 2.0, Second Edition Alan Dennis, Barbara Haley Wixom, and David Tegarden Chapter 7: Structural Modeling.
1 A Student Guide to Object- Oriented Development Chapter 6 Identifying Functionality.
Lecture 6: Structural Modeling
Basic OOP Concepts and Terms. In this class, we will cover: Objects and examples of different object types Classes and how they relate to objects Object.
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
Chapter 1 Applying UML and Patterns. The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary.
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.
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
Michael Schloh von Bennewitz 1. Oktober 2002 The Unified Modeling Language Overview of theory and practice of the OMG Unified Modeling.
Requirements Management with Use Cases Module 10: Requirements Across the Product Lifecycle Requirements Management with Use Cases Module 10: Requirements.
7. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Detailed Object-Oriented Requirements Definitions  System Processes—A Use.
CMSC 345 Fall 2000 OO Design. Characteristics of OOD Objects are abstractions of real-world or system entities and manage themselves Objects are independent.
UML - Development Process 1 Software Development Process Using UML.
McGraw-Hill/Irwin© 2008 The McGraw-Hill Companies, All Rights Reserved Chapter 17 Object-Oriented Design and Modeling Using the UML.
OO DomainModeling With UML Class Diagrams and CRC Cards Chapter 6 Princess Nourah bint Abdulrahman University College of Computer and Information Sciences.
Slide 1 Systems Analysis and Design with UML Version 2.0, Second Edition Alan Dennis, Barbara Haley Wixom, and David Tegarden Chapter 7: Structural Modeling.
Chapter 7 Part II Structuring System Process Requirements MIS 215 System Analysis and Design.
Identification of Classes. Object Oriented Analysis (OOA) OOA is process by which we identify classes that play role in achieving system goals & requirements.
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
Object Oriented Analysis & Design By Rashid Mahmood.
Requirements capture: Using UML Use Cases David Millard and Yvonne Howard {dem,
1 Design Object Oriented Solutions Object Oriented Analysis & Design Lecturer: Mr. Mohammed Elhajj
Elaboration popo.
OO Domain Modeling With UML Class Diagrams and CRC Cards
University of Houston-Clear Lake
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Basic OOP Concepts and Terms
Presentation transcript:

OOAD Adapted from Object Oriented Analysis and Design Methodology A Tech Talk by Ed Sullivan

Today’s Discussion n Background – Why OO is hot n OO Methodology – Java Factory Approach n Hands on application of CRC Methodology

Object Oriented Headlines “Object-Oriented Technology Ventures Into the Real World” “IBM unveils new object-oriented middleware” “Expo to serve up object-oriented products” “Object-Oriented is Here to Stay”

Motivation For OOAD Traditional Methodologies are broken because… n They haven’t solved problems of quality and timeliness. n They separates data from procedures making software reusability more difficult. n They don’t work well in our non-linear world.

Linear vs. Non-linear LinearNon-Linear Step 1 Step 2 Step 3 Page 1 Page 2 Page 3 Page 4

OOAD Vs. Traditional Approach n Process is less rigorous –Analysis Paralysis n Process is more fluid –Waterfall vs. Onion n No definitive stopping point –How many iterations? n More Trial and Error… “I failed my way to success.” Thomas Edison

OOAD Methodology Roots n Unified Modeling Language(UML) –Use Cases –Class Diagrams n Sun Microsystems Java factory –CRC Methodology n Class n Responsibility n Collaboration

Defining the Process n Determine the Requirements n Identify the Classes and Objects n Describe the Object Collaborations and the classes n Sketch the User Interface

Diagram of OOAD Class Diagram Determine Requirements Identify Classes & Objects Describe Collaboration Sketch Interface SummaryCRC Cards Colloboration Diagrams Interface Sketch

Determining Requirements n Summary Paragraph –Define general approach to solving problem –Emphasize the what and not the how –Describe all major functions(operations/methods) –Define boundaries

Sample Problem Summary

Identifying Classes and Objects n CRC Card Preparation –Class(data attributes) –Responsibility(Message response) –Collaboration(Class interaction)

Class Definition n Classes are the templates or blueprints for objects n Classes define the attributes and behavior(methods) for objects n Objects contain the data and the methods n Objects are the nouns of the Object Oriented world

So how do you define Classes?? 1) Read Problem Summary statement for nouns and noun phrases which may be physical objects, concepts, categories of objects or attributes of other objects. Create a list of all of these items. 2) Review list for Class candidates. Transfer classes to CRC card.

Sample Problem Summary

Noun Phrases n Renter Application n Bugs n Inventory n User n Message

Transitioning Nouns to Classes n Not always easy n Iterative n Experience n Steps… –Logical Groupings and Leveling –Identify Implied Classes –Eliminate noise(primitives, attributes, messages) “Design Decisions have no obvious right and wrong answers.”

Noun Phrases Class Steps n Renter Application n Bugs n Inventory n User n Message n Logical Groupings/Leveling n Implied Classes n Noise elimination

So what are the Classes of the Bug Rental Application?? n Renter n Lender n Inventory

CRC Card - Front Class: Renter Responsibilities:Collaborations: (Front of Card)

Defining Responsibilities n Use Problem Statement to identify verbs n Logical group and organize action items n Match Method to Class n Adjust for any omissions

Method Verbs Identification Method Verbs Identification n Track Inventory n Rent Bug n Decrease Inventory n Return Bug n Increase Inventory n Display Message n Logical Grouping n Leveling n Match Method to Class

Bug Rental Methods n Renter –Rent Bug –Return Bug –Display Message n Lender –Rent Bug –Return Bug –Supply Message

Describing Collaboration n Develop Use-case scenarios –Sequence of related events n Walk Through Use-cases –Identify message exchanges –Identify missed Classes

Identify Use-Case Scenarios n Customer Rents a Bug 1) Customer enters request for bug 2) Lender checks inventory for bug availability 3) If inventory is greater than zero Inventory is decreased by one Inventory is decreased by one Bug is made available to Customer Bug is made available to Customer Message is sent to Customer from Lender Message is sent to Customer from Lender 4) If inventory is zero, error message is sent to customer from Lender

Now it’s your turn… Develop Use-Case for Bug Returns Ê Customer returns bug Ë Lender increases inventory ¸ Lender sends message to Customer

CRC Card - Front Class: Renter Responsibilities: Collaborations: (Front of Card) Rent Bug Return Bug Display Message Lender N/A

Identifying Attributes n Characteristics of Class n Adjectives of the Object Oriented World n Inventory Example –Bug ID –Bug Description –Bug Version

Your turn again… Develop some common attributes for the Renter n Customer Name n Customer Address n Customer Status n Customer Rentals n Customer Balance

CRC Card - Back Attributes:

Developing a Class Diagram Class Name Attributes Methods

CRC Adjustments n Create new CRC cards n Trash invalid CRC cards n Challenge yourself –Not a cookbook –Process is not magic;requires critical thinking skills n Iterate!