Two New UML Diagram Types Component Diagram Deployment Diagram.

Slides:



Advertisements
Similar presentations
System Design II Bernd Brügge Technische Universität München
Advertisements

Executional Architecture
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
COMPONENT DIAGRAM in UML 2.0 Veronica Carrega
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Modeling Notations.
UML Static diagrams. Static View: UML Component Diagram Component diagrams show the organization and dependencies among software components. Component:
Object-Oriented Analysis and Design
System Design Chapters 6-7 Object-Oriented Software Engineering:
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS System Design Lecture 12 Päivi Ovaska.
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS: Defining persistent data stores, example Päivi Ovaska.
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS: Identifying boundary conditions, example Päivi Ovaska.
Addressing Design Goals
Ch 7: Sys. Architecture: Design Decisions to Address Goals
C++ Training Datascope Lawrence D’Antonio Lecture 11 UML.
CS 432 Object-Oriented Analysis and Design
Conquering Complex and Changing Systems Object-Oriented Software Engineering System Design II TJSS Lecture 10 Päivi Ovaska.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 7 System Design: Addressing Design Goals.
The Design Discipline.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Art for Chapter 11, Project Management.
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 3, Project Communication.
Addressing design Goals  We decompose the system to address complexity  Assigning each subsystem to team to work on  But we also need to address system.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 2.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 2.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 7 Addressing Design Goals.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 7 System Design: Addressing Design Goals.
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.
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2005 Architecture: Component and Deployment Diagrams Patrick Bailey Keith Vander Linden Calvin College.
Session 26 Modeling the Static View: The Deployment Diagram Written by Thomas A. Pender Published by Wiley Publishing, Inc. October 27, 2011 Presented.
Chapter Five–Part III Object Oriented Design More Design issues.
1 Software Design Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13, 5 th edition and Ch. 10, 6 th edition.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 2.
Chapter 7 System Design 2 Addressing Design Goals.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Overview System Design II (slides Part B)
Chapter 7, System Design: Addressing Design Goals
Programming Logic and Design Fourth Edition, Comprehensive Chapter 15 System Modeling with the UML.
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 7 System Design: Addressing Design Goals.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 6, System Design Lecture 2.
CBSE 2014 Modeling Components with UML. Bibliography Modelling components in UML – Main text: Kim Hamilton, Russell Miles, Learning UML 2.0, OReilly,
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering October 10, 2001 System.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
COP 3331 Object-Oriented Analysis and Design 1 Overview System Design I (previous lecture) 0. Overview of System Design 1. Design Goals 2. Subsystem Decomposition.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
1 CMPT 275 High Level Design Phase Modularization.
Component, Deployment and Package Diagrams CSIS3600.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
 Building Block Building Block  Things in the UML Things in the UML  Structural Things Structural Things  Behavioral Things Behavioral Things  Grouping.
COMPONENT DIAGRAM in UML 2.0 Veronica Carrega. PLAN OF TALK  Introduction about components  Components and component diagrams in uml 2.0  Case study.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Overview  System Design II 3. Concurrency.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Computer Science 340 Software Design & Testing Software Architecture.
Identifying classes, Packages and drawing class Diagrams, Object Diagrams and composite structure diagrams Week 07 1.
System Design for Home Automaton. Design Goals Performance Criteria – Server prioritizes client requests to provide quick response time to critical requests.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
CEN 4010 Eight Lecture Feb. 27, 2006 Introduction to Software Engineering (CEN- 4010) Spring 2006 Instructor: Masoud Sadjadi
1 Use Cases Object-Oriented Modeling and Design with UML (Second Edition) Blaha & Rumbaugh Sections 7.1, 8.1.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 7, System Design: Addressing Design Goals.
Deployment Diagram.
Chapter 7 System Design: Addressing Design Goals
Deployment Diagram.
Chapter 7 System Design: Addressing Design Goals
COMPONENT & DEPLOYMENT DIAGRAMS
Advance Software Engineering (CEN-5011)
Analysis models and design models
Sylnovie Merchant, Ph.D. MIS 161 Spring 2005
Design Yaodong Bi.
Design.
Software Development Process Using UML Recap
Presentation transcript:

Two New UML Diagram Types Component Diagram Deployment Diagram

Component Diagram Component= an encapsulated, reusable, and replaceable part of the software. Two stereotypes: –«component» –«subsystem» for larger pieces of systems

Component Diagram A UML component is a building block of the system. It is represented as a rectangle with a tabbed rectangle symbol inside Components have different lifetimes: –Some exist only at design time Classes, associations –Others exist until compile time Source code, pointers –Some exist at link or only at runtime Linkable libraries, executables, addresses

Component Diagram Illustrates dependencies between components at design time, compilation time and runtime –source code, linkable libraries, executable Used to model the top-level view of the system

UML Component Diagram The dependencies (edges in the graph) are shown as dashed lines with arrows from the client component to the supplier component: – The lines are often also called connectors –Components can be connected by “lollipops” and “grabbers” Informally also called “software wiring diagram“ because it show how the software components are wired together in the overall application.

Component Diagram Example UML Interface UML Component reservations update Dependency.

Deployment Diagram Illustrates the distribution of components at run-time. Deployment diagrams use nodes and connections to depict the physical resources in the system.

Shows how the system is finally deployed in a given real-world situation A deployment diagram is a graph of nodes and connections (“communication associations”) –Nodes are shown as 3-D boxes –Connections between nodes are shown as solid lines –Nodes may contain components :PC Deployment Diagram :Server

Deployment Diagram Example Dependency (between nodes) Dependency (in a node) UML Node UML Interface

Deployment Diagram Linking deployment diagrams to component diagrams by mapping components to hardware:

Deployment Diagram Devices, execution environments and communication: multiple levels of detail possible.

Activities of System Design Define design goals Define subsystems Implement subsystems Map subsystems To HW Manage persistent data Define access control Select global Control flow Describe boundary conditions

1. Hardware Software Mapping This system design activity addresses two questions: –How shall we realize the subsystems: With hardware or with software? –How do we map the object model onto the chosen hardware and/or software? Mapping the Objects: –Processor, Memory, Input/Output Mapping the Associations: –Network connections

Mapping Objects onto Hardware Control Objects -> Processor –Is the computation rate too demanding for a single processor? –Can we get a speedup by distributing objects across several processors? –How many processors are required to maintain a steady state load? Entity Objects -> Memory –Is there enough memory to buffer bursts of requests? Boundary Objects -> Input/Output Devices –Do we need an extra piece of hardware to handle the data generation rates? –Can the desired response time be realized with the available communication bandwidth between subsystems?

Connectivity in Distributed Systems  If the architecture is distributed, we need to describe the network architecture (communication subsystem) as well. Questions to ask –What are the transmission media? (Ethernet, Wireless) –What is the Quality of Service (QOS)? What kind of communication protocols can be used? –What are the available bandwidth requirements between the subsystems?

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java Data Management Some objects in the system model need to be persistent: Values for their attributes have a lifetime longer than a single execution A persistent object can be realized with one of the following mechanisms: File system: Low level access Database: Relational database Object-oriented database

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17 Data Management Questions How often is the database accessed? What is the expected request (query) rate? The worst case? Do the data need to be archived? Should the data be distributed? Does the system design try to hide the location of the databases (location transparency)? Is there a need for a single interface to access the data? What is the query format? Should the data format be extensible?

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java Defining Access Control In multi-user systems different actors usually have different access rights to different functionality and data How do we model these accesses? During analysis we model them by associating different use cases with different actors During system design we model them determining which objects are shared among actors.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19 Access Matrix We model access on classes with an access matrix: The rows of the matrix represents the actors of the system The column represent classes whose access we want to control Access Right: An entry in the access matrix. It lists the operations that can be executed on instances of the class by the actor.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 20 Access Matrix Example ArenaLeague Operator LeagueOwner Player Spectator Tournament > archive() schedule() view() applyFor() view() view() > createUser() view () view () view() applyForPlayer() view() applyForOwner() > archive() view() subscribe() edit () Match > end() play() forfeit() view() replay() Actors Classes Access Rights

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java Decide the Software Control Flow Choose explicit control: Centralized or decentralized Centralized control: Procedure-driven or event- driven Procedure-driven control Control resides within program code. Example: Main program calling procedures of subsystems. Simple, easy to build, hard to maintain (high recompilation costs) Event-driven control Control resides within a dispatcher calling functions via callbacks. Very flexible, good for the design of graphical user interfaces, easy to extend

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java Boundary Conditions Initialization The system is brought from a non-initialized state to steady-state Termination Resources are cleaned up and other systems are notified upon termination Failure Possible failures: Bugs, errors, external problems Good system design foresees fatal failures and provides mechanisms to deal with them.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 23 Modeling Boundary Conditions Boundary conditions are best modeled as use cases with actors and objects We call them boundary use cases or administrative use cases Actor: often the system administrator Interesting use cases: Start up of a subsystem Start up of the full system Termination of a subsystem Error in a subsystem or component, failure of a subsystem or component.

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24 ManageServer Use Case PlanningService ManageServer Administrator StartServer ShutdownServer ConfigureServer >