1/24
This set of flashcards covers key terminology and concepts in Software Engineering, including various software types, development models, project management, requirements engineering, and methodologies.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
Software Engineering
The area of computer science that relates to techniques, methods, practices, and tools for the systematic development, operation, and maintenance of software.
Types of Software
Includes System Software, Application Software, Engineering/Scientific Software, Embedded Software, Product-line Software, Web/Mobile Applications, and Artificial Intelligence Software.
System Software
A collection of programs written to run other programs, such as compilers and operating systems.
Application Software
Individual programs that solve a specific business need or perform tasks for users.
Embedded Software
Software that resides within a product or system, controlling features and functions without user awareness.
Agility
The ability of a software process to adapt rapidly to change, incorporating direct customer feedback.
Scrum
An agile framework that organizes development teams into roles and practices for iterative progress.
Functional Requirements
Requirements that define what a system must do, specifying functions or features.
Non-functional Requirements (NFR)
Criteria to judge the operation of a system, focusing on how the system performs under various conditions.
Requirements Engineering
The process of developing and managing requirements for a software project.
Waterfall Process Model
A sequential software development approach where each phase must be completed before moving to the next.
V-Model Process Model
A variation of the waterfall model with added quality assurance steps for each development activity.
Spiral Process Model
An iterative software development model that incorporates risk assessment and customer feedback in cycles.
Unified Process Model
An iterative software process focusing on use-case driven, architecture-centric methodologies, and incremental delivery.
Project Management
The umbrella activity that oversees the planning, execution, and completion of software projects.
Task Network
A graphical representation of the sequence and dependencies of tasks within a project.
Gantt Chart
A visual schedule that maps out tasks, their duration, overlapping timelines, and project milestones.
Domain Analysis
The identification, analysis, and specification of common requirements from a specific software application domain.
UML (Unified Modeling Language)
A standardized modeling language used to specify, visualize, and document models of software systems.
Use Cases
Descriptions of how a user interacts with a system, outlining the sequence of actions taken.
Test-Driven Development (TDD)
A software development approach where tests are written before the code to ensure functionality.
Prototyping Process Model
An agile model that allows for iterative development through feedback on quick models or prototypes.
Kanban Framework
A method for visualizing work, limiting work in progress, and maximizing flow.
DevOps
A practice that emphasizes collaboration between development and IT operations, aiming for continuous delivery.
W5HH Principle
A principle to clarify project responsibilities, focusing on who, what, where, when, why, and how much.