21.01.2014 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!