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.

Slides:



Advertisements
Similar presentations
Software Design Fundamentals
Advertisements

Database Systems: Design, Implementation, and Management Tenth Edition
Design Concepts and Principles
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Object-Oriented Analysis and Design
Introduction To System Analysis and Design
Algorithms and Problem Solving-1 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
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
Chapter 1 Principles of Programming and Software Engineering.
2Object-Oriented Analysis and Design with the Unified Process Events and Use Cases  Use case  Activity the system carries out  Entry point into the.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Course Instructor: Aisha Azeem
1 Object-Oriented Software Engineering CIS 375 Bruce R. Maxim UM-Dearborn.
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:
Introduction To System Analysis and design
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.
An Introduction to Software Architecture
1 Object orientation. 2 What benefits does OO give? Primarily –Encapsulation (Associates data & operations) –Types & specialisation –Software re-use.
Introduction To System Analysis and Design
1 Introduction to Software Engineering Lecture 1.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
UML-1 8. Capturing Requirements and Use Case Model.
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
OOAD Unit – I OBJECT-ORIENTED ANALYSIS AND DESIGN With applications
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
The Software Development Process
Software Design Process
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 2 Object-Oriented Paradigm Overview. Getting Acquainted with the Class Project Read the requirements specification carefully Make note of any.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
SWE 4743 Responsibility Driven Design with CRC cards Richard Gesick.
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Chapter 2 Principles of Programming and Software Engineering.
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.
Chapter 2 (Horstmann’s Book) – Part 1 The Object-Oriented Design Process Hwajung Lee.
Principles of Programming & Software Engineering
Object Oriented Systems Design
GRASP – Designing Objects with Responsibilities
Cmpe 589 Spring 2006.
Roberta Roth, Alan Dennis, and Barbara Haley Wixom
Object-Oriented Analysis (OOA)
Introduction to Design Patterns
Unified Modeling Language
About the Presentations
Object-Oriented Analysis
Chapter 24 Testing Object-Oriented Applications
Introduction To System Analysis and Design PART 2
Object-Oriented Design
Object oriented analysis and design
Chapter 19 Testing Object-Oriented Applications
Copyright 2007 Oxford Consulting, Ltd
Algorithms and Problem Solving
Chapter 19 Testing Object-Oriented Applications
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Agenda Software development (SD) & Software development methodologies (SDM) Orthogonal views of the software OOSD Methodology Why an Object Orientation?
ITEC324 Principle of CS III
Presentation transcript:

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 is independent of the programming language used to implement the design. However, using OO Language helps Objects are independent and encapsulate state and representation information System functionality is expressed in terms of object services Shared data areas are eliminated. Objects communicate via message passing

2 Why OOD? OOD does not reduce development time. In fact it may increase it! However, there is empirical evidence that OOD facilitates the following activities: Reuse Maintenance Verification

3 What is Object Oriented Design? OOD is a set of principles and methods for designing systems based on combining data and function into entities called objects OOD Principles include Encapsulation Decomposition Design Patterns Hierarchical Relationships Defined decision making

4 OO Design OO systems are designed using a three phase iterative process - Analysis - Design - Implementation Successful software systems evolve over time, leading to iterative process, by evolving and refining each time through the process.

5 OO Analysis Definition ( Booch ): OOA is a method of analysis that examines the requirements of the system from the perspective of classes and objects that are found in the vocabulary of the problem domain Transform programming problem into a precise description of the tasks to be performed. Prior to analysis problem is usually vaguely understood. OOA focuses on What needs to be done, not How it needs to be done.

6 OO Analysis OOA is the input to Object Oriented Design (OOD) Quality of OOD is based on quality of OOA When defining OOA need to work with problem domain expert. OOA provides a description of the problem The description must be complete, consistent, readable, reviewable by diverse parties, and testable against the reality. You should not pursue issues of class design or representation in the analysis phase

7 OO Analysis Identify functional and non-functional points of the system Identify classes and objects( their roles and responsibilities) from the vocabulary of problem domain Functional points are observable and testable behaviors of a system End use perspective: function points represent the activity of the system in response to an event Analyst perspective: function points represent a behavior. The more function points, the greater system’s complexity

8 When OO Analysis is finished? When you have formal requirements analysis document describing behavioral requirements Described non-functional requirements: reliability, security, portability, and performance Capture descriptions of behavior by using scenarios Risk assessment: Identify known risks that may impact the design process. Better to document risks early than discover them latter.

9 Domain Analysis Identify objects that are common to a particular system Study similar existing systems (REUSE), benefiting from other projects that had to make similar design decisions. Do not reinvent the wheels!

10 OO Analysis: Scenario Planning Identify the function points of the system and cluster them by the related behaviors. If an object life cycle is essential to a scenario document using a finite state machine Look for patterns in among developed scenarios

11 OO Analysis: Approaches Primary goal of OOA is to discover the objects in the system specification How do we discover objects and classes that form the vocabulary of system domain? Classical Behavior Analysis Domain Analysis Use case Analysis CRC cards Informal English description

12 Classical Analysis Derive classes from the requirements of problem domain Derive candidate classes and objects from the following sources: Tangible things Roles Events Interactions Structure Devices/Locations Organizational Units / Grouping

13 Behavioral Analysis Focus on dynamic behavior as the primary source of classes and objects Emphasize responsibilities: Actions object can perform Group things that have common responsibilities Create hierarchies that embody general responsibilities and subclasses that specialize their behavior

14 Domain Analysis Focuses on single specific application Seeks to identify the classes and objects that are common to all applications within a specific domain Examples: Patient record tracking, stock and bond trading, Compilers and etc. Addresses the fact that there are very few unique kinds of software systems

15 Use Case Analysis Goal: Derive process of analysis in a meaningful way Develop series of important scenarios and identify objects, their responsibilities and how objects collaborate with other objects

16 CRC Cards Help to analyze scenarios CRC cards are 3x5 cards capturing: Name of the class Class responsibilities Collaboration with other classes Software team walks through scenarios and and assigns new responsibilities, updates existing, discovers new classes and etc

17 English description Radical alternative analysis method developed by Abbott Process: Write a detailed English description of the problem Underline nouns and verbs in the detailed English description Nouns become candidate objects Verbs represent candidate operations upon the objects Benefits: Simple and forces analysis to work in the vocabulary of problem space Problem: Does not scale well to handle large problems

18 OO Design A lot of gray areas between analysis phase and design OOD emphasizes the proper and effective structuring of a complex system: the system architecture. Design process begins as soon as we have developed a reasonably complete model of the behavior of the system Don’t design before analysis reaches closure Don’t delay the design trying to achieve perfect analysis. When working in gray areas, both activities are done in parallel

19 OO products Tactical Policies Error detection Memory management Exception Handling Data store managment System Architecture Class and object structure Clustering of classes into class categories

20 Object oriented programming Method of implementation in which programs are organized as cooperative collections of objects, each of which represents an instance of some class. Uses objects, not algorithms as its fundamental blocks Each object is an instance of some class Classes are related to each other