Cmpe 589 Spring 2006.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Object-Oriented Analysis and Design
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Introduction To System Analysis and Design
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
Component-Level Design
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
1 CS1001 Lecture Overview Object Oriented Design Object Oriented Design.
Teamwork Know each other Compete Leadership Strengths and Weaknesses
1 Object-Oriented Software Engineering CIS 375 Bruce R. Maxim UM-Dearborn.
Slide 12.1 © The McGraw-Hill Companies, CS 4310: Software Engineering Lecture 7 Systems Analysis Object-Oriented Design.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Unified Modeling Language, Version 2.0
Introduction To System Analysis and Design
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
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!)
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
Slide 12A.1 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
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.
Kal Bugrara, Ph.DSoftware Engineering Northeastern University Fundamentals Of Software Engineering Lecture V.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Petri Nets Invented by Carl Adam Petri in 1962 Concurrent systems with timing problems  Synchronization, race problem, deadlock A petri net consists of.
CSC 131 Fall 2006 Lecture # 6 Object-Oriented Concepts.
Introduction to OOAD and the UML
Internet and Intranet Protocols and Applications Lecture 5a: HTTP Client-Server Design and Implementation February 15, 2005 Arthur Goldberg Computer Science.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
1 Unified Modeling Language, Version 2.0 Chapter 2.
CMSC 345 Fall 2000 OO Design. Characteristics of OOD Objects are abstractions of real-world or system entities and manage themselves Objects are independent.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Basic Characteristics of Object-Oriented Systems
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Design Concepts ch-8
Chapter 8 Analysis Engineering
Software Engineering Lecture 4 System Modeling The Analysis Stage.
Object-oriented and Structured System Models
Chapter 1: Introduction to Systems Analysis and Design
The Movement To Objects
Object-Oriented Analysis (OOA)
Main issues: • What do we want to build • How do we write this down
Object-Oriented Analysis and Design
Systems Analysis and Design With UML 2
Unified Modeling Language
Systems Analysis and Design With UML 2
For University Use Only
INFS 6225 – Object-Oriented Systems Analysis & Design
Object-Oriented Analysis
Lec 3: Object-Oriented Data Modeling
Unified Modeling Language
Object-Oriented Design
Chapter 20 Object-Oriented Analysis and Design
CIS 375 Bruce R. Maxim UM-Dearborn
Appendix A Object-Oriented Analysis and Design
Copyright 2007 Oxford Consulting, Ltd
Chapter 1: Introduction to Systems Analysis and Design
Software Design Methodologies and Testing
Chapter 22 Object-Oriented Systems Analysis and Design and UML
CIS 375 Bruce R. Maxim UM-Dearborn
Use Case Analysis – continued
Appendix A Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
Chapter 1: Introduction to Systems Analysis and Design
Introduction to OOAD and the UML
Presentation transcript:

Cmpe 589 Spring 2006

Object Oriented Analysis Class modeling. (Build an object model similar to an ER diagram) Dynamic modeling. (Build a finite state machine type model) Functional modeling. (Similar to data flow diagram)

Object Oriented Analysis Case Study: Elevator model. n - elevators. m - floors in building. each floor has two buttons (except ground & top).

Object Oriented Analysis Class Modeling Buttons. Elevators. Floor. Building. Movement. Illumination. Doors. Requests.

Object Oriented Analysis

Object Oriented Analysis Dynamic Modeling: "Normal" schemas (and 1 or 2 abnormal). production rules (describe state transitions).

Object Oriented Analysis Functional Modeling: (Identify source & destination node)

Object Oriented Life Cycle Model Fountain Model:

Class Responsibility Collaborator Model (CRC): Responsibilities: Distributed system intelligence. State responsibility in general terms. Information and related behavior in same class. Information attributes should be localized. Share responsibilities among classes when appropriate. Collaborators build a CRC card (Build a paper model, see if it works on paper) On card: Class name. Class type. Class characteristics. Responsibility/collaborators. (System is basically acted out)

O.O.D. (Booch – Abbot Method): Define problem. Develop process narrative for software realization of problem domain. Formalize strategy. Identify object & attributes. Identify operations which can be applied to objects. Establish interfaces by showing relationships between objects and operations. Resolve design details to allow implementation. Recursively apply (2) & (3). Refine work done during O.O.A.. Represent data structures associated with object attributes. Represent procedural derail for each operation.

O.O.D. (Booch – Abbot Method): Operator Classifications: Data manipulator (add, delete, format). Computation. Monitors.

Basic Notation For O.O.D.: Class diagram (static).

Basic Notation For O.O.D.: Object diagram (dynamic). (communication)

Basic Notation For O.O.D.: Object module diagram.

Basic Notation For O.O.D.: Process diagram.

Alternative Generic Approach to O.O.D.:Object Oriented Analysis Identify the data abstraction for each sub-system. Identify attributes for each data abstraction. Identify operations for each data abstraction. Identify communication between objects. Apply inheritance where appropriate.

Object Oriented Program Design: Undertake object oriented system requirements specification. Identify object and their services. Establish interactions between objects (services required & rendered). Identification of reusable components from previous design. Implementation of low level objects. Introduce inheritance relationships (superclass & subclass). Class combination and generalization. (prototype revision – change is healthy)

Common Design Flaws: (too much junk in the class) Classes that make direct modifications to other classes. Classes with too much responsibility. Classes with no responsibility. Classes with unused responsibility . (too much junk in the class) Misleading names. Unconnected responsibility. Inappropriate inheritance. Repeated functionality.

Object Oriented Analysis Object Oriented Design Object. (Class = type vs. Instance = var) Encapsulation (Data & methods) Message passing. (Method call & return) Inheritance. (Polymorphism & reuse) Dynamic bindings. (Types & methods)

Identify the problem objects (classes) = nouns (not procedure names) Example: External entities (people & devices). Things in problem domain (reports, displays, signals). Occurrences or events (completion of some task). Roles (manager, engineer, sales person). Organizational units (division, groups, department). Structures (sensors, vehicles, computers).

Object Oriented Analysis Criteria: (Object or not) Does object inf. need to be retained? Does object have a set of needed services? (Can change it’s attributes) Does the object have major attributes? (Trivial objects should not be built) Identify common attributes for all object instances. Identify common operations for all object instances. (If nothing to share, why make it an object?) External entities which produce or consume must have defined classes.

Object Oriented Analysis Specifying Attributes: Similar to building data dictionary. (define in terms of atomic objects)

Object Oriented Analysis Include anything needed to manipulate data elements Communication among objects.

Object Oriented Analysis Object Specification: Object name. Attribute description: Attribute name. Attribute content. Attribute data type/structure. External input to object. External output from object. Operation description: Operation name. Operation interface description. Operation processing description. Performance issues. Restriction and limitations. Instance connections: (0:1, 1:1, 0:many, 1:many) Message connections.

Object Oriented Design: Private data & related operations. Shared part (interface). Advantages: Modularity is inherent Decomposability (problem -> sub-problem). Composability (reusability of pieces). Understandability (with respect to independence). Continuity (easy to change). Protection (encapsulation).

Object Oriented Design: Design Principles For Modularity: Linguistic modular units. (ADT’s should be supported) Few interfaces. Small interfaces (weak coupling). Explicit interfaces (parameter – not common coupling). Information hiding.

Object Oriented Analysis