architectural style intro early feedback
play

Architectural Style Intro & Early Feedback Mei Nagappan Pitch - PowerPoint PPT Presentation

Material and some slide content from: - Emerson Murphy-Hill, Reid Holmes - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture Architectural Style Intro & Early Feedback Mei Nagappan Pitch Survey


  1. Material and some slide content from: - Emerson Murphy-Hill, Reid Holmes - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture Architectural Style Intro & Early Feedback Mei Nagappan

  2. Pitch Survey ‣ Your group name ‣ Most interesting ‣ Most useful MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  3. Early Feedback ‣ What can be improved/done di ff erently? ‣ What do you dislike the most? ‣ What do you like? MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  4. 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 MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  5. [TAILOR ET AL.] 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 MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  6. [TAILOR ET AL.] Architectural styles A set of architectural design decisions that are ‣ applicable to a recurring design problem, and parameterized to account for di ff erent software development contexts in which that problem appears. e.g., Three-tier architectural pattern: ‣ MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  7. [CZARNECKI] Architectural styles ‣ 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, …) MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  8. [CZARNECKI] 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 MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  9. [CZARNECKI] “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. MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  10. [TOPOLOGY FROM TAILOR ET AL.] Architectural Styles Language Layered Dataflow Peer-to-Peer Based Object- Client Pipe-and-Filter oriented Server Main program & Virtual Batch- Subroutines Machine sequential Shared Implicit Interpreter Memory Invocation Publish- Rule-based Interpreter subscribe Mobile Blackboard Event-based code MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  11. Arch Activity MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

  12. 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. MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  13. 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? MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  14. [TAILOR ET AL.] Style: Client-server MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  15. [TAILOR ET AL.] 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. MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

  16. [TAILOR ET AL.] Style: Client-server ‣ 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. MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

Recommend


More recommend