OOD-1 11. OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.

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.
UML Diagrams Jung Woo. What is UML? Standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems, business.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Unified Modeling (Part I) Overview of UML & Modeling
Using Architecture Frameworks
© Copyright Eliyahu Brutman Programming Techniques Course.
UML Sequence Diagrams Eileen Kraemer CSE 335 Michigan State University.
Logical Architecture and UML Package Diagrams
Course Instructor: Aisha Azeem
Unified Modeling Language
UML Sequence Diagrams Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
What is Software Architecture?
The Design Discipline.
UML - Development Process 1 Software Development Process Using UML (2)
Logical Architecture and UML Package Diagrams 徐迎晓 复旦大学软件学院.
UML Unified Markup Language Ziya Karakaya Atılım University, Computer Engineering
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
ANALYSIS REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
An Introduction to Software Architecture
Software Engineering Chapter 8 Fall Analysis Extension of use cases, use cases are converted into a more formal description of the system.Extension.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
Approaching a Problem Where do we start? How do we proceed?
Systems Analysis and Design in a Changing World, 3rd Edition
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
The Static Analysis Model Class Diagrams Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
Design Analysis builds a logical model that delivers the functionality. Design fully specifies how this functionality will be delivered. Design looks from.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
ANALYSIS - II REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
TAL7011 – Lecture 4 UML for Architecture Modeling.
Discovering object interaction. Use case realisation The USE CASE diagram presents an outside view of the system. The functionality of the use case is.
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
CS 8532: Advanced Software Engineering Dr. Hisham Haddad Overview of Object-Oriented Design Highlights of OOD Concepts, Components, and Process.
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
Introduction to OOAD and the UML
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
310414IMPLEMENTATION1 IMPLEMENTATIONIMPLEMENTATION SOFTWARE ENGINEERING SOFTWARE ENGINEERING.
Gerhard Dueck -- CS3013Analysis 1. Gerhard Dueck -- CS3013Analysis 2 Why analysis?  Yield a more precise specification of the requirements.  Introduce.
Diagrams. Typically, we view the static parts of a system using one of the four following diagrams. 1. Class diagram 2. Object diagram 3. Component diagram.
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
Basic Characteristics of Object-Oriented Systems
Unified Modeling Language. What is UML? Standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems,
R R R CSE870: UML Component Diagrams Implementation Diagrams.
UML Diagrams: Class Diagrams The Static Analysis Model
UML Diagrams By Daniel Damaris Novarianto S..
Course Outcomes of Object Oriented Modeling Design (17630,C604)
OO Methodology OO Architecture.
UML Diagrams Jung Woo.
Unified Modeling Language
Design and Implementation
Design Tips.
An Introduction to Software Architecture
Design Yaodong Bi.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
CIS 375 Bruce R. Maxim UM-Dearborn
Design.
Introduction to OOAD and the UML
Software Development Process Using UML Recap
Presentation transcript:

OOD OO Design

OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model to implementation specifics OO Programming –Implementing the design model in language of choice using frameworks, libraries, etc.

OOD-3 Is Design up-front? Heavy weight methodologies do up-front design Light weight methodologies have not eliminated design –A misconception that agile eliminates design –Read Martin Fowler’s “Is Design Dead?” article Design is very essential Differentiate between strategic design and tactical design

OOD-4 Design Process Identify classes Determine their semantics Determine the relationship between objects and classes How to do that?

OOD-5 Identifying classes Nouns from problem statement are potential classes, verbs indicate relationships –Unfortunately, this heavily skews towards entity classes–those that hold information. Hard to identify control (business logic and activity) and boundary (user interface) classes A better approach is to take this from more detailed requirements specifications like use case or user stories

OOD-6 Models Static Model –Tells us about classes and how they are related –Most common model –However, does not tell us what goes on, only how they are related Dynamic Model –Tells us how objects communicate and interact –Collaboration diagrams, sequence diagrams –Often may be useful to develop the static model as well –Useful to explain the working of specific parts of the system

OOD-7 Subsystem Design Organizing artifacts of design mode in more manageable pieces Subsystem must be cohesive, loosely coupled Subsystem can represent a separation of design concerns Have trace to analysis packages and/or analysis classes Represent large grained components Represent reused software products by wrapping Represent legacy systems by wrapping Service subsystems used a lower level

OOD-8 Interface Specify operations provided by design classes and subsystems Separates specification of functionality from the actual implementation of it –facilitates substitution of design classes or subsystems May be outlined as stable interfaces earlier in life cycle - becomes part of the requirement for development teams designing the subsystem

OOD-9 Deployment Model Physical distribution of system –how functionality is distributed among computational nodes Each node represents a computational resource –processor, simulation hardware device Nodes have means of communication Describes several different network configurations Functionality of node defined by components deployed on the node Deployment model manifests between software architecture and system architecture

OOD-10 Architectural Design Outline design and deployment models by identifying –Nodes and their network connections –Subsystems and their interfaces –Architecturally Significant Design classes –Design mechanism to handle common requirements

OOD-11 Identifying Nodes and Network Configurations Three-tier pattern for –clients (User Interface) on one tier –Database functionality on one tier –Business/application logic on one tier Aspects: –Nodes involved and capacities (power, size) –Connection and protocols between nodes –Characteristics of the connections and protocols –Need for any redundant processing capacity, backup of data, fail-over modes, process migration, etc.

OOD-12 Identifying Subsystems and Interfaces Application-specific layer Application-general layer

OOD-13 Architecturally Significant Design Classes Must be deferred to class design activity Some may be identified early May be identified from the entity classes in analysis model Active classes based on –concurrency requirements may be identified –distribution across nodes –requirements like startup, termination, deadlock avoidance, etc.

OOD-14 Identifying Generic Design Mechanism Common requirements are handled here –Persistency –Transparent Object Distribution –Security –Error detection and recovery –Transaction Management Design classes manifest to provide any of these common requirements

OOD-15 Design a Use-Case Identify design classes needed to perform flow of events Interacting design objects/subsystems will participate in the use-case realization Define requirements on interfaces and design classes/subsystems Capture implementation requirements for the use-case

OOD-16 Identify Participating Design Classes Study analysis classes that participate in corresponding use-case realization –Identify design classes that trace to those analysis classes Identify design classes that realize special requirements Any missing design class must be documented and communicated to architects and component engineers

OOD-17 Describing Design Object Interaction Sequence diagram to depict the interaction between the design classes that participate in the flow of events –use case is invoked by a message from an actor instance to a design object –Each design class should have at least one design object participating in a sequence diagram –Messages are sent between object lifelines. Message name will become an operation –Sequence is the primary focus - chronological order of message transmissions between objects –Use labels and flow of events - design to complement –Should handle all relationships of the use case

OOD-18 Design a Class Design class that fulfills its role in use- case realizations and nonfunctional requirements –Operations –Attributes –Relationships –Methods that realize its operations –Imposed states –Dependencies to any generic design mechanisms –Requirements relevant to its implementation –Correct realization of any interface it provides

OOD-19 Outlining the Design Class One design class may represent one interface Designing boundary classes may depend on specific interface technology in use Designing entity classes representing persistent information depends on using specific database technology Designing control classes needs to consider –distribution issues –performance issues –transaction issues

OOD-20 Identifying Class Members Identifying Operations –Responsibilities of any traced analysis class –Special requirements –Based on the interfaces that must be provided –Based on use-case realization - design Identifying Attributes –Attributes of any traced analysis class considered –Restricted to types available in the language –Try to reuse existing ones –No sharing of attribute among classes - move –Use separate class diagram if many/complex attributes in a class

OOD-21 Identifying Class Relationships Identifying Associations and Aggregations –Sequence diagram provides insight into this –Instances of association may be used for reference –May group objects into aggregation for messaging –Number of relationships must be minimized –Refine association multiplicities, role names, association classes, etc. –Resolve navigation of association Identifying Generalization –Used based on the semantics defined by language

OOD-22 Describing States Design objects may be state controlled –state determines behavior when message received Statechart diagram may be used to describe different state transitions of a design object Statechart diagram becomes a valuable input to the implementation of the design class