Architecture Description Languages and Architecture Viewpoints

advertisement
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
Download