Software Engineering - Architectural Design
21 Questions
1 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 type of view in the 4 + 1 view model shows the key abstractions in the system as objects or object classes?

  • Physical view
  • Process view
  • Development view
  • Logical view (correct)
  • Which architectural pattern is characterized by allowing only one instance of a class?

  • Builder Pattern
  • Factory Pattern
  • Singleton Pattern (correct)
  • Observer Pattern
  • Which view of the 4 + 1 model illustrates the hardware system and the distribution of software components?

  • User view
  • Process view
  • Logical view
  • Physical view (correct)
  • What is the focus of structural design patterns?

    <p>Establishing the composition of classes</p> Signup and view all the answers

    In software engineering, what do design patterns primarily facilitate?

    <p>Knowledge sharing and reuse</p> Signup and view all the answers

    What is the primary output of the architectural design process?

    <p>A description of the software architecture</p> Signup and view all the answers

    Which aspect does architectural design primarily link?

    <p>Specification and design processes</p> Signup and view all the answers

    What distinguishes architecture in the large from architecture in the small?

    <p>Complex enterprise systems versus individual programs</p> Signup and view all the answers

    What is one advantage of having an explicit software architecture?

    <p>Improves stakeholder communication</p> Signup and view all the answers

    What is a common criticism of simple block diagrams used in architectural representations?

    <p>They lack semantics and visible properties of entities.</p> Signup and view all the answers

    What is an important use of architectural models during the design process?

    <p>For facilitating discussion about system design</p> Signup and view all the answers

    Which characteristic of architectural design increases the cost of changes?

    <p>The non-incremental nature of changes</p> Signup and view all the answers

    What role does architectural design play in system analysis?

    <p>It allows for meeting non-functional requirements assessment.</p> Signup and view all the answers

    What is the primary aim of producing a complete system model in architectural design?

    <p>To show the different components and their connections in the system</p> Signup and view all the answers

    Which aspect of architectural design is not typically influenced by the architectural design decisions?

    <p>User interface aesthetics</p> Signup and view all the answers

    What should be included in the architecture to enhance availability?

    <p>Redundant components and fault tolerance mechanisms</p> Signup and view all the answers

    Which of the following architectural styles is typically recommended for enhancing security?

    <p>Layered architecture with critical assets in inner layers</p> Signup and view all the answers

    Which approach aids in documenting a system's architecture effectively?

    <p>Using various perspectives and notations</p> Signup and view all the answers

    What is a characteristic of architectural patterns or styles?

    <p>They can be instantiated in unique ways</p> Signup and view all the answers

    How can maintainability be improved in a system architecture?

    <p>By implementing fine-grain, replaceable components</p> Signup and view all the answers

    When structuring a system, which question is essential in the architectural design process?

    <p>How will the system be decomposed into modules?</p> Signup and view all the answers

    Study Notes

    Software Engineering - Architectural Design

    • The design process for identifying sub-systems, the framework for sub-system control and communication is architectural design
    • The output of this design process describes the software architecture
    • Architectural design is an early stage of system design
    • It links specification and design processes, often done in parallel with specification activities
    • Identifying major system components and their communications is part of architectural design
    • Changes in architectural design are not incremental; the cost of changing later is high, even in agile projects

    Topics Covered in Architectural Design

    • Architectural design decisions
    • Architectural views
    • Architectural styles/patterns
    • Application architecture

    Architecture of a Packing Robot Control System

    • A diagram depicts a packing robot system
    • Components include vision system, object identification system, arm controller, gripper controller, packaging selection system, and conveyor controller.

    Architectural Abstraction

    • Architecture in the small focuses on individual program architecture
    • It concerns how an individual program is decomposed into components
    • Architecture in the large focuses on complex enterprise systems, including other systems, programs, and program components
    • These systems are often distributed over multiple computers owned by different companies.

    Advantages of Explicit Architecture

    • Stakeholder communication: Architecture can be a focal point for discussions among stakeholders
    • System analysis: Helps analyze if the system meets its non-functional requirements
    • Large-scale reuse: Architecture can be reused in various systems, leading to product-line architectures

    Architectural Representations

    • Simple block diagrams showing entities and relationships are frequently used to document software architecture
    • These diagrams lack semantics, don't show all relationships, and don't always depict all entity properties

    Use of Architectural Models

    • Facilitating discussion on system design
    • High-level architectural views are helpful for communication and project planning
    • They avoid clutter with details
    • System stakeholders can understand the overall system without getting bogged down in the minutiae
    • Useful for documenting designs

    Architectural Design Decisions

    • Design is a creative process, methods change with the type of system
    • Some common decisions impact non-functional characteristics

    Further Architectural Design Decisions

    • Generic application architecture?
    • Distribution strategy?
    • Architectural design styles?
    • Structural approach for the system?
    • Decomposition into modules?
    • Control strategy to employ?
    • Architecture evaluation method?
    • Documentation strategy?

    Architecture Reuse

    • Systems in the same domain often have similar architectures reflecting domain concepts
    • Application product lines are usually based on a core architecture with variants to meet specific customer needs
    • Architectural patterns capture the essence of an architecture that can be instantiated in different ways

    Architecture and System Characteristics

    • Performance: Localize critical operations, minimize comms; use large components
    • Security: Layered architecture, inner layers for critical assets
    • Safety: Safety-critical features in a small number of sub-systems
    • Availability: Redundant components and fault tolerance
    • Maintainability: Fine-grained, replaceable components

    Architectural Views

    • Which views/perspectives are useful in designing and documenting a system?
    • Suitable notations for describing architectural models?
    • Each model shows one perspective of the system
    • The model could show how the system is broken down into modules, interaction of runtime processes, different distribution approaches, etc

    4+1 View Model of Software Architecture (Krutchén)

    • Logical view: system as objects (requirements)
    • Process view: interactions at run-time
    • Development view: software decomposition for development
    • Physical view: hardware and distribution
    • User view complements the other four views

    Architectural Patterns

    • Patterns allow for knowledge representation, sharing, and reuse
    • They're formalized descriptions of tried-and-true design practices across several environments
    • Useful when/not useful information should be in the description
    • Represented via tabular and graphical descriptions

    Design Patterns (Categorization)

    • Creational: Singleton, Factory, Builder, Prototype, Abstract Factory
    • Structural: Adapter, Decorator, Facade, Composite, Proxy, Bridge
    • Behavioral: Strategy, Template Method, Observer, Command, State, Visitor, Chain of Responsibility

    UML: Basic Class

    • Conceptual UML diagrams are shown
    • Example includes the Car class with attributes (wheel count, running) and methods (startEngine, setSpeed)

    UML: Directed Association

    • Conceptual and example UML diagrams for showing object relationships are shown (Person, Car)

    UML: Class Extension/Inheritance

    • UML diagrams explain how a class extends or inherits from another (e.g., Fancy Car extending Car)

    UML: Interface Implementation

    • UML explanation of a class implementing an interface (example: Car implementing ICar)

    UML Aggregations

    • UML diagrams for aggregation relationships (e.g., Book in a Library)

    UML Composition

    • UML diagrams for composition relationships (e.g., Wings in an Aeroplane)

    Creational Design Patterns (Introduction)

    Singleton Pattern

    • Singleton instance creation ensuring only one object exists
    • Client application interacts to use the instance.

    Singleton Pattern - Use Case

    • Shows a leader board system where instances of the Leaderboard are shared across games

    Prototype Pattern

    • Cloning of objects is a focus of this pattern

    Prototype Pattern - Use Case

    • Shows how to clone records, especially when needed for reuse

    Factory Pattern

    • Use of factory classes to create objects

    Factory Pattern - Use Case

    • Shows chair creation using a ChairFactory

    Builder Pattern

    • This pattern allows the creation of complex objects step-by-step.
    • Director class creates the builder and instructs it.

    Builder Pattern - Use Case

    • A use case shows creation of houses using directors (e.g., house type) and builders to ensure construction elements are set properly

    Studying That Suits You

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

    Quiz Team

    Description

    This quiz covers the key concepts of architectural design in software engineering, including the design process, architectural views, and styles. It also explores the architecture of a packing robot control system, focusing on system components and their interactions. Test your understanding of these foundational topics in software architecture.

    More Like This

    Use Quizgecko on...
    Browser
    Browser