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
Q

what are two benefits of input-output-process

A

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
Q

plug in

A

component that provides a service within the overall system and depends on it
it has to conform to the systems plug in contract

22
Q

what is a positive of plug in

A

the system is extensible and modular

23
Q

what are two negatives of plug in

A

changes in the system can break the plug in
can be compromised if not managed properly

24
Q

layered

A

components are organised into subsystems and each one can only communicate with the one below it

25
Q

what are two benefits of layered

A

architecture is changeable and portable as long as interfaces stay unchanged
each layer can be developed by different teams independantly

26
Q

what is a good use of layered

A

authentication and authorization

27
Q

repository

A

data generated in one component is used in other components

28
Q

what is repository used in

A

command and control systems
management information systems

29
Q

what are two positives of repository

A

good for sharing large amounts of data
components can be independent

30
Q

what are three negatives of repository

A

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
Q

client server

A

servers offer services to clients usually connecting via internet protocols

32
Q

two positives of client server

A

servers can be distributes across a network
general functionality doesn’t need to be implemented by all servers

33
Q

a negative of client server

A

each server is a single point of failure and susceptible to denial of service attacks