Evaluating Software Architectures: Methods and Case Studies Chapter 1. What is a Software Architectures? - PowerPoint PPT Presentation

1 / 37
About This Presentation
Title:

Evaluating Software Architectures: Methods and Case Studies Chapter 1. What is a Software Architectures?

Description:

So, for instance, two compilers may have completely different parsers; ... allocation of functionality to components, component interfaces, ... – PowerPoint PPT presentation

Number of Views:158
Avg rating:3.0/5.0
Slides: 38
Provided by: ww5Intro
Category:

less

Transcript and Presenter's Notes

Title: Evaluating Software Architectures: Methods and Case Studies Chapter 1. What is a Software Architectures?


1
Evaluating Software Architectures Methods and
Case StudiesChapter 1. What is a Software
Architectures?
  • 14 December, 2002
  • Cho, N. K.

2
1? ????? ????? ?????
  • ??? ?, ??, ???? ???? ?? ?? ??? ???. ???
    ??(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) ??? ???? ?? ??? ??? ?? ??.

6
1.1 ???????? ??? ???? ?????? ????
  • ????? ????? ? ??? ???? ??? ????.
  • ?? ??????? ?? ? ? ?? ???(lingua franca)? ??.
  • ??????? ??? ??? ??? ???, ??? ???? ???? ?? ? ????
    ? ??? ??.
  • ???, ???, ??, ???, ???, ???, ??? ??? ???? ????
    ??? ?? ??.
  • ??, ??, ??? ??? ?? ???? ?? ???? ???(blue print)
    ??.

7
1.1.1 ???????? ????? ?? ??? ?? ?? ? ??
  • ????? ???? ??? ??? ???????? ??? ???.
  • ???(user)
  • ??? ????, ??? ? ???, ??? ???? ???.
  • ??(customer)
  • ????? ??? ??? ?? ?? ??? ??? ? ???? ??? ???.
  • ???(manager)
  • ??? ???? ???, ????? ??? ???? ???? ???? ??? ? ??
    ??? ???? ???? ??? ???.
  • ???(developer)
  • ? ?? ??? ?? ?? ????? ??? ???.
  • ???(tester)
  • ??? ???? ???? ??? ??? ????? ??? ??? ???.
  • ??? ?? ???? ??.

8
1.1.2 Architectural Views (1/2)
  • ?? ?? ?? ???
  • ?, ????, ????, ??? ??? ?? ??? ??.
  • ?? ???? ??? ?(view)? ??.
  • ?? ?? ??? ???? ??? ?????.
  • ???? ????, ??? ???? ??.
  • ?, ? ????? ?? ?? ??? ??? ??? ?? ?? ????? ??.
  • ???, ? ????? ??? ?? ???? ???, ?? ??? ??? ???? ??.
  • ???? ??? ?? ?? ??? ?? ???, ??? ?? ???? ???? ???
    ???? ???, ?? ?????? ???? ??? ?? ???? ??.
  • ?? ??? ????, ??? ???? ?? ??? ???? ?(architectural
    view)? ???(description)? ??(prescription)? ??? ??
    ??.

9
1.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?? ?? ??? ??? ? ??
  • ? ?? ?? ??,
  • ? ?? ???? ?? ????? ?? ??? ??,
  • ?? ?? ?????,
  • ? ?? ?? ??(?? ?? ??? ?? ??).

10
Functional View
  • ??
  • ??? ??(function)? ???? ??? ?? ??
  • Component
  • function, key system abstraction, domain element
  • Relationship
  • dependency, data flow
  • ?? ???
  • ??? ????, ?????? ???, ???
  • ?? ??
  • ???? ???? ?? ???? ??? ??? ?? ?.
  • ????? ??? ???? ??? ??.
  • functionality, variability of functionality,
    relationship among these functionalities.
  • ??
  • ?? 1.1

11
Concurrency view
  • ??
  • ???? ??? ??, ?? ???? ?? ???? ??? ???, ???? ???
    ????????, ??? ???? ???? ???? ?
  • Component
  • process, thread
  • Relationship
  • data flow, event, ????? ?? ???(synchronization on
    shared resources)
  • ?? ???
  • ??? ???, ???? ??? ???? ??? ?? ??, integrator,
    tester
  • ?? ??
  • ???? ?? ???? ??? ???? ??? ??? ????? ??? ????? ?
    ?.
  • performance, availability, and deployment of
    system.
  • ??
  • ?? 1.2

12
Code 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

13
Development view
  • ??
  • code view? ?????, ????? ??? ??? ?
    ?????(repository)? ??? ?? ?
  • Component
  • ??, ????
  • Relationship
  • ?????(containment)
  • ?? ???
  • ????? maintainer, manager, ?????
  • ?? ??
  • ??? ??? ??? ???, ????? ?? ??? ??? ? ?.
  • modifiability/maintainability.
  • ??
  • ?? 1.4

14
Physical view
  • ??
  • ???? ??? ???? ??? ????? ?? ?
  • Component
  • CPU, sensor, actuator, ???? ?
  • Relationship
  • ???, ?? ?????? ??(??, ??? ??)
  • ?? ???
  • ???? ? ??? ????
  • ?? ??
  • ??? ??, ?? ? ????? ?? ??.
  • performance, availability, scalability, security.
  • ??
  • ?? 1.5

15
Summary of views
  • ?? ????? ???? ???? ???? ??? ??? ? ?? ?????
    ????.
  • ?, ?? ?? ???? ??? ? ??? ??.
  • ?? ??? ??? ?? ?? ???? ??? ?? ??.
  • ?) deployment view? ????(concurrency view)? ??
    ????(physical view)? ?? ??? ????.
  • ???? ?? ??? ??? ???? ??? ??? ??? ?? ??, ??? ?? ??
    ???? ???? ?.
  • ? ?? ???? ?
  • Philippe Kruchten? ??? 41 View ??

16
1.1.3 ADLs(Architecture Description Languages)
(1/3)
  • ??? ??? ????
  • ?????? ?? ??? ???? ??? ?????,
  • ??? ??? ???? ??? ??,
  • ???? ??(architectural description)? ???? ??
    ???(blueprint)? ??? ??? ??.
  • ???? ???(ADL)
  • ????? ??? ???? ?? ????? ???? ?? ???? ????.
  • ?? ??? ???? ????? ??(??)?? ?? ??? ??? ??/???? ??.
    ??? ??? ?????? ??(deadlock detection,
    consistency, completeness, real-time properties,
    ??)? ??? ?????.
  • ???, ????? ?????? ?? ??? ?? ??.

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

18
1.1.3 ADLs(Architecture Description Languages)
(3/3)
  • UML? ???? ???? ??? ? ???
  • ????? UML? ???? ??/??? ??? ????, ???? ???? ????
    ?? ADL? ???.
  • UML? ADL? ???? ?? ???
  • ?? ???? ???(?? ??, layer)? ?? ???? ???.
  • ????? ?????? ?? ?? ??? ???.
  • ???? ???? ???, ????? ???? ??? ???? ???.
  • UML ?? ????? ?? ????? ????? ??? ?? ??.
  • UML 2.0? ???? ??? ??? ??.
  • UML Profile for Architecture Definition

19
1.2 ?? ?? ?? ??? ??? ?? ?????? ???? (1/3)
  • ????? ?? ?? ????(quality attribute)???? ??? ???,
    ??? ???.

20
1.2 ?? ?? ?? ??? ??? ?? ?????? ???? (2/3)
  • ????? ?? ?? ??? ??? ???.
  • ???? ??? ?? ??? ??? ?????? ??? ???? ?? ???, ????
    ??? ??? ??? ?? ???? ??? ??.
  • ???? ??
  • If you have four groups working on a compiler,
    you'll get a 4-pass compiler.
  • ?????? ???? ????? ????? ??? ??? ?? ?????? ????
    ??? ?? ???, ?? ?? ?? ??? ???? ??? ??? ??????? ??
    ??. ???? ?? ??? ??? ??? ??? ???, ??? ?????? ?????
    ??? ?? ? ???.
  • ?, ??? ?? ??(separation of concerns)? ?????? ???
    ??? ????.

21
1.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
  • . . . . . . .

24
1.2.1 ???? ??? (1/3)
  • ????? ???? ???? ??? ??? ?? ?? ????
    ???(architectural styles)
  • ???? ??? ?? ?? ?? ?? ??? ????.
  • ????
  • ????? ???? ??? ?? ???? ?? ??? ??? ????? ???
    ?????, ?? ????? ????? ???? ??? ??.
  • ????
  • ??? ???? ??? ???? ??.
  • ????? ????? ????.
  • ?? ??? ?? ?? ???? ???? ?? ???.
  • ???? ???? ??? ??? ??? ??.

25
1.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
  • ??? ???? ???? ?? ????? ????? ????, ??? ?? ?? ??
    ???? ??? ?? ????? ??.

26
1.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
    ???? ????.

27
Pipe Filter ???
  • Meaning
  • ????? ???? ??? ?? ????, ? ??? ?? ????? ???? ????.
  • Component
  • Filters
  • Connector
  • Pipes
  • Constraints
  • ??? ?? ?????.
  • ??? ?? ?? ??? ?/? ??? ?? ??? ??.
  • Layout

Computation
Data flow
Input
Output
28
Layered ???
  • Meaning
  • ?????? ???? ??? ???, ? ???? ??? ???? ??? ?? ?????
    ??? ? ??.
  • Component
  • Layers
  • Connector
  • Protocols of layer interaction
  • Constraints
  • ??? ???? ????? ??? ??.
  • Layout

Composite of various elements
Communication protocol
29
Shared 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)
30
Implicit 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
???? ??? ??
32
1.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
33
1.4 ??
  • ????? ???? ???? ?? ??? ????.
  • ????? ???????? ???? ?????, ???, ???, ??, ??? ??
    ?? ?????? ? ? ?? ????.
  • ????? ?? ?? ?? ??? ??? ?? ?????, ??? ???? ????
    ???? ?? ??? ?? ? ??? ????.
  • ????? ???? ? ?? ????, ??? ????? ???? ??? ????
    ????? ??? ??.

34
1.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 ????? ??

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

36
1.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
Write a Comment
User Comments (0)
About PowerShow.com