L5 Software Architecture Flashcards
What is the software architecture of a system?
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
What is the implications of “architecture is a set of structures”?
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
What are the different levels of abstraction in a software design process
- Architectural Design
- Interface Design
- Component Design
- Data Structure Design
- Algorithm design
What does it mean by Architectural Design level of abstraction?
The sub-systems making up the system and their relationships are identified and documented. Model of control is identified.
What does it mean by Interface Design level of abstraction?
For each sub-system, its interface with other sub-systems is designed and documented.
What does it mean by Component Design level of abstraction?
Services (i.e. functional requirements) are allocated to different components and the interfaces of these components are designed.
What does it mean by Data structure design?
The data structures used in the system implementation are designed in detail
What does it mean by Algorithm design?
The algorithms used to provide services are designed in detail and specified.
What are the steps in architectural design?
- System structuring - the system is structured into a number of principal sub-systems or components and the communication between sub-systems is identified.
- Control Modelliing - a general model of control relationships between the parts of the system is established.
- Modular decomposition - each sub-system is decomposed into modules
What are the ways to describe architecture?
- Formal notations
- Architecture Description Languages
- Semi Formal
- Box and Line notation
What are the 4 steps to identify a sub-systems & their interfaces
- Identify MAJOR functions the system is required to provide (From textual requirements and use cases)
- Associate the major system functions with sub-systems by grouping together logically similar functions
- Sub-systems may be decomposed further using the same principle
- Specify sub-system interfaces
Architectural representation: box and line diagram
● 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
Identifying sub-systems: generic example
Partitioning requirements into sub-systems
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
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
Alarm system: identifying sub-systems