Podcast
Questions and Answers
Which of the following is NOT an advantage of a data-centric architecture?
Which of the following is NOT an advantage of a data-centric architecture?
What is the primary advantage of a service-oriented architecture (SOA)?
What is the primary advantage of a service-oriented architecture (SOA)?
What does the term "event" represent in an event-driven architecture (EDA)?
What does the term "event" represent in an event-driven architecture (EDA)?
Which of the following is a disadvantage of a component-based architecture?
Which of the following is a disadvantage of a component-based architecture?
Signup and view all the answers
What is the key distinction between a data-centric architecture and a client/server architecture?
What is the key distinction between a data-centric architecture and a client/server architecture?
Signup and view all the answers
What is a potential risk associated with event-driven architectures (EDA)?
What is a potential risk associated with event-driven architectures (EDA)?
Signup and view all the answers
Which of the following BEST describes the core principle of a distributed architecture?
Which of the following BEST describes the core principle of a distributed architecture?
Signup and view all the answers
What is a common characteristic of both component-based and service-oriented architectures?
What is a common characteristic of both component-based and service-oriented architectures?
Signup and view all the answers
What is the main advantage of a monolithic architecture?
What is the main advantage of a monolithic architecture?
Signup and view all the answers
Which of the following is NOT a model of architecture design?
Which of the following is NOT a model of architecture design?
Signup and view all the answers
What is a key characteristic of component-based architecture?
What is a key characteristic of component-based architecture?
Signup and view all the answers
Which architectural design model is characterized by a single program handling all functionalities?
Which architectural design model is characterized by a single program handling all functionalities?
Signup and view all the answers
Which of the following architectural models is often used for web applications?
Which of the following architectural models is often used for web applications?
Signup and view all the answers
What is a potential disadvantage of client/server architecture?
What is a potential disadvantage of client/server architecture?
Signup and view all the answers
Which of the following is NOT an example mentioned for monolithic architecture?
Which of the following is NOT an example mentioned for monolithic architecture?
Signup and view all the answers
What is the primary focus of architectural design in software engineering?
What is the primary focus of architectural design in software engineering?
Signup and view all the answers
Which of these is NOT a high-level design consideration mentioned in the provided text?
Which of these is NOT a high-level design consideration mentioned in the provided text?
Signup and view all the answers
What does the acronym FURPS stand for in software engineering?
What does the acronym FURPS stand for in software engineering?
Signup and view all the answers
Which of the following is NOT a requirement elicitation technique mentioned in the provided text?
Which of the following is NOT a requirement elicitation technique mentioned in the provided text?
Signup and view all the answers
Which of the following is NOT a commonly used software architecture design pattern?
Which of the following is NOT a commonly used software architecture design pattern?
Signup and view all the answers
What is the main aim of architecture design in software engineering?
What is the main aim of architecture design in software engineering?
Signup and view all the answers
What is the primary purpose of software security?
What is the primary purpose of software security?
Signup and view all the answers
According to the provided text, when should software security considerations be addressed?
According to the provided text, when should software security considerations be addressed?
Signup and view all the answers
Which of the following is NOT a type of software vulnerability mentioned in the provided text?
Which of the following is NOT a type of software vulnerability mentioned in the provided text?
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.
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.