Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and...

Preview:

Citation preview

Kellan Hilscher

Architecture Description Languages and

Architecture Viewpoints

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

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)

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

Some ADLs

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

Architecture (formerly Avionics) Analysis & Design Language

Describes DRE architectures with software and hardware components

Dissuades “build then test” mentality

AADL – TELECOM ParisTech

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

ArchC Example

Existing ADLs are far from perfect

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

UML as an ADL

“[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

Krutchen’s Architecture Model

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

Logical Architecture

Process Architecture

Development Architecture

Physical Architecture

Why Krutchen’s Model?

Logical Model -> Class Diagram

Process Model -> Activity Diagram

Development Model -> Package Diagram

Physical Model -> Deployment Diagram

It can be approximated with UML!

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

4+1, UML, and OCL

Questions?

Recommended