What is Architectural design?
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.
What are the levels of abtraction at software architecture design?
Which requirements have the most significant effect on a system’s architecture?
Non-functional requirements.
What are the advantages of explicitly desgning software architecture?
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….].
What are the two ways in which an architectural model of a program
is used?
What is an Architectural pattern?
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.
The choice of architectural style and structure should depend on the non-functional requirements of the system:
What are the four fundamental architectural views?
What is model view controller pattern?
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.
when is MVC used?
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.
What are the advantages and disadvantages of MVC?
What is layered architecture?
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.
When is layered architecture used?
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.
Advantages and disadvantages of the layered architecture?
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.
What is Repository architecture?
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.
When is Repository architecture used?
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.
What are the advanages and disadvantages of the Repository architecture?
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.
Which architecture pattern is concerned with the static structure of a system and shows its runtime organization?
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.
Which architecture design pattern is used when data in a shared database has to be accessed from a range of locations? Why?
Client-server architecture, because
servers can be replicated, may also be used when the load on a system is variable
What are the major components of the Client server architecture?
What is Pipe and Filter architecture?
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.
Which architecture design style commonly used in data-processing applications
where inputs are processed in separate stages to generate related outputs?
Pipe and Filter
As a software designer, you can use models of application architectures in a number of ways: