perry_wolf

advertisement
Foundations for the Study of
Software Architecture
by Dewayne Perry &
Alexander Wolf
ACM SIGSOFT, Oct. 1992
Presented by
Charles Reid
2/7/2005
Dewayne E. Perry




Undergrad degree in Philosophy
with a M.S. and Ph.D. in
Computer Science
Long list of academic
employment including UCLA
(philosophy), CMU, and
University of Texas at Austin
Tons of professional research on
software processes and
software engineering
Board member of International
Software Process Association
(ISPA).
Alexander L. Wolf




Prof. of Computer Science at the
University of Colorado at Boulder
Director of Software Engineering
Research Lab
Chair of the ACM Special Interest
Group in Software Engineering
(SIGSOFT)
Several publications in several
areas – Networking, Distributed
Systems, Software Architecture,
Software Process, Security,
Component Management, …
Purpose of the Paper



The purpose is “to build the foundation
for software architecture”.
They look at other architectural
disciplines to gain an intuition for
software architecture.
The paper proposes a model for
software architecture and provides an
example
Where Does Architecture Fit?

Requirements


Architecture


Determines architectural elements, their interactions, and
the constraints they are subject to
Design


Determine what information, processing, and characteristics
of the information processing are needed
Modularization and detailed interfaces, algorithms, and data
types to support the architecture
Implementation

Representations of elements from the design
Why are they doing this?

The authors expect that disciplined software
architecture will:





Provide an architectural framework for satisfying
requirements
Provide a basis for design, cost estimation, and
process management
Promote reuse
Provide a basis for consistency and dependency
analysis
Provide a way to separate aesthetics from
engineering
Architectural Erosion and Drift

Architectural Erosion


The system becomes more brittle due to
violations of the original architecture
Architectural Drift


Due to “insensitivity about the
architecture”
They claim this leads to inadaptability
which can lead to lack of clarity or
coherence
Gaining the Intuition for
Software Architecture

Computer Architecture



Not a useful basis for software architecture
due to fundamental differences
Relatively small number of design elements
and scale is achieved through replication
Network Architecture


Also not too useful
Focuses on nodes and connections and
deals with a small number of topologies
Gaining the Intuition for
Software Architecture

Building Architecture





Provides useful insight
Multiple views of same structure
Architectural styles
Style and engineering
Style and materials
The Architectural Model

Software Architecture = {Elements, Form,
Rationale}


Elements can be processing elements, data
elements, or connecting elements
Form consists of weighted properties and
relationships


Weighting indicates importance or necessity of the
relationship
Rationale is the reasoning behind the architectural
decisions
Compiler Example




Compiler with 5 phases
Processing elements = {lexer, parser,
semantor, optimizer, code generator}
Data elements = {characters, tokens,
phrases, annotated phrases, object
code}
Connecting Elements = {procedure
calls, parameters}
Compiler Example cont.


Form might dictate that the optimizer and annotated
phrases must accompany each other but they are not
necessary elements
Form might also dictate relationship between data
elements
Processing Architectural View
Architectural Data View
Comparing Different Compiler
Models
Conclusions

They believe that they’re model and the
use of application-oriented properties
will:



Make it easier to compare architectures
Make it easier to determine which
architectural components can be reused
Better illustrate the dependencies and
consistency between architectural elements
Download