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
Q

Describe the main subroutine in hierarchical architecture

A

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
Q

Main-subroutine Advantages

A
26
Q

Main-subroutine Disadvantages

A

Vulnerable as it contains global shared data
 Tight coupling

27
Q

Master Slave Hierarchical Architecture

A

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
Q

Master Slave Advantages

A

Speed
 Robustness
 Slaves can be implemented differently

29
Q

Master Slave Disadvantages

A

Communication overhead
 Not all problems can be divided
 Portability issue

30
Q

What is interaction-oriented architecture

A

Separate the interaction of user from data
abstraction and business data processing
 Data module
 Control module
 View presentation module

31
Q

What is interaction-oriented architecture sub types

A

Model-View-Controller (MVC)
 Presentation-Abstraction-Control (PAC)

32
Q

Model-View-Controller (MVC) overview

A

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
Q

MVC Advantages

A

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
Q

MVC Disadvantages

A

Not suitable for agent-oriented applications
 Division between the View and Controller is not
clear in some cases

35
Q

is Presentation-Abstraction-Control part of interaction oriented architecture

A

yes

36
Q

overview of Presentation-Abstraction-Control

A

Presentation-Abstraction-Control (PAC)
(Hierarchy of many cooperating agents)
 Presentation component
 Abstraction component
 Control component

See image
Loosely coupled, hierarchical cooperating agents

37
Q

Presentation-Abstraction-Control Advantages

A

Support multi-tasking and multi-viewing
 Support agent reusability and extensibility

38
Q

Presentation-Abstraction-Control Disdvantages

A

Overhead
 Difficult to determine the right number of
agents

39
Q

Describe Distributed Architecture

A

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
Q

Distributed Architecture Advantages

A

Openness
 Concurrency
 Scalability
 Fault tolerance

41
Q

Distributed Architecture Disadvantages

A

 Complexity
 Security
 Manageability
 Unpredictability

42
Q

Overview of component based architecture

A

 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
Q

Component-based
architecture advantages

A

Reduced development cost
 Increased reliability
 Ease of deployment
 Reusable
 Independent

44
Q

Component-based
architecture Disadvantages

A

Compromises in requirements may be needed
 Less control over the system’s evolution

45
Q

Describe data flow architecture again

A

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
Q

Describe a sub type of data flow architecture, batch sequential

A

Data transformation subsystem can initiate its
process only after its previous subsystem is
completely through

Example:
 Banking application
 Utility billing

See image

47
Q

Batch sequential Advantages

A

Provides simpler divisions on subsystems
 Independent programs

48
Q

Batch sequential Disadvantages

A

High latency and low throughput
 No concurrency and interactive interface

49
Q

Describe another subtype of data flow architecture, the pipe and filter

A

see the image
it’s an incremental transformation

50
Q

pipe and filter advantages

A

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

51
Q

pipe and filter disadvantages

A

Low dynamicity
 Overhead