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

architectural style intro early feedback
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

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
slide-2
SLIDE 2

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

Pitch Survey

  • Your group name
  • Most interesting
  • Most useful
slide-3
SLIDE 3

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

Early Feedback

  • What can be improved/done differently?
  • What do you dislike the most?
  • What do you like?
slide-4
SLIDE 4

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
slide-5
SLIDE 5

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

Architectural styles

  • Some design choices are better than others
  • Experience can guide us towards beneficial sets
  • f 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.]

slide-6
SLIDE 6

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.]

slide-7
SLIDE 7

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, …)
slide-8
SLIDE 8

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]

slide-9
SLIDE 9

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]

slide-10
SLIDE 10

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

Architectural

Styles

Language Based Layered Dataflow Shared Memory Interpreter Implicit Invocation Peer-to-Peer

Main program & Subroutines Object-

  • riented

Virtual Machine Client Server Batch- sequential Pipe-and-Filter Blackboard Rule-based Interpreter Mobile code Publish- subscribe Event-based

[TOPOLOGY FROM TAILOR ET AL.]

slide-11
SLIDE 11

MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

Arch Activity

slide-12
SLIDE 12

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.
slide-13
SLIDE 13

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?
slide-14
SLIDE 14

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

Style: Client-server

[TAILOR ET AL.]

slide-15
SLIDE 15

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.]

slide-16
SLIDE 16

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.]