![Page 1: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/1.jpg)
Software Architecture
![Page 2: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/2.jpg)
Agenda
Why architect? What is architecture? What does an architect do? What principles guide the process of
architecting? What's involved in creating architectural
documents?
![Page 3: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/3.jpg)
Why Architect?
to build a better dog house to handle large, complex tasks
to coordinate work to communicate ideas and design to validate against goals to resolve conflicting goals to reduce costs to improve delivery times
products or product lines
![Page 4: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/4.jpg)
Architecture: Definitions
"the art or science of building" "formation or construction as or as if as the result
of conscious act" "a unifying or coherent form or structure" "a method or style of building" "the manner in which the components of a
computer or computer system are organized and integrated"
Merriam-Webster's Collegiate Dictionary, Tenth Edition
![Page 5: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/5.jpg)
Develop: Definitions
"to set forth or make clear by degrees or in detail" "to work out the possibilities of" "to make available or usable" "to cause to unfold gradually" "to expand by a process of growth" "to come into being gradually"
Merriam-Webster's Collegiate Dictionary, Tenth Edition
![Page 6: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/6.jpg)
What is Architecture?
Form structure, organization
Function behavior, use
Style appearance, elegance, way of doing things (tao)
![Page 7: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/7.jpg)
Examples of Architecture
Building Symphony Musical Device Software
Function enclose space evoke emotion play music process information
Structure foundation, walls, ceiling, roof, rooms, etc.
section, part, movement, tempo, keys, notes, rests, etc.
case, power supply, circuitry, motor, buttons, display, etc.
components, connectors, containers, interfaces, etc.
Style picturesque, formal
classical, romantic
HIFI, boombox, personal
paradigm, patterns, idioms, principles, rules
Score
Layout
SectionPicture
Class
![Page 8: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/8.jpg)
Influences on Architecture
Environment/Context Relationship to surroundings, orientation, and climate
History Changes in technology, materials, and ideals of
beauty over time
Technology Current know-how
![Page 9: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/9.jpg)
Uses of Architecture
Means of communicating design information amongst stakeholders
Embodiment of early design decisions Reusable entity
![Page 10: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/10.jpg)
What Does an Architect Do?
leads champions, coordinates, interfaces, aligns with
business strategies
provides vision translates designs criticizes consults
![Page 11: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/11.jpg)
Guiding Principles
integrity simplicity loose coupling/separation of concerns high cohesion abstraction postponement of decisions
![Page 12: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/12.jpg)
Creating Architectural Documents
Source "Architecture-Based Development", Len Bass & Rick
Kazman, Carnegie Mellon University, 1999
Iterative process, involving both construction and validation
Six-step process
![Page 13: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/13.jpg)
Architectural Document Creation Process Summary
1 Elicit architectural requirements
2 Design the architecture
3 Document the architecture
4 Analyze the architecture
5 Realize the architecture
6 Maintain the architecture
![Page 14: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/14.jpg)
Elicit Architectural Requirements
functional requirements non-functional requirements or qualities
such as: modifiability performance security reliability
includes priorities, relative importance, etc.
![Page 15: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/15.jpg)
Design the Architecture
make design decisions based on: knowledge of architectural styles design patterns use of of particular tools
reason about decisions by considering architectural structures* and views
validate the design by determining if scenarios are achievable
![Page 16: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/16.jpg)
Architectural Structures components, connectors, and properties
Based on: Architectural Blueprints -- The “4+1” View Model of Software Architecture, P. Kruchten, IEEE Software V12N6, 1995
view: perspective; part of or combination of parts of structures
functional structure/logical view concurrency structure/process view physical structure/physical view code structure/development view developmental structure (not in Kruchten) Kruchten includes “scenarios”
![Page 17: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/17.jpg)
Functional Structure
decomposition of functionality system’s services to clients identification of common mechanisms and design
elements
identification of connections represented in UML by class diagrams
![Page 18: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/18.jpg)
Concurrency Structure
processes, threads, distribution, messages some non-functional requirements handled
performance, availability, security, reliability
how functionality maps to processes/threads major tasks use inter-process communication (IPC)
no assumptions about collocation
minor tasks may use shared memory
can be used to estimate message flows and loads
![Page 19: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/19.jpg)
Physical Structure
mapping software to hardware primarily non-functional requirements
e.g., availability, reliability (fault tolerance), performance (throughput), scalability
several different configurations possible
![Page 20: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/20.jpg)
Code Structure
key code abstractions (e.g., packages, classes) addresses:
software reuse, portability software management (work allocation, monitoring, etc.) software development issues
software module organization often, layered subsystem
![Page 21: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/21.jpg)
Scenarios
walk-through scripts sequences of interactions among objects and among
processes
instances of use cases (what a system does from the standpoint of an external observer)
intentionally redundant with other views: to help discover architectural elements to validate and illustrate architecture
![Page 22: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/22.jpg)
Document the Architecture
Key characteristics: complete and navigable includes infrastructure enough use cases to help understand how system will
implement functionality includes constraints on communications, resource
management, time management, etc. publicly available to everyone concerned
![Page 23: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/23.jpg)
Analyze the Architecture
Review by concerned parties Intent is to:
detect problems early improve the architecture
![Page 24: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/24.jpg)
Realize the Architecture
Turn the architecture into code
![Page 25: Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?](https://reader036.vdocument.in/reader036/viewer/2022062421/56649d975503460f94a81a8e/html5/thumbnails/25.jpg)
Maintain the Architecture
Keep the architecture on track over time