Software Architecture and the UML Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

Slides:



Advertisements
Similar presentations
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Advertisements

UML Unified Modeling Language Basic Concepts. UML What is the UML*? UML stands for Unified Modeling Language The UML combines the best of the best from:
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
UML Overview Unified Modeling Language Basic Concepts.
Uml and Use Cases CS 414, Software Engineering I Mark Ardis Rose-Hulman Institute January 9, 2003.
Lifecycle Phases time InceptionElaborationConstruction Transition  Define the scope of the project and develop business case  Inception Define the scope.
Unified Software Practices v 5.0 Copyright  1998 Rational Software, all rights reserved 1 R Introduction to Rational Unified Process.
Unified Modeling (Part I) Overview of UML & Modeling
Rational Worldwide Software Symposium
1 UML Component and Deployment Diagrams. Models, Views, and Diagrams Use Case Diagrams Use Case Diagrams Use Case Diagrams Scenario Diagrams Scenario.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
© Copyright Eliyahu Brutman Programming Techniques Course.
Itntroduction to UML, page 1 Introduction to UML.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Object Oriented Analysis and Design Using the UML
Software Architecture and the UML Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Principles of Object Technology Module 1: Principles of Modeling.
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
UML - Development Process 1 Software Development Process Using UML (2)
UML Unified Markup Language Ziya Karakaya Atılım University, Computer Engineering
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Introduction to UML 1 Quick Tour Why do we model? What is the UML? Foundation elements Unifying concepts Language architecture Relation to other OMG technologies.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
An Introduction to Software Architecture
Lecture 3: Visual Modeling & UML 1. 2 Copyright © 1997 by Rational Software Corporation Computer System Business Process Order Item Ship via “ Modeling.
Rational Unified Process , Introduction to UML. What is RUP? The Rational Unified Model is a software engineering process Both process and product Provides.
Systems Analysis and Design in a Changing World, 3rd Edition
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
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.
Unified Software Practices v 5.0 Copyright  1998 Rational Software, all rights reserved 1 R Introduction to Rational Unified Process Adapted by Dr. Spiegel.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
1 Introduction to UML. 2 What is UML? UML is an acronym for Unified Modeling Language. Unified –Combines the best from existing object- oriented software.
TAL7011 – Lecture 4 UML for Architecture Modeling.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
COP43311 Copyright © 1997 by Rational Software Corporation Unified Modeling Language (UML) Based on slides and papers from Rational’s UML website
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
SWT - Diagrammatics Lecture 4/4 - Diagramming in OO Software Development - partB 4-May-2000.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Introduction to OOAD and the UML
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
UML Diagrams for Caradon developers Daniel DG Moth Core Development Group, Research Student University of Brighton, MSc Object Oriented Software Technology.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
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.
Introduction to Rational Unified Process
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Lecturer: Prof. Dr. Ir. Riri Fitri Sari MM MSc EE Department University of Indonesia This slide was initially set by M. Salman, ST, MSc Session #1 – 4.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 4: Analysis and Design Overview.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
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.
UML (Unified Modeling Language)
Use Cases UML. Use Cases What are Use Cases?  A statement of the functionality users expect and need, organized by functional units  Different from.
Introduction to UML.
Object-Oriented Analysis and Design
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Unified Modeling Language
Introduction to Unified Modeling Language (UML)
UML: Unified modeling language
Rational Worldwide Software Symposium
Rational Unified Process
Unified Modeling Language
Introduction to UML.
Rational Worldwide Software Symposium
Software Design Lecture : 15.
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
Rational Worldwide Software Symposium
Introduction to OOAD and the UML
Presentation transcript:

Software Architecture and the UML Grady Booch

2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant - Custom, unprecedented, architecture reengineering - High performance Lower technical complexity - Mostly 4GL, or component-based - Application reengineering - Interactive performance Higher management complexity - Large scale - Contractual - Many stake holders - “Projects” Lower management complexity - Small scale - Informal - Single stakeholder - “Products” Defense MIS System Defense Weapon System Telecom Switch CASE Tool National Air Traffic Control System Enterprise IS (Family of IS Applications) Commercial Compiler Business Spreadsheet IS Application Distributed Objects (Order Entry) Small Scientific Simulation Large-Scale Organization/Entity Simulation An average software project: people month duration external interfaces - Some unknowns & risks Embedded Automotive Software IS Application GUI/RDB (Order Entry) Walker Royce

3 Forces in Software Technology churn Our enemy is complexity, and it’s our goal to kill it. Jan Baan PerformanceThroughput Capacity Availability Fail safe Fault tolerance Functionality CostCompatibility Resilience The challenge over the next 20 years will not be speed or cost or performance; it will be a question of complexity. Bill Raduchel, Chief Strategy Officer, Sun Microsystems

4 Architectural style  An architecture style defines a family of systems in terms of a pattern of structural organization.  An architectural style defines ­a vocabulary of components and connector types ­a set of constraints on how they can be combined ­one or more semantic models that specify how a system’s overall properties can be determined from the properties of its parts Mary Shaw, CMU

5 Many stakeholders, many views  Architecture is many things to many different interested parties ­end-user ­customer ­project manager ­system engineer ­developer ­architect ­maintainer ­other developers  Multidimensional reality  Multiple stakeholders multiple views, multiple blueprints

6 How many views?  Simplified models to fit the context  Not all systems require all views: ­Single processor: drop deployment view ­Single process: drop process view ­Very Small program: drop implementation view  Adding views: ­Data view, security view

7 The Value of the UML  Is an open standard  Supports the entire software development lifecycle  Supports diverse applications areas  Is based on experience and needs of the user community  Supported by many tools

8 Creating the UML Booch methodOMT Unified Method 0.8 OOPSLA ´95 OOSE Other methods UML 0.9 Web - June ´96 public feedback Final submission to OMG, Sep ‘97 First submission to OMG, Jan ´97 UML 1.1 OMG Acceptance, Nov 1997 UML 1.3 UML 1.0 UML partners

9 UML Partners  Rational Software Corporation  Hewlett-Packard  I-Logix  IBM  ICON Computing  Intellicorp  MCI Systemhouse  Microsoft  ObjecTime  Oracle  Platinum Technology  Taskon  Texas Instruments/Sterling Software  Unisys

10 Meyer Before and after conditions Harel Statecharts Gamma, et al Frameworks and patterns, HP Fusion Operation descriptions and message numbering Embley Singleton classes and high-level view Wirfs-Brock Responsibilities Odell Classification Shlaer - Mellor Object lifecycles Rumbaugh OMT Booch Booch method Jacobson OOSE Contributions to the UML

11 Overview of the UML  The UML is a language for ­visualizing ­specifying ­constructing ­documenting the artifacts of a software-intensive system based on object-oriented architecture

12 Overview of the UML  Modeling elements  Relationships  Extensibility Mechanisms  Diagrams

13 Modeling elements in all diagrams  Structural elements ­class, interface, collaboration, use case, active class, component, node  Behavioral elements ­interaction, state machine  Grouping elements ­package, subsystem  Other elements ­note DATA METHODS + public - private # protected NAME : TYPE [default value] INTERFACE (what is seen from outside) description

14 Relationships  Dependency  Association  Generalization  Realization “simple part of” “lives with the whole”

15 Models, Views, and Diagrams Use Case Diagrams Use Case Diagrams Use Case Diagrams Scenario Diagrams Scenario Diagrams Collaboration Diagrams State Diagrams State Diagrams Component Diagrams Component Diagrams Component Diagrams Deployment Diagrams State Diagrams State Diagrams Object Diagrams Scenario Diagrams Scenario Diagrams Statechart Diagrams Use Case Diagrams Use Case Diagrams Sequence Diagrams State Diagrams State Diagrams Class Diagrams Activity Diagrams A model is a complete description of a system from a particular perspective Models

16 Diagrams  A diagram is a view into a model ­Presented from the aspect of a particular stakeholder ­Provides a partial representation of the system ­Is semantically consistent with other views  In the UML, there are nine standard diagrams ­Static views: use case, class, object, component, deployment ­Dynamic views: sequence, collaboration, statechart, activity

17 Use Case Diagram ( interaction user – system )  Captures system functionality as seen by users Behavior may be extended (similar but more) A user may play more than one actor (ACTOR specifies “WHAT”, and not “HOW”) “uses” Some common functionality

18 Use Case Diagram  Captures system functionality as seen by users  Built in early stages of development  Purpose ­Specify the context of a system ­Capture the requirements of a system ­Validate a system’s architecture ­Drive implementation and generate test cases  Developed by analysts and domain experts

19 Class Diagram  Captures the vocabulary of a system “part of” “inheritance” Spec. kind of office Relationship between objects of the same class (many departments have common name) 0 or more (many) “uses” Couples logical and physical part 1 or more

20 Class Diagram  Captures the vocabulary of a system  Built and refined throughout development  Purpose ­Name and model concepts in the system ­Specify collaborations ­Specify logical database schemas  Developed by analysts, designers, and implementers

21 Object Diagram static aspect, real perspective  Captures instances and links at a point in time Instance of abstraction relationship

22 Object Diagram  Shows instances and links  Built during analysis and design  Purpose ­Illustrate data/object structures ­Specify snapshots  Developed by analysts, designers, and implementers

23 Component Diagram  Captures the physical structure of the implementation ( code components ) Components: Executables Library Table File Document dependency

24 Component Diagram  Captures the physical structure of the implementation  Built as part of architectural specification  Purpose ­Organize source code ­Construct an executable release ­Specify a physical database  Developed by architects and programmers

25 Deployment Diagram  Captures the topology of a system’s hardware A piece of hardware

26 Deployment Diagram  Captures the topology of a system’s hardware  Built as part of architectural specification  Purpose ­Specify the distribution of components ­Identify performance bottlenecks  Developed by architects, networking engineers, and system engineers

27 Sequence Diagram  Captures dynamic behavior (time-oriented) Class Message Anonymous object From the same message Object lifelines Instance of From a stream

28 Sequence Diagram  Captures dynamic behavior (time-oriented)  Purpose ­Model flow of control ­Illustrate typical scenarios

29 Collaboration Diagram “who sends to whom”  Captures dynamic behavior (message- oriented) – not “when”

30 Collaboration Diagram  Captures dynamic behavior (message- oriented)  Purpose ­Model flow of control ­Illustrate coordination of object structure and control

31 Statechart Diagram  Captures dynamic behavior (event- oriented) – states of a particular object event [guard] / action (if TRUE)

32 Statechart Diagram  Captures dynamic behavior (event- oriented)  Purpose ­Model object lifecycle ­Model reactive objects (user interfaces, devices, etc.)

33 Activity Diagram – work flow, operation  Captures dynamic behavior (activity-oriented) Building a house activity Syntax not defined in UML Semantics: Evaluate expression Send a method Create or destroy an object Synchronization bars Change of state or attribute Parallel activities

34 Activity Diagram  Captures dynamic behavior (activity-oriented)  Purpose ­Model business workflows ­Model operations

35 Software engineering process A set of partially ordered steps intended to reach a goal. In software engineering the goal is to build a software product or to enhance an existing one.  Architectural process ­Sequence of activities that lead to the production of architectural artifacts:  A software architecture description  An architectural prototype

36 Key concepts  Phase, Iterations  Process Workflows ­Activity, steps  Artifacts ­models ­reports, documents  Worker: Architect What does happen? What is produced? Who does it? When does architecture happen?

37 Lifecycle Phases time InceptionElaborationConstruction Transition  Inception Define the scope of the project and develop business case  Elaboration Plan project, specify features, and baseline the architecture  Construction Build the product  Transition Transition the product to its users

38 Major Milestones time VisionBaseline Architecture Initial Capability Product Release InceptionElaborationConstruction Transition

39 Phases and Iterations An iteration is a sequence of activities with an established plan and evaluation criteria, resulting in an executable release Arch Iteration...Dev Iteration Dev Iteration...Trans Iteration... Release Prelim Iteration... InceptionElaborationConstruction Transition

40 Architecture-Centric  Models are vehicles for visualizing, specifying, constructing, and documenting architecture  The Unified Process prescribes the successive refinement of an executable architecture time Architecture InceptionElaborationConstruction Transition

41 Unified Process structure Management Environment Business Modeling Implementation Test Analysis & Design Preliminary Iteration(s) Iter. #1 Phases Process Workflows Iterations Supporting Workflows Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Deployment Configuration Mgmt Requirements ElaborationTransitionInceptionConstruction

42 Architecture is making decisions The life of a software architect is a long (and sometimes painful) succession of suboptimal decisions made partly in the dark.

43 IBM acquire Rational Software IBM and Rational Software Corp. announced the two companies have entered into a definitive agreement for IBM to acquire the equity of Rational at a price of approximately $2.1 billion in cash or $10.50 per share. (2003) = IBM