![Page 1: Architectural Style Intro & Early Feedbackcs446/1171/slides/SE2_08_style-intro.pdf · Mei Nagappan Architectural Style Intro & Early Feedback Material and some slide content from:](https://reader030.vdocument.in/reader030/viewer/2022040123/5e0af9b30fa58e5ddf7ab174/html5/thumbnails/1.jpg)
Mei Nagappan
Architectural Style Intro & Early Feedback
Material and some slide content from: - Emerson Murphy-Hill, Reid Holmes - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture
![Page 2: Architectural Style Intro & Early Feedbackcs446/1171/slides/SE2_08_style-intro.pdf · Mei Nagappan Architectural Style Intro & Early Feedback Material and some slide content from:](https://reader030.vdocument.in/reader030/viewer/2022040123/5e0af9b30fa58e5ddf7ab174/html5/thumbnails/2.jpg)
MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE
Pitch Survey‣ Your group name
‣ Most interesting
‣ Most useful
![Page 3: Architectural Style Intro & Early Feedbackcs446/1171/slides/SE2_08_style-intro.pdf · Mei Nagappan Architectural Style Intro & Early Feedback Material and some slide content from:](https://reader030.vdocument.in/reader030/viewer/2022040123/5e0af9b30fa58e5ddf7ab174/html5/thumbnails/3.jpg)
MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE
Early Feedback‣ What can be improved/done differently?
‣ What do you dislike the most?
‣ What do you like?
![Page 4: Architectural Style Intro & Early Feedbackcs446/1171/slides/SE2_08_style-intro.pdf · Mei Nagappan Architectural Style Intro & Early Feedback Material and some slide content from:](https://reader030.vdocument.in/reader030/viewer/2022040123/5e0af9b30fa58e5ddf7ab174/html5/thumbnails/4.jpg)
MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE
Attribute Driven Design‣ Choose module to decompose
‣ Initially whole system is one module
‣ Refine the module
‣ Choose arch drivers from NFR and FR
‣ Choose arch style that satisfies them
‣ Create modules based on style
‣ Allocate functionality to each module
‣ Define interfaces for modules
‣ Verify and evaluate against NFR and FR
‣ Repeat until you cannot decompose
![Page 5: Architectural Style Intro & Early Feedbackcs446/1171/slides/SE2_08_style-intro.pdf · Mei Nagappan Architectural Style Intro & Early Feedback Material and some slide content from:](https://reader030.vdocument.in/reader030/viewer/2022040123/5e0af9b30fa58e5ddf7ab174/html5/thumbnails/5.jpg)
MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE
Architectural styles‣ Some design choices are better than others
‣ Experience can guide us towards beneficial sets of choices (patterns) that have positive properties
‣ An architectural style is a named collection of architectural design decisions that:
‣ Are applicable to a given context
‣ Constrain design decisions
‣ Elicit beneficial qualities in resulting systems
[TAILOR ET AL.]
![Page 6: Architectural Style Intro & Early Feedbackcs446/1171/slides/SE2_08_style-intro.pdf · Mei Nagappan Architectural Style Intro & Early Feedback Material and some slide content from:](https://reader030.vdocument.in/reader030/viewer/2022040123/5e0af9b30fa58e5ddf7ab174/html5/thumbnails/6.jpg)
MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE
Architectural styles‣ A set of architectural design decisions that are
applicable to a recurring design problem, and parameterized to account for different software development contexts in which that problem appears.
‣ e.g., Three-tier architectural pattern:
[TAILOR ET AL.]
![Page 7: Architectural Style Intro & Early Feedbackcs446/1171/slides/SE2_08_style-intro.pdf · Mei Nagappan Architectural Style Intro & Early Feedback Material and some slide content from:](https://reader030.vdocument.in/reader030/viewer/2022040123/5e0af9b30fa58e5ddf7ab174/html5/thumbnails/7.jpg)
MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE
Architectural styles[CZARNECKI]
‣ Defines a family of architectures that are constrained by:
‣ Component/connector vocabulary
‣ Topology
‣ Semantic constraints
‣ When describing styles diagrammatically:
‣ Nodes == components (e.g., procedures, modules, processes, databases, …)
‣ Edges == connectors (e.g., procedure calls, events, db queries, pipes, …)
![Page 8: Architectural Style Intro & Early Feedbackcs446/1171/slides/SE2_08_style-intro.pdf · Mei Nagappan Architectural Style Intro & Early Feedback Material and some slide content from:](https://reader030.vdocument.in/reader030/viewer/2022040123/5e0af9b30fa58e5ddf7ab174/html5/thumbnails/8.jpg)
MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE
Good properties of an architecture‣ Result in a consistent set of principled techniques
‣ Resilient in the face of (inevitable) changes
‣ Source of guidance through product lifetime
‣ Reuse of established engineering knowledge
[CZARNECKI]
![Page 9: Architectural Style Intro & Early Feedbackcs446/1171/slides/SE2_08_style-intro.pdf · Mei Nagappan Architectural Style Intro & Early Feedback Material and some slide content from:](https://reader030.vdocument.in/reader030/viewer/2022040123/5e0af9b30fa58e5ddf7ab174/html5/thumbnails/9.jpg)
MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE
“Pure” architectural styles‣ Pure architectural styles are rarely used in practice
‣ Systems in practice:
‣ Regularly deviate from pure styles.
‣ Typically feature many architectural styles.
‣ Architects must understand the “pure” styles to understand the strength and weaknesses of the style as well as the consequences of deviating from the style.
[CZARNECKI]
![Page 10: Architectural Style Intro & Early Feedbackcs446/1171/slides/SE2_08_style-intro.pdf · Mei Nagappan Architectural Style Intro & Early Feedback Material and some slide content from:](https://reader030.vdocument.in/reader030/viewer/2022040123/5e0af9b30fa58e5ddf7ab174/html5/thumbnails/10.jpg)
MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE
ArchitecturalStyles
LanguageBased
Layered Dataflow
SharedMemory
InterpreterImplicit
Invocation
Peer-to-Peer
Main program &Subroutines
Object-oriented
VirtualMachine
ClientServer
Batch-sequential
Pipe-and-Filter
Blackboard
Rule-based Interpreter
Mobilecode
Publish-subscribe
Event-based
[TOPOLOGY FROM TAILOR ET AL.]
![Page 11: Architectural Style Intro & Early Feedbackcs446/1171/slides/SE2_08_style-intro.pdf · Mei Nagappan Architectural Style Intro & Early Feedback Material and some slide content from:](https://reader030.vdocument.in/reader030/viewer/2022040123/5e0af9b30fa58e5ddf7ab174/html5/thumbnails/11.jpg)
MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE
Arch Activity
![Page 12: Architectural Style Intro & Early Feedbackcs446/1171/slides/SE2_08_style-intro.pdf · Mei Nagappan Architectural Style Intro & Early Feedback Material and some slide content from:](https://reader030.vdocument.in/reader030/viewer/2022040123/5e0af9b30fa58e5ddf7ab174/html5/thumbnails/12.jpg)
MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE
Presentation‣ 20 minute maximum
‣ Two primary components:
‣ Static description of the style / pattern
‣ Dynamic description of how the style / pattern is useful over time
‣ Comprehensive example / tutorial that demonstrates the style / pattern
‣ No slides; be creative. Make it memorable.
![Page 13: Architectural Style Intro & Early Feedbackcs446/1171/slides/SE2_08_style-intro.pdf · Mei Nagappan Architectural Style Intro & Early Feedback Material and some slide content from:](https://reader030.vdocument.in/reader030/viewer/2022040123/5e0af9b30fa58e5ddf7ab174/html5/thumbnails/13.jpg)
MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE
Arch Style‣ Have its own vocabulary for its components and
connectors? (define)
‣ Impose specific topological constraints? (diagram)
‣ Most applicable to specific kinds of problems?
‣ Engender specific kinds of change resilience?
‣ Have any specific negative behaviours?
‣ Support/inhibit specific NFPs?
![Page 14: Architectural Style Intro & Early Feedbackcs446/1171/slides/SE2_08_style-intro.pdf · Mei Nagappan Architectural Style Intro & Early Feedback Material and some slide content from:](https://reader030.vdocument.in/reader030/viewer/2022040123/5e0af9b30fa58e5ddf7ab174/html5/thumbnails/14.jpg)
MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE
Style: Client-server[TAILOR ET AL.]
![Page 15: Architectural Style Intro & Early Feedbackcs446/1171/slides/SE2_08_style-intro.pdf · Mei Nagappan Architectural Style Intro & Early Feedback Material and some slide content from:](https://reader030.vdocument.in/reader030/viewer/2022040123/5e0af9b30fa58e5ddf7ab174/html5/thumbnails/15.jpg)
MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE
Style: Client-server‣ Clients communicate with server which performs
actions and returns data. Client initiates communication.‣ Components: ‣ Clients and server.
‣ Connections: ‣ Protocols, RPC.
‣ Data elements: ‣ Parameters and return values sent / received by connectors.
‣ Topology: ‣ Two level. Typically many clients.
[TAILOR ET AL.]
![Page 16: Architectural Style Intro & Early Feedbackcs446/1171/slides/SE2_08_style-intro.pdf · Mei Nagappan Architectural Style Intro & Early Feedback Material and some slide content from:](https://reader030.vdocument.in/reader030/viewer/2022040123/5e0af9b30fa58e5ddf7ab174/html5/thumbnails/16.jpg)
MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE
‣ Additional constraints:‣ Clients cannot communicate with each other.
‣ Qualities:‣ Centralization of computation. Server can handle many clients.
‣ Typical uses:‣ Applications where: client is simple; data integrity important;
computation expensive.
‣ Cautions:‣ Bandwidth and lag concerns.
Style: Client-server[TAILOR ET AL.]