1/23
These flashcards cover key vocabulary and concepts related to software design principles and processes from the lecture notes.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Design Phase
The phase in software development that transforms user requirements into a suitable form for programming and implementation.
Correctness
A design objective ensuring that software functions as per its requirements.
Modularity
The division of software into separate modules that can be managed independently.
Problem Partitioning
The practice of dividing a significant problem into smaller, manageable pieces for easier handling.
Abstraction
A mechanism that allows a designer to focus on essential features while hiding unnecessary details.
Functionality in Modularity
Each module should have a defined responsibility and interface for interaction with other modules.
Top-Down Approach
A design strategy that starts with identifying main components and breaks them down into sub-components.
Bottom-Up Approach
A design strategy that begins with detailed elements and integrates them into a higher-level structure.
Efficiency
A design objective that emphasizes the optimal use of resources.
Flexibility
A design property that allows modifications based on changing needs.
Consistency
A design principle that ensures uniformity and coherence throughout the design.
Maintainability
A design quality that allows for ease of maintenance and updates by future designers.
UML
Unified Modeling Language; a collection of inter-related diagramming notations used in design and analysis.
Implementation
The process of translating a database schema into a technology-dependent structure.
Physical Design
The design aspect concerned with the physical storage of information in a database.
Logical Design
The design stage that documents characteristics in terms of relational database structures.
Conceptual Design
The initial design phase that abstractly represents key characteristics of a system.
Design Objectives
Guidelines to ensure the design is correct, complete, efficient, and maintainable.
Common Abstraction Mechanisms
Techniques like functional and data abstraction that help manage complexity in design.
Advantages of Modularity
Benefits such as easier collaboration among developers and simplified program management.
Disadvantages of Modularity
Potential issues like longer execution times and increased complexity in inter-module communication.
Design Principles
Guidelines that help manage the complexity and effort involved in the design process.
System Controls
Measures to ensure the system operates correctly and that data is secured.
Key Design Activities
Essential questions and tasks that guide the overall design process of software.