Week 8 Flashcards

1
Q

What are the views in 4+1 architectural view models, and what diagrams are used to represent them?

A

Logical view - functionality the system provides to users - class & sequence diagrams

Development view - illustrates system from the programmers perspective - component and package diagrams

Process view - dynamic aspects of the system, runtime behaviour etc - activity diagram

Physical view - illustrates the system engineers view - deployment diagram

Scenarios - small set of use cases or scenarios, describing sequences of interactions between objects and processes

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

What is system architecture?

A

Fundamental organisation of a system - components, their relationships, the environment etc.

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

What is an architectural description?

A

A set of products that document the architecture

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

What is an architectural view?

A

Representation of a particular system or part of a system from a particular perspective

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

What is an architectural viewpoint?

A

Template that describes how to create and use an architectural view

Includes name, stakeholders, concerns addressed by the viewpoint

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

What does an architectural style describe?

A

Types of components

Types of connectors

Topology (constraints on possible compositions)

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

What are the 4 steps in the processing model of a client-server communication?

A

Client initiates request

Request passes through network

Server responds

Response returned via network

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

What properties does client-server communication have?

A

Transparency - server can be on different machines without affecting the client, client knows the server but not the other way round

Heterogeneity - different machines, operating systems

Redundancy

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

What are the 4 major forms of redundancy?

A

Hardware redundancy

Information redundancy (e.g error detection & correction)

Time redundancy

Software redundancy

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

In MVC, what is the model?

A

Provides the functionality of the program

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

In MVC, what is the view?

A

Presents the data from the model to the user, updating when data has changed

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

In MVC, what is the controller?

A

Accepts user input in the form of events. Created by the view

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

In MVC, what is a propagation mechanism?

A

Enables the model to inform the view that the data has changed

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

What two approaches are there for dividing a software system into subsystems?

A

Layering - levels of abstraction

Partitioning - each subsystem focuses on different aspect

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

In a layered architecture, what is the difference between closed and open architecture?

A

Closed - messages can only be sent to the next lowest layer

Open - messages can be sent to any lower layer

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

In P2P networks, how can peers be found (3 ways)?

A

Directory service - central server or “rendezvous peer” gives listing of clients

Multicast - peers announce their presence on a communication channel

Neighbour model - peers talk directly to each other

17
Q

What are 4 advantages of P2P networks?

A

Very flexible

Evolves with minimal effort

Efficient

Heterogenous

18
Q

What are 3 disadvantages of P2P networks

A

Security - almost impossible to authentiate

Duplication

Data corruption (??? wtf idk)

19
Q

What is the difference between error, fault and failure?

A

Error - a human mistake in software development

Fault - the result of errors

Failure - dynamic manifestation of faults

20
Q

What is static validation (3 examples)?

A

Validation carried out without executing the program

e.g. software inspection, formal verification, static typing

21
Q

What is dynamic validation (2 examples)?

A

Validation carried out by executing the program

e.g. testing, defensive programming

22
Q

2 pros, 3 cons of static validation

A

+ detection is earlier in the process - need not be complete

+ Correction is easier and cheaper

  • Reduced flexibility
  • increased bookkeeping
  • incomplete
23
Q

What sort of things does code inspection detect?

A

Stuff like resharper. Unreachable code, unitialised variables, array bounds, infinite loops

24
Q

Which conversions between subtype and supertype are permissible with automatic coercion?

A

subtype to super type

25
Q

What is the difference between weak typing and strong typing?

A

Weak: Supporting implicit typing, overloading or both

Strong: coercions only allowed if value is preserved, otherwise cast needed

26
Q

What is the difference between static and dynamic typing?

A

Static typing: done by compiler, every name needs type declaration

Dynamic typing: done at runtime, requires dynamic binding between object and type