Object Oriented Analysis and Design Using the UML

Slides:



Advertisements
Similar presentations
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Advertisements

Unified Modeling Language
Mastering Object-Oriented Analysis and Design with UML Module 4: Analysis and Design Overview.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 5: Restaurant.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
SE 555 Software Requirements & Specification1 Use-Case Modeling: Overview and Context.
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
© Copyright Eliyahu Brutman Programming Techniques Course.
SwE 313 Introduction to Rational Unified Process (RUP)
Use Case Analysis – continued
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Unified Software Practices v 5.0-D Copyright  1998 Rational Software, all rights reserved 1 /26 RUP Architecture.
Principles of Object Technology Module 1: Principles of Modeling.
UML - Development Process 1 Software Development Process Using UML (2)
RUP Fundamentals - Instructor Notes
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Rational Unified Process Fundamentals Module 4: Disciplines II.
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.
RUP Design RUP Artifacts and Deliverables
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Software Engineering Chapter 7 Fall Capturing the Requirements as Use Cases Capturing the Requirements as Use Cases By using use cases analysts.
Information System Development Courses Figure: ISD Course Structure.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Requirements Analysis Going from “what” to “how”.
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.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Object Oriented Analysis and Design using the UML CIS 520 Advanced Object-Oriented Design.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Introduction to OOAD & Rational Rose cyt. 2 Outline RUP OOAD Rational Rose.
Analysis and Design Overview 12/14/ Objectives Review the key Analysis and Design terms and concepts Introduce the Analysis and Design process,
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Requirement Engineering Virtusa Training Group 2004 Trainer: Ojitha Kumanayaka Duration : 1 hour.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
The principles of an object oriented software development process Week 04 1.
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.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
Rational Unified Process Fundamentals Module 3: Core Workflows I - Concepts Rational Unified Process Fundamentals Module 3: Core Workflows I - Concepts.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
4+1 View Model of Software Architecture
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
OOAD Using the UML - Describe Concurrency, v 4.0 Copyright  Rational Software, all rights reserved 1 R Thread Process X Thread Process ZProcess.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1 Use Case Analysis – Part 4 Analysis Mechanisms.
UML Diagrams By Daniel Damaris Novarianto S..
Unified Process Source & Courtesy: Jing Zou.
UML Diagrams Jung Woo.
Rational Unified Process
Object Oriented Analysis and Design Using the UML
An Introduction to Software Architecture
Object Oriented Analysis and Design Using the UML
Software Development Process Using UML Recap
Presentation transcript:

Object Oriented Analysis and Design Using the UML OOADv4.2 Instructor Notes Object Oriented Analysis and Design Using the UML Analysis and Design Overview Module 5 - Analysis and Design Overview

Objectives: Analysis and Design Overview OOADv4.2 Instructor Notes Objectives: Analysis and Design Overview Introduce the analysis and design process, including roles, artifacts and workflow Understand the difference between analysis and design Note that the details of each of the Analysis and Design activities will be covered later. Present a context for the detailed analysis and design activities. Module 5 - Analysis and Design Overview

Analysis and Design in Context OOADv4.2 Instructor Notes Analysis and Design in Context Inception Elaboration Construction Transition Review the Rational Unified Process Framework and the relationship of the Analysis and Design workflow to the other workflows in the Rational Unified Process Framework. The Rational Unified Process Framework was introduced in the Introduction to RUP Module. Highlight what part of the overall process we will be concentrating on (analysis and design activities in an early elaboration iteration). Requirements Analysis & Design Test Configuration & Change Mgmt Management Environment Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 The purposes of Analysis and Design are: To transform the requirements into a design of the system to-be. To evolve a robust architecture for the system. Note: Analysis and Design taken ‘together.’ WHY????? Olden days versus Modern Times….. Module 5 - Analysis and Design Overview

Requirements  Analysis and Design OOADv4.2 Instructor Notes Requirements  Analysis and Design Input Artifacts – from Requirements Workflow Design Model If a separate analysis model is desired, then an Analysis Model would be listed as a separate artifact (in addition to the Design Model). Use-Case Model Ultimately, we wish to produce a Design Model Analysis and Design Architecture Document Glossary Data Model Supplementary Specification (additional ‘features’ & non-functional requirements…) Module 5 - Analysis and Design Overview

Analysis and Design Overview (continued) OOADv4.2 Instructor Notes Analysis and Design Overview (continued) Design model is an abstraction of source code and serves as the blue print for Construction. Design Model consists of Design Classes structured into Design packages Design Model also contains descriptions as to how objects of these design classes interact to perform Use Cases (Use Case Realizations) The Use Case Realizations are: Class diagrams and Interaction Diagrams Module 5 - Analysis and Design Overview

Analysis and Design Overview (continued) OOADv4.2 Instructor Notes Analysis and Design Overview (continued) Design activities are centered around the notion of an architecture. Production and validation of this architecture is the main focus of early design iterations. Architectural design takes place during Elaboration. Architecture is represented by a number of architectural views that capture the major structural design decisions. Architectural views are the abstractions or simplifications of the entire design, in which important characteristics are made more visible by leaving details aside. Module 5 - Analysis and Design Overview

Analysis and Design Overview (continued) OOADv4.2 Instructor Notes Analysis and Design Overview (continued) We will create an Analysis Model as the first part of Analysis and Design. We create Analysis Classes from Use Cases and other sources of requirements (Vision, Domain Model, …) Our Design Model will then take the artifacts from Analysis Modeling (analysis classes) and create our Use Case Realizations: Static View: Design classes, and Dynamic View: showing how objects collaborate in ‘realizing’ each flow in a use case. Module 5 - Analysis and Design Overview

Analysis & Design Overview Topics OOADv4.2 Instructor Notes Analysis & Design Overview Topics Key Concepts Analysis & Design Workflow Overview Module 5 - Analysis and Design Overview

Analysis Versus Design OOADv4.2 Instructor Notes Analysis Versus Design Difference is on emphases Design Focus on understanding the solution Operations and Attributes Performance, Efficiency… Close to real code Object lifecycles Non-functional requirements in detail A large model An instructor once said: “Analysis Vs. Design is important because of the mind-set. If you tried to manage all of the analysis and design issues in one go, your brain would explode on all but the most trivial developments. It’s just too much to take in, comprehend, and model in one go. So I mentally switch “OK, analysis - problem domain - don’t care about memory, persistence, databases, language, etc”. “Right now it’s design and I do care about all those things - but now I can stop thinking (too a degree) about trying to understand the business domain.” It’s about managing the 7+/-2 things I can think about in one go. It also separates out the skills (a bit).” Another instructor once said: “analysis is the study of and eventual comprehension of “some thing” [the problem space]. But to understand it, we must invent some entities to hold onto the thing that we have just grasped - this inventive process is design. That is, human cognitive thinking is actually interwoven analysis/design and any attempt to separate them is really only an idealization. Therefore, if I try to apply two separate “steps” in the production of, say, a class diagram [and call those steps A and then D], I will introduce ambiguity into my process because cognitive process forces one to “produce a solution” in order to “understand a problem” - that D is necessary to have any results from A.” Think of analysis as an idealized design step - where we ignore several complicating issues. This can turn into a religious debate. Analysis Focus on understanding the problem Idealized design (Generalized) Behavior Separation of Concerns System structure Functional requirements Some recognition for non-functional requirements A small model Analysis: understanding the problem; develop a visual model of What you are trying to build Module 5 - Analysis and Design Overview

OOADv4.2 Instructor Notes Goal of Analysis Understand the problem; try to build a visual model of what you are trying to do independent of implementation or technology concerns. Focus on translating the functional requirements into software concepts Note: Nothing in Use Cases says ‘Objects.’ Get rough cut at objects that from our system but focusing on behavior and separation of Concerns… Some authors include an Analysis Model here –  I consider analysis modeling as the prelude to architectural design. Sometimes considered first part of Design; Sometimes merely considered part of Design itself. In some circles, there is ‘only’ Requirements and then Design… Many ‘organizations’ tailor activities to their own ‘interpretations.’ Module 5 - Analysis and Design Overview

OOADv4.2 Instructor Notes Goal of Design Refine Analysis Model with a goal of creating a Design Model that will facilitate our moving “quickly and seamlessly” into more detailed design and implementation. (Morph Analysis Classes into Design ‘components,’ specific classes or other…) Note that design model elements are abstractions of code / implementation. Design Model constitutes the ‘Solution Space’ Module 5 - Analysis and Design Overview

OOADv4.2 Instructor Notes Use Case Realization A Use Case Realization describes how a particular use case is implemented in the design model in terms of collaborating objects.  In the RUP, each use case has a use case realization!!  They are one-to-one. A Use-Case Realization maps use cases from the use-case model to design model in terms of classes and other related design entities and relationships. A Use-Case Realization specifies what classes must be built, how they collaborate (relationships, dependencies…), and the messages passed between objects necessary to implement each use case Use Case Realizations have a static component and a dynamic component. Module 5 - Analysis and Design Overview

What is a Use-Case Realization? OOADv4.2 Instructor Notes What is a Use-Case Realization?  A use-case realization in the design model can be traced to a use case in the use-case model. A “realization relationship” is drawn from the use-case realization to the use case it “realizes.” If you consider use cases and scenarios to be black box descriptions of the system, then the use-case realizations are the associated white box descriptions. Use-case realizations are introduced here because use-case realizations may be mentioned when providing the overview of the analysis and design workflow (the developing of use-case realizations is the main goal of Use-Case Analysis and the refinement of these use case realizations is the main goal of Use-Case Design). The use case realizations are identified in Architectural Analysis, initially developed in Use-Case Analysis and then refined in Use-Case Design. The Rational Unified Process includes templates for the the use-case realization, as well as the use-case realization icon. In Rose, you cannot draw realizations between use cases, so a stereotyped association must be used instead. In Rose, use-case realizations are modeled as stereotyped use cases. This is discussed in more detail in the Use-Case Analysis module. Use-Case Model Design Model Use Case Use-Case Realization (realizes relationship) Module 5 - Analysis and Design Overview

What is a Use-Case Realization? OOADv4.2 Instructor Notes What is a Use-Case Realization? Interaction Diagrams If you consider use cases and scenarios to be black box descriptions of the system, then the use-case realizations are the associated white box descriptions. Use-case realizations are introduced here because use-case realizations may be mentioned when providing the overview of the analysis and design workflow (the developing of use-case realizations is the main goal of Use-Case Analysis and the refinement of these use case realizations is the main goal of Use-Case Design). The use case realizations are identified in Architectural Analysis, initially developed in Use-Case Analysis and then refined in Use-Case Design. The Rational Unified Process includes templates for the the use-case realization, as well as the use-case realization icon. In Rose, you cannot draw realizations between use cases, so a stereotyped association must be used instead. In Rose, use-case realizations are modeled as stereotyped use cases. This is discussed in more detail in the Use-Case Analysis module. Sequence Diagrams Collaboration Diagrams Use Case A use case realization can be represented using a set of diagrams which model the context of the collaboration – class diagrams and the interactions of these collaborations: communications and sequence diagrams. Class Diagrams Module 5 - Analysis and Design Overview

Software Architecture Model: The “4+1 Architectural View” OOADv4.2 Instructor Notes Software Architecture Model: The “4+1 Architectural View” Discuss the 4+1 views. These are covered in detail in the Rational Unified Process. The 4+1 model is introduced here and because it is important for the students to see how the views fit together up front, in order to set context. The individual views are addressed in the specific architecture modules: The Logical view will be discussed in the Architectural Analysis and Architectural Design module. The Process View will be discussed in the Describe Concurrency module. The Deployment View will be discussed in the Describe Distribution module. The Implementation View will be discussed briefly in the Architectural Design module; however, the Implementation View is developed during Implementation and is thus considered out of scope for this analysis and design course. Logical View Implementation View End-user Functionality Analysts/Designers Structure Programmers Software management Use-Case View Process View Deployment View Performance Scalability Throughput System integrators System engineering System topology Delivery, installation communication This diagram describes how Rational Software Corporation models software architecture. Projects have multiple stakeholders – each with unique concerns and views. Rational has defined a 4+1 architectural view – a series of simplified descriptions views (abstractions) from particular perspectives – omitting entities not relevant to this view. A project may document all views, a subset, or additional views. But EACH VIEW is complete from the perspective of specific stakeholder(s). Module 5 - Analysis and Design Overview

Analysis & Design Overview Topics OOADv4.2 Instructor Notes Analysis & Design Overview Topics Key Concepts Analysis & Design Workflow Overview Module 5 - Analysis and Design Overview

Analysis and Design Workflow OOADv4.2 Instructor Notes Analysis and Design Workflow Walk the students through the workflow diagram, reviewing the meaning of the representational icons (e.g., workers, activities, etc.). Activities can be considered operations on the workers. The order shown is not the only order in which the activities can be executed. It is an idealized picture. Note the emphasis on architecture -- how it is developed first and then drives the rest of the other activities -- Architecture-driven at its finest! The process as described in this course develops a design model, not a separate analysis model. To maintain a separate analysis model, some modifications to the process would be necessary, the discussion of which is out of the scope of this course. Emphasize the Use-Case Analysis activity and how it describes a process for finding classes and objects from use cases. Some people have called it: 'closing the traceability gap’ -- use cases and scenario's help you get from requirements to objects. Architectural Analysis Architectural Describe Describe Review the Architecture Architect Concurrency Architecture Design Distribution Reviewer Subsystem Design Use-Case Analysis (Analysis Modeling) Use-Case Review the Design Design Designer Design Reviewer (Interaction Diagrams And Class Diagrams) Use Case Realizations  Class Design Remember, we start off with the Use Case Model and Supplementary info (Glossary; Domain model; business model…) from Requirements Workflow and ultimately end up with a Design Model – an abstraction of the source code produced via an Analysis and Design Workflow. Design activities center around architecture – the main focus of early design iterations. Look at the activities of the architect and the designer (roles!!) Module 5 - Analysis and Design Overview

The Architect (See RUP Textbook) OOADv4.2 Instructor Notes The Architect (See RUP Textbook) Establishes the overall structure for each architectural view: This includes layers, if a layered approach… the decomposition of the view, the grouping of elements, and the interfaces between these major groupings. In contrast with the other workers, the Architect's view is one of breadth, as opposed to depth Frequently, the architect is the most experienced member of the team. (likely a good idea) Architect must constantly observe all design activities to ensure that they are compatible with the overall architecture. Module 5 - Analysis and Design Overview

The Designer (See RUP Textbook) OOADv4.2 Instructor Notes The Designer (See RUP Textbook) Defines the responsibilities, operations, attributes, and relationships of one or several classes and determines how they should be adjusted (modified, refined, morphed into other design / implementation artifacts (like packages, subsystems, etc.)) to support the implementation environment with the software architecture. Must be compatible with overall architecture!  Is usually responsible for Use-Case Realizations, in order to ensure the overall consistency of how a particular use case is realized using design elements. Module 5 - Analysis and Design Overview

The Database Designer (See RUP Textbook) OOADv4.2 Instructor Notes The Database Designer (See RUP Textbook) Defines the tables, indexes, views, constraints, triggers, stored procedures, table spaces or storage parameters, and other database-specific constructs needed to store, retrieve, and delete persistent objects. Will be familiar with design / implementation support from, say, APIs, such as java.sql, etc. This information is maintained in the Data Model. Module 5 - Analysis and Design Overview

OOADv4.2 Instructor Notes Reviewers Architecture Reviewer plans and conducts the formal reviews of the software architecture in general. The Design reviewer plans and conducts the formal reviews of the design model. Can be project manager in consultation with these other roles…Team efforts! Module 5 - Analysis and Design Overview

Workers and Their Responsibilities OOADv4.2 Instructor Notes Workers and Their Responsibilities Architect Architect: Establishes overall structure of each of the views. Decomposition; Breadth Designer Use-Case Realization Again, the focus of this course is on the activities and artifacts of the Designer. Design Model Package/ Subsystem Software Architecture Document Class Design Reviewer DB Designer: Designs tables, stored procedures, Indexes, etc. needed to store, maintain persistent data Data Model Database Designer Architecture Reviewer Designer: Responsible for the operations, attributes, and relationships of one or several classes and how they are implemented; Design packages; UC Realizations Module 5 - Analysis and Design Overview

Review: Analysis and Design Overview OOADv4.2 Instructor Notes Review: Analysis and Design Overview What is the purpose of Analysis and Design? What are the input and output artifacts? Name and briefly describe the 4+1 Views of Architecture. What is the difference between Analysis and Design? What is the purpose of Architectural Analysis? What is the purpose of Use-Case Analysis? What are the major responsibilities of the Architect, Developer, Database workers? Module 5 - Analysis and Design Overview