Shanghai Jiao Tong University 上海交通大学软件工程中心 Object Oriented Analysis and Design Architectural Analysis.

Slides:



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

Chapter 7 – Object-Oriented Design
Mastering Object-Oriented Analysis and Design with UML Module 4: Analysis and Design Overview.
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.
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.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Object Oriented Analysis and Design Using the UML
Object-Oriented Analysis and Design
OOAD – Dr. A. Alghamdi Mastering Object-Oriented Analysis and Design with UML Module 6: Use-Case Analysis Module 6 - Use-Case Analysis.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
The Design Discipline.
Architectural Analysis These slides are derived from IBM/Rational slides from courses on UML and object-oriented design and analysis. Copyright to the.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
UML - Development Process 1 Software Development Process Using UML (2)
RUP Fundamentals - Instructor Notes
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
Shanghai Jiao Tong University 上海交通大学软件工程中心 Object Oriented Analysis and Design Use-Case Design.
RUP Design RUP Artifacts and Deliverables
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 11 Subsystem Design.
OOAD Using UML, v. 3.0 Architectural Design, p. 1 Copyright © 1997 by Rational Software Corporation R Architectural Design.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
Information System Development Courses Figure: ISD Course Structure.
Chapter 7 Applying UML and Patterns Craig Larman
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 8: Identify Design Mechanisms.
Systems Analysis and Design in a Changing World, 3rd Edition
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.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Design Analysis builds a logical model that delivers the functionality. Design fully specifies how this functionality will be delivered. Design looks from.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 6: Use-Case Analysis.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Shanghai Jiao Tong University 上海交通大学软件工程中心 Object Oriented Analysis and Design Requirements Overview.
Software Design: Principles, Process, and Concepts Getting Started with Design.
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 9: Describe the Run-time Architecture.
Analysis and Design Overview 12/14/ Objectives Review the key Analysis and Design terms and concepts Introduce the Analysis and Design process,
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
Object Oriented Analysis and Design using the UML Use-Case Analysis Adapted by Dr. Spiegel from Slides Provided by Rational Software.
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.
4+1 View Model of Software Architecture
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
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.
OOAD Using the UML - Describe Concurrency, v 4.0 Copyright  Rational Software, all rights reserved 1 R Thread Process X Thread Process ZProcess.
Gerhard Dueck -- CS3013Architecture 1 Architecture-Centric Process  There is more to software development then going blindly through the workflows driven.
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.
Design Concepts ch-8
OO Methodology OO Architecture.
Distribution and components
Software Quality Engineering
The Object Oriented Approach to Design
Rational Unified Process
Service-centric Software Engineering
Object oriented analysis and design
An Introduction to Software Architecture
Design Yaodong Bi.
Design.
Software Development Process Using UML Recap
Logical Architecture & UML Package Diagrams
Presentation transcript:

Shanghai Jiao Tong University 上海交通大学软件工程中心 Object Oriented Analysis and Design Architectural Analysis

Object Oriented Analysis and Design 2 Architectural Analysis in Context [Early Elaboration Iteration] [Inception Iteration (Optional)] Define a Candidate Architecture Perform Architectural Synthesis Analyze Behavior Refine the Architecture Define Components Design the Database (Optional) Architecture Analysis Architect

Object Oriented Analysis and Design 3 Architectural Analysis Overview Supplementary Specification Glossary Use-Case Model Architectural Analysis Design Model Reference Architecture Deployment Model Vision Document Software Architecture Doc Project-Specific Guidelines

Object Oriented Analysis and Design 4 Outline  Key Concepts  Define the High-Level Organization of Subsystems  Identify Analysis mechanisms  Identify Key Abstractions  Create Use-Case Realizations

Object Oriented Analysis and Design 5 Review: What Is Architecture: The “4+1 View” Model Process ViewDeployment View Logical View Use-Case View Implementation View End-user Functionality Programmers Software management Performance Scalability Throughput System integrators System topology Delivery, installation communication System engineering Analysts/Designers Structure

Object Oriented Analysis and Design 6  A package is a general-purpose mechanism for organizing elements into groups.  It is a model element that can contain other model elements.  A package can be used  To organize the model under development.  As a unit of configuration management. Review: What Is a Package? University Artifacts

Object Oriented Analysis and Design 7  Packages can be related to one another using a dependency relationship.  Dependency Implications Changes to the Supplier package may affect the Client package. The Client package cannot be reused independently because it depends on the Supplier package. Package Relationships: Dependency Client PackageSupplier Package Dependency relationship

Object Oriented Analysis and Design 8 C A B Hierarchy should be acyclic A B C A' Circular dependencies make it impossible to reuse one package without the other. Avoiding Circular Dependencies A B

Object Oriented Analysis and Design 9 Outline  Key Concepts  Define the High-Level Organization of Subsystems  Identify Analysis mechanisms  Identify Key Abstractions  Create Use-Case Realizations

Object Oriented Analysis and Design 10 Patterns and Frameworks  Pattern  Provides a common solution to a common problem in a context  Analysis/Design pattern  Provides a solution to a narrowly-scoped technical problem  Provides a fragment of a solution, or a piece of the puzzle  Framework  Defines the general approach to solving the problem  Provides a skeletal solution, whose details may be Analysis/Design patterns

Object Oriented Analysis and Design 11 Structural AspectBehavioral Aspect What Is a Design Pattern?  A design pattern is a solution to a common design problem.  Describes a common design problem  Describes the solution to the problem  Discusses the results and trade-offs of applying the pattern  Design patterns provide the capability to reuse successful designs. Parameterized Collaboration Pattern Name Template Parameters

Object Oriented Analysis and Design 12 What Is an Architectural Pattern?  An architectural pattern expresses a fundamental structural organization schema for software systems. It provides a set of predefined subsystems, specifies their responsibilities, and includes rules and guidelines for organizing the relationships between them – Buschman et al, “Pattern-Oriented Software Architecture — A System of Patterns”  Layers  Model-view-controller (M-V-C)  Pipes and filters  Blackboard

Object Oriented Analysis and Design 13 Typical Layering Approach General functionality Specific functionality Distinct application subsystems that make up an application — contains the value adding software developed by the organization. Business specific — contains a number of reusable subsystems specific to the type of business. Middleware — offers subsystems for utility classes and platform-independent services for distributed object computing in heterogeneous environments and so on. System software — contains the software for the actual infrastructure such as operating systems, interfaces to specific hardware, device drivers, and so on. Application Subsystems Business-Specific Middleware System Software

Object Oriented Analysis and Design 14 Architectural Pattern: Layers Equipment and customer-specific code Processes and other application code Major abstractions, classes, etc. Mechanisms, services H/W specific code, O/S specific code, general- purpose code (for example, ORB, MQS) Application Framework Application Framework Infrastructure

Object Oriented Analysis and Design 15 Layering Considerations  Level of abstraction  Group elements at the same level of abstraction  Separation of concerns  Group like things together  Separate disparate things  Application vs. domain model elements  Resiliency  Loose coupling  Concentrate on encapsulating change  User interface, business rules, and retained data tend to have a high potential for change

Object Oriented Analysis and Design 16 Modeling Architectural Layers  Architectural layers can be modeled using stereotyped packages.  > stereotype Package Name >

Object Oriented Analysis and Design 17 Example: High-Level Organization of the Model Application > Business Services >

Object Oriented Analysis and Design 18 Outline  Key Concepts  Define the High-Level Organization of Subsystems  Identify Analysis mechanisms  Identify Key Abstractions  Create Use-Case Realizations

Object Oriented Analysis and Design 19 Architect Supplementary Specification Use-Case Model Mechanisms COTS Products Databases IPC Technology etc. “realized by client classes using” “responsible for” “constrained by” Required Functionality Implementation Environment What Are Architectural Mechanisms?

Object Oriented Analysis and Design 20 Architectural Mechanisms: Three Categories  Architectural Mechanism Categories  Analysis mechanisms (conceptual)  Design mechanisms (concrete)  Implementation mechanisms (actual)

Object Oriented Analysis and Design 21 Why Use Analysis Mechanisms? Oh no! I found a group of classes that has persistent data. How am I supposed to design these things if I don’t even know what database we are going to be using? That is why we have a persistence analysis mechanism. We don’t know enough yet, so we can bookmark it and come back to it later. Analysis mechanisms are used during analysis to reduce the complexity of analysis and to improve its consistency by providing designers with a shorthand representation for complex behavior.

Object Oriented Analysis and Design 22 Sample Analysis Mechanisms  Persistency  Communication (IPC and RPC)  Message routing  Distribution  Transaction management  Process control and synchronization (resource contention)  Information exchange, format conversion  Security  Error detection / handling / reporting  Redundancy  Legacy Interface

Object Oriented Analysis and Design 23 Examples of Analysis Mechanism Characteristics  Persistency mechanism  Granularity  Volume  Duration  Access mechanism  Access frequency (creation/deletion, update, read)  Reliability  Inter-process Communication mechanism  Latency  Synchronicity  Message size  Protocol

Object Oriented Analysis and Design 24 Example of Analysis Mechanism Characteristics (cont.)  Legacy interface mechanism  Latency  Duration  Access mechanism  Access frequency  Security mechanism  Data granularity  User granularity  Security rules  Privilege types  Others

Object Oriented Analysis and Design 25  Collect all analysis mechanisms in a list  Draw a map of classes to analysis mechanisms  Identify characteristics of analysis mechanisms  Model using collaborations Describing Analysis Mechanisms Classes Parsing Authentication Communication Persistency Analysis Mechanisms Flight Aircraft Mission Schedule Route Load

Object Oriented Analysis and Design 26 Example: Course Registration Analysis Mechanisms  Persistence  Distribution  Security  Legacy Interface

Object Oriented Analysis and Design 27 Outline  Key Concepts  Define the High-Level Organization of Subsystems  Identify Analysis mechanisms  Identify Key Abstractions  Create Use-Case Realizations

Object Oriented Analysis and Design 28 What Are Key Abstractions?  A key abstraction is a concept, normally uncovered in Requirements, that the system must be able to handle  Sources for key abstractions  Domain knowledge  Requirements  Glossary  Domain Model, or the Business Model (if one exists)

Object Oriented Analysis and Design 29 Defining Key Abstractions  Define analysis class relationships  Model analysis classes and relationships on class diagrams  Include brief description of analysis class  Map analysis classes to necessary analysis mechanisms

Object Oriented Analysis and Design 30 Example: Key Abstractions Student Professor ScheduleCourseCatalogCourseCourseOffering

Object Oriented Analysis and Design 31 Outline  Key Concepts  Define the High-Level Organization of Subsystems  Identify Analysis mechanisms  Identify Key Abstractions  Create Use-Case Realizations

Object Oriented Analysis and Design 32 Review: What is a Use-Case Realization? Class Diagrams Use Case Collaboration Diagrams Use-Case ModelDesign Model Use CaseUse-Case Realization Sequence Diagrams

Object Oriented Analysis and Design 33 The Value of Use-Case Realizations  Provides traceability from Analysis and Design back to Requirements  The Architect creates the Use-Case Realization Use Case Analysis & DesignRequirements Use-Case Realization