Architectural Designs Flashcards

1
Q

What is architectural design?

A

Architectural design is the critical link between design and requirements engineering, as it identifies the main structural components in a system and the relationships between them. The output of the architectural design process is an architectural model that describes how the system is organized as a set of communicating components.

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

Is it common to reuse architectural designs?

A

You will often hear “Our requirements are unique” - this is rarely, if ever, true! Most often we will in part, or in full, reuse existing architectural designs. Systems in the same domain often have similar architectures that reflect domain concepts. Application product lines are built around a core architecture with variants that satisfy particular customer requirements.

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

What are the five fundamental questions that should be addressed in architectural design

A

Architectural design is a creative process so the process differs depending on the type of system being developed. However, a number of common decisions span all design processes and these decisions affect the non-functional characteristics of the system.

  1. Is there a common generic solution to this type of system? A template or pattern.
  2. How will the system be distributed across the hardware?
  3. How will the design be decomposed into sub-systems?
  4. How should the architecture be documented?
  5. Do the non-functional requirements suggest (or dictate) a particular architectural solution?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is software architecture?

A

Software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both. Architectural details can be traced back to failure risks

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

What are the advantages of explicitly designing and documenting a software architecture?

A

Stakeholder communication - Architecture may be used as a focus of discussion by system stakeholders. System analysis - Means that analysis of whether the system can meet its non-functional requirements is possible. Large-scale reuse - The architecture may be reusable across a range of systems Product-line architectures may be developed. Mitigate risks

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

What are the types of requirements for requirements gathering?

A
  • A user-level facility description
  • A detailed specification of expected system behaviour
  • A general system property
  • A specific constraint on the system
  • Information on how to carry out some computation
  • A constraint on the development system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are functional and non-functional requirements

A

Functional requirements - defines a function or feature of the system, something that the system should do Non-functional requirements - defines some observable characteristics or quality of the system

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

What are domain requirements?

A

Domain requirements - derived from the characteristics of the application domain or rules and regulations that apply in that domain

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

What is requirements engineering?

A

Requirements engineering covers all of the activities involved in discovering, documenting and maintaining a set of requirements for a computer-based system. Requirements engineering is difficult and can lead to many issues within the project

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

What are architectural patterns?

A

Patterns are a means of representing, sharing and reusing knowledge. An architectural pattern is a stylized description of good design practice, which has been tried and tested in different environments. Patterns should include information about when they are and when the are not useful. Patterns may be represented using tabular and graphical descriptions.

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

What is the MVC pattern?

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

What is the layered architecture pattern?

A

Used to model the interfacing of sub-systems. Organises the system into a set of layers (or abstract machines) each of which provide a set of services. Supports the incremental development of sub-systems in different layers. When a layer interface changes, only the adjacent layer is affected. However, often artificial to structure systems in this way.

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

What is the repository pattern?

A

Sub-systems must exchange data. This may be done in two ways: - Shared data is held in a central database or repository and may be accessed by all sub-systems; - Each sub-system maintains its own database and passes data explicitly to other sub-systems. When large amounts of data are to be shared, the repository model of sharing is most commonly used a this is an efficient data sharing mechanism.

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

What is the client-server pattern?

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

What is an example of MVC pattern?

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

What is an example of the layered archutecture pattern?

A
17
Q

What is an example of the repository pattern?

A
18
Q

What is an example of the client-server pattern?

A
19
Q

What is the pipe and filter pattern?

A
20
Q

What is an example of the pipe and filter pattern?

A
21
Q

What is model-driven engineering?

A

The generation of executable software from models designed using software tools. Benefits include automatic implementation for different platforms from the same model.

22
Q

What are the three categories of non-functional requirement with examples?

A

Product, Organisational, External…

23
Q

Why do software engineers often have to design the system architecture before all requirements have been gathered and analysed?

A
24
Q

Why are requirements for high availability and strong security likely to cause conflicts in architectural design choices?

A

Think about solutions such as replication, distribution and the conflicting need to minimise copies.

25
Q

What do Gamma et al. suggest are the four essential elements of a design pattern?

A

A meaningful name

A description of the problem and when the pattern can be applied

A solution description, which shows the components in the solution and their relationships.

A statement of the consequences of applying the pattern.

26
Q

What are UML activity diagrams? How might we use them?

A

Activity diagrams show the flow of control and sub-processes. An easily understood visual representation of complex systems.

27
Q

What is model-driven engineering?

A

The generation of executable software from models designed using software tools. Benefits include automatic implementation for different platforms from the same model.