Domains of Concern in Software Architectures
and Architecture Description Languages

Nenad Medvidovic and David S. Rosenblum
Department of Information and Computer Science
University of California, Irvine
Irvine, California 92697-3425
{neno,dsr}@ics.uci.edu

Presentation Overview
n	Background and Motivation
n	Introduction to Architectural Domains
n	Overview of Architectural Domains
n	Discussion and Conclusions

Why Architecture?
n	Architecture — a key to reducing development costs
n	A shift in developer focus
n	Component-based development philosophy
Why ADLs?
n	Architectural models — distinct software artifacts
n	Informal vs. formal models
n	General-purpose vs. special-purpose languages
n	Several prototype ADLs have been developed

Architectural Domains
n	Classes of problems or areas of concern in architecture
o	need to be addressed by ADLs
n	Relating architectural domains and ADLs
o	ADL conceptual frameworks are key to the relationship
o	focus often on a particular architectural domain

Representation
n	Principal Problems
o	Aid stakeholder communication and understanding
n	Desired Solutions
o	Multiple perspectives
n	ADL Support
o	Explicit configuration
o	Graphical notations
o	Some additional views

Design Process Support
n	Principal Problems
o	Decompose large, distributed, heterogeneous systems
n	Desired Solutions
o	Multiple perspectives
o	Design guidance and rationale
n	ADL Support
o	Active specification
o	proactive vs. reactive
o	non-intrusive vs. intrusive

Analysis (1)
n	Principal Problems
o	Evaluate system properties upstream to reduce number and cost of errors
n	Desired Solutions
o	Static analysis
o	internal consistency
o	concurrent and distributed properties
o	design heuristics and style rules
o	Dynamic analysis
o	testing and debugging
o	assertion checking
o	runtime properties

Analysis (2)
n	ADL Support
o	Static analysis
o	parsers, compilers, model checkers
o	schedulability and resource utilization
o	design critics
o	refinement correctness
o	Dynamic analysis
o	scenarios
o	simulations
o	event visualization and filtering
o	dynamic constraint enforcement

Evolution (1)
n	Principal Problems
o	Evolution of design elements
o	Evolution of system families
n	Desired Solutions
o	Specification-time evolution
o	subtyping
o	incrementality
o	system families
o	Execution-time evolution
o	replication, insertion, removal, and reconnection
o	planned or unplanned
o	constraint satisfaction

Evolution (2)
n	ADL Support
o	Specification-time evolution
o	subtyping
o	explicit and flexible connectors
o	support for partial architectures
o	explicit specification of application family
o	Execution-time evolution
o	“constrained” vs. “pure” dynamism
o	conditional configuration
o	replication
o	constraint enforcement

Refinement
n	Principal Problems
o	Bridge the gap between informal diagrams and programming languages
n	Desired Solutions
o	Specify architectures at different abstraction levels
o	Correct and consistent refinement across levels
n	ADL Support
o	Correctness-preserving mappings
o	Comparative simulations of mapped architectures
o	Constraining the implementation

Traceability
n	Principal Problems
o	Multiple abstraction levels + multiple perspectives
n	Desired Solutions
o	Traceability across architectural cross-sections
n	ADL Support
o	Relationships among architectural perspectives is often poorly understood
o	Mapping from requirements to architecture is an open issue
o	Particular problem with implementation-constraining ADLs

Simulation/Executability
n	Principal Problems
o	Some dynamic properties require a running system
o	Early prototypes to demonstrate features to stakeholders
n	Desired Solutions
o	Construct simulations
o	Principled support for system generation
n	ADL Support
o	Simulation by generating event sequences and partially-ordered sets
o	Component implementations
o	Abstract class frameworks

Discussion and Conclusions
n	Architecture is concerned with several domains
n	ADLs reflect properties of one or more domains
n	Architectural domains — a unifying view of the discipline
n	ADL support varies across domains
o	extensive in some domains, sparse in others
n	Extensive support implies
o	important architecture modeling issues
o	simple problems
n	Sparse support implies
o	difficult problems
o	areas of future concentration
What problems are most important to address in the study of software architecture?