ARCHITECTURAL DESIGN I Flashcards

1
Q

What is architectural design and what is its output?

A

 The design process for identifying the sub-systems
making up a system and the framework for sub-system
control and communication is architectural design.
 The output of this design process is a description of the software architecture.

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

Describe Architectural design

A

 An early stage of the system design process.
 Represents the link between specification and design
processes. Often carried out in parallel with some specification activities.
 It involves identifying major system components and
their communications.

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

What is the importance of architectural design?

A

 The most important part of design because it unifies both types of design

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

Describe architectural abstraction in small systems

A

 Architecture in the small systems is concerned with the architecture of individual programs.
 At this level, we are concerned with the way that an
individual program is decomposed into components.

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

Describe architectural abstraction in large systems

A

 Architecture in the large is concerned with the architecture of complex enterprise systems that include other systems, programs, and program components.
 These enterprise systems are distributed over different networks and computers, which may be owned and managed by different companies.

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

What are the main issues involved with using simple informal block diagrams for architectural representation

A

 Simple, informal block diagrams showing entities and
relationships are the most frequently used method for
documenting software architectures.
 But these have been criticized because:
-they lack semantics
-do not show the types of relationships between
entities
-do not show the visible properties of entities in the
architecture.

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

What are the uses of architectural models?

A

 As a way of facilitating discussion about the system design. Stakeholders are are able to understand an abstract view of the system and can discuss it without confusion
 As a way of documenting an architecture that has been designed. A complete system model is produced that shows different components in the system, their interfaces and their connections.

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

Give examples of architectural design decisions that span across all design processes

A

 Is there a generic application architecture that can be used?
 How will the system be distributed?
 What architectural styles are appropriate?
 What approach will be used to structure the system?
 How will the system be decomposed into modules?
 What control strategy should be used?
 How will the architectural design be evaluated?
 How should the architecture be documented?

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

Describe some situations in which architecture can be reused

A

 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
10
Q

Describe the use of architecture patterns or styles

A

 The architecture of a system may be designed around
one of more architectural patterns or ‘styles’.
 These capture the essence of an architecture and can be instantiated in different ways.

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

Describe architecture and system characteristics

A

 Performance- Localize critical operations and minimize communications.
 Security- Use a layered architecture with critical assets in the inner layers.
 Safety- Localize safety-critical features in a small number of sub-systems.
 Availability- Include redundant components and mechanisms for fault tolerance.
 Maintainability- Use fine-grain, replaceable components.

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

Describe 4+1 View Model of Software Architecture

A

 A logical view, which shows the key abstractions in the system as objects or object classes.
 A process view, which shows how, at run-time, the system is composed of interacting processes.
 A development view, which shows how the software is decomposed for development.
 A physical view, which shows the system hardware and how software components are distributed across the processors in the system.
 Related using use cases or scenarios (+1

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

Define an architectural pattern

A

An architectural pattern is a stylized description of good design practice, which has been tried and tested in different environments.

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

Describe architectural patterns in general

A

 Patterns are a means of representing, sharing and
reusing knowledge
 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
15
Q

Describe the MVC model and its components

A

Separates presentation and interaction from the system data. The system is structured into three logical components that interact with each other.
* The Model component manages the system data and associated operations on that data.
* The View component defines and manages how the data is presented to the user.
* The Controller component manages user interaction (e.g., key presses, mouse clicks, etc.) and passes these interactions to the View and the Model.

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

Illustrate the MVC model

A

*See notes for the illustration

17
Q

When is the MVC model used?

A
  • Used when there are multiple ways to view and interact with data.
  • Also used when the future requirements for interaction and presentation of data are unknown.
18
Q

What are the advantages of the MVC model

A
  • Allows the data to change independently of its representation and vice versa.
  • Supports presentation of the same data in different ways with changes made in one representation shown in all of them.
19
Q

What is a possible disadvantage of the MVC model

A
  • Can involve additional code and code complexity when the data model and interactions are simple.
20
Q

Describe layered architecture

A
  • Organizes the system into layers with related functionality associated with each layer.
  • A layer provides services to the layer above it so the lowest-level layers represent core services that are likely to be used throughout the system.
  • Organizes the system into a set of layers (or abstract
    machines) each of which provide a set of services.
21
Q

Illustrate both a generic and specific layered architecture

A

*See notes for illustration

22
Q

When is the layered architecture used?

A
  • Used when building new facilities on top of existing systems;
  • When the development is spread across several teams with each team responsibility for a layer of functionality;
  • When there is a requirement for multi-level security.
23
Q

What are the advantages of layered architecture

A
  • Allows replacement of entire layers so long as the interface is maintained.
  • Redundant facilities (e.g., authentication) can be provided in each layer to increase the dependability of the system.
  • Supports the incremental development of sub-systems
    in different layers.
  • When a layer interface changes, only the adjacent layer is affected.
24
Q

What are the disadvantages of layered archtitecture

A
  • In practice, providing a clean separation between layers is often difficult and a high-level layer may have to interact directly with lower-level layers rather than through the layer immediately below it.
  • Performance can be a problem because of multiple levels of interpretation of a service request as it is processed at each layer.
25
Q

What does the architectural model reveal in terms of views of the system?

A

 Each architectural model only shows one view or
perspective of the system.
 It might show how a system is decomposed into
modules, how the run-time processes interact or the
different ways in which system components are
distributed across a network.
 For both design and documentation, you usually need
to present multiple views of the software architecture.