Object oriented analysis and design

Slides:



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

A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
Introduction To System Analysis and Design
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
1 © Wolfgang Pelz UML UML Unified Modeling Language.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Introduction To System Analysis and design
Object Oriented Analysis By: Don Villanueva CS 524 Software Engineering I Fall I 2007 – Sheldon X. Liang, Ph. D.
Unified Modeling Language, Version 2.0
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
Systems Analysis and Design in a Changing World, 3rd Edition
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.
©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.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
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.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
Introduction to OOAD and the UML
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
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.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Basic Characteristics of Object-Oriented Systems
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Design Concepts ch-8
Principles of Programming & Software Engineering
Object Oriented Systems Design
Introduction to UML.
UML Diagrams By Daniel Damaris Novarianto S..
Chapter 1: Introduction to Systems Analysis and Design
UNIT 1.
Object-Oriented Analysis and Design
Introduction to the Unified Modeling Language
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Systems Analysis and Design With UML 2
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Chapter 5: Object Oriented Analysis and Design
Chapter 1 OBJECT-ORIENTED ANALYSIS AND DESIGN
Unified Modeling Language
Week 10: Object Modeling (1)Use Case Model
Systems Analysis and Design With UML 2
UML Diagrams Jung Woo.
The Object Oriented Approach to Design
Software Architecture & Design Pattern
Object-Oriented Design
Unified Modeling Language
University of Houston-Clear Lake
Object-Oriented Design
Introduction to the Unified Modeling Language
Introduction to the Unified Modeling Language
OOA&D II Bo Wang, Kan Qi Adapted from Alexey Tregubov’s Slides.
An Introduction to Software Architecture
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Chapter 1: Introduction to Systems Analysis and Design
4+1 View Model of Software Architecture
CS 8532: Advanced Software Engineering
4+1 View Model of Software Architecture
Software Design Methodologies and Testing
Design Yaodong Bi.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Chapter 1: Introduction to Systems Analysis and Design
Introduction to OOAD and the UML
Software Development Process Using UML Recap
From Use Cases to Implementation
Presentation transcript:

Object oriented analysis and design Kan Qi, Bo Wang Adapted from Alexey Tregubov’s Slides

Outline Purpose and motivation The history The methodology UML diagrams: Use case diagrams Robustness analysis diagrams

Motivation

Motivation How to solve the problem? Why object-oriented? standard notations communication tool Why object-oriented? Conceptual diagrams use “objects” Inspired by OO paradigm (programming and languages) “The "software crises" came about when people realized the major problems in software development were … caused by communication difficulties and the management of complexity” [Budd]

OOD history OO in the `60s & `70s – Informal notions Simula, Smalltalk In `82, Grady Booch coined the term Object Oriented Design The idea was to combine a design methodology with language constructs that implement design concepts Objects in design space are classes in implementation space

Pros and cons of OOA&D Advantages Disadvantages Focuses on objects rather than the procedures as in Structured Analysis. Functionality is restricted within objects. This may pose a problem for systems which are intrinsically procedural or computational in nature. The principles of encapsulation and data hiding help the developer to develop systems that cannot be tampered by other parts of the system. It cannot identify which objects would generate an optimal system design. It allows effective management of software complexity by the virtue of modularity. The object-oriented models do not easily show the communications between the objects in the system. It can be upgraded from small to large systems at a greater ease than in systems following structured analysis. All the interfaces between the objects cannot be represented in a single diagram. * https://www.tutorialspoint.com/object_oriented_analysis_design/ooad_object_oriented_analysis.htm

Definitions Analysis — understanding, finding and describing concepts in the problem domain. Grady Booch has defined OOA as, “Object-oriented analysis is a method of analysis that examines requirements from the perspective of the classes and objects found in the vocabulary of the problem domain”. Design — understanding and defining software solution/objects that represent the analysis concepts and will eventually be implemented in code. OOAD — a software development approach that emphasizes a logical solution based on objects.

OOA&D Principles Major principles: Minor principles: Abstraction Encapsulation Modularity Hierarchy Minor principles: Typing Concurrency Persistence

Design Goals for OOD Booch defined three goals Identify the objects/classes Identify the functionality of these objects/classes Identify the relationship between these objects/classes This is an iterative process Decisions in design space are complex Identification and specification of one aspect of a class might force changes in other aspects

UML supported diagrams class object component package deployment use case interaction communication sequence collaboration timing activity robustness

Overview use case - description of functionality provided by system along with actors and their connection to the use case object - set of objects and their relationships class - set of classes, interfaces, collaboration, relationships interaction - set of objects and their relationships including messages state/statechart - a state machine showing states, transitions and events. activity - states sequential flow of activities component - physical structure of code in terms of code components

Overview (cont-d) deployment - physical architecture of hardware and software in the system package - shows packages of classes and dependencies among them grouping mechanism form of class diagram also called subsystem

Organization of Diagrams Behavior diagrams use case robustness sequence Structure diagrams class component deployment package

Use case diagrams

Use case diagrams (cont-d) A use case is a relatively large end-to-end process description that typically includes many steps or transactions; it is not normally an individual step or activity in a process. Larman [1998] Applying UML and Patterns

Use case diagrams – steps capture normal (‘sunny-day scenarios’) use flow for every step, ask yourself: “What can go wrong (rainy-day scenarios)?” each variation of a use case is shown as an extension after creating the diagram, write a generic scenario (called a use case description) – part of SSAD document. Each step in a use case is an element of the interaction between an actor and the system.

Examples: WinBook Use Case diagram (all use cases)

Examples: WinBook Use Case diagram (all use cases) Common mistakes: Too many details Functionality expressed in an implementation specific way Functions of the system are not viewed from the perspective of the actors.

Use case diagram (workshop I) Pick 5 use cases from your project that are most important. Develop a use case diagram for the five use cases. Do it in groups (3-5 people) - 10 minutes.

Domain Modeling Necessary to ground both requirements and design (and hopefully implementation) in terminology shared by all stakeholders A methodology for building terminology, as well as discovering and refining use-cases and requirements

Domain Modeling Guidelines (cont-d) Focus on real-world (problem domain) objects. Use generalization (is-a) and aggregation (has-a) relationships to show how the objects relate to each other. Limit your initial domain modeling efforts to a couple of hours. Organize your classes around key abstractions in the problem domain. Don’t mistake your domain model for your data model.

Introduction to robustness analysis “The basic idea is that you can analyze the steps of a use case to validate the business logic within it and to ensure that the terminology is consistent with other use cases that you have previously analyzed.”* * from http://www.agilemodeling.com/artifacts/robustnessDiagram.htm

Robustness analysis: vending machine example Make Payment Make Selection of Drink

Introduction to robustness analysis: common mistakes

PC-2 workshop Group discussion and presentation: Sit in teams Pick one use case that has highest business value (section 2), and the objects identified (section 3) to create a robustness diagram (5 mins). Choose a presenter and show your team’s (3 mins): Quickly present the use case diagram you crated in workshop I. Describe the chosen use case and why it are important. Present the robustness diagram and explain how it realizes the use case.

References https://en.wikipedia.org/wiki/Artifact_%28UML%29 https://www.tutorialspoint.com/object_oriented_analysis_design/index.htm www.utdallas.edu/~chung/OOAD/M01_OO_Intro.ppt

Please sit in teams.