software architecture + architectural styles Flashcards

1
Q

architecture

A

set of structures needed to reason about the system

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

in which four ways can we describe architecture

A

formal notations; mathematical
architecture description languages; e.g. backus naur form
box and line
ball and socket; semiformal development of box and line

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

what are the 3 steps in architectural design

A

structuring the system into key components and the communication between them
control modelling to organise the system
modular decomposition of sub systems

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

what are the 4 steps we take to identify sub systems and their interfaces

A

identify major functions the system should provide
group together similar functions to get bigger sub systems
can decompose these further
specify interfaces

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

what should subsystem and component interface descriptions include

A

a name
operations within it
exception handlers
non-functional properties

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

ball in ball and socket

A

provided
provides a service
does the processing

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

socket in ball and socket

A

required
service user/caller

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

control model

A

controls the flow between subsystems

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

what are the two types of control models

A

centralised control and event based systems

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

centralised control

A

one subsystem has overall responsibility for control

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

what are the two types of centralised control

A

call return model
manager model

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

manager model

A

for concurrent systems
the controller controls the stopping and starting and coordination of all system processes

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

event based systems

A

each subsystem can respond to externally generated events from other subsystems or the systems environment

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

call return model

A

for sequential systems
hierarchical; main() starts the entire system and control is passed down the hierarchy

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

what does architectural choice usually affect

A

non functional requirements

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

what are the 6 architectural concepts that we could trade-off on

A

performance
security
safety
availability
maintainability

12
Q

performance

A

localise critical operations and minimise communications
larger components

13
Q

security

A

layered architecture with critical assets in the inner layers
don’t want functionality close to communication or the ui as this makes the system easier to hack

14
Q

safety

A

localise safety critical features in a small number of subsystems
keeping it localised makes it harder to hack

15
Q

availability

A

redundant mechanisms and components for fault tolerance so if a component crashes its copy can be used

16
Q

maintainability

A

fine grain replaceable components which are easy to understand and not highly coupled

17
Q

architectural styles

A

specific templates which are general and reusable

18
Q

what are 5 common architectural styles

A

input-output-process
plug in
layered
repository
client server

19
Q

input-output-process

A

monolithic systems
business logic is decoupled from the ui

20
what are two benefits of input-output-process
if the ui changes or breaks it doesn't affect the logic logic can be tested quickly and independently without the need for a ui
21
plug in
component that provides a service within the overall system and depends on it it has to conform to the systems plug in contract
22
what is a positive of plug in
the system is extensible and modular
23
what are two negatives of plug in
changes in the system can break the plug in can be compromised if not managed properly
24
layered
components are organised into subsystems and each one can only communicate with the one below it
25
what are two benefits of layered
architecture is changeable and portable as long as interfaces stay unchanged each layer can be developed by different teams independantly
26
what is a good use of layered
authentication and authorization
27
repository
data generated in one component is used in other components
28
what is repository used in
command and control systems management information systems
29
what are two positives of repository
good for sharing large amounts of data components can be independent
30
what are three negatives of repository
distributing components over multiple systems is difficult integrating new components may be tricky as they have to comply with the agreed repository schema single point of failure
31
client server
servers offer services to clients usually connecting via internet protocols
32
two positives of client server
servers can be distributes across a network general functionality doesn't need to be implemented by all servers
33
a negative of client server
each server is a single point of failure and susceptible to denial of service attacks