+ All Categories
Home > Documents > Software Architecture and the UML Grady Booch. 2 Dimensions of software complexity Higher technical...

Software Architecture and the UML Grady Booch. 2 Dimensions of software complexity Higher technical...

Date post: 23-Dec-2015
Category:
Upload: cleopatra-alberta-berry
View: 223 times
Download: 1 times
Share this document with a friend
Popular Tags:
42
Software Architecture and the UML Grady Booch
Transcript
Page 1: Software Architecture and the UML Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

Software Architectureand the UML

Grady Booch

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

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

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 ´97

UML 1.1OMG Acceptance, Nov 1997

UML 1.3

UML 1.0UML partners

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

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

11

Overview of the UML

The UML is a language for visualizing

specifying

constructing

documenting

the artifacts of a software-intensive system

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

12

Overview of the UML

Modeling elements

Relationships

Extensibility Mechanisms

Diagrams

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

13

Modeling Elements

Structural elements class, interface, collaboration, use case,

active class, component, node

Behavioral elements interaction, state machine

Grouping elements package, subsystem

Other elements note

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

14

Relationships

Dependency

Association

Generalization

Realization

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

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

17

Use Case Diagram

Captures system functionality as seen by users

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

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

19

Class Diagram

Captures the vocabulary of a system

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

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

21

Object Diagram

Captures instances and links

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

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

23

Component Diagram

Captures the physical structure of the implementation

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

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

25

Deployment Diagram

Captures the topology of a system’s hardware

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

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

27

Sequence Diagram

Captures dynamic behavior (time-oriented)

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

28

Sequence Diagram

Captures dynamic behavior (time-oriented)

Purpose Model flow of control

Illustrate typical scenarios

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

29

Collaboration Diagram

Captures dynamic behavior (message-oriented)

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

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

31

Statechart Diagram

Captures dynamic behavior (event-oriented)

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

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

33

Activity Diagram

Captures dynamic behavior (activity-oriented)

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

34

Activity Diagram

Captures dynamic behavior (activity-oriented)

Purpose Model business workflows

Model operations

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

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

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

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

38

Major Milestones

time

Vision Baseline Architecture

InitialCapability

Product Release

Inception Elaboration Construction Transition

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

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

41

Unified Process structure

ManagementEnvironment

Business Modeling

Implementation

Test

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 Grady Booch. 2 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant.

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.


Recommended