Title: Evaluating Software Architectures: Methods and Case Studies Chapter 1. What is a Software Architectures?
1Evaluating Software Architectures Methods and
Case StudiesChapter 1. What is a Software
Architectures?
- 14 December, 2002
- Cho, N. K.
21? ????? ????? ?????
- ??? ?, ??, ???? ???? ?? ?? ??? ???. ???
??(Construction)??. ??? ?? ??? ? ??? ????, ??
?????. ? ?? ??? ?? ??? ???. ? ????!.
????(Architecture)?? ?? ???. - - ? ?????, 1923
- Architecture From Prehistory to
Post-Modernism?? ??
3????? ???? ??? ??
- ?????(Edsgar W. Dijkstra, ??? http//c2.com/cgi/wi
ki?PronouncingDutch) - 1960?? ???? ??? ??? 2002? 8? ???
??(http//www.cs.utexas.edu/users/EWD/)???? ?
50??? ??? ???(http//www.cs.utexas.edu/users/EWD/i
ndexEWDnums.html)? ??? ???? ??. ????? ????
Dijkstra ?????? ?? ??????? ? ??? ??????, 50?? ?
High level ????? ?? ALGOL? ?????. 1968? Go To
Statement Considered Harmful(http//www.acm.org/cl
assics/oct95/)?? ? ??? ???? ??? ?????(Structured
Programming)? ??? ?????, DPP(Dining Philosophers
Problem)? ???? ??? ????? ??? ?????? ????? ????
??? ??? ??. ??? ??(SoC)? ???(Abstraction)?? ?????
?? ??. ??? ???? 1972? ACM(Association for
Computing Machinery) Turing Award(http//www.acm.o
rg/awards/turing_citations/dijkstra.html) ??. - ???(Frederick P. Brooks)
- 1964? ??? IBM360 ??? ???? ??? ???, ??? ??? ????
1975? ??? The Mythical Man-Month Essays on
Software Engineering? ??. ? ?? ? ??? ????? ??
????? ?? ?? ???? ????? ???? ??. ??? ????, ????,
??? ????? ??? ??? ??? ?? ??? 1999? Turing
Award(http//www.acm.org/awards/turing_citations/b
rooks.html) ??. - ????(David L. Parnas)
- ????? ??? ???. 1972? ????? ?? On the Criteria To
Be Used in Decomposing Systems into
Modules(http//www.acm.org/classics/may96/)??
modularization? ???. ?? ??(Information Hiding),
??? ??(Separation of Concerns)? ?? ???? ??? ??.
?? ??? 33?? ?? Software Fundamentals Collected
Papers by David L. Parnas? ?? ??? ?????? ?? ????
???.
4????? ????? ??
- ??????(stakeholder)?? ??? ???? ??.
- ???????? ??? ???? ??? ??? ??? ??? ??? ? ??.
- ????? ????? ????????? ????? ??, ??? ????, ??? ???
? ?? ??? ???? ???? ????. - ???? ??? ??? ?? ??? ??? ?? ???.
- ? ?? ???? ??? ?? ??? ? ??? ??.
- ??? ??, ?????? ???, ?? ?? ??? ??? ?? ?? ???
tradeoff? ????? ???. - ?? ????? ??? ???? ? ?? ???? ??? ??(abstraction).
- ???? ??? ???? ??, ???? ???? ??? ???? ???? ???? ??
??. - ? ??? ?? ??? ????? ???, ???? ??? ??? ? ?? ????
??. - ?? ??? ?? ??(????)??, ??? ????? ?? ?? ?? ???? ??
???? ? ??.
5????? ????? ??
- ???? ?? ??? ???? ????? ?????, ????? ????, ??
????? ???? ??, ??? ???? ??? ??? ??? ???? ???? ???
???. - Bass, Clements, Kazman, 1998
- Software Architecture in Practice?? ??
- ????? ???? ????? ???? ???? ??. ????? interface?
connector? ???. - ????? ?? ???? ?????? ??? ??? ????? ??? ???? ?.
- ??? ?(view) ??? ???? ?? ??? ??? ?? ??.
61.1 ???????? ??? ???? ?????? ????
- ????? ????? ? ??? ???? ??? ????.
- ?? ??????? ?? ? ? ?? ???(lingua franca)? ??.
- ??????? ??? ??? ??? ???, ??? ???? ???? ?? ? ????
? ??? ??. - ???, ???, ??, ???, ???, ???, ??? ??? ???? ????
??? ?? ??. - ??, ??, ??? ??? ?? ???? ?? ???? ???(blue print)
??.
71.1.1 ???????? ????? ?? ??? ?? ?? ? ??
- ????? ???? ??? ??? ???????? ??? ???.
- ???(user)
- ??? ????, ??? ? ???, ??? ???? ???.
- ??(customer)
- ????? ??? ??? ?? ?? ??? ??? ? ???? ??? ???.
- ???(manager)
- ??? ???? ???, ????? ??? ???? ???? ???? ??? ? ??
??? ???? ???? ??? ???. - ???(developer)
- ? ?? ??? ?? ?? ????? ??? ???.
- ???(tester)
- ??? ???? ???? ??? ??? ????? ??? ??? ???.
- ??? ?? ???? ??.
81.1.2 Architectural Views (1/2)
- ?? ?? ?? ???
- ?, ????, ????, ??? ??? ?? ??? ??.
- ?? ???? ??? ?(view)? ??.
- ?? ?? ??? ???? ??? ?????.
- ???? ????, ??? ???? ??.
- ?, ? ????? ?? ?? ??? ??? ??? ?? ?? ????? ??.
- ???, ? ????? ??? ?? ???? ???, ?? ??? ??? ???? ??.
- ???? ??? ?? ?? ??? ?? ???, ??? ?? ???? ???? ???
???? ???, ?? ?????? ???? ??? ?? ???? ??. - ?? ??? ????, ??? ???? ?? ??? ???? ?(architectural
view)? ???(description)? ??(prescription)? ??? ??
??.
91.1.2 Architectural Views (2/2)
- ????? ???? ?? ??? ????
- Functional view (Logical view??? ??)
- Concurrency view (Process ?? Thread view)
- Code view
- Development view (Implementation view)
- Physical view (Deployment view? ?? ?? ??)
- 5?? ?? ??? ??? ? ??
- ? ?? ?? ??,
- ? ?? ???? ?? ????? ?? ??? ??,
- ?? ?? ?????,
- ? ?? ?? ??(?? ?? ??? ?? ??).
10Functional View
- ??
- ??? ??(function)? ???? ??? ?? ??
- Component
- function, key system abstraction, domain element
- Relationship
- dependency, data flow
- ?? ???
- ??? ????, ?????? ???, ???
- ?? ??
- ???? ???? ?? ???? ??? ??? ?? ?.
- ????? ??? ???? ??? ??.
- functionality, variability of functionality,
relationship among these functionalities. - ??
- ?? 1.1
11Concurrency view
- ??
- ???? ??? ??, ?? ???? ?? ???? ??? ???, ???? ???
????????, ??? ???? ???? ???? ? - Component
- process, thread
- Relationship
- data flow, event, ????? ?? ???(synchronization on
shared resources) - ?? ???
- ??? ???, ???? ??? ???? ??? ?? ??, integrator,
tester - ?? ??
- ???? ?? ???? ??? ???? ??? ??? ????? ??? ????? ?
?. - performance, availability, and deployment of
system. - ??
- ?? 1.2
12Code view
- ??
- ?????? ???? ??? ?? ??
- Component
- class, object, procedure, function, ?? ???? ????
???(subsystem, layer, module) - Relationship
- call, method invocation, ???? ?????
??(is-a-sub-module-of) - ?? ???
- ?????, ???, ????
- ?? ??
- ???? ??? ??? ??? ????? ????? ? ?.
- modifiability/maintainability, portability, and
subsetability. - ??
- ?? 1.3
13Development view
- ??
- code view? ?????, ????? ??? ??? ?
?????(repository)? ??? ?? ? - Component
- ??, ????
- Relationship
- ?????(containment)
- ?? ???
- ????? maintainer, manager, ?????
- ?? ??
- ??? ??? ??? ???, ????? ?? ??? ??? ? ?.
- modifiability/maintainability.
- ??
- ?? 1.4
14Physical view
- ??
- ???? ??? ???? ??? ????? ?? ?
- Component
- CPU, sensor, actuator, ???? ?
- Relationship
- ???, ?? ?????? ??(??, ??? ??)
- ?? ???
- ???? ? ??? ????
- ?? ??
- ??? ??, ?? ? ????? ?? ??.
- performance, availability, scalability, security.
- ??
- ?? 1.5
15Summary of views
- ?? ????? ???? ???? ???? ??? ??? ? ?? ?????
????. - ?, ?? ?? ???? ??? ? ??? ??.
- ?? ??? ??? ?? ?? ???? ??? ?? ??.
- ?) deployment view? ????(concurrency view)? ??
????(physical view)? ?? ??? ????. - ???? ?? ??? ??? ???? ??? ??? ??? ?? ??, ??? ?? ??
???? ???? ?. - ? ?? ???? ?
- Philippe Kruchten? ??? 41 View ??
161.1.3 ADLs(Architecture Description Languages)
(1/3)
- ??? ??? ????
- ?????? ?? ??? ???? ??? ?????,
- ??? ??? ???? ??? ??,
- ???? ??(architectural description)? ???? ??
???(blueprint)? ??? ??? ??. - ???? ???(ADL)
- ????? ??? ???? ?? ????? ???? ?? ???? ????.
- ?? ??? ???? ????? ??(??)?? ?? ??? ??? ??/???? ??.
??? ??? ?????? ??(deadlock detection,
consistency, completeness, real-time properties,
??)? ??? ?????. - ???, ????? ?????? ?? ??? ?? ??.
171.1.3 ADLs(Architecture Description Languages)
(2/3)
- Wright
- CMU
- Allen Garlan, 1997
- provide a formalism that focuses on explicit
connector types and analysis associated with
architectural connection. - Unicon
- CMU
- Shaw Garlan, 1996
- support style-based architectural construction by
interconnecting predefined or user-defined
architectural components. - Rapide
- Standford
- Luckham et al., 1995
- provide an executable ADL based on a rule-event
execution model for prototyping, simulating, and
analyzing software systems. - C2SADEL
- UC Irvine USC
- balances formality and simplicity
- describes C2 components internal object
181.1.3 ADLs(Architecture Description Languages)
(3/3)
- UML? ???? ???? ??? ? ???
- ????? UML? ???? ??/??? ??? ????, ???? ???? ????
?? ADL? ???. - UML? ADL? ???? ?? ???
- ?? ???? ???(?? ??, layer)? ?? ???? ???.
- ????? ?????? ?? ?? ??? ???.
- ???? ???? ???, ????? ???? ??? ???? ???.
- UML ?? ????? ?? ????? ????? ??? ?? ??.
- UML 2.0? ???? ??? ??? ??.
- UML Profile for Architecture Definition
191.2 ?? ?? ?? ??? ??? ?? ?????? ???? (1/3)
- ????? ?? ?? ????(quality attribute)???? ??? ???,
??? ???.
201.2 ?? ?? ?? ??? ??? ?? ?????? ???? (2/3)
- ????? ?? ?? ??? ??? ???.
- ???? ??? ?? ??? ??? ?????? ??? ???? ?? ???, ????
??? ??? ??? ?? ???? ??? ??. - ???? ??
- If you have four groups working on a compiler,
you'll get a 4-pass compiler. - ?????? ???? ????? ????? ??? ??? ?? ?????? ????
??? ?? ???, ?? ?? ?? ??? ???? ??? ??? ??????? ??
??. ???? ?? ??? ??? ??? ??? ???, ??? ?????? ?????
??? ?? ? ???. - ?, ??? ?? ??(separation of concerns)? ?????? ???
??? ????.
211.2 ?? ?? ?? ??? ??? ?? ????? ???? (3/3)
- ????? ??? ?? ??? ?????? ????.
- .Net ???? ????? ????, CORBA? EJB ??? ????? ?????
???? ??? ? ??.
22?? (1/2)
- ????? ????(Christoper Alexander)
- UC ??? ????, ????, ???, ????.
- ??? ?? ??? ???? Pattern Language? ?? ?.
- ??, Pattern Language? ??? ?? ???, ???, ????,
??() ? ??? ??? ??? ??. - ??
- ???? ?? ???? ???? ???? ???? ?? ???? ???? ????
???. ?? ?? ??? ????? ? ?? ??? ???? ???? ? ??. - ????? ????, 1977
- A Pattern Language?? ??
23?? (2/2) Placing Window
- Problem
- Everybody loves window seats, bay windows, and
big windows with low sills and comfortable chairs
drawn up to them. - Solution
- In every room where you spend any length of time
during the day, make at least one window into a
"window place."
- Stand in room and see where to put windows
- . . . . . . .
- Place openings
- Double check and adjust
- . . . . . . .
- Check from outside and adjust
- Place rough frames
- Make rough stub at fenestration pattern
- . . . . . . .
241.2.1 ???? ??? (1/3)
- ????? ???? ???? ??? ??? ?? ?? ????
???(architectural styles) - ???? ??? ?? ?? ?? ?? ??? ????.
- ????
- ????? ???? ??? ?? ???? ?? ??? ??? ????? ???
?????, ?? ????? ????? ???? ??? ??. - ????
- ??? ???? ??? ???? ??.
- ????? ????? ????.
- ?? ??? ?? ?? ???? ???? ?? ???.
- ???? ???? ??? ??? ??? ??.
251.2.1 ???? ??? (2/3)
- Shaw? Garlan? Software Architecture?? ???? ????
??? ?? ??? ?. - Independent components
- communicating process, implicit invocation,
explicit invocation - Data flow
- batch sequential, pipe filter
- Data-centered
- repository, blackboard
- Virtual machine
- interpreter, rule-based
- Call/return
- main program subroutine, object-oriented,
layered - ??? ???? ???? ?? ????? ????? ????, ??? ?? ?? ??
???? ??? ?? ????? ??.
261.2.1 ???? ??? (3/3)
- ???? ???? ???? ??? ? ??
- Component type
- data repository, process, object
- Connector type/interaction mechanism
- subroutine call, event, pipe
- Topology
- star, ring, hierarchical
- Constraint on topology
- data repository ???? ??? ??? ?? ??? ??? ? ??.
- Benefit of style
- ???? ????? ??? ?? ???? ??? ?? ????? pipe filter
???? ????.
27Pipe Filter ???
- Meaning
- ????? ???? ??? ?? ????, ? ??? ?? ????? ???? ????.
- Component
- Filters
- Connector
- Pipes
- Constraints
- ??? ?? ?????.
- ??? ?? ?? ??? ?/? ??? ?? ??? ??.
- Layout
Computation
Data flow
Input
Output
28Layered ???
- Meaning
- ?????? ???? ??? ???, ? ???? ??? ???? ??? ?? ?????
??? ? ??. - Component
- Layers
- Connector
- Protocols of layer interaction
- Constraints
- ??? ???? ????? ??? ??.
- Layout
Composite of various elements
Communication protocol
29Shared repository ???
- Meaning
- ??? ?? ?????? ??? ? ?? ?????? ???, ?????? ???
???? ??? ??. - Component
- Central data structure represent the current
state - A collection of independent components operate on
central data store - Connector
- transfer control and/or data
- Constraints
- ?? ?????? ??? ?? ??? ??? ???? ????.
- Layout
Computation
Memory
Data access
Blackboard (shared data)
30Implicit invocation ???
- Meaning
- ???? ???? ??? ???, ???? ????.
- Component
- Component interfaces are methods and events
- Connector
- invocation is either explicit or implicit in
response to events - Constraints
- ???? ?? ???? ?? ??? ????? ??? ? ??? ??.
- Layout
Event
Announce
Trigger
31???? ??? ??
321.3 ?? ????? ???? ? ?? ????? ????
- ????? (??? ??? ??? ???? ??? ???? ?? ??? ? ? ??)
???? ? ?? ????, ?? ??? ?? ?????(?? ??? ?????
????????? ??). - Software Product Line? ????? ????? ? ?? ?????
???? ????? ????, ??? ????? ????? ?????? ??? ?????
?? ???? ???? ??? ???.
Essential technologies
pertain to
market strategy/ application domain
Domain Engineering
is satisfied by
Architecture
share an
architecture
Architecture based Development
Products
is used to structure
CORE ASSETS
are built from
components
Reengineering
331.4 ??
- ????? ???? ???? ?? ??? ????.
- ????? ???????? ???? ?????, ???, ???, ??, ??? ??
?? ?????? ? ? ?? ????. - ????? ?? ?? ?? ??? ??? ?? ?????, ??? ???? ????
???? ?? ??? ?? ? ??? ????. - ????? ???? ? ?? ????, ??? ????? ???? ??? ????
????? ??? ??.
341.5 ??? ?? (1/2)
- Software Architecture
- Dijkstra68, Parnas72 ?? ????? ??? ??
- Bass98, Hofmeister00, Shaw96, Bosch00,
Malveau01 ??? ?? - Architectural view
- Kruchten98 RUP ??? 41 ?
- Bass98, Jazayeri00 ??
- Hofmeister00 ???
- Parnas74 ??
- Architectural style
- Bass98, Shaw96 - ??
- Buschmann96, Schmidt00 ????
- Gamma95 ??? ??
- Jacobson97 ???? ???? ?? ???? ???
- Smith01 ??? ??
- Software product line
- Clements01 ???
- Jacobson97 ?????? ???? ???? ??
- Bass98, Bosch00 ????? ??
351.5 ??? ?? (2/2)
- Business consideration
- Sullivan97 - ??
- Kazman01 ???? ????
- Conway68 ??? ?? ????? ??
- Architecture-based design
- Bachmann00 Architecture Driven Design Method
- Implementation conforms to the architecture
- Yeh97, Kazman99, Krikhaar99, Finnigan97
reverse engineering - ADLs
- Rational ???? UML? ???? ???? ????
- Medvidovic00 ADL ??
- Garlan97 - ACME
361.6 ?? ????
- ????? ?? ??? ????? ?? ??? ??? ????, ??? ??? ????
???? ?? ?? ?? ??? ?? ?? ?? ??? - ????? ????? ?? ??????? ????, ?? ?? ???
- ??? ??? ? ???? ?? ???? ???????? ????, ??? ?? ??
??? ?? ??? - deployment view? process view? ??? physical
view?? ?? ?? ??? ??, ??? ?? ??? ??? ??? ?? - ?? ??? ??? ?? ??? ?? ?????
- layered architecture? ???? ??? ?? ?? ??? ????
- ???? ??? ??(data flow)? ???? ??? ?? ?? ??? ????
37?? ???
- gtFrom Paul Clements ltclements_at_sei.cmu.edugt
- gtTo "cho namkyu" ltnamkyu_cho_at_hotmail.comgt
- gtCC kazman_at_sei.cmu.edu
- gtSubject Re Question in ESA.
- gtDate Fri, 13 Dec 2002 075904 -0600
- gt
- gtDear Namkyu Cho,
- gt
- gtATAM is two syllables
- gt"A" (rhymes with say, way, etc.) "TAM"
(rhymes with dam) - gt
- gtSAAM is one syllable that rhymes with dam.
- gt
- gtARID is two syllables.
- gt"AR" (like "air") "ID" (rhymes with bid)
- gt
- gtI visited Korea last year and learned that your
language is - gtmuch easier and has much better rules for
pronouncing - gtwords than ours. I can understand your
difficulty, especially
gtAt 1217 PM 12/13/2002 0000, cho namkyu
wrote gtgtDear Dr. Paul Clements and Rick
Kazman gtgt gtgtLet's me introduce myself. I'm Namkyu
Cho, an independent gtgtconsultant. and I have
studied your book, "ESA" with my colleagues.
gtgtPronouncing English is not easy for us because
our native language gtgtis Korean. I've been
wondering how to pronounce the word, ATAM,
gtgtSAAM, and ARID? gtgt gtgtThank you for your
attention. gtgtBest Regards, gtgt gtgtNamkyu Cho