Chapter 6 Flashcards

1
Q

What is Architectural design?

A

Architectural design is the first stage in the software design process. It 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

What are the levels of abtraction at software architecture design?

A
  1. Architecture in the small 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.
  2. Architecture in the large is concerned with the architecture of complex enterprise systems that include other systems, programs, and program components.
    These enterprise systems may be distributed over different 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
3
Q

Which requirements have the most significant effect on a system’s architecture?

A

Non-functional requirements.

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

What are the advantages of explicitly desgning software architecture?

A
  1. Stakeholder communication. The architecture is a high-level presentation of the system that may be used as a focus for discussion by a range of different stakeholders.
  2. System analysis. Making the system architecture explicit at an early stage in the
    system development requires some analysis. Architectural design decisions
    have a profound effect on whether or not the system can meet critical requirements such as performance, reliability, and maintainability.
  3. Large-scale reuse. An architectural model is a compact, manageable description
    of how a system is organized and how the components interoperate. The system
    architecture is often the same for systems with similar requirements and so can
    support large-scale software reuse. Product-line architectures are an approach to reuse where the same architecture is reused across a range of related systems.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

System architectures are often modeled informally using simple block diagrams. Each box in the diagram represents a [1……]. Boxes within
boxes indicate that the component has been decomposed to [2…..]. [3….]
mean that data and or control signals are passed from component to component in
the direction of the [4….].

A
  1. component
  2. subcomponents
  3. Arrows
  4. arrows
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the two ways in which an architectural model of a program
is used?

A
  1. As a way of encouraging discussions about the system design. A high-level
    architectural view of a system is useful for communication with system stakeholders and project planning because it is not cluttered with detail.
  2. As a way of documenting an architecture that has been designed. The aim here is to produce a complete system model that shows the different components in a
    system, their interfaces and their connections.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is an Architectural pattern?

A

An Architectural pattern is a description of a system organization, such as a client–server organization or a layered architecture. Architectural patterns capture the essence of an architecture that has been used in different software systems.

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

The choice of architectural style and structure should depend on the non-functional requirements of the system:

A
  1. Performance
  2. Security
  3. Safety
  4. Availability
  5. Maintainability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are the four fundamental architectural views?

A
  1. A logical view, which shows the key abstractions in the system as objects or
    object classes. It should be possible to relate the system requirements to entities
    in this logical view.
  2. A process view, which shows how, at runtime, the system is composed of interacting processes. This view is useful for making judgments about non-functional system characteristics such as performance and availability.
  3. A development view, which shows how the software is decomposed for development; that is, it shows the breakdown of the software into components that are implemented by a single developer or development team. This view is useful for software managers and programmers.
  4. A physical view, which shows the system hardware and how software components are distributed across the processors in the system. This view is useful for systems engineers planning a system deployment.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is model view controller pattern?

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 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
11
Q

when is MVC used?

A

It is 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.

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

What are the advantages and disadvantages of MVC?

A
  1. Advanatges: 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.
  2. Disadvantages: May involve additional code and code complexity when the data
    model and interactions are simple.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is layered architecture?

A

It 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.

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

When is layered architecture used?

A

It is 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 multilevel security.

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

Advantages and disadvantages of the layered architecture?

A

Advantage: Allows replacement of entire layers as long as the interface is maintained. Redundant facilities can be provided in each layer to increase the dependability of the system.
Disadvantage: 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.

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

What is Repository architecture?

A

All data in a system is managed in a central repository that is accessible to all system
components. Components do not interact directly, only through the repository.

17
Q

When is Repository architecture used?

A

You should use this pattern when you have a system in which large volumes of information are generated that has to be stored for a long time. You may also use it in data-driven systems where the inclusion of data in the repository triggers an action or tool.

18
Q

What are the advanages and disadvantages of the Repository architecture?

A

ADV: Components can be independent; they do not need to know of the existence of other components. Changes made by one component can be propagated to all components. All data can be managed consistently as it is all in one place.
DISADV: The repository is a single point of failure so problems in the repository affect the whole system. May be inefficiencies in organizing all communication through the repository. Distributing the repository across several computers may be difficult.

19
Q

Which architecture pattern is concerned with the static structure of a system and shows its runtime organization?

A

Client-server architecture. In a client–server architecture, the system is presented as a set of services, with each service delivered by a separate server. Clients are users of these services and access servers to make
use of them.

20
Q

Which architecture design pattern is used when data in a shared database has to be accessed from a range of locations? Why?

A

Client-server architecture, because
servers can be replicated, may also be used when the load on a system is variable

21
Q

What are the major components of the Client server architecture?

A
  1. A set of servers
  2. A set of clients
  3. A network
22
Q

What is Pipe and Filter architecture?

A

This is a model of the runtime organization of a system where functional transformations process their inputs and produce outputs. Data flows from one to another and is transformed as it moves through the sequence. Each processing step is implemented as a transform. Input data flows through these transforms until converted to output. The transformations may execute sequentially or in parallel. The data can be processed by each transform item by item or in a single batch.

23
Q

Which architecture design style commonly used in data-processing applications
where inputs are processed in separate stages to generate related outputs?

A

Pipe and Filter

24
Q

As a software designer, you can use models of application architectures in a number of ways:

A
  1. As a starting point for the architectural design process
  2. As a design checklist
  3. As a way of organizing the work of the development team
  4. As a means of assessing components for reuse
  5. As a vocabulary for talking about applications
25
Q

Please describe the architecture of transaction processing applications

A

Transaction processing applications are
database-centered applications that process user requests for information and
update the information in a database. These are the most common types of interactive business systems. They are organized in such a way that user actions
can’t interfere with each other and the integrity of the database is maintained.
This class of system includes interactive banking systems, e-commerce systems,
information systems, and booking systems.

26
Q

Please describe the architecture of language processing systems

A

Language processing systems are systems in which the user’s intentions are expressed in a formal language, such as a programming language. The language processing system processes this language
into an internal format and then interprets this internal representation. The bestknown language processing systems are compilers, which translate high-level language programs into machine code. However, language processing systems are also used to interpret command languages for databases and information systems, and markup languages such as XML.

27
Q

How can compilers be implemented, besides langauge processing systems?

A

By using repository and pipe and filter model