Software Architectural Design: Decomposing Systems
18 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 two kinds of components are mentioned in the service-oriented architecture?

  • Subscribers & Observers
  • Clients & Servers
  • Listeners & Publishers
  • Consumers & Producers (correct)
  • In the Model-View-Controller architecture, which component is oblivious to the View and Controller?

  • Controller
  • Observer
  • Model (correct)
  • View
  • What is the main method of coordination between components in Concurrent/Real-time Systems as described in the text?

  • Sharing data through a common interface
  • Direct method calls
  • Exchanging messages (correct)
  • Using a shared memory space
  • Which architectural style allows observers/subscribers to register themselves to be notified of specific events?

    <p>Publish-Subscribe Architecture</p> Signup and view all the answers

    In which architectural style do consumers combine services to carry out business processes?

    <p>Service-Oriented Architecture</p> Signup and view all the answers

    What is the role of subjects/publishers in the Notification/Implicit-Invocation/Publish-Subscribe Architecture?

    <p>Notify observers of specific events</p> Signup and view all the answers

    In the data-flow (pipes and filters) architecture style, what is the purpose of the components?

    <p>To process data in a sequential manner, with each component performing a specific transformation on the data</p> Signup and view all the answers

    What is the primary focus when designing software architectures?

    <p>The interfaces and interconnections between components</p> Signup and view all the answers

    In the data-centered (repository/blackboard) architecture style, what is the role of the central data store?

    <p>To provide a centralized store of persistent data that can be accessed and modified by multiple clients</p> Signup and view all the answers

    What is the main benefit of decomposing a system into smaller parts?

    <p>It enables tackling complexity using a divide-and-conquer approach</p> Signup and view all the answers

    Which of the following is a benefit of separating unrelated parts of a system?

    <p>It supports flexibility and future evolution</p> Signup and view all the answers

    What is the main difference between the repository and blackboard patterns in the data-centered architecture style?

    <p>The repository pattern allows communication to be initiated only by clients, while the blackboard pattern allows communication to be initiated from either end</p> Signup and view all the answers

    What is the main characteristic of the independent components architecture style?

    <p>Components execute concurrently and communicate through message passing</p> Signup and view all the answers

    What is the relationship between software requirements and architectural design?

    <p>Requirements and architecture are developed concurrently and iteratively</p> Signup and view all the answers

    Which architecture style would be most suitable for a system that needs to process large amounts of data in a streaming fashion?

    <p>Data-flow (pipes and filters) architecture</p> Signup and view all the answers

    What is the difference between functional and non-functional requirements in software architecture?

    <p>Functional requirements specify what the software should do, and non-functional requirements specify how well it should do it</p> Signup and view all the answers

    Which architecture style promotes loose coupling and scalability by allowing components to execute concurrently and communicate through message passing?

    <p>Independent components architecture</p> Signup and view all the answers

    Which of the following is an example of a non-functional requirement in software architecture?

    <p>The system should be able to handle multiple concurrent users</p> Signup and view all the answers

    Study Notes

    Software Architectural Styles

    • Concurrent/Real-time Systems: A set of components controlling different parts of a system, independently regulating their parts, but sharing data and coordinating with each other by exchanging messages.
    • Example: Chemical processing plant with multiple components regulating different parts of the plant.

    Service-Oriented Architecture

    • Two kinds of components: consumers and providers.
    • Service providers make services available to service consumers.
    • Consumers can combine services to carry out business processes they require.
    • Example: Different divisions of an organization using a common set of services like payroll, personnel, and customer records.

    Notification/Implicit-Invocation/Publish-Subscribe Architecture

    • Two kinds of components: observers/subscribers and subjects/publishers.
    • Observers/subscribers register themselves with a subject/publisher to receive notifications when a particular event happens.
    • Example: RSS feed where subscribers receive news updates as they become available.

    Model-View-Controller Architecture

    • Model: Holds data, state, and application logic, oblivious to the View and Controller.

    Data-Flow (Pipes & Filters) Architecture

    • Lex Program Source Syn Sem Opt Code Object Code

    Data-Centred (Repository/Black-Board) Architecture

    • Centralized store of persistent data with a stable structure.
    • Multiple clients can create, query, update, and destroy data upon request.
    • Example: Database holding personnel records with authorized users submitting queries.

    Data-Centred (Repository/Black-Board) Architecture Variations

    • Database (Repository): Communication is initiated by clients.
    • Black-Board: Communication may be initiated from either end, with the repository being active and notifying clients of changes.

    Independent Components Architecture

    • Components execute concurrently, decoupled, but can communicate by exchanging messages.
    • Emphasis is on the external view of the subsystem/component, interfaces, and interconnections.

    Software Architectural Design

    • Decomposing systems helps tackle complexity, supports flexibility, and enables future evolution.
    • Different levels of detail include Product Line, System, Subsystems, Modules, Packages, Classes, Objects, Methods, and Source code.

    Software Architectural Design and Requirements

    • Ensure the architecture fulfills software requirements, both functional and non-functional.
    • Twin-peaks model develops requirements and architecture concurrently and iteratively.

    Studying That Suits You

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

    Quiz Team

    Description

    Explore the reasons for decomposing systems in software architectural design, such as tackling complexity, reusability, and supporting flexibility for future evolution. Learn how dividing systems into smaller parts can enhance design and maintainability.

    More Like This

    Use Quizgecko on...
    Browser
    Browser