1/43
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
What is Software Engineering?
A discipline focused on the systematic design, development, testing, and maintenance of software using engineering principles.
What defines a Program?
A set of instructions designed to perform a specific task or small set of related tasks.
What are Program Requirements?
Statements that define and qualify what a program needs to do.
What is a Functional Requirement?
Defines what the program must do or what behavior it must provide.
What is a Nonfunctional Requirement?
Defines how well the program must perform, such as performance, reliability, security, or usability.
What are Design Constraints?
Restrictions on how a program can be designed or implemented.
What are Design Decisions?
Choices made by developers within constraints like programming language or algorithm selection.
What is Testing in software?
The process of verifying that software behaves as expected and meets requirements.
What is Unit Testing?
Testing individual software units (functions, classes, modules) in isolation.
What is Integration Testing?
Testing how multiple software components work together.
What is Acceptance Testing?
Testing whether the software meets user requirements before delivery.
What is Black-box Testing?
Testing based only on requirements, without knowledge of internal code.
What is White-box Testing?
Testing based on knowledge of the internal code and logic.
What is Effort Estimation?
The process of estimating the time and work required to complete a software task.
What is Ideal Time?
Estimated time to complete a task with no interruptions.
What is Calendar Time?
Realistic time to complete a task, accounting for breaks and interruptions.
What is Implementation in software development?
The process of converting a software design into working code.
What is a Standard Library?
A collection of prewritten, commonly used functions provided by a programming language.
What is Code Review?
The process of examining code to find errors, inconsistencies, or design issues.
What are the Program Development Steps?
Understanding requirements, Design, Implementation, Testing.
What is a Software System?
A collection of interconnected programs, modules, or components that work together to provide a complete service.
What does Size of a system refer to?
How large a system is, such as the number of components, features, users, or amount of data.
What does Complexity in a system refer to?
How difficult a system is to understand, develop, and maintain.
What is Breadth of Complexity?
The number and variety of functionalities, users, interfaces, and data types in a system.
What is Depth of Complexity?
The interactions among components, including data sharing, control flow, and nested logic.
What is Decomposition?
Breaking a complex problem or system into smaller, more manageable sub-problems.
What is Modularization?
Dividing a system into independent modules, each responsible for a specific functionality.
What is a Module?
A self-contained unit of software responsible for a specific task or concern.
What is Separation of Concerns?
The principle that each module should focus on a single responsibility and not mix unrelated tasks.
What are Technical Considerations?
Technical factors and choices that affect how a system is built and supported.
What is a Database?
A system used to store, manage, and organize data efficiently.
What are Programming Platforms?
Programming languages, frameworks, and tools used to develop software.
What is a Computing Network?
The infrastructure that enables communication between system components.
What is Configuration Management?
Managing and tracking changes to software using tools like version control systems.
What is Version Control?
Tools (e.g., Git) that track code changes and support collaboration.
What are Modeling Techniques?
Visual or formal methods used to design and communicate system structure.
What is Automated Testing?
Using software tools to automatically run tests to improve reliability and reduce manual effort.
What is Process in software development?
A structured approach to software development, including planning, building, testing, and maintenance.
What is Incremental Development?
Developing software in small, manageable pieces over time.
What is Continuous Integration (CI)?
Frequently integrating new code into the main system.
What is Continuous Delivery / Deployment (CD)?
Quickly releasing completed features to users.
What is Coordination in system development?
Organizing people, tasks, and processes in system development.
What are Communication Paths?
The number of possible communication links among team members (≈ n² / 2).
What is Effort Estimation in Large Systems?
Estimating time and effort for complex systems, often imprecise due to size and uncertainty.