Software Engineering CP317B: Architecture Design
24 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

Which of the following is NOT an advantage of a data-centric architecture?

  • Simplicity
  • Security
  • Performance (correct)
  • Integrity management
  • What is the primary advantage of a service-oriented architecture (SOA)?

  • Improved user experience
  • Ease of maintenance (correct)
  • Reduced development time
  • Enhanced flexibility
  • What does the term "event" represent in an event-driven architecture (EDA)?

  • A predefined workflow in the system
  • An occurrence that triggers a state change (correct)
  • A communication protocol between components
  • A specific software component
  • Which of the following is a disadvantage of a component-based architecture?

    <p>Limited scalability and flexibility (A)</p> Signup and view all the answers

    What is the key distinction between a data-centric architecture and a client/server architecture?

    <p>Data-centric architecture focuses on data as the primary asset, while client/server architecture emphasizes communication between clients and servers. (C)</p> Signup and view all the answers

    What is a potential risk associated with event-driven architectures (EDA)?

    <p>Race conditions (D)</p> Signup and view all the answers

    Which of the following BEST describes the core principle of a distributed architecture?

    <p>Components residing on different platforms cooperate over a network to achieve a common goal. (D)</p> Signup and view all the answers

    What is a common characteristic of both component-based and service-oriented architectures?

    <p>Modularization of software components (B)</p> Signup and view all the answers

    What is the main advantage of a monolithic architecture?

    <p>Simplified communication (C)</p> Signup and view all the answers

    Which of the following is NOT a model of architecture design?

    <p>Object-oriented (D)</p> Signup and view all the answers

    What is a key characteristic of component-based architecture?

    <p>It emphasizes the decomposition of the design into individual components with well-defined interfaces. (D)</p> Signup and view all the answers

    Which architectural design model is characterized by a single program handling all functionalities?

    <p>Monolithic (C)</p> Signup and view all the answers

    Which of the following architectural models is often used for web applications?

    <p>Client/server (A)</p> Signup and view all the answers

    What is a potential disadvantage of client/server architecture?

    <p>Security vulnerabilities (B)</p> Signup and view all the answers

    Which of the following is NOT an example mentioned for monolithic architecture?

    <p>REST API (A)</p> Signup and view all the answers

    What is the primary focus of architectural design in software engineering?

    <p>Establishing the structure and organization of the system (A)</p> Signup and view all the answers

    Which of these is NOT a high-level design consideration mentioned in the provided text?

    <p>Data Structures (A)</p> Signup and view all the answers

    What does the acronym FURPS stand for in software engineering?

    <p>Functionality, Usability, Reliability, Performance, Security (A)</p> Signup and view all the answers

    Which of the following is NOT a requirement elicitation technique mentioned in the provided text?

    <p>User Stories (D)</p> Signup and view all the answers

    Which of the following is NOT a commonly used software architecture design pattern?

    <p>Object-Oriented (B)</p> Signup and view all the answers

    What is the main aim of architecture design in software engineering?

    <p>To define the high-level structure and organization of the software system (A)</p> Signup and view all the answers

    What is the primary purpose of software security?

    <p>To protect the software system from malicious attacks and vulnerabilities (A)</p> Signup and view all the answers

    According to the provided text, when should software security considerations be addressed?

    <p>At the system design level (B)</p> Signup and view all the answers

    Which of the following is NOT a type of software vulnerability mentioned in the provided text?

    <p>Code Injection (B)</p> Signup and view all the answers

    Study Notes

    Software Engineering - CP317B

    • Course: CP317B Software Engineering
    • Instructor: Shaun Gao, Ph.D., P.Eng.
    • Topic: Architecture Design (Week 3-1)

    Agenda

    • Review of Week 2
    • Introduction to High-Level Design
    • Software Security
    • User Interface
    • Architecture Design Models
      • Monolithic
      • Client/Server
      • Component-based
      • Service-oriented
      • Data-centric
      • Distributed
    • Summary

    Review of Week 2

    • Requirement Elicitation Techniques: Communication, Task Analysis, Domain Analysis, Brainstorming, Prototyping, Observation
    • MOSCOW Method (Prioritizing Requirements)
    • FURPS and FURPS+ Methods (Functional and Non-Functional Requirements)
    • Requirements Documentation
    • Requirements Validation and Verification (Verification vs Validation)
    • Alex F. Osborn's Four Rules for Brainstorming (For brainstorming)

    Introduction

    • Design: A problem-solving process to implement functional requirements while considering non-functional constraints (performance, security). Aims for high-quality design.
    • High-Level Design (HLD): An abstract representation of the system. Shows how major software components interact. Used when developing a software product.

    Architecture Design–Project

    • Think-Pair-Share: Discuss architecture design from a software engineering perspective.

    High-Level Design Considerations

    • Reliability & Quality: Software continues to function properly even with input variations
    • Software Security: Implementations and techniques to protect a software system from malicious attacks and hacker risks, ensuring it operates correctly. Should be considered at the system design level.
    • Software Vulnerability: The main cause of cyber security issues. Examples include:
      • Buffer overflow attacks
      • SQL Injection
      • Cross-site Scripting

    User Interface

    • Definition: The visual part of a computer application or operating system, allowing user interaction.
    • Examples: Keyboard, mouse, touch screen, voice recognition, Windows login screen (graphical interface examples: KDE Plasma, Aqua, GNOME Shell; display server examples: X11, Wayland, Quartz; window manager examples: awesome, Compiz, Open Box; kernel examples: Linux kernel, FreeBSD kernel, XNU kernel)

    Architectural Design

    • Definition: High-level model of a software system's functionality. Process of defining the collection of hardware and software components and interfaces to develop the framework of the software system.
    • Models:
      • Monolithic
      • Client/server
      • Component-based
      • Service-oriented
      • Data-centric
      • Distributed

    Monolithic Architecture

    • Description: All functions within a single program.
    • Advantage: no need for cross-network communication
    • Disadvantage: lack of flexibility and scalability.
    • Examples: Current washing machines, home appliances

    Client/Server Architecture

    • Description: Server hosts and manages resources; client interacts.
    • Advantage: Scalability & flexibility
    • Disadvantage: Security vulnerabilities

    Component-Based Architecture

    • Definition: Software components interact with other components. Component encompasses certain functionality or their sets.
    • Component-based Architecture Focus: Decomposition of the overall design into functional components; well-defined communication interfaces; providing better abstraction and sub-problem division.
    • Example: ATM

    Service-Oriented Architecture

    • Description: Style of software design where services are available to other components.
    • Advantage: Easy maintenance, reliability, availability, and scalability
    • Disadvantage: Increased overhead (e.g., customer needs).
    • Examples: Cloud computing and symmetric key management systems

    Data-Centric Architecture

    • Description: Data as the core asset; applications use and are built around this data.
    • Advantage: Simplicity, security, and integrity management
    • Disadvantage: Performance issues
    • Example: Data Warehouse

    Event-Driven Architecture

    • Description: Software system behavior is driven by events, occurrences that trigger state transitions.
    • Two types of events: Hardware vs. Software
    • Advantage: Good performance
    • Disadvantage: Complexity, potential race conditions

    Distributed Architecture

    • Description: Components on different platforms interacting via a network for a shared objective or goal.
    • Advantage: Resource sharing, scalability
    • Disadvantage: Complexity, security
    • Examples: MongoDB, BlockChain

    Think-Pair-Share Questions

    • Question 2: Architecture design for a group project (read two text files and output formatted data to a new file) and identifying the best suitable architecture design.

    Summary

    • Software Security: Consider security in the system design phase.
    • User Interface: Conceptual understanding.
    • Architecture Design: Models (Monolithic, Client/Server, Component-based, Service-oriented, Data-centric, Distributed) discussed.

    Studying That Suits You

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

    Quiz Team

    Related Documents

    Description

    This quiz covers the key concepts in software architecture design from CP317B Software Engineering. Topics include high-level design, various architecture models, and considerations for software security and user interface design. Review of requirement elicitation techniques and methodologies will also be included.

    More Like This

    Creating an Architecture Design
    10 questions
    System Design Fundamentals
    40 questions
    Use Quizgecko on...
    Browser
    Browser