cse 210: the role of software architecture in the development...

69
California Institute for Telecommunications and Information Technologies La Jolla, CA 92093-0405, USA Department of Computer Science & Engineering University of California, San Diego La Jolla, CA 92093-0114, USA Ingolf H. Krueger [email protected] , http://sosa.ucsd.edu with contributions from Bernhard Rumpe CSE 210: The Role of Software Architecture in the Development Process

Upload: others

Post on 10-Mar-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

California Institute for Telecommunications and Information TechnologiesLa Jolla, CA 92093-0405, USA

Department of Computer Science & EngineeringUniversity of California, San Diego

La Jolla, CA 92093-0114, USA

Ingolf H. [email protected], http://sosa.ucsd.edu

with contributions from Bernhard Rumpe

CSE 210: The Role of Software Architecture in the Development Process

Page 2: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 2April 14, 2005 CSE

Overview

• Background and Motivation

• The Notion and Role of Architecture

• Architecture vs. System Properties

• Architectural Aspects

• Modeling and Documenting Architectures

• From Domain Models to Architectures

• Architecture Evaluation

• Summary and Outlook

Page 3: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 3April 14, 2005 CSE

Motivation

“»Buy, don’t build« is the anthem of the software community today. But buying means less control over every aspect of a system’s development. How can this loss of control be reconciled with our desire for quality? Part of the answer lies in our assertion that, for large systems, quality lives primarily in the architecture.”

[BCK98]

Page 4: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 4April 14, 2005 CSE

Architecture? What Architecture?

Hardware

Hardware Abstraction

GUI-Coupling

Application Server

GUI

Middle-ware

Legacy

**

Page 5: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 5April 14, 2005 CSE

Architecture Improvement

GUI

Hardware

Hardware Abstraction

Middleware

GUI-Coupling Services

Legacy Systems

ApplicationServices

Hardware

Hardware Abstraction

GUI-Coupling

Application Server

GUI

Middle-ware

Legacy …

Page 6: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 6April 14, 2005 CSE

Overview

• Background and Motivation

• The Notion and Role of Architecture

• Architecture vs. System Properties

• Architectural Aspects

• Modeling and Documenting Architectures

• From Domain Models to Architectures

• Architecture Evaluation

• Summary and Outlook

Page 7: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 7April 14, 2005 CSE

A Software-Architecture describes the decomposition of a system into

units / components / subsystems,

and their

connections / interactions / relationships

observing

quality requirements / design guidelines / constraints

The Notion of Architecture

Often: (arbitrary) distinction between “functional”

und “non-functional” properties

More precisely: interfaces (offered/used)

• Syntax (signals/methods, typing)

• Behavior (protocols)

Page 8: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 8April 14, 2005 CSE

The Role of SW-Architecture

• Bounds leeway for implementation

• Fosters (or impedes!) system quality

• Supports the critical system services

• Defines starting point for – Change management

– Product families

– Division of work

Page 9: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 9April 14, 2005 CSE

The Role of SW-Architecture

The Classic: ISO/OSI-Layered Architecture

Application

Presentation

Session

Transport

Network

Link

Physical

• Clear assignment of responsibilities to layers

• What functionality does the component perform and where is it located?

• Who develops what part of the system?

• Positioning of business models

• Clear interfaces between layers

• Call constraints (no “skipping” of layers)

Page 10: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 10April 14, 2005 CSE

The Role of SW-Architecture

“CORBA” (simplified)

• Clear interfaces, responsibilities, decoupling

• Infrastructure for communication, distribution

• Implementation strategy

ORB

Component Component Component Component

...

Page 11: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 11April 14, 2005 CSE

Phase 1

Phase 2.1

Phase 3

Result 1.1

Phase 2.2

Result 1.2 Result 2.1 Result 2.2

Example: “Pipes & Filters”

Page 12: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 12April 14, 2005 CSE

Example: Compiler

Scanner Parser Code-Generator

ErrorOutput

Source CodeToken Abstract Syntax Tree

Target Code

Error Messages

Symbol-Table Error Trace

Page 13: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 13April 14, 2005 CSE

Example: “Interpreter”

Base System

Virtual MachineProgram

“User”

Page 14: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 14April 14, 2005 CSE

The Role of SW-Architecture

• The selection of an adequate architecture is a key success factor in system design

• Transparently structured architecture is basis for:– Project organization– Complexity management– Reuse– Component- and service-oriented development– System comprehension beyond team boundaries– Manageable system evolution

⇒Make architecture description part of every software project!

Page 15: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 15April 14, 2005 CSE

The Role of SW-Architecture

• Brings stability to the system⇒ small modifications to the requirements induce small

modifications to the system

• Has “conceptual integrity”⇒ Balance⇒ Simplicity⇒ Elegance, Clarity⇒ Practicality

A good SW-Architecture

Employ

• Dedicated SW-Architect(s)

• Architecture reviews

Page 16: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 16April 14, 2005 CSE

Architecture vs. Process

*

*

*

*

*

1

*1..*

*

Domain Model,Architecture

Business Processes,Use Cases, User Stories,

Requirements, Risks

ArchitectureDocument Implementation

Page 17: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 17April 14, 2005 CSE

Overview

• Background and Motivation

• The Notion and Role of Architecture

• Architecture vs. System Properties

• Architectural Aspects

• Modeling and Documenting Architectures

• From Domain Models to Architectures

• Architecture Evaluation

• Summary and Outlook

Page 18: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 18April 14, 2005 CSE

Architecture Influences System Properties

System

reusable

changeable portable

testable implementable

see also: [DW98]

Page 19: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 19April 14, 2005 CSE

Architecture Influences System Properties

System

functional

user friendly

performant

safe/secure

dependable

available

scalable

economical

extensible

see also: [DW98]

Page 20: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 20April 14, 2005 CSE

Overview

• Background and Motivation

• The Notion and Role of Architecture

• Architecture vs. System Properties

• Architectural Aspects

• Modeling and Documenting Architectures

• From Domain Models to Architectures

• Architecture Evaluation

• Summary and Outlook

Page 21: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 21April 14, 2005 CSE

Who is involved? Stakeholders!

Architect

End User

Maintainer

Customer

Marketing

Tester

Implementer

Administrator

Operator

Manager

Evaluation Team

Page 22: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 22April 14, 2005 CSE

Forces Influencing Architectures

Requirements

Technology Base Problem Domain Architecture

adapted from [H03]

Page 23: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 23April 14, 2005 CSE

Architectural Aspects

logicalview

implementationview

processview

deploymentview

serviceview

Functional requirements

Models of structure and behavior Source code organization

File structure

Configuration information

... Aspects of distribution and concurrency

Response times

Throughput

...

Mapping of executables to processors

System platform

Installation

...

see also: [RUP98]

Page 24: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 24April 14, 2005 CSE

Architectural Aspects and Models

adapted from: Endres, Rombach: A Handbook of Software and Systems Engineering. Empirical Observations, Laws and Theories, Addison Wesley, 2003, p. 22

Statecharts, Message Sequence Charts

Interfaces, Event Traces, Message Histories, Control Flow

Component Behavior

Object-/Class-/Component-Diagrams

Objects, Modules, Classes, Components

Structure

Statecharts, Message Sequence Charts

Events, States, Control Flow, Message Histories

System Behavior

Dataflow DiagramProcesses, Communication

Process

Entity Relationship-/ Class-Diagrams

Data StructuresData

Description TechniquesElements ConsideredModel View

Page 25: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 25April 14, 2005 CSE

Overview

• Background and Motivation

• The Notion and Role of Architecture

• Architecture vs. System Properties

• Architectural Aspects

• Modeling and Documenting Architectures

• From Domain Models to Architectures

• Architecture Evaluation

• Summary and Outlook

Page 26: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 26April 14, 2005 CSE

How to model and implement

• Units / components / subsystems,

• Connections / interactions / relationships,

• Quality attributes / development guidelines / constraints

adequately?

⇒ Approaches:

• Architecture Description Languages (ADLs)

• Architectural styles and patterns

• Domain specific architectures

• Infrastructures

Modeling and Documenting Architectures

Implementation

Modeling

Page 27: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 27April 14, 2005 CSE

How to model and implement

• Units / components / subsystems,

• Connections / interactions / relationships,

• Quality attributes / development guidelines / constraints

adequately?

⇒ Approaches:

• Architecture Description Languages (ADLs)

• Architectural styles and patterns

• Domain specific architectures

• Infrastructures

Modeling and Documenting Architectures

Implementation

Modeling

• Unicon/Wright (Garlan et al., CMU)

• Darwin (Kramer et al., Imperial College)

• Rapide (Luckham et al., Stanford)

• UML-RT (Rational)?!

• Service-ADL (Krueger et al., UCSD)

• …

Page 28: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 28April 14, 2005 CSE

Architecture vs. Process

*

*

*

*

*

1

*1..*

*

Domain Model,Architecture

Business Processes,Use Cases, User Stories,

Requirements, Risks

ArchitectureDocument Implementation

Page 29: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 29April 14, 2005 CSE

Methodological Treatment

Login

Video Order

Retrieval

Billing

...

Internet Video Rental

Administrator

User

Provider

billing delivery

init

Web_UI

Database

OrderTrackerOrderManager

class diagram:

• build model of application domain

• structural system view

• conceptualization as starting point for detailed design

Transition to behavior analysis and specification

Page 30: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 30April 14, 2005 CSE

An Architecture Document Outline

1. Introduction and Background Information

2. Glossary of Terms Used in the Document

3. Logical View

4. Deployment View

5. Process View

6. Implementation View

7. Supplementary Information

8. [Requirements Tracing]

9. [Risk Tracing]

10. Index

11. [Appendix]

Page 31: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 31April 14, 2005 CSE

1.1 High-level Overview of the Context, Goals and Major Constraints of the Architecture

Highly modular system for online video rental supporting high volumesof renting transactions for new releases. System needs to be extensible towards a general online rental system…

1.2 Customer/approval authority

Griswold Industries, Inc.

1.3 Organization and individuals developing the architecture

CSE210

1.4 Version of the Architecture

4.0

1.5 Scheduled Date of Completion

April 14, 2005

1. Introduction and Background Information

Page 32: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 32April 14, 2005 CSE

2. Glossary of Terms Used in the Document

Account: Information about customers, required for maintaining business relationship with the online store

Customer: Person or organization accessing the online store

Order: Sequence of line items describing items purchased or rented through the online store

SSL: Secure Socket Layer; standardized protocol for secure information exchange over the Internet

Page 33: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 33April 14, 2005 CSE

3.1 High-Level Operational View

3.1.1 High-level Component Diagram Showing a Logical

Decomposition of the System into Functional Areas.

3.1.2 Explanatory Text

3.2 Use Cases/User stories/Services (on the logical level)

3.3 Business Processes

3.4 Domain Model

3.5 Component View

3.5.1 Component Diagram

3.5.2 Rationale

3. Logical View

Page 34: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 34April 14, 2005 CSE

4.1 System Configuration

Web clients (IE, Firefox), Appserver farm, Database (DB2), Message Bus (WebSphere MQ) for communication between Appservers and Database, Linux for Appservers and Database, …

4.2 Deployment Diagram

4.3 [Event Traces]

4.4 [State Machines]

4.5 Database Layout

4. Deployment View

Page 35: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 35April 14, 2005 CSE

5.1 Parallel Processes

5.2 Performance Constraints per Use Case/Scenario

5.3 Security Constraints per Use Case/Scenario

5. Process View

Page 36: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 36April 14, 2005 CSE

6.1 Choice of Programming Language(s) + Rationale

6.2 Coding Standard

6.3 File Structure

6.4 Configuration Management

6. Implementation View

Page 37: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 37April 14, 2005 CSE

7.1 Standards Used

7.2 Technology Forecast

7.3 Findings

7.4 [Migration Strategies]

7. Supplementary Information

Page 38: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 38April 14, 2005 CSE

What are Patterns?

A pattern for software architecture describes a particular recurring design problem that arises in

specific design contexts, and presents a well-proven generic scheme for its solution. The solution scheme is specified by describing its constituent components, their responsibilities and relationships, and the ways in which

they collaborate.[POSA96]

Page 39: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 39April 14, 2005 CSE

adapted from [POSA96]

What are Patterns?

Pattern

• Describes one proven solution for a recurrent design problem

• Defines the context for the solution’s applicability

Architectural Pattern Design Pattern Idiom

granularitycoarse fine

Page 40: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 40April 14, 2005 CSE

adapted from [POSA96]What are Patterns?

Pattern

• Describes one proven solution for a recurrent design problem

• Defines the context for the solution’s applicability

Architectural Pattern Design Pattern Idiom

granularitycoarse fine

Page 41: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 41April 14, 2005 CSE

Architectural Patterns

“An architectural pattern expresses a fundamental structural organization schema for software systems. It provides a set of predefined subsystems, specifies their responsibilities, and includes rules and guidelines for

organizing the relationships between them.”[POSA96]

Page 42: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 42April 14, 2005 CSE

Architectural Patterns

Layer n

Layer n+1

...

...

Generalization

yields pattern “layered architecture”

Application

Presentation

Session

Transport

Network

Link

Physical

Presentation

Business logic

Database

Page 43: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 43April 14, 2005 CSE

Architectural Patterns – Schema

• Name:– Concise identifier for the pattern

• Context:– Under what circumstances is the pattern applicable?

• Problem:– What problem does the pattern solve?– What are the tradeoffs?

• Solution:– Structure– Behavior– Implementation

• Application examples, variants, consequences

Page 44: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 44April 14, 2005 CSE

Example: Subsystem Controller

• Context & Problem:– Complex system with large number of communication links

between individual components– Tight coupling of components– Coherent subsystems can be identified

• Solution:– Decompose hierarchically into subsystems– Introduce controller components to decouple subsystems– Every subsystem consists of one controller and a set of

further subsystems– Controllers manage communication

• of subsystems on the same level of abstraction• of subsystems on lower levels of abstraction

– Subsystems interact exclusively via “their” controller

Page 45: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 45April 14, 2005 CSE

Example: Subsystem Controller

• Structure:

Controller

Controller ControllerController

Controller

Controller Controller

Communication proceeds exclusively via the controllers’ interfaces

Subsystem

Page 46: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 46April 14, 2005 CSE

• Behavior:

Example: Subsystem Controller

s1:Subsys c:Controller s2:Subsys

makeCall makeCall

retValretVal

within the same subsystem

Use efficient communication mechanisms!

Page 47: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 47April 14, 2005 CSE

Subsystem 1 Subsystem 2

• Behavior:

Example: Subsystem Controller

s1:Subsys c1:Controller c2:Controller

makeCall makeCall

retValretVal

s2:Subsys

makeCallretVal

Communication across subsystem boundaries,may have to use less efficient communication mechanisms

Page 48: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 48April 14, 2005 CSE

• Example Applications:– Telecommunication switches

• Consequences:– Clear communication structure– High degree of decoupling– Possibly less efficient

• due to communication across multiple layers of hierarchy• in case of frequent communication across subsystem boundaries on

the same layer of hierarchy

– Starting point for performance analysis regarding communication paths

– Starting point for separation between “hard” and “soft” real-time constraints: ⇒ Within subsystems: “fast” communication⇒ between controllers: “slow” communication

Example: Subsystem Controller

Page 49: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 49April 14, 2005 CSE

• Related Patterns:– Facade (see [GOF95])

Example: Subsystem Controller

Facade

Controller ControllerController

The facade shields components within a subsystem from the environment. Components within the subsystem can interact directly

(no detour via the facade).

Relaying of calls

(unidirectional)

Page 50: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 50April 14, 2005 CSE

• Related Patterns:– Mediator (see [GOF95])

Example: Subsystem Controller

The mediator coordinates the communication among a set of components. The components interact exclusively via the mediator

Mediator

Controller ControllerController

Page 51: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 51April 14, 2005 CSE

Overview

• Background and Motivation

• The Notion and Role of Architecture

• Architecture vs. System Properties

• Architectural Aspects

• Modeling and Documenting Architectures

• From Domain Models to Architectures

• Architecture Evaluation

• Summary and Outlook

Page 52: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 52April 14, 2005 CSE

What’s in a Component?Component is unit of*

• Abstraction

• Accounting

• Analysis

• Compilation

• Delivery

• Deployment

• Dispute

• Extension

• Fault Containment

• Instantiation

• Installation

• Loading

• Locality

• Maintenance

• System Management

*C. Szyperski: Component Software. Beyond Object-Oriented Programming. Second Edition, p. 139—150, Addison-Wesley, 2002

Page 53: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 53April 14, 2005 CSE

Systematic Component Development

• Observe constraints:

– Technical Infrastructure

– Legacy systems

• Iterative, hierarchy-oriented process (“divide and conquer”):

1.) Starting point: Domain- und use case-model

2.) Derivation of components from entities of the domain model

3.) Definition of interfaces

Page 54: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 54April 14, 2005 CSE

Systematic Component Development

• Observe constraints:

– Technical Infrastructure

– Legacy systems

• Iterative, hierarchy-oriented process (“divide and conquer”):

1.) Starting point: Domain- und use case-model

2.) Derivation of components from entities of the domain model

3.) Definition of interfaces

• Who/what manages whom/what?

• What is logically/functionally related (same use case/service etc.)?

• What entities provide services to multiple others?

• What entities depend on each other strongly/weakly?

• What entities should be exchangeable independently from others?

• What is going to run on the same processor/network node?

• What parts are constrained by similar performance requirements?

• ...

Page 55: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 55April 14, 2005 CSE

Systematic Component/Service Development

Typical building blocks of an OO component:

Interface Classes

Domain Classes

ControlClasses

Control communication with

the environment

(“Services”)

Coordinate complex

tasks within component

Conceptual entities of the application domain

Page 56: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 56April 14, 2005 CSE

Systematic Component/Service DevelopmentCLS – Domain Model

CLS

KDoors KTrunk KAll Collision

reset

close

open

Command

*«ordered»

CommandSource

* 1Lock

1 *

controls

Target

SensorKey Button

Trunk

Right Door

Left Door

...

1

1

Page 57: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 57April 14, 2005 CSE

Systematic Component/Service Development

CommandInterpreter

ICLSCommand

OutSignalConverter

Opener Closer Resetter

LockRegInterpreter

TargetTable

IRegLock

TargetHandler

SourceRegInterpreter

SourceTable

IRegSource

SourceHandler

TestPlan

Tester

Interface Classes/Services

Control Classes

Domain Classes

Page 58: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 58April 14, 2005 CSE

Refactoring Techniques

• Given: – A design model of the system under consideration, or– An implementation of the system

• Problem:– The system requirements change (frequently)– Mandatory/desirable system qualities are missing:

• Clear structure• Reusability• Clarity• Changeability• ...

– The adaptation to changing requirements is difficult– The investment into the existing design should pay off

Page 59: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 59April 14, 2005 CSE

Refactoring Techniques

Refactoring:

– “minimally invasive” modifications to system structure

⇒ Strategy of small steps

– Set up adequate test suite before changing the system

– Carry out tests during and after performing the change

⇒ Increases confidence in correctness;

Goal: no change of observable behavior

Page 60: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 60April 14, 2005 CSE

Refactoring Techniques

Example: Move method to superclass

Motor

Left_Door_Motor

lock()

Right_Door_Motor

lock()

Motor

lock()

Left_Door_Motor Right_Door_Motor

“Pull Up Method” (see [F99])

Page 61: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 61April 14, 2005 CSE

Refactoring Techniques

• Refactoring proceeds in extremely small steps

• Each individual change is manageable

• Refactoring fits particularly well with design patterns and architectural patterns:

1.) Evaluate current state

2.) Select target pattern

3.) Identify sequence of refactoring steps leading to target pattern

4.) Perform refactoring until target pattern is reached

Page 62: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 62April 14, 2005 CSE

Overview

• Background and Motivation

• The Notion and Role of Architecture

• Architecture vs. System Properties

• Architectural Aspects

• Modeling and Documenting Architectures

• From Domain Models to Architectures

• Architecture Evaluation

• Summary and Outlook

Page 63: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 63April 14, 2005 CSE

Why Evaluate an Architecture?

• Stakeholders have different views/opinions on– what the system does– how the system should be structured– what documentation should look like– how the company/suppliers should conduct their business– …

• Architecture Evaluation– brings different stakeholders together– forum for voicing concerns (can, but need not, be related to

the software architecture under consideration)– forum for establishing common understanding of important

system aspects across development/business teams– means for risk identification and analysis

Page 64: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 64April 14, 2005 CSE

Why Evaluate an Architecture?

• Find errors early: 55% of all errors are made, but less than 10% are detected during requirements capture and analysis

• Find out if architecture is adequate wrt.– desirable/mandatory requirements

– critical use cases

– anticipated changes/extensions

– budget constraints

• Find out if state of the art development and documentation approaches were used

• Find interfaces for coupling existing architecture with legacy or new neighboring systems

• Decide among several competing architectural alternatives

• Determine migration path towards target architecture

Page 65: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 65April 14, 2005 CSE

Goal-Orientation

• First Step of Architecture Evaluation:

determine the specific goals for the system under consideration

• Prioritize goals!

• What are the critical properties/requirements the

architecture must support?

• Is the architecture suitable wrt. these

goals/properties/requirements?

• Determine the points in the architecture that influence

the critical goals

Page 66: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 66April 14, 2005 CSE

Key Elements of Architecture Evaluation

• Determine goals for the evaluation

– why does it happen?

– who has an interest in it?

• Build understanding of the application domain

– where are the difficulties in building this and similar applications?

– are standard solutions available/used?

• Build domain model if it doesn’t exist already

• Determine and prioritize goals for the system/organization

• Identify and prioritize scenarios (“critical”, “medium”, “low”)

• Play through scenarios, record adequacy of the architectural decisions

• Discuss alternative architectures and migration strategies

Page 67: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 67April 14, 2005 CSE

Evaluation Methods: Example

• Presentation1. Present ATAM

2. Present business drivers

3. Present architecture

• Investigation and Analysis4. Identify architectural approaches

5. Generate quality-attribute utility tree

6. Analyze architectural approaches

• Testing7. Brainstorm and prioritize scenarios

8. Analyze architectural approaches

• Reporting9. Present the results

ATAM: Architecture Tradeoff Analysis Method*

*P. Clements, R. Kazman, M. Klein: Evaluating Software Architectures. Methods and Case Studies, Addison Wesley, 2002

Page 68: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 68April 14, 2005 CSE

Overview

• Background and Motivation

• The Notion and Role of Architecture

• Architecture vs. System Properties

• Architectural Aspects

• Modeling and Documenting Architectures

• From Domain Models to Architectures

• Architecture Evaluation

• Summary and Outlook

Page 69: CSE 210: The Role of Software Architecture in the Development …cseweb.ucsd.edu/.../CSE_210_S05_SW_Architecture_Krueger.pdf · 2005-04-18 · Highly modular system for online video

© Ingolf H. Krueger 69April 14, 2005 CSE

Summary and Outlook

• Software Architecture key success factor in Software and Systems Engineering efforts

• Dedicated architecture (document) and review indispensable for complex systems

• Domain model is central point in the architecture development process

• Several standards and notations exist for documenting architectures

• Architecture evaluation excellent starting point for architecture improvement, team collaboration, information sharing

• CSE 218 next Winter Quarter!