Foundations for the Study of Software Architecture - Department of ...
Foundations for the Study of Software Architecture - Department of ...
Foundations for the Study of Software Architecture - Department of ...
Transform your PDFs into Flipbooks and boost your revenue!
Leverage SEO-optimized Flipbooks, powerful backlinks, and multimedia content to professionally showcase your products and significantly increase your reach.
Why?<br />
<strong>Foundations</strong> <strong>for</strong> <strong>the</strong> <strong>Study</strong> <strong>of</strong><br />
S<strong>of</strong>tware <strong>Architecture</strong><br />
? Referenced by <strong>the</strong> main books and papers<br />
? Good history <strong>of</strong> <strong>the</strong> s<strong>of</strong>tware engineering<br />
context<br />
? Relationships to o<strong>the</strong>r fields<br />
Dewayne E. Perry and Alexander L. Wolf<br />
ACM SIGSOFT S<strong>of</strong>tware Engineering Notes vol. 17 no 4<br />
October 1992 Pag.. 40-52<br />
Presented by Letizia Jaccheri<br />
Structure <strong>of</strong> <strong>the</strong> Paper<br />
Abstract<br />
? Abstract<br />
? Introduction<br />
? Intuition, Context, and Motivation<br />
? Model <strong>of</strong> S<strong>of</strong>tware <strong>Architecture</strong><br />
? Examples<br />
? Benefits<br />
? Conclusions<br />
? <strong>Architecture</strong><br />
{<br />
? Elements: components and connectors<br />
? Form: properties and relationships among <strong>the</strong><br />
elements (constraints on <strong>the</strong> elements)<br />
? Rationale: system constraints, which most<br />
derive from requirements<br />
}<br />
1
Introduction (History)<br />
Introduction (Benefits)<br />
? 1970s S<strong>of</strong>tware Design<br />
? 1980s CASE tools, process, <strong>for</strong>mal<br />
specifications<br />
? 1990 architecture<br />
? 2000 COTS, components, etc.<br />
? Framework <strong>for</strong> satisfying requirements<br />
? Technical basis <strong>for</strong> design and as <strong>the</strong><br />
managerial basis <strong>for</strong> cost estimation and<br />
process management<br />
? Basis <strong>for</strong> reuse<br />
? Dependency and consistency analysis<br />
Intuition<br />
? Computing Hardware <strong>Architecture</strong><br />
? Network <strong>Architecture</strong><br />
? Building <strong>Architecture</strong><br />
Computing Hardware <strong>Architecture</strong><br />
? Both generic and<br />
specific<br />
? RISC<br />
? Pipeline<br />
? Small number <strong>of</strong> design<br />
elements<br />
? Scale is achieved by<br />
replication <strong>of</strong> elements<br />
? Multi-processors<br />
? Similarities and<br />
differences with<br />
s<strong>of</strong>tware architectures<br />
? Types and instances<br />
2
Network architecture<br />
Civil engineering<br />
? Star networks<br />
? Ring network<br />
? Manhattan street<br />
? Similarities and differences with s<strong>of</strong>tware<br />
architectures<br />
? Distributed network<br />
? Message passing<br />
? Multiple views<br />
? To understand different<br />
aspects<br />
? Architectural styles<br />
? Form <strong>for</strong> codification that<br />
can be used descriptively<br />
or prescriptively<br />
? Style and engineering<br />
? Style and materials<br />
? Principles and material<br />
properties<br />
Italian Romanic, marble<br />
Italian Gothic, Milan<br />
3
Trondheim and Torino<br />
Royal Garden, Trondheim<br />
The context<br />
Requirements<br />
? Requirements<br />
? <strong>Architecture</strong><br />
? Design<br />
? Implementation<br />
Are concerned with <strong>the</strong> determination <strong>of</strong> <strong>the</strong><br />
in<strong>for</strong>mation, processing, and <strong>the</strong><br />
characteristics <strong>of</strong> that in<strong>for</strong>mation and<br />
processing needed by <strong>the</strong> user <strong>of</strong> <strong>the</strong> system<br />
Note that <strong>the</strong> notion <strong>of</strong> requirements presented<br />
here is an idealistic one…<br />
? Computer science engineering<br />
4
<strong>Architecture</strong><br />
Design<br />
Is concerned with <strong>the</strong> selection <strong>of</strong> architectural<br />
elements, <strong>the</strong>ir interactions, and <strong>the</strong><br />
constraints on those elements and <strong>the</strong>ir<br />
interactions necessary to provide a<br />
framework in which to satisfy <strong>the</strong><br />
requirements and serve as a basis <strong>for</strong> <strong>the</strong><br />
design<br />
Is concerned with <strong>the</strong> modularization and <strong>the</strong><br />
detailed interfaces <strong>of</strong> <strong>the</strong> design elements,<br />
<strong>the</strong>ir algorithms and procedures, and <strong>the</strong> data<br />
types needed to support <strong>the</strong> architecture and<br />
to satisfy <strong>the</strong> requirements<br />
Implementation<br />
…<br />
Is concerned with <strong>the</strong> representations <strong>of</strong> <strong>the</strong><br />
algorithms and <strong>the</strong> data types that satisfy <strong>the</strong><br />
design, architecture, and requirements.<br />
? The different parts <strong>of</strong> a particular product are<br />
by no means as simple as this<br />
characterization. There is a continuum <strong>of</strong><br />
possible choices <strong>of</strong> models, abstractions,<br />
trans<strong>for</strong>mations, and representations. We<br />
simplify this continuum into four discrete parts<br />
primarily to provide an intuition about how<br />
architecture is related to <strong>the</strong> requirements<br />
and design <strong>of</strong> a s<strong>of</strong>tware system<br />
5
Motivations<br />
From motivations to goals<br />
? Evolution<br />
? What: Systems evolve and are adapted to new users<br />
? Problem: Systems are resistant to changes<br />
? Causes: erosion (violation) and drift (insensibility)<br />
? Customization<br />
? What: building similar systems<br />
? Problem: when building new systems, recreate design<br />
elements <strong>for</strong> each system<br />
? Causes: <strong>the</strong>re are no standard templates <strong>for</strong> architectural<br />
styles<br />
? Prescribe <strong>the</strong> architectural constraints to <strong>the</strong> desired<br />
level<br />
? …determine <strong>the</strong> desired level <strong>of</strong> generality or particularity,<br />
define what is necessity and what is luxury, …<br />
? Separate aes<strong>the</strong>tics from engineering<br />
? Load bearing versus decoration<br />
? Express different aspects <strong>of</strong> <strong>the</strong> architecture in an<br />
appropriate manner<br />
? Per<strong>for</strong>m dependency and consistency analysis<br />
Model <strong>of</strong> S<strong>of</strong>tware <strong>Architecture</strong><br />
? S<strong>of</strong>tware architecture = {Elements, Form,<br />
Rationale}<br />
Elements<br />
? Processing<br />
? Data<br />
? Connecting<br />
6
Form<br />
Rationale<br />
? Weighted Properties<br />
? are used to constrain <strong>the</strong> choice <strong>of</strong> architectural<br />
elements<br />
? Relationships<br />
? are used to constrain <strong>the</strong> placement <strong>of</strong> architectural<br />
elements<br />
? to indicate alternatives<br />
? Motivations <strong>for</strong> choices<br />
? In s<strong>of</strong>tware architecture, <strong>the</strong> rationale<br />
explicates <strong>the</strong> satisfaction <strong>of</strong> <strong>the</strong> system<br />
constraints. These constraints are<br />
determined by considerations ranging from<br />
basic functional aspects such as economics,<br />
per<strong>for</strong>mance, and reliability.<br />
Architectural style<br />
Process/data/connector<br />
? Examples: distributed, multi process,<br />
blackboard, etc.<br />
? Encapsulates important decisions about<br />
elements and relationships<br />
? We observe that if a process view <strong>of</strong> an<br />
architecture is provided, <strong>the</strong> resulting<br />
emphasis is on <strong>the</strong> data flow though <strong>the</strong><br />
processing elements and on some aspects <strong>of</strong><br />
<strong>the</strong> connections between <strong>the</strong> processing<br />
elements with respect to <strong>the</strong> data elements.<br />
7
Examples<br />
Compiler<br />
? Compiler (Multi phase architectural style)<br />
? Lexical analysis acts on characters in a<br />
source text to produce tokens <strong>for</strong> syntactic<br />
analysis. Syntactic analysis produces<br />
phrases that are ei<strong>the</strong>r definition phrases or<br />
use phrases. Semantic analysis produces<br />
correlated phrases. Optimization produces<br />
hints <strong>for</strong> code generation.<br />
? Processing elements {Lexer,parser,<br />
semantor, optimizer, code generator}<br />
? Data elements {characters, tokens, phrases,<br />
correlated phrases, annotated phrases,<br />
object code}<br />
A1: sequential<br />
A1: sequential (processing view)<br />
? Connecting elements: procedure call and<br />
parameters<br />
Characters<br />
Lexer<br />
Tokens (NT)<br />
Parser<br />
Phrases (NT + AST)<br />
Correlated phrases (NT + ASG)<br />
Code<br />
Generator<br />
Optimizer<br />
Correlated phrases (NT + AASG)<br />
Semantor<br />
Correlated phrases (NT + ASG)<br />
8
A1: sequential (data view)<br />
Benefits<br />
lexer<br />
Has-all-tokens<br />
parser<br />
? Analysis<br />
? Reuse<br />
Code generator<br />
Has all optimized<br />
annotations<br />
optimizer<br />
Code generator<br />
Has all<br />
correlated phrases<br />
semantor<br />
Has-all-phrases<br />
Conclusions<br />
? Definitions by o<strong>the</strong>rs<br />
? …we feel…<br />
? Zachman<br />
? Shaw (see our model problems)<br />
A2: parallel processes connected by means<br />
<strong>of</strong> a shared internal representation<br />
9