Architectural Design Software, Systems and Infrastructure Architectures Flashcards

1
Q

What is the difference between Software Architecture and Application Architecture?

A

While both software architecture and application architecture involve designing and organizing components, the key difference lies in scope. Software architecture addresses the overarching structure of an entire system, including multiple applications, while application architecture is concerned with the structure of a single application or a set of closely related applications.

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

Explain the Architectural Design Process.

A

Analysis Requirements (A): this initial step involves an understanding and analysis of both the functional and non-functional requirements,

Design (B): the architectural blueprint is developed regarding the high-level structure of the system, the organization of its components and how they will interact,
it’s like a plan to guide the implementation of the system,

Development (C): the development phase involves translating the architectural decisions into actual code, bringing the designed system to life.

Deployment (D): this phase involves releasing the developed system for use, including also installing and configuring the software in the production environment, making the system accessible and functional for the users to use.

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

What are Architectural Models for?

A
  1. These provide a visual representations of the system’s structure and behavior and help communicate design decisions to stakeholders.
  2. Some examples are UML diagrams, flowcharts and DFD’s.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the Architecture Attributes for?

A

These define the qualities or characteristics of the system, they are like the non-functional requirements.

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

What is System Structuring?

A
  1. Involves organizing system components and defining their relationships.
  2. This includes decisions about modularization, component interactions, and communication mechanisms.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is Modular Decomposition?

A

Process of breaking down the system into smaller, manageable modules. Each module has a specific function and** interacts with other modules through well-defined interfaces**.

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

Explain the Object Model

A

Represent the system using object-oriented principles. This includes identifying objects, their attributes, and the relationships between objects.

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

Explain the Data-Flow Model

A

Illustrates how data moves through the system. They depict processes, data stores, and data flows within the system.

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

Explain the Technological/System Architecture

A

Focuses on the underlying technology stack, including hardware, software, networking, and other infrastructure components.

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

Explain the Monolithic Architecture (MON)

A
  1. Traditional software design pattern where the entire application is developed as a single, indivisible unit.
  2. In a monolithic architecture, all components, such as the user interface, business logic, and data storage, are tightly coupled.

Main Characteristics:
1. Single codebase and deployment unit.
2. Scaling is achieved by replicating the entire application.
3. Simplified development and debugging.

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

Explain the Service-Oriented Architecture (SOA)

A
  1. Architectural pattern where a system is composed of loosely coupled services.
  2. Services are independent, self-contained modules that communicate with each other through well-defined interfaces.

Main Characteristics:
1. Promotes reusability and modularity.
2. Services communicate via standardized protocols.
3. Flexibility in scaling individual services.

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

Explain the Microservices Architecture (MSA)

A

An evolution of SOA where an application is divided into small, independent services that can be developed, deployed, and scaled independently. Each microservice focuses on a specific business capability.

Main Characteristics:
1. Decentralized and independently deployable services.
2. Enables continuous delivery and deployment.
3. Resilient and fault-tolerant systems.

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

Explain the Distributed Systems Architectures

A

Involves the design of systems that run on multiple machines and communicate to achieve a common goal. This includes various architectures like client-server, peer-to-peer, and distributed databases.

Main Characteristics:
1. Components may run on different physical machines.
2. Communication between components is crucial.
3. Enables scalability and fault tolerance.

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

Explain the Multiprocessor Architectures

A

Involve systems with multiple processors or central processing units (CPUs) that work together on a common task. This can include symmetric multiprocessing (SMP) or massively parallel processing (MPP) systems.

Main Characteristics:
1. Improved performance through parallel processing.
2. Shared memory or distributed memory configurations.
3. Common in high-performance computing.

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

Explain the Middleware

A

Basically a bridge between different software applications, enabling communication and data management. It provides a set of services that abstract the complexities of distributed systems and facilitate interoperability.

Main Characteristics:
1. Message passing and communication middleware.
2. Middleware services may include transaction management, security, and data distribution.
3. Simplifies development of distributed applications.

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

Explain the Client-Server Architectures

A

In this architecture the system is divided into two main components: the client, which requests services, and the server, which provides services. Communication between client and server occurs over a network.

Main Characteristics:
Decentralized architecture with a clear separation of concerns.
Enables easier maintenance and scalability.
Common in web applications.

17
Q

Explain the Distributed Object Architectures and Their Advantages

A

Involves the use of objects that can be distributed across a network and communicate with each other. Common in object-oriented distributed systems.

Advantages:
1. Encapsulation and reuse of distributed objects.
2. Simplifies communication through object-oriented principles.
3. Supports better modularity and maintainability.

18
Q

What Uses of Distributed Object Architecture

A

Scalability: Distributed object architectures allow for scalable systems by distributing the load across multiple servers.
Interoperability: Enables interoperability between different platforms and languages through the use of standardized object protocols.
Modularity: Supports the development of modular and reusable components that can be distributed across a network.