27
Kellan Hilscher Architecture Description Languages and Architecture Viewpoints

Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

Embed Size (px)

Citation preview

Page 1: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

Kellan Hilscher

Architecture Description Languages and

Architecture Viewpoints

Page 2: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

DefinitionDifferent perspectives on the components,

behavioral specifications, and interactions that make up a software system

Importance of Formalized ArchitectureArchitectural decisions have a very long lifespanVery valuable tool in developer and stakeholder

understanding of a system at a high levelIncreased potential for commonality across

architectures.Reduces time spent in maintenance and evolution

phases

Software Architecture Descriptions

Page 3: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

Formal languages that can be used to represent the architecture of software-intensive systems.Evolved from Module Interconnection LanguagesAllow for very high level views of a system even

before design work beginsAllow for early analysis and feasibility testing of

architectural possibilitiesHow ADLs Work

Decompose a system into multiple components, connections, and configurations

Standardization through the use of stylesProvide different views of a system’s architecture

Architecture Description Languages (ADLs)

Page 4: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

DefinitionDiverse representations of a system’s

architecture for distinct audiences and usesEx. Structural, behavioral, physical

Viewpoints address concerns identified by particular stakeholdersEx. A process viewpoint might address

concurrency, distribution, scalability, and integration

Architectural Viewpoints

Page 5: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

Some ADLs

Page 6: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

First version released in 1997

Similar to IBM Rational for UML

Two components:Acme ADLAcmeStudio

Can act as a vehicle for standardizing elements used across multiple ADLs

Acme – Carnegie Mellon University

Page 7: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance
Page 8: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

Architecture (formerly Avionics) Analysis & Design Language

Describes DRE architectures with software and hardware components

Dissuades “build then test” mentality

AADL – TELECOM ParisTech

Page 9: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance
Page 10: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

Specialized for processor architecture description.

Allows users to generate assemblers and simulators for processors from:Architecture Resources: User provides

processor resource info from programmer’s manual

Instruction Set Architecture: User enters information about each instruction such as format and syntax, behavior, and info for decoding

Tailors the modeling environment to your processor

ArchC

Page 11: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

ArchC Example

Page 12: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

Existing ADLs are far from perfect

Page 13: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

No clear consensus on what is required of architecture modeling (or ADLs)

Can be very convolutedMany lack explicit mechanisms for multiple

architecture views.

ADL Shortcomings

Page 14: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance
Page 15: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

UML as an ADL

Page 16: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

“[A]n ADL for software application focuses on the high-level structure of the overall application rather than the implementation details of any specific source module”

Less formalized than ADLsNo notion of entity restriction (styles)Largely a documenting language

UML Shortcomings as an ADL

Page 17: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

Krutchen’s Architecture Model

Page 18: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

Idea:One view cannot capture an entire complex

architectureConcurrent views:

4:Logical View – Object ModelProcess View – Concurrency ModelPhysical View – Mapping and distribution of

software to hardwareDevelopment View – Development environment view

+1:Use Cases/Scenarios

Krutchen’s 4+1 View Model

Page 19: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

Logical Architecture

Page 20: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

Process Architecture

Page 21: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

Development Architecture

Page 22: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

Physical Architecture

Page 23: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

Why Krutchen’s Model?

Page 24: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

Logical Model -> Class Diagram

Process Model -> Activity Diagram

Development Model -> Package Diagram

Physical Model -> Deployment Diagram

It can be approximated with UML!

Page 25: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

Wraps the notion of component standardization around design languages:Contexts (styles)Properties (style conformant attributes)Operations (define property behavior)

Provides additions to graph navigationsLess ambiguity

OCL tools parse UML diagrams to provide further analysis

Object Constraint Language

Page 26: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

4+1, UML, and OCL

Page 27: Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance

Questions?