software architecture and the uml

43
Software Architecture and the UML Grady Booch

Upload: tamal

Post on 13-Feb-2016

46 views

Category:

Documents


0 download

DESCRIPTION

Software Architecture and the UML. Grady Booch. Walker Royce. An average software project: - 5-10 people - 10-15 month duration - 3-5 external interfaces - Some unknowns & risks. Defense Weapon System. Telecom Switch. National Air Traffic Control System. Commercial Compiler. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Software Architecture and the UML

Software Architectureand the UML

Grady Booch

Page 2: Software Architecture and the UML

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

Highermanagement complexity - Large scale - Contractual - Many stake holders - “Projects”

Lowermanagement complexity - Small scale - Informal - Single stakeholder - “Products”

Defense MIS System

Defense Weapon SystemTelecom

Switch

CASE Tool

National Air TrafficControl System

Enterprise IS(Family of ISApplications)

CommercialCompiler

BusinessSpreadsheet

IS ApplicationDistributed Objects

(Order Entry)

Small ScientificSimulation

Large-ScaleOrganization/Entity

Simulation

An average software project: - 5-10 people - 10-15 month duration - 3-5 external interfaces - Some unknowns & risks

EmbeddedAutomotive

Software

IS ApplicationGUI/RDB

(Order Entry)

Walker Royce

Page 3: Software Architecture and the UML

3

Forces in Software

Technology churn

Our enemy is complexity, and it’s our goal to kill it.Jan Baan

Performance Throughput

Capacity

Availability

Fail safe

Fault tolerance

FunctionalityCost Compatibility

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

Page 4: Software Architecture and the UML

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

Page 5: Software Architecture and the UML

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 stakeholdersmultiple views, multiple blueprints

Page 6: Software Architecture and the UML

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

Page 7: Software Architecture and the UML

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

Page 8: Software Architecture and the UML

8

Creating the UML

Booch method OMT

Unified Method 0.8OOPSLA ´95

OOSEOther methods

UML 0.9Web - June ´96

publicfeedback

Final submission to OMG, Sep ‘97

First submission to OMG, Jan ´97UML 1.1

OMG Acceptance, Nov 1997UML 1.3

UML 1.0UML partners

Page 9: Software Architecture and the UML

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

Page 10: Software Architecture and the UML

10

Meyer

Before and after conditions

Harel

StatechartsGamma, et al

Frameworks and patterns,

HP Fusion

Operation descriptions and message numbering

Embley

Singleton classes andhigh-level view

Wirfs-Brock

Responsibilities

Odell

Classification

Shlaer - Mellor

Object lifecycles

Rumbaugh

OMT

Booch

Booch method

Jacobson

OOSE

Contributions to the UML

Page 11: Software Architecture and 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

Page 12: Software Architecture and the UML

12

Overview of the UML Modeling elements

Relationships

Extensibility Mechanisms

Diagrams

Page 13: Software Architecture and the UML

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

Page 14: Software Architecture and the UML

14

Relationships Dependency

Association

Generalization

Realization

“simple part of”

“lives with the whole”

Page 15: Software Architecture and the UML

15

Models, Views, and Diagrams

Use CaseDiagramsUse Case

DiagramsUse CaseDiagrams

ScenarioDiagramsScenario

DiagramsCollaborationDiagrams

StateDiagramsState

DiagramsComponentDiagrams

ComponentDiagramsComponent

DiagramsDeploymentDiagrams

StateDiagramsState

DiagramsObjectDiagrams

ScenarioDiagramsScenario

DiagramsStatechartDiagrams

Use CaseDiagramsUse Case

DiagramsSequenceDiagrams

StateDiagramsState

DiagramsClassDiagrams

ActivityDiagrams

A model is a completedescription of a systemfrom a particularperspective

Models

Page 16: Software Architecture and the UML

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

Page 17: Software Architecture and the UML

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

Page 18: Software Architecture and the UML

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

Page 19: Software Architecture and the UML

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

Page 20: Software Architecture and the UML

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

Page 21: Software Architecture and the UML

21

Object Diagram static aspect, real perspective

Captures instances and links at a point in time

Instance of abstraction

relationship

Page 22: Software Architecture and the UML

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

Page 23: Software Architecture and the UML

23

Component Diagram Captures the physical structure of the

implementation (code components)

Components:

• Executables

• Library

• Table

• File

• Document

dependency

Page 24: Software Architecture and the UML

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

Page 25: Software Architecture and the UML

25

Deployment Diagram Captures the topology of a system’s

hardware

A piece of hardware

Page 26: Software Architecture and the UML

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

Page 27: Software Architecture and the UML

27

Sequence Diagram Captures dynamic behavior (time-oriented)

Class Message

Anonymous object

From the same message

Object lifelines

Instance of

From a stream

Page 28: Software Architecture and the UML

28

Sequence Diagram Captures dynamic behavior (time-oriented)

Purpose Model flow of control Illustrate typical scenarios

Page 29: Software Architecture and the UML

29

Collaboration Diagram “who sends to whom”

Captures dynamic behavior (message-oriented) – not “when”

Page 30: Software Architecture and the UML

30

Collaboration Diagram

Captures dynamic behavior (message-oriented)

Purpose Model flow of control Illustrate coordination of object structure and

control

Page 31: Software Architecture and the UML

31

Statechart Diagram Captures dynamic behavior (event-

oriented) – states of a particular object

event [guard] / action

(if TRUE)

Page 32: Software Architecture and the UML

32

Statechart Diagram Captures dynamic behavior (event-

oriented)

Purpose Model object lifecycleModel object lifecycle Model reactive objects (user interfaces, Model reactive objects (user interfaces,

devices, etc.)devices, etc.)

Page 33: Software Architecture and the UML

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

Page 34: Software Architecture and the UML

34

Activity Diagram

Captures dynamic behavior (activity-oriented)

Purpose Model business workflows Model operations

Page 35: Software Architecture and the UML

35

Software engineering processA 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

Page 36: Software Architecture and the UML

36

Key concepts Phase, Iterations

Process Workflows Activity, steps

Artifacts models

reports, documents

Worker: Architect

What does What does happen?happen?

What is What is produced?produced?

Who does Who does it?it?

When does When does architecture happen?architecture happen?

Page 37: Software Architecture and the UML

37

Lifecycle Phases

time

Inception Elaboration Construction 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

Page 38: Software Architecture and the UML

38

Major Milestones

time

Vision Baseline Architecture

InitialCapability

Product Release

Inception Elaboration Construction Transition

Page 39: Software Architecture and the UML

39

Phases and Iterations

An iteration is a sequence of activities with an established plan and evaluation criteria, resulting in an executable release

ArchIteration

... Dev Iteration

Dev Iteration

... TransIteration

...

Release Release Release Release Release Release Release Release

PrelimIteration

...

Inception Elaboration Construction Transition

Page 40: Software Architecture and the UML

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

Inception Elaboration Construction Transition

Page 41: Software Architecture and the UML

41

Unified Process structure

ManagementEnvironment

Business Modeling

ImplementationTest

Analysis & Design

Preliminary Iteration(s)

Iter.#1

PhasesProcess Workflows

Iterations

Supporting Workflows

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Page 42: Software Architecture and the UML

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.

Page 43: Software Architecture and the UML

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