Podcast
Questions and Answers
Architectural design is unrelated to requirements engineering.
Architectural design is unrelated to requirements engineering.
False
The output of the architectural design process is an architectural model that outlines the system as a set of communicating components.
The output of the architectural design process is an architectural model that outlines the system as a set of communicating components.
True
Refactoring the system architecture is usually inexpensive and does not affect many components.
Refactoring the system architecture is usually inexpensive and does not affect many components.
False
Architecture in the small focuses on complex enterprise systems that include multiple managed programs.
Architecture in the small focuses on complex enterprise systems that include multiple managed programs.
Signup and view all the answers
Explicit architecture can aid in stakeholder communication and system analysis.
Explicit architecture can aid in stakeholder communication and system analysis.
Signup and view all the answers
Product-line architectures are designed to be non-reusable across a range of systems.
Product-line architectures are designed to be non-reusable across a range of systems.
Signup and view all the answers
Architecture in the large considers the organization of an individual program.
Architecture in the large considers the organization of an individual program.
Signup and view all the answers
The early stages of agile processes typically involve designing an overall system architecture.
The early stages of agile processes typically involve designing an overall system architecture.
Signup and view all the answers
Layered architecture organizes a system into layers with unrelated functionality.
Layered architecture organizes a system into layers with unrelated functionality.
Signup and view all the answers
In a layered architecture, when a layer interface changes, only the adjacent layer is affected.
In a layered architecture, when a layer interface changes, only the adjacent layer is affected.
Signup and view all the answers
The lowest-level layers in a layered architecture represent auxiliary services that are rarely used.
The lowest-level layers in a layered architecture represent auxiliary services that are rarely used.
Signup and view all the answers
Layered architecture is suitable for incremental development across different layers.
Layered architecture is suitable for incremental development across different layers.
Signup and view all the answers
One of the disadvantages of layered architecture is the difficulty in achieving a clean separation between layers.
One of the disadvantages of layered architecture is the difficulty in achieving a clean separation between layers.
Signup and view all the answers
Using layered architecture often improves system performance despite multiple layers of interpretation.
Using layered architecture often improves system performance despite multiple layers of interpretation.
Signup and view all the answers
Layered architecture allows for the replacement of entire layers, provided the interface is maintained.
Layered architecture allows for the replacement of entire layers, provided the interface is maintained.
Signup and view all the answers
Layered architecture is commonly used when building new functionalities on top of existing systems.
Layered architecture is commonly used when building new functionalities on top of existing systems.
Signup and view all the answers
Simple block diagrams showing entities are the most frequently used method for documenting software architectures.
Simple block diagrams showing entities are the most frequently used method for documenting software architectures.
Signup and view all the answers
Box and line diagrams are very detailed and show the nature of component relationships in a system.
Box and line diagrams are very detailed and show the nature of component relationships in a system.
Signup and view all the answers
In a client-server architecture, services are delivered from a single server.
In a client-server architecture, services are delivered from a single server.
Signup and view all the answers
Replication of servers is beneficial in a client-server architecture during variable system load.
Replication of servers is beneficial in a client-server architecture during variable system load.
Signup and view all the answers
Architectural models are not necessary for facilitating discussion about the system design.
Architectural models are not necessary for facilitating discussion about the system design.
Signup and view all the answers
A primary disadvantage of client-server architecture is the potential for each service to be a single point of failure.
A primary disadvantage of client-server architecture is the potential for each service to be a single point of failure.
Signup and view all the answers
Architectural design processes are uniform across all types of systems.
Architectural design processes are uniform across all types of systems.
Signup and view all the answers
The aim of documenting an architecture is to produce an incomplete system model.
The aim of documenting an architecture is to produce an incomplete system model.
Signup and view all the answers
Client-server architecture can only be implemented on a distributed network.
Client-server architecture can only be implemented on a distributed network.
Signup and view all the answers
Systems within the same domain typically share similar architectures that reflect common domain concepts.
Systems within the same domain typically share similar architectures that reflect common domain concepts.
Signup and view all the answers
The pipe and filter model processes inputs to produce outputs through transformation functions.
The pipe and filter model processes inputs to produce outputs through transformation functions.
Signup and view all the answers
Application product lines can only be built around a unique architecture without variants.
Application product lines can only be built around a unique architecture without variants.
Signup and view all the answers
Client-server architecture completely eliminates management problems when servers are owned by different organizations.
Client-server architecture completely eliminates management problems when servers are owned by different organizations.
Signup and view all the answers
Architectural design decisions have no impact on the non-functional characteristics of the system.
Architectural design decisions have no impact on the non-functional characteristics of the system.
Signup and view all the answers
A network is necessary for clients to access servers in a client-server architecture.
A network is necessary for clients to access servers in a client-server architecture.
Signup and view all the answers
The performance of a client-server system is independent of the network conditions.
The performance of a client-server system is independent of the network conditions.
Signup and view all the answers
A batch sequential model is suitable for interactive systems.
A batch sequential model is suitable for interactive systems.
Signup and view all the answers
The pipe and filter pattern allows data to flow continuously through filters.
The pipe and filter pattern allows data to flow continuously through filters.
Signup and view all the answers
Each filter in a pipe and filter system performs multiple types of data transformations.
Each filter in a pipe and filter system performs multiple types of data transformations.
Signup and view all the answers
The pipe and filter architecture cannot be implemented as a concurrent system.
The pipe and filter architecture cannot be implemented as a concurrent system.
Signup and view all the answers
In a repository architecture, sub-systems can directly interact with each other without a central database.
In a repository architecture, sub-systems can directly interact with each other without a central database.
Signup and view all the answers
In a pipe and filter system, the format for data transfer must be agreed upon by communicating transformations.
In a pipe and filter system, the format for data transfer must be agreed upon by communicating transformations.
Signup and view all the answers
The repository pattern is best suited for systems that generate large volumes of information that need long-term storage.
The repository pattern is best suited for systems that generate large volumes of information that need long-term storage.
Signup and view all the answers
Generic application architectures are designed to meet specific organizational needs.
Generic application architectures are designed to meet specific organizational needs.
Signup and view all the answers
The evolution of a pipe and filter system can be achieved by adding transformations.
The evolution of a pipe and filter system can be achieved by adding transformations.
Signup and view all the answers
One advantage of using a repository is that it allows for independent components that do not need to know about each other's existence.
One advantage of using a repository is that it allows for independent components that do not need to know about each other's existence.
Signup and view all the answers
System overhead increases when functional transformations in a pipe and filter system use incompatible data structures.
System overhead increases when functional transformations in a pipe and filter system use incompatible data structures.
Signup and view all the answers
The repository architecture is considered a distributed model for data sharing.
The repository architecture is considered a distributed model for data sharing.
Signup and view all the answers
Shared data in a repository system is accessible to all sub-systems.
Shared data in a repository system is accessible to all sub-systems.
Signup and view all the answers
A disadvantage of repository architecture is that it may lead to consistent data management across components.
A disadvantage of repository architecture is that it may lead to consistent data management across components.
Signup and view all the answers
Distributing the repository across several computers simplifies communication between system components.
Distributing the repository across several computers simplifies communication between system components.
Signup and view all the answers
One of the main uses of the repository pattern is in data-driven systems where data inclusion triggers an action.
One of the main uses of the repository pattern is in data-driven systems where data inclusion triggers an action.
Signup and view all the answers
Study Notes
Architectural Design
- Architectural design is concerned with understanding how a software system should be organized and designing the overall structure.
- It's the critical link between design and requirements engineering, identifying main structural components and relationships between them.
- The output of the architectural design process is an architectural model; this describes how the system is organized as communicating components.
Agility and Architecture
- An early stage of agile processes is designing an overall system architecture.
- Refactoring the system architecture is typically expensive due to affecting many system components.
Architectural Abstraction
- Architecture in the small concerns individual programs, focusing on how a program is decomposed into components.
- Architecture in the large involves complex enterprise systems, including other systems, programs, and components, often distributed across multiple computers and companies.
Advantages of Explicit Architecture
- Stakeholder communication: Architecture serves as a discussion point for stakeholders.
- System analysis: Helps assess if a system meets non-functional requirements.
- Large-scale reuse: Architects can be reusable across various systems, allowing for product-line architectures.
Architectural Representations
- Informal block diagrams are frequently used to document software architectures, showing entities and relationships.
- However, these diagrams lack semantics and don't show the types of relationships or entity properties.
- Architectural model requirements depend on its specific usage.
Box and Line Diagrams
- Very abstract, omitting component relationships and external properties.
- Useful for communication with stakeholders and project planning.
Use of Architectural Models
- Facilitate discussions about system design by providing a high-level overview, enabling stakeholders to relate to and understand the system without excessive detail.
- Document the architecture, creating a complete system model displaying components, interfaces, and connections.
Architectural Design Decisions
- The architectural design processes vary based on the specific system type.
- Many decisions have impacts on non-functional system characteristics.
- Examples include decisions on generic applications, data distribution, or architectural patterns and styles.
Architecture Reuse
- Systems in similar domains often have similar architectures based on shared concepts.
- Application product lines are built around core architectures enabling specific customer requirements.
- System architectures can be designed around pre-existing patterns or styles, which capture the essence of an architecture and can be adapted.
Architecture and System Characteristics
- Performance: Optimize critical operations and minimize communication by using large components.
- Security: Use layered architectures to place critical assets in inner layers.
- Safety: Focus safety-critical features within certain subsystems.
- Availability: Ensure redundancy and fault tolerance via redundant components.
- Maintainability: Use interchangeable, replaceable components.
Architectural Views
- Understanding perspectives and notations for describing architectural models.
- Each model provides a specific view or perspective of the system, for example, demonstrating modular decomposition, run-time interactions, or network distributions.
- Multiple views are needed for comprehensive documentation and design. This is useful as a way to describe the systems architecture and multiple aspects.
4 + 1 View Model of Software Architecture
- A logical view emphasizing key abstractions as objects (or objects/classes).
- A process view illustrating how interacting processes (at run-time) compose the system.
- A development view detailing how software is decomposed for design.
- A physical view highlighting system hardware and component distribution across processors.
- Use cases or scenarios can be used to relate these aspects.
Representing Architectural Views
- While some propose UML for system architecture documentation, it is deemed insufficient due to its lack of relevant high-level abstractions.
- Architectural Description Languages are developed but not widely adopted.
Architectural Patterns
- Patterns represent, share, and reuse architectural knowledge.
- They offer stylized descriptions of successful design practices.
- They include insights into when they are and aren't applicable offering context on useful applications.
- Both tabular and graphical descriptions are used to represent the patterns.
The Model-View-Controller (MVC) Pattern
- Separates presentation/interaction from system data.
- Composed of Model, View, and Controller components interacting to manage data, presentation and user input.
- Figure 6.4 (within the text) visually demonstrates the architecture of a web-based application system using the MVC pattern.
- Useful when multiple views or interactions are needed, and future presentation/interaction approaches are unknown.
Web Application Architecture using MVC
- Illustrates a web application's structure using an MVC pattern with the involved components (controller, view, model).
Layered Architecture
- Models interfacing subsystems, with each layer (or machine) offering services—often useful for incremental development, with interface changes affecting only adjacent layers.
- The layered principle is sometimes not a suitable structure for systems.
Layered Architecture Pattern
- Organizes systems by functionality into layers, showing a layered structure where related functionality is arranged.
- Lower layers provide core services to higher layers (like Figure 6.6 and 6.7 in the text).
- Suitable in multi-team/multi-level security/incremental building.
Generic Layered Architecture
- Defines generic components of a layered architecture—typical components such as user interfaces, management of authentication and authorization, business logic, system utilities, and system support including the operating system and database.
The Architecture of the iLearn System
- A layered approach demonstrates the specific application components found within iLearn, including utility layer components.
Repository Architecture
- Subsystems need to share data (in two main ways). This is achieved via a central database or repository or each subsystem maintaining its own database and explicitly sharing data.
- This is an efficient data-sharing mechanism.
The Repository Pattern
- In this pattern, all data is managed in a central repository accessible to all components.
- It is recommended when large volumes of data need to be stored and accessed over time, or for action triggers (that are data-driven) in a system.
Repository Architecture for an IDE
- Illustrates how an integrated development environment (IDE) that uses a central repository stores and retrieves information among its various components.
Client-Server Architecture
- A model for distributed systems, where components handle tasks such as data transfer, specific services, user calls, and network connections.
- These models can be implemented on a single computer.
The Client-Server Pattern
- A system functionality is organized into services delivered by independent servers accessed by client components.
- Shows a potential example of a library organized as a client-server system.
- Provides a way of distributing functionality. This is helpful for data that is stored in a shared database from various locations.
A Client-Server Architecture for a Film Library
- Example visualizing a client-server system in a film library, demonstrating how multiple clients access centralized film catalogues, video stores, photos and web servers.
Pipe and Filter Architecture
- A model of functional transformations. Data transformation components process input to produce outputs.
- Suitable for data processing systems with sequential transformations.
- Not well-suited for interactive systems.
The Pipe and Filter Pattern
- Focuses on a data processing model based on discrete processing components as filters and data flowing through them.
- Describes a typical use in a data processing system utilizing a pipeline and filters.
Example of Pipe and Filter Architecture in a Payments System
- A diagram visually presenting a payments system's architecture using the pipe and filter model.
Application Architectures
- Application systems are created to meet specific needs.
- Businesses frequently share similar needs, leading to shared architectures.
- Generic application architectures provide flexible support through various configurations.
Use of Application Architectures
- Starting point for architectural design, acting as initial guidelines,
- A design checklist
- Organizing development team tasks
- Assessing components and reuse
- Defining application types
Examples of Application Types
- Data processing applications without explicit user intervention
- Transaction processing applications managing database updates
- Event processing applications interpreting events from the environment
- Language processing applications interpreting user intent using specialized languages
Application Type Examples
- Examples include e-commerce systems, reservation systems, and compilers/interpreters, amongst other language processing systems.
Transaction Processing Systems
- Systems processing user requests and updates on databases.
- A transaction is a coherent set of operations toward a goal, like booking a flight.
- Users send requests asynchronously; a transaction manager processes them.
The Structure of Transaction Processing Applications
- Illustrates a typical structure for a transaction processing system via a sequence of components.
The Software Architecture of an ATM System
- An architecture example for an ATM system visualizing how input, process, and output data flow.
Information Systems Architecture
- Information systems are layered, with typical components including user interfaces, communication, information retrieval, and databases.
Layered Information System Architecture
- A layout visualizing a typical layered architecture with specific roles for data flow within an information system.
- The layout in this case, shows how the information system layers are organized sequentially with database transaction layers.
The Architecture of the Mentcare System
- Example visualizing the structure of a medical/healthcare system.
Web-based Information Systems
- Web-based systems handle resource management using web browsers.
- E-commerce systems are an example of this, with functionalities like (shopping carts) to manage a number of items in a single payment transaction
Server Implementation
- Usually, these are multi-tier client-server implementations involving the webserver for communication, an application server, and a database server to control database transactions.
The Architecture of a Language Processing System
- Displays a graphical representation of a language processing system, illustrating the sequence of steps starting from source code to production of results.
Key Points
- A software architecture describes a system's organization.
- Decisions made during design can affect architecture and systems.
- Architectures help document the system from multiple views.
- Patterns are used for reusing existing system knowledge and practices.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
This quiz covers the fundamental concepts of architectural design in software systems, including its role in understanding system organization and the relationship between components. It also explores agile methodologies and the importance of abstraction in both small and large architectures. Test your knowledge on the key principles and practices of architectural design.