L5 Software Architecture Flashcards

1
Q

What is the software architecture of a system?

A

Is a set of structures needed to reason about the system, which comprise software elements, relations amongst and properties of both

Software elements may be software sub-system or components

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

What is the implications of “architecture is a set of structures”?

A

A structure is a simple set of elements held together by relations

Architecture consists of structures and structures consist of elements and relations

Architecture purposely omits certain information that is not useful for reasoning about the system

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

What are the different levels of abstraction in a software design process

A
  • Architectural Design
  • Interface Design
  • Component Design
  • Data Structure Design
  • Algorithm design
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What does it mean by Architectural Design level of abstraction?

A

The sub-systems making up the system and their relationships are identified and documented. Model of control is identified.

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

What does it mean by Interface Design level of abstraction?

A

For each sub-system, its interface with other sub-systems is designed and documented.

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

What does it mean by Component Design level of abstraction?

A

Services (i.e. functional requirements) are allocated to different components and the interfaces of these components are designed.

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

What does it mean by Data structure design?

A

The data structures used in the system implementation are designed in detail

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

What does it mean by Algorithm design?

A

The algorithms used to provide services are designed in detail and specified.

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

What are the steps in architectural design?

A
  1. System structuring - the system is structured into a number of principal sub-systems or components and the communication between sub-systems is identified.
  2. Control Modelliing - a general model of control relationships between the parts of the system is established.
  3. Modular decomposition - each sub-system is decomposed into modules
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are the ways to describe architecture?

A
  1. Formal notations
  2. Architecture Description Languages
  3. Semi Formal
  4. Box and Line notation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are the 4 steps to identify a sub-systems & their interfaces

A
  1. Identify MAJOR functions the system is required to provide (From textual requirements and use cases)
  2. Associate the major system functions with sub-systems by grouping together logically similar functions
  3. Sub-systems may be decomposed further using the same principle
  4. Specify sub-system interfaces
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Architectural representation: box and line diagram

A

● At its most abstract level, an architectural design may be depicted as a block diagram (using box and line diagram):
○ The block diagram comprises the system’s major sub-systems, their components and relations
○ Sub-systems are often identified by clustering logical functionality (e.g. UI, computation, management, storage, etc.)
○ Boxes within boxes indicate that the sub-system itself has been decomposed to components (we often keep decomposition to two levels)
○ Links represent function calls, data or control signals that are passed from component to component in the direction of the arrow

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

Identifying sub-systems: generic example
Partitioning requirements into sub-systems

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

Alarm System example

● Consider an intruder alarm system that activates a siren and notifies the local control centre when its sensors are tripped. The alarm system has:
○ Movement (motion), door and window sensors
○ A video system that is activated when potential intruders are detected. The date, time, property address and video of potential intruders is relayed to an external control centre
○ A messaging system that sends a text message together with a preconfigured number of still images of potential intruders to the home owner

● Task
○ Identify possible sub-systems for the alarm system and their interaction. Hint: Group together related functionality to form sub-systems

A

Alarm system: identifying sub-systems
I. Read through the system description to establish what the system is required to do OR what the system does

II. List the system functions (sensing intruders, activating siren, notifying local control, activating video, messaging home owner)

III. Group related functionality (sensor, siren, video relay, video, message)

IV. Associate functionality of sub-systems

V. For each sub-system establish if there is need to partition further

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

Alarm system: identifying sub-systems

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

Alarm system: identifying sub-system interaction (adding “glue” component, i.e. “Controller”)

A
17
Q

Alarm system: label calls & control flows

A
18
Q

Specifying sub-system interfaces
- The description of a sub-system or component interface should include the following elements:

A

○ Interface name: a unique identifier for the interface (e.g. ISensor)
○ Operations: the name of each operation, together with input parameters and output/return, e.g. motionDetected(:int)
■ Operation name: motionDetected
■ Input: None
■ Output/return: int (indicating location of sensor or sensor number)

○ Exceptions: the name and data context for operation exceptions (i.e. what causes the exception, e.g. invalid input parameter)
○ Service quality (optional): non-functional properties associated with the service provided at the interface

19
Q

Specifying sub-system interfaces
Continued

A
  • An interface may have several operations, each with its own input and output parameters
    • An output parameter represents what is returned by operation
  • For example, the ISensor interface may have the following operations:
    • motionDetected(): int
    • windowOpened(): bool
    • doorOpened(): bool
  • I is convention used to denote “interface”: used less and less
  • Common alternatives to I are names that end in er or able, e.g., Reader, Writer, Executer, Moveable, Destroyable, Closeable etc.
20
Q

Specifying sub-system intefaces: ball and socket

A
21
Q

Guidelines for interface

A
22
Q

Alarm system with interfaces (ball and socket)

A
23
Q

Interface operations and parameters

A