Kellan Hilscher
Definition
Different perspectives on the components, behavioral
specifications, and interactions that make up a software
system
Importance of Formalized Architecture
Architectural decisions have a very long lifespan
Very valuable tool in developer and stakeholder
understanding of a system at a high level
Increased potential for commonality across
architectures.
Reduces time spent in maintenance and evolution
phases
Formal languages that can be used to represent the
architecture of software-intensive systems.
Evolved from Module Interconnection Languages
Allow for very high level views of a system even before
design work begins
Allow for early analysis and feasibility testing of
architectural possibilities
How ADLs Work
Decompose a system into multiple components,
connections, and configurations
Standardization through the use of styles
Provide different views of a system’s architecture
Definition
Diverse representations of a system’s architecture for
distinct audiences and uses
Ex. Structural, behavioral, physical
Viewpoints address concerns identified by particular
stakeholders
Ex. A process viewpoint might address concurrency,
distribution, scalability, and integration
First version released in 1997
Similar to IBM Rational for UML
Two components:
Acme ADL
AcmeStudio
Can act as a vehicle for standardizing elements used
across multiple ADLs
Architecture (formerly Avionics) Analysis & Design
Language
Describes DRE architectures with software and
hardware components
Dissuades “build then test” mentality
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
No clear consensus on what is required of architecture
modeling (or ADLs)
Can be very convoluted
Many lack explicit mechanisms for multiple
architecture views.
“[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 ADLs
No notion of entity restriction (styles)
Largely a documenting language
Idea:
One view cannot capture an entire complex architecture
Concurrent views:
4:
Logical View – Object Model
Process View – Concurrency Model
Physical View – Mapping and distribution of software to
hardware
Development View – Development environment view
+1:
Use Cases/Scenarios
Logical Model
-> Class Diagram
Process Model
-> Activity Diagram
Development Model
-> Package Diagram
Physical Model
-> Deployment Diagram
Wraps the notion of component standardization
around design languages:
Contexts (styles)
Properties (style conformant attributes)
Operations (define property behavior)
Provides additions to graph navigations
Less ambiguity
OCL tools parse UML diagrams to provide further
analysis