Software Architecture and Style Flashcards

1
Q

Software Architecture Definition

A

Software architecture is considered as a description of the high level structure of a software system in terms of architectural elements and the interactions between them

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

what is a Component

A

 A component is a unit of software that performs some functions at run-time.
 Examples: programs, objects, processes, clients, servers, databases

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

What is a connector

A

Interactions among components:
 communication, coordination, or cooperation among components.

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

Examples of Connectors

A

Examples: shared variable access, procedure calls, remote procedure calls,
communication protocols, data streams, transaction streams.

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

Architecture Design Process

A

 Understand the problem
 Identify design elements and their relationships
 Evaluate the architecture design
 Transform the architecture design

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

Key Architecture Principles

A

Build to change instead of building to last
 Reduce risk and model to analyze
 Use models and visualizations as a
communication and collaboration tool
 Use an incremental and iterative approach

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

Key Design Principles 1

A

Separation of concerns
 Single responsibility principle
 Principle of least knowledge
 Minimize large design upfront
 Do not repeat the functionality

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

Key Design Principles 2

A

Prefer composition over inheritance while reusing the functionality
 Identify components and group them in logical layers
 Define the communication protocol between layers
 Define data format for a layer

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

Pipe and Filter architecture Advantages

A

Concurrency
 Reusability
 Modifiability and low coupling between filters
 Supporting both sequential and parallel execution

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

Architecture examples – Pipe and Filter architecture Disadvantages

A

Disadvantages:
 Low dynamicity
 Overhead

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

Process control Architecture description

A

Data comes from a set of variables, which controls the execution of process
 Processing unit for changing the process control variables and a controller unit for calculating the amount of changes

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

A controller unit must have the following elements, for process control architecture:

A

Controlled variables
 Input variables
 Manipulated variables
 Process definition
 Sensor
 Set point
 Control algorithm
Examples:
 Car-cruise control, anti-lock brakes, temperature
control

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

Describe Data-centered architecture

A

Data is centralized and accessed frequently by
other components, which modify data
 Main purpose: integrity of data
 Components interact only through the data store

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

Examples of Data-centered architecture

A

database architecture, which contains the central data and the data accessor

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

The flow of control differentiates the architecture into two sub-categories:

A

 Repository
 Blackboard

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

Repository architecture style:

A

Data store is passive
 Clients (software components or agents) are
active, which control the logic flow
 Client sends a request to the system to
perform actions
 Computational processes are independent and triggered by incoming requests
look for Repository Architecture image

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

Advantages of repository architecture style

A

Scalability and reusability of agents as they do
not have direct communication with each
other

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

DisAdvantages of repository architecture style

A

Vulnerable to failure
 Changes in data structure highly affect the
clients

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

Blackboard architecture style overview

A

Data store is active and its clients are passive
 Logical flow is determined by the current data
status in data store
 Blackboard component acts as a central data
repository

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

Blackboard architecture style Operations

A

Components act independently on common
data store in the blackboard
 Processing is triggered by the state of the
blackboard

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

Blackboard architecture style advantages

A

 Scalability
 Concurrency

21
Q

Blackboard architecture style disadvantages

A

Close dependency exists between blackboard
and agents
 Problems in synchronization of multiple agents

22
Q

Hierarchical architecture Overview

A

 Views the whole system as a hierarchy structure
 Software system is decomposed into logical modules

Low-level subsystem give services to its adjacent upper level subsystems, which invoke the methods in the lower level:
 Lower layer – specific functionality
 Middle layer – domain dependent functions
 Upper layer – user interface

23
Q

Hierarchical architecture sub types, what are they

A

Three sub-types:
 Main-subroutine
 Master-slave
 Virtual machine

24
Describe the main subroutine in hierarchical architecture
Main-subroutine  Individual modules or subroutine  Top-down refinement  Functionality may be reused and shared by callers in higher layers See Main-Subroutine image
25
Main-subroutine Advantages
26
Main-subroutine Disadvantages
Vulnerable as it contains global shared data  Tight coupling
27
Master Slave Hierarchical Architecture
Master-slave  Slaves provide duplicate services to the master  Master chooses a particular result among slaves by a certain selection strategy  Slaves may perform the same functional task by different algorithms and methods  Slaves can be executed in parallel See Master Slave Image
28
Master Slave Advantages
Speed  Robustness  Slaves can be implemented differently
29
Master Slave Disadvantages
Communication overhead  Not all problems can be divided  Portability issue
30
What is interaction-oriented architecture
Separate the interaction of user from data abstraction and business data processing  Data module  Control module  View presentation module
31
What is interaction-oriented architecture sub types
Model-View-Controller (MVC)  Presentation-Abstraction-Control (PAC)
32
Model-View-Controller (MVC) overview
Model – Manages the data, logic, and constraints of an application  View – output of information  Controller – accepts and input and converts it to commands for the model or view see image
33
MVC Advantages
Multiple views synchronized with same data model.  Used for application development where graphics expertise, programming, and data base development professionals are working in a team
34
MVC Disadvantages
Not suitable for agent-oriented applications  Division between the View and Controller is not clear in some cases
35
is Presentation-Abstraction-Control part of interaction oriented architecture
yes
36
overview of Presentation-Abstraction-Control
Presentation-Abstraction-Control (PAC) (Hierarchy of many cooperating agents)  Presentation component  Abstraction component  Control component See image Loosely coupled, hierarchical cooperating agents
37
Presentation-Abstraction-Control Advantages
Support multi-tasking and multi-viewing  Support agent reusability and extensibility
38
Presentation-Abstraction-Control Disdvantages
Overhead  Difficult to determine the right number of agents
39
Describe Distributed Architecture
Components are presented on different platforms and several components can cooperate with one another over a communication network in order to achieve a specific objective or goal  Example: ERPS (Enterprise Resource Planning System) See image
40
Distributed Architecture Advantages
Openness  Concurrency  Scalability  Fault tolerance
41
Distributed Architecture Disadvantages
 Complexity  Security  Manageability  Unpredictability
42
Overview of component based architecture
 A component is a modular, portable, replaceable, and reusable set of well-defined functionality that encapsulates its implementation  The decomposition of the design into individual functional or logical components that represent well-defined communication interfaces containing methods, events, and properties  Component reusability
43
Component-based architecture advantages
Reduced development cost  Increased reliability  Ease of deployment  Reusable  Independent
44
Component-based architecture Disadvantages
Compromises in requirements may be needed  Less control over the system's evolution
45
Describe data flow architecture again
Series of transformations to the data Well-defined series of independent data transformations or computations on orderly defined input and output Example:  Compilers  Business data processing
46
Describe a sub type of data flow architecture, batch sequential
Data transformation subsystem can initiate its process only after its previous subsystem is completely through Example:  Banking application  Utility billing See image
47
Batch sequential Advantages
Provides simpler divisions on subsystems  Independent programs
48
Batch sequential Disadvantages
High latency and low throughput  No concurrency and interactive interface
49
Describe another subtype of data flow architecture, the pipe and filter
see the image it's an incremental transformation
50
pipe and filter advantages
Concurrency  Reusability  Modifiability and low coupling between filters  Supporting both sequential and parallel execution
51
pipe and filter disadvantages
Low dynamicity  Overhead