Chapter 6 Architectural Design
40 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

What is a common difficulty in layered architecture?

  • Scaling the system horizontally
  • Achieving a clean separation between layers (correct)
  • Improving the user interface
  • Reducing the number of layers
  • What is a performance issue in layered architecture?

  • Insufficient user input validation
  • Too few layers in the system
  • Multiple levels of interpretation of a service request (correct)
  • Inadequate system testing
  • What is the primary advantage of the repository pattern?

  • Efficient data sharing mechanism (correct)
  • Reduced data redundancy
  • Simplified system maintenance
  • Improved system scalability
  • How do sub-systems exchange data in the repository model?

    <p>By sharing data in a central database or repository</p> Signup and view all the answers

    When should you use the repository pattern?

    <p>When you have a system with large volumes of information</p> Signup and view all the answers

    What is an example of the repository pattern?

    <p>An integrated development environment (IDE)</p> Signup and view all the answers

    What is a characteristic of the repository pattern?

    <p>Components interact only through the repository</p> Signup and view all the answers

    What is the purpose of including redundant components in system design?

    <p>To ensure fault tolerance</p> Signup and view all the answers

    Why is the repository pattern efficient?

    <p>It is an efficient data sharing mechanism</p> Signup and view all the answers

    What is the main benefit of using replaceable components in system design?

    <p>Ease of maintenance</p> Signup and view all the answers

    What is the primary focus of the process view in the 4+1 view model of software architecture?

    <p>How the run-time processes interact</p> Signup and view all the answers

    What is the purpose of the development view in the 4+1 view model of software architecture?

    <p>To show how the software is decomposed for development</p> Signup and view all the answers

    What is the purpose of the physical view in the 4+1 view model of software architecture?

    <p>To show how the software is distributed across the processors</p> Signup and view all the answers

    What is the purpose of the conceptual view in the 4+1 view model of software architecture?

    <p>To show an abstract view of the system</p> Signup and view all the answers

    Why is UML not considered suitable for high-level system description?

    <p>Because it lacks abstractions for high-level system description</p> Signup and view all the answers

    What is the primary benefit of presenting multiple views of a system's architecture?

    <p>It provides a complete understanding of the system</p> Signup and view all the answers

    What is the primary limitation of box and line diagrams in architectural design?

    <p>They do not show the nature of component relationships</p> Signup and view all the answers

    What is the key factor that influences the architectural design process?

    <p>The type of system being developed</p> Signup and view all the answers

    What is the benefit of thinking of architectural design as a series of decisions?

    <p>It helps to identify the structural decisions that affect the system</p> Signup and view all the answers

    What is the primary advantage of architecture reuse?

    <p>It allows for the creation of application product lines</p> Signup and view all the answers

    What is the primary goal of localizing critical operations in a system's architecture?

    <p>To minimize communications and localize critical operations</p> Signup and view all the answers

    What is the primary benefit of using a layered architecture in system design?

    <p>It allows for the localization of critical assets</p> Signup and view all the answers

    What is the primary goal of localizing safety-critical features in a system's architecture?

    <p>To reduce the costs and problems of safety validation</p> Signup and view all the answers

    What is the primary characteristic of architectural patterns or 'styles'?

    <p>They are specific to a particular system or domain</p> Signup and view all the answers

    What is a disadvantage of the Model-View-Controller pattern?

    <p>It involves additional code and code complexity when the data model and interactions are simple.</p> Signup and view all the answers

    What is the primary purpose of the Layered architecture pattern?

    <p>To model the interfacing of sub-systems.</p> Signup and view all the answers

    What is an advantage of the Layered architecture pattern?

    <p>It allows replacement of entire layers so long as the interface is maintained.</p> Signup and view all the answers

    When is the Layered architecture pattern often used?

    <p>When building new facilities on top of existing systems.</p> Signup and view all the answers

    What is a characteristic of the Layered architecture pattern?

    <p>Each layer provides services to the layer above it.</p> Signup and view all the answers

    What is an example of a system that might use the Layered architecture pattern?

    <p>A system for sharing copyright documents held in different libraries.</p> Signup and view all the answers

    What is a benefit of using the Layered architecture pattern?

    <p>Redundant facilities can be provided in each layer to increase the dependability of the system.</p> Signup and view all the answers

    What is a characteristic of the Model-View-Controller pattern?

    <p>It separates the application logic into three interconnected components.</p> Signup and view all the answers

    What is a major disadvantage of a repository architecture?

    <p>The repository is a single point of failure so problems in the repository affect the whole system.</p> Signup and view all the answers

    What is a characteristic of the client-server architecture?

    <p>It is a distributed system model where data and processing are distributed across a range of components.</p> Signup and view all the answers

    What is an advantage of a repository architecture?

    <p>Components can be independent and do not need to know of the existence of other components.</p> Signup and view all the answers

    What is the purpose of servers in a client-server architecture?

    <p>To provide specific services to clients</p> Signup and view all the answers

    What is a characteristic of a client-server architecture?

    <p>It is a distributed system model where services are provided by a set of stand-alone servers.</p> Signup and view all the answers

    When is the client-server architecture commonly used?

    <p>When data is distributed across a range of locations</p> Signup and view all the answers

    What is an advantage of the client-server architecture?

    <p>Servers can be replicated, making it suitable for systems with variable loads.</p> Signup and view all the answers

    What is an example of a system that can be organized as a client-server system?

    <p>A film and video/DVD library</p> Signup and view all the answers

    Study Notes

    Box and Line Diagrams

    • Box and line diagrams are very abstract and do not show the nature of component relationships nor the externally visible properties of sub-systems.
    • Despite their abstractness, they are useful for communication with stakeholders and for project planning.

    Architectural Design Decisions

    • Architectural design is a creative process that differs depending on the type of system being developed, the background and experience of the system architect, and the specific requirements for the system.
    • It is useful to think of architectural design as a series of decisions rather than a sequence of activities.
    • System architects have to make a number of structural decisions that affect the system, its development process, and its non-functional characteristics.

    Architecture Reuse

    • 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.
    • The architecture of a system may be designed around one or more architectural patterns or 'styles'.

    Architecture and System Characteristics

    • Performance: localize critical operations and minimize communications; use large rather than fine-grain components.
    • Security: use a layered architecture with critical assets in the inner layers.
    • Safety: localize safety-critical features in a small number of sub-systems to reduce the costs and problems of safety validation.
    • Availability: include redundant components and mechanisms for fault tolerance.
    • Maintainability: use replaceable components that can be readily changed and separate producers of data from consumers.

    Architectural Views

    • What views or perspectives are useful when designing and documenting a system's architecture?
    • Each architectural model only shows one perspective of the system.
    • For both design and documentation, you usually need to present multiple views of the software architecture.

    4 + 1 View Model of Software Architecture

    • 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.
    • A conceptual view (+1), which is an abstract view of the system that decomposes high-level requirements into more detailed specifications.

    Representing Architectural Views

    • Some people argue that UML is an appropriate notation for describing and documenting system architectures.
    • However, UML does not include abstractions appropriate for high-level system description.

    Organization of the Model-View-Controller

    • The organization of the Model-View-Controller (MVC) pattern.

    Web Application Architecture using the MVC Pattern

    • Web application architecture using the MVC pattern.

    Layered Architecture

    • Used to model the interfacing of sub-systems.
    • Organizes the system into a set of layers each of which provides a set of services.
    • Supports the incremental development of sub-systems in different layers.
    • When a layer interface changes, only the adjacent layer is affected.

    The Layered Architecture Pattern

    • Name: Layered architecture
    • Description: Organizes the system into layers with related functionality associated with each layer. A layer provides services to the layer above it.
    • Example: A layered model of a system for sharing copyright documents held in different libraries.
    • When used: When building new facilities on top of existing systems; when development is spread across several teams with each team responsible for a layer of functionality; when there is a requirement for multi-level security.
    • Advantages: 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.
    • Disadvantages: 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.

    Repository Architecture

    • Sub-systems must exchange data, which can be done in two ways: shared data is held in a central database or repository and may be accessed by all sub-systems, or each sub-system maintains its own database and passes data explicitly to other sub-systems.
    • When large amounts of data are to be shared, the repository model of sharing is most commonly used and is an efficient data-sharing mechanism.

    The Repository Pattern

    • Name: Repository
    • Description: 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.
    • Example: Figure 6.9 is an example of an IDE where the components use a repository of system design information.
    • When 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.
    • Advantages: 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 (e.g., backups done at the same time) as it is all in one place.
    • Disadvantages: 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.

    Client-Server Architecture

    • Distributed system model which shows how data and processing is distributed across a range of components.
    • Can be implemented on a single computer.
    • Set of stand-alone servers which provide specific services such as printing, data management, etc.
    • Set of clients which call on these services.
    • Network which allows clients to access servers.

    The Client-Server Pattern

    • Name: Client-server
    • Description: In a client–server architecture, the functionality of the system is organized into services, with each service delivered from a separate server. Clients are users of these services and access servers to make use of them.
    • Example: Figure 6.11 is an example of a film and video/DVD library organized as a client–server system.
    • When used: Used when data in a shared database has to be accessed from a range of locations. Because servers can be replicated, may also be used when the load on a system is variable.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Description

    This quiz covers architectural design decisions, including box and line diagrams, and their importance in communication with stakeholders and project planning.

    More Like This

    Use Quizgecko on...
    Browser
    Browser