Software Architecture Flashcards

1
Q

Software Architecture:

Two Parts

A

Architectural Design Process

The design process for identifying the sub-systems and the framework for sub-system control and communication

Software Architecture

The output of the Architectural Design Process

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Architectural Design Process:

Basic Description

A
  • An early stage of the system design process
  • Represents the link between specification and the design processes
  • Often carried out in parallel with some specification activities
  • Involves identifying major system components and their communications/interactions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Architectural Design:

Important Concepts

A

Architectural Representations

Architectural Reuse

Architectural Patterns

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Architectural Design:

Architectural Representations

A

Simple, informal block diagrams showing major entities/components and relationships

  • Basic, “Box and Line” diagrams
  • Very abstract, but useful for communication with stakeholders and for project planning
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Architectural Design:

Architectural Reuse

A

A principle of design. Do not reinvent the wheel.

  • Systems in the same domain often have very similar architectures which reflect domain concepts
  • The architecture of a system may be designed around one or more Architectural Patterns or Styles
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Architectural Design:

Architectural Patterns:

Overview

A
  • “Patterns” are a means of representing, sharing and reusing knowledge
  • An Architectural Pattern is a description of good design practice, which has been tried and tested in different environments
  • Patterns should include information about when they are and are not useful
  • Patterns may be represented using tabular and graphical descriptions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Architectural Patterns:

Some Major Architectural Patterns (6)

A
  • Client-Server Architecture
  • Model-View-Controller
  • Model-View-View Model
  • Layered Architecture
  • Repository Architecture
  • Pipe and Filter Architecture

Note: this is far from comprehensive

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Architectural Patterns:

Client-Server Architecture

A
  • A distributed system model
  • Shows how data and processing are distributed across a range of components
  • Set of stand-alone servers which provide specific services
  • Set of Clients which call on these Servers
  • Network which allows Clients to access Servers
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Architectural Patterns:

Model-View-Controller

A
  • Separates the Presentation and Interaction from System Data
  • System is split into three major layers:
    • Model (Data Layer):
      • Encapsulates Application State
      • Notifies View of state changes
    • View (Presentation Layer)
      • Renders the Model
      • Requests Model updates
      • Sends User Events to the Controller
    • Controller (Interaction Layer)
      • Maps User Events to model updates
      • Selects View
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Architectural Patterns:

Layered Architecture

A
  • Used to model the interfacing of multiple subsystems
  • Organizes the system into a set of layers, each of which provide a set of services
  • Supports incremental development of subsystem in different layers
  • Upper layers depend on lower layers
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Architectural Patterns:

Repository Architecture

A

Represents a data repository that is shared by many subsystems

  • Subsystems must exchange data in one of two ways:
    • Shared data is held in a central database or repository
    • Each subsystem maintains its own database and passes data explicitly to other subsystems
  • When large amounts of data need to be shared, repository model is most commonly used
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Architectural Patterns:

Pipe and Filter Architecture

A
  • Functional transformations:
    • Process Inputs
    • Produce Outputs
  • Models a “Pipeline”
  • Not really suitable for interactive systems
  • Good when there is a well known “work flow”
  • Early Components/Stages take in inputs and provide inputs into later Components/Stages
  • Final Components/Stages produce outputs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly