๐Ÿšจ Limited Offer: First 50 users get 500 credits for free โ€” only ... spots left!
Software Engineering Flashcards

Free Software Engineering flashcards, exportable to Notion

Learn faster with 48 Software Engineering flashcards. One-click export to Notion.

Learn fast, memorize everything, master Software Engineering. No credit card required.

Want to create flashcards from your own textbooks and notes?

Let AI create automatically flashcards from your own textbooks and notes. Upload your PDF, select the pages you want to memorize fast, and let AI do the rest. One-click export to Notion.

Create Flashcards from my PDFs

Software Engineering

48 flashcards

Unit testing verifies the functionality of individual units or components of software separately.
Integration testing evaluates how different units or components work together as a group.
System testing tests the fully integrated system to evaluate compliance with specified requirements.
The Software Development Life Cycle (SDLC) is a series of steps or phases that provide a model for planning, creating, testing, and deploying an information system.
The main phases of the SDLC are: Planning, Analysis, Design, Implementation, Testing, and Maintenance.
The Planning phase involves determining the scope of the project, identifying resources needed, creating project schedules and effort estimates.
In the Analysis phase, requirements are gathered and analyzed to determine what the system needs to do to meet stakeholder needs.
The goal of the Design phase is to plan and specify a technical solution that meets the requirements identified in the Analysis phase.
The Implementation phase involves writing program code based on the specifications produced in the Design phase.
The Testing phase verifies that the developed system meets requirements and user expectations through various types of testing like unit, integration and system testing.
In the Maintenance phase, the system is updated to fix bugs, adapt to environmental changes, or enhance functionality based on new requirements.
A design pattern is a general, reusable solution to a commonly occurring problem in software design.
The Singleton pattern is an example of a creational design pattern that restricts instantiation of a class to one object.
The Adapter pattern is an example of a structural design pattern that allows objects with incompatible interfaces to work together.
The Observer pattern is an example of a behavioral design pattern that defines a one-to-many dependency between objects to allow state changes to be broadcast.
Project management involves planning, organizing, securing and managing resources to achieve specific goals for a software project.
A project manager is responsible for leading the team, managing scope, schedule, cost, quality, resources, communications and risks of a project.
A project plan documents deliverables, milestones, tasks, schedules, resource requirements, risks and assumptions for a project.
Software testing involves evaluating a software product or system to find defects and verify that it meets requirements and user expectations.
The main levels of testing are unit testing, integration testing, system testing and acceptance testing.
Acceptance testing evaluates if the complete system meets client/user needs and is ready for deployment or delivery.
Black box testing evaluates software from an external perspective, examining functionality without knowledge of internal implementation.
White box testing examines internal structure, design and implementation of the software being tested.
Regression testing is re-running test cases that previously executed successfully to detect if new code changes introduce defects.
Test-driven development is a practice that involves writing test cases before writing production code.
The main benefit of TDD is that it drives design of software focused on requirements and testability from the outset.
A software requirement is a condition or capability that a system must meet or possess to satisfy a contract, standard or specification.
A functional requirement specifies something the system should do, such as calculations, operations or transformations.
A non-functional requirement describes qualities, attributes or constraints of the system like performance, reliability or security.
A software prototype is an incomplete but working model built to learn more about a problem or proposed solution.
Benefits of prototyping include improved user involvement, reduced development costs and improved system usability.
An Agile methodology is an iterative approach to software development with frequent releases and responsive to change.
Scrum is an Agile framework for managing complex projects, based on iterative and incremental delivery of work.
The core roles defined in Scrum are Product Owner, Scrum Master and Scrum Team.
The Product Owner is responsible for defining and prioritizing product requirements and the product backlog.
The Scrum Master facilitates Scrum practices and processes, helps remove impediments and promotes self-organization.
Sprints are short, time-boxed periods when development work is completed, typically 2-4 weeks long.
The Sprint Backlog is a list of Product Backlog items the team commits to completing during the current Sprint.
A Daily Scrum is a short, daily team meeting to synchronize activities and create a plan for the next 24 hours.
Software configuration management is the process of tracking and controlling changes in software, ensuring a system maintains required functionality and integrity.
Version control is a component of configuration management that manages changes to source code over time.
Git is a distributed version control system that tracks changes in source code files during software development.
A repository in Git is a data structure that stores metadata for a set of files or directory structure.
DevOps is a set of practices combining software development and IT operations to shorten development lifecycles and provide continuous delivery.
Continuous Integration is a DevOps practice of automatically building and testing code whenever a change occurs.
Containerization packages code and dependencies together to run consistently in any computing environment.
Object-oriented programming is a programming paradigm based on objects that contain data and code to manipulate that data.
The four core principles are encapsulation, abstraction, inheritance and polymorphism.