Perry Wolf
Perry Wolf
Perry Wolf
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
Determine what information, processing, and
characteristics of the information processing are
needed
Architecture
Determines architectural elements, their interactions,
and the constraints they are subject to
Design
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 theyre 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