Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person...

91
Software Architecture and the UML Grady Booch
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    227
  • download

    0

Transcript of Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person...

Page 1: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

Software Architectureand the UML

Grady Booch

Page 2: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

2

Architecting a dog house

Can be built by one personRequires

Minimal modelingSimple processSimple tools

Page 3: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

3

Architecting a house

Built most efficiently and timely by a teamRequires

ModelingWell-defined processPower tools

Page 4: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

4

Architecting a high rise

Page 5: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

5

Early architecture

Progress - Limited knowledge of theory

Page 6: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

6

Modern architecture

Progress - Advances in materials - Advances in analysis

Scale - 5 times the span of the Pantheon - 3 times the height of Cheops

Page 7: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

7

Modeling a house

Page 8: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

8

Movements in civil architecture Bronze age/Egyptian (Imhotep)

Grecian/Roman (Vitruvius)

Byzantine/Romanesque

Gothic

Mannerism (Michelangelo, Palladio)

Baroque

Engineering/Rational/National/Romantic

Art noveau

Modern movement (Wright, LeCorbusier)

Progress - Imitation of previous efforts - Learning from failure - Integration of other forces - Experimentation

Page 9: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

9

Kinds of civil architecture

Community houses, flats and apartments, gardens,

education, hospitals, religion

Commerce shops and stores, restaurants, hotels, office

buildings, banks, airports

Industry industrial buildings, laboratories, farm buildings

Leisure sport, theaters and cinemas, museums

Neufert Architect’s DataThe Handbook of Building Types

Page 10: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

10

Forces in civil architecture

Avoiding failure - Safety factors - Redundancy - Equilibrium

Compression

Load

Tension

Load

Kinds of loads - Dead loads - Live loads - Dynamic loads

Any time you depart from established practice, make ten times theeffort, ten times the investigation. Especially on a very large project. - LeMessuier

Page 11: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

11

Shearing layers of change

Site

Skin

Structure

Services

Space plan

Stuff

Brand, How Buildings Learn

Page 12: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

12

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 13: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

13

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 14: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

14

The domain of architecting

ArchitectureQualities

Process

Architecture Representation

The “what” The “why”

The “how”The “who”

SystemFeatures

Architecture S/W Requirements

SystemQuality Attributes

Satisfies

Constrain

Organization

Architect

Skills

Stakeholders

Defines role

Produces

Follows

DefinesTechnology

Wojtek Kozaczynski

Page 15: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

15

We all know that ...Architecture and design are the same thing

Architecture and infrastructure are the same thing

<my favorite technology> is the architecture

A good architecture is the work of a single architect

Architecture is flat, one blueprint is enough

Architecture is just structure

System architecture precedes software architecture

Architecture cannot be measured and validated

Architecture is a Science

Architecture is an Art

Philippe Kruchten

Page 16: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

16

Architecture defined (again)

Architecture n (1555) 1: the art of science of building, specifically, the art or practice of designing and building structures and esp. habitable ones 2 a: formation or construction as or as if as the result of conscious act <the ~ of the garden> b: a unifying or coherent form or structure <the novel lacks ~>

Merriam Webster’s Collegiate Dictionary10th edition

Page 17: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

17

Architecture defined (yet again)

Software architecture encompasses the set of significant decisions about the organization of a software system selection of the structural elements and their

interfaces by which a system is composed

behavior as specified in collaborations among those elements

composition of these structural and behavioral elements into larger subsystem

architectural style that guides this organization

Mary Shaw, CMUGrady Booch,

Philippe Kruchten,Rich Reitman

Kurt Bittner, Rational

Page 18: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

18

Architecture defined (continued)

Software architecture also involves usage

functionality

performance

resilience

reuse

comprehensibility

economic and technology constraints and tradeoffs

aesthetic concerns

Mary Shaw, CMUGrady Booch,

Philippe Kruchten,Rich Reitman

Kurt Bittner, Rational

Page 19: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

19

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 20: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

20

Architecture metamodel

Software Architecture

Software Architecture Description

Architectural view

is made of

is represented by

Architecture Design Process

produces

Form

Component

Connection

Architectural Pattern

is a

is made of

Software Architects

are actors in

Logical view

Process view

Implemen- tation view

Deployment view

Requirements

satisfies

Architectural style

has

has

has

is a

System architecture

is part of

Architecture Style guide

Constraints

constrains

constrains

Use case view

relates to

Architectural Blueprint

depicts

Page 21: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

21

Models

Models are the language of designer, in many disciplines

Models are representations of the system to-be-built or as-built

Models are vehicle for communications with various stakeholders

Visual models, blueprints

Scale

Models allow reasoning about some characteristic of the real system

Page 22: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

22

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 23: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

23

Architectural view

An architectural view is a simplified description (an abstraction) of a system from a particular perspective or vantage point, covering particular concerns, and omitting entities that are not relevant to this perspective

Page 24: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

24

Architecturally significant elements

Not all design is architecture

Main “business” classes

Important mechanisms

Processors and processes

Layers and subsystems

Architectural views = slices through models

Page 25: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

25

Characteristics of a Good Architecture

Resilient

Simple

Approachable

Clear separation of concerns

Balanced distribution of responsibilities

Balances economic and technology constraints

Page 26: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

26

Representing System Architecture

Logical View

End-user Functionality

Implementation View

Programmers Software management

Process View

PerformanceScalabilityThroughput

System integrators

Deployment View

System topology Delivery, installation

Communication

System engineering

Conceptual Physical

Use Case View

Page 27: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

27

Relation Between Views

Logical view Component view

Process view

Deployment view

Page 28: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

28

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 29: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

29

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 30: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

30

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 31: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

31

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 32: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

32

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 33: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

33

Overview of the UML

The UML is a language for visualizing

specifying

constructing

documenting

the artifacts of a software-intensive system

Page 34: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

34

Overview of the UML

Modeling elements

Relationships

Extensibility Mechanisms

Diagrams

Page 35: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

35

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 36: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

36

Relationships

Dependency

Association

Generalization

Realization

Page 37: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

37

Extensibility Mechanisms Stereotype

Tagged value

Constraint

Page 38: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

38

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 39: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

39

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 40: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

40

Use Case Diagram

Captures system functionality as seen by users

Page 41: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

41

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 42: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

42

Class Diagram

Captures the vocabulary of a system

Page 43: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

43

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 44: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

44

Object Diagram

Captures instances and links

Page 45: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

45

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 46: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

46

Component Diagram

Captures the physical structure of the implementation

Page 47: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

47

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 48: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

48

Deployment Diagram

Captures the topology of a system’s hardware

Page 49: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

49

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 50: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

50

Sequence Diagram

Captures dynamic behavior (time-oriented)

Page 51: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

51

Sequence Diagram

Captures dynamic behavior (time-oriented)

Purpose Model flow of control

Illustrate typical scenarios

Page 52: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

52

Collaboration Diagram

Captures dynamic behavior (message-oriented)

Page 53: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

53

Collaboration Diagram

Captures dynamic behavior (message-oriented)

Purpose Model flow of control

Illustrate coordination of object structure and control

Page 54: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

54

Statechart Diagram

Captures dynamic behavior (event-oriented)

Page 55: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

55

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 56: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

56

Activity Diagram

Captures dynamic behavior (activity-oriented)

Page 57: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

57

Activity Diagram

Captures dynamic behavior (activity-oriented)

Purpose Model business workflows

Model operations

Page 58: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

58

Architecture and the UML

OrganizationPackage, subsystem

DynamicsInteractionState machine

Design View Implementation View

Process View

Components Classes, interfaces,collaborations

Active classes

Deployment View

Nodes

Use Case ViewUse cases

Page 59: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

59

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 60: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

60

Rational Unified Process

Iterative

Architecture-centric

Use-case driven

Risk confronting

Page 61: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

61

Focus over time

Discovery Invention

Focus

Implementation

Page 62: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

62

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 63: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

63

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 64: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

64

Major Milestones

time

Vision Baseline Architecture

InitialCapability

Product Release

Inception Elaboration Construction Transition

Page 65: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

65

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 66: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

66

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 67: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

67

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 68: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

68

Architecture and Iterations

Use caseModel

DesignModel

DeploymentModel

TestModel

ImplementationModel

Content

Page 69: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

69

Architectural design

Identify, select, and validate “architecturally significant” elements

Not everything is architecture Main “business” classes

Important mechanisms

Processors and processes

Layers and subsystems

Interfaces

Produce a Software Architecture Documen

Page 70: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

70

Architectural design workflow Select scenarios: criticality and risk

Identify main classes and their responsibility

Distribute behavior on classes

Structure in subsystems, layers, define interfaces

Define distribution and concurrency

Implement architectural prototype

Derive tests from use cases

Evaluate architectureIterate

Use case view

Logical view

Deployment view

Implementation view

Process view

Page 71: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

71

Sources of architecture

Theft

Method

Intuition

Classical system Unprecedented system

Theft

Method

Intuition

Page 72: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

72

Patterns

A pattern is a solution to a problem in a context

A pattern codifies specific knowledge collected from experience in a domain

All well-structured systems are full of patterns

Idioms

Design patterns

Architectural patterns

Page 73: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

73

Mechanisms Screws Brakes

Keys Pipes

Rivets Valves

Bearings Springs

Pins, axles, shafts Cranks and rods

Couplings Cams

Ropes, belts, and chains Pulleys

Friction wheels Engaging gears

Toothed wheels

Flywheels

Levers and connecting rods

Click wheels and gears

Ratchets

daVinci

Page 74: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

74

Design patterns Creational patterns

Abstract factory Prototype

Structural patterns Adapter Bridge Proxy

Behavioral patterns Chain of responsibility Mediator Visitor

Mechanisms are the soul of an architecture

Design PatternsGamma et al

Page 75: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

75

Modeling a design pattern

Page 76: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

76

Modeling a design pattern (cont.)

Page 77: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

77

Modeling a design pattern (cont.)

Page 78: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

78

Architectural patterns Distributed Layered

Event-driven MVC

Frame-based IR-centric

Batch Subsumption

Pipes and filters Disposable

Repository-centric

Blackboard

Interpreter

Rule-based

Software ArchitectureShaw and GarlanBuschmann et al

A System of PatternsBuschman et al

Booch

Page 79: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

79

Complex business systemReal-Life Object-oriented Systems

Soren Lauesen

SQL Database

Middle layer

GUI layer

ServiceAgent

purchase(customer, product, items)

Customer

name : StringAddress : String

save()

Customer

name : StringAddress : String

save()getName()updateName()

Customer Order Line

**

Product

**

Order Line

items : Product

getName()updateName()

Observer

update()

Order

date : Date

Product

name : Stringprice : Currency

getName()updateName()

Sales

product : Product

Page 80: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

80

Logical application architecture

RelationalDatabase

GraphicalUserInterface

RelationalDatabase

GraphicalUserInterface

BusinessObjectModel

GraphicalUserInterface

BusinessObjectModel

RelationalDatabase

Page 81: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

81

Physical application architecture

Relational Database Server(s)

Client CWWW Browser

WebServer

HTMLCGI

ASP Java

Business ObjectServices

Business ObjectEngine

Application

Business ObjectServices

Client A

Business ObjectEngine

Thinner client, thicker server

Client BApplication

Business ObjectServices

Business ObjectEngine

Business Object Server

DCOMADO/R

CORBA Beans

COMMTS

BeansETS

Page 82: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

82

Complex Internet systemThe Second Wave

Paul Dreyfus, Netscape

Client

Server

ApplicationServer

FulfillmentSystem

FinancialSystem

InventorySystem

RDBMSServer

Dynamic HTML, JavaScript, Javaplug-ins, source code enhancements

Java, C, C++, JavaScript, CGI

Java, C, C++, JavaBeans, CORBA, DCOM

Native languages

Page 83: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

83

Who are the architects?

Experience software development

domain

Pro-active, goal oriented

Leadership, authority

Architecture team balance

Page 84: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

84

Architect

Not just a top level designer Need to ensure feasibility

Not the project manager But “joined at the hip”

Not a technology expert Purpose of the system, “fit”,

Not a lone scientist Communicator

Page 85: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

85

Software architecture team charter Defining the architecture of the software Maintaining the architectural integrity of the

software Assessing technical risks related to the

software design Proposing the order and contents of the

successive iterations Consulting services Assisting marketing for future product

definition Facilitating communications between project

teams

Page 86: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

86

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 87: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

87

Futures

ADL: Architecture Description Languages UML, UniCon, LILEAnna, P++, LEAP, Wright,

µRapid

Standardization of concepts IEEE Working Group on Architecture

INCOSE Working Group on System Architecture

Systematic capture of architectural patterns

Page 88: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

88

References (Architecture) Len Bass, Paul Clements & Rick Kazman, Software Architecture in

Practice, Addison-Wesley, 1998.

Frank Buschmann, Régine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stahl, Pattern-Oriented Software Architecture - A System of Patterns, Wiley and Sons, 1996.

Christine Hofmeister, Robert Nord, Dilip Soni, Applied Software Architecture, Addison-Wesley 1999.

Eric Gamma, John Vlissides, Richard Helm, Ralph Johnson, Design Patterns, Addison-Wesley 1995.

Philippe Kruchten, “The 4+1 View Model of Architecture,” IEEE Software, 12 (6), November 1995, IEEE.

http://www.rational.com/support/techpapers/ieee/

Eberhardt Rechtin, Systems Architecting: Creating and Building Complex Systems, Englewood Cliffs NJ, Prentice-Hall, 1991.

Page 89: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

89

References (Architecture) Eberhardt Rechtin & Mark Maier, The Art of System

Architecting, CRC Press, 1997.

Recommended Practice for Architectural Description, Draft 2.0 of IEEE P1471, May 1998

http://www.pithecanthropus.com/~awg/

Mary Shaw, and David Garlan, Software Architecture—Perspectives on an Emerging Discipline, Upper Saddle River, NJ, Prentice-Hall, 1996.

Bernard I. Witt, F. Terry Baker, and Everett W. Merritt, Software Architecture and Design—Principles, Models, and Methods, New York NY, Van Nostrand Reinhold, 1995.

The World-wide Institute of Software Architects

http://www.wwisa.org

Page 90: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

90

References (UML) Grady Booch, James Rumbaugh, Ivar Jacobson, The Unified

Modeling Language User Guide, Addison-Wesley, 1999.

Page 91: Software Architecture and the UML Grady Booch. 2 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools.

91

References (Process) Barry Boehm, “A spiral model of software development and

enhancement,” IEEE Computer, May 1998.

Barry Boehm, “Anchoring the software process,” IEEE Software, July 1996.

Grady Booch, Object Solutions, Addison-Wesley, 1995.

Philippe Kruchten, “A Rational Development Process,” CrossTalk, July 1996.

http://www.rational.com/support/techpapers/devprcs/

Philippe Kruchten, The Rational Unified Process - An Introduction, Addison-Wesley, 1999.

Rational Unified Process 5.0, Rational, Cupertino, CA, 1998

Walker Royce, Software Project Management: a Unified Framework, Addison-Wesley, 1998

The Software Program Manager’s Network

http://www.spmn.com