Architecture Description Languages and Architecture Viewpoints
description
Transcript of Architecture Description Languages and Architecture Viewpoints
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?