1/20
Question-and-answer flashcards covering the core concepts of System Design, including processes, design types, and tools from the lecture notes.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
What is system design?
The process of defining the architecture, components, interfaces, and data for a system to satisfy specified requirements; a crucial phase in the software development lifecycle where the overall structure is conceptualized and documented.
What are the phases of the System Design Process?
Requirements Gathering, Analysis, Design, Implementation, Testing.
What activities are involved in Requirements Gathering?
Conduct interviews with stakeholders; gather and document functional and non-functional requirements; prioritize requirements; understand the problem domain, goals, constraints, and user needs.
What is the focus of the Analysis phase?
Reviewing, refining, and validating requirements; understanding the problem thoroughly; defining the system's behavior; identifying use cases and scenarios; feasibility studies and risk assessments.
What happens during the Design phase?
Create a blueprint of the system based on requirements and analysis; define system architecture, data models, database schemas, module interfaces, interactions, and technologies to be used.
What occurs in the Implementation phase?
Translate the design into code; write, test, and integrate software components according to design specifications.
What is the purpose of the Testing phase?
Verify that the implemented system meets requirements and functions correctly; conduct functional, integration, performance, security, and usability testing; identify and fix defects.
What is High-Level Design (HLD)?
Architecture-focused design that defines the overall structure and components of a system; provides a conceptual overview of system interactions without implementation details.
What are characteristics of High-Level Design?
Identifies major components and their relationships; defines system architecture and key modules; outlines data flow, interfaces, and communication channels; considers scalability, performance, and reliability.
What is Low-Level Design (LLD)?
Detailed design that specifies the internal logic of individual system components identified in the high-level design; provides detailed specifications for each module or component.
What are characteristics of Low-Level Design?
Defines algorithms, data structures, and data formats; designs module interfaces and interactions; specifies database schemas and data storage mechanisms; considers error handling, security, and performance optimizations.
What is Detailed Design?
An extended blueprint that provides comprehensive implementation details for coding, testing, and integrating system components; includes deployment and maintenance considerations.
What are characteristics of Detailed Design?
Specifies coding standards and guidelines; defines unit testing strategies and test cases; provides implementation specifics for developers; outlines deployment and maintenance considerations.
How do High-Level, Low-Level, and Detailed Design relate to each other?
High-Level Establishes architecture and major components at a conceptual level; Low-Level specifies internal logic and detailed specifications; Detailed Design provides an exhaustive blueprint for implementation, testing, and deployment.
What tools and techniques are used in System Design?
Tools and techniques to visualize, analyze, and communicate the structure and behavior of a system, including UML, DFDs, ERDs, and Flowcharts.
What is UML?
Unified Modeling Language; a standardized modeling language used to visualize, specify, construct, and document the artifacts of a software system.
Name some types of UML diagrams.
Class Diagram, Use Case Diagram, Sequence Diagram, Activity Diagram, Component Diagram.
What is a Data Flow Diagram (DFD)?
A diagram that depicts the flow of data within a system, illustrating how input data is transformed to output data through processes; components include External Entities, Processes, Data Stores, and Data Flows.
What is an Entity-Relationship Diagram (ERD)?
A diagram that depicts the relationships between entities in a database; components include Entities, Attributes, and Relationships.
What is a Flowchart?
A visual representation of processes, workflows, or algorithms using symbols to illustrate steps; symbols include Start/End, Process, Decision, and Input/Output.
Why is system design considered a crucial phase in software development?
Because it defines the overall structure, architecture, and interfaces that ensure the system meets requirements and scales, performance, and reliability needs.