
Explore tens of thousands of sets crafted by our community.
Software Engineering Principles
20
Flashcards
0/20
Abstraction
Simplifying complex systems by modeling them at a more general level, omitting details.
Agile Methodology
A group of modern software development methodologies based on iterative development.
Modularity
Dividing a program into distinct features with as little overlap as possible.
Separation of Concerns
Design principle for separating a computer program into distinct sections.
Encapsulation
Bundling data with the methods that operate on it, while keeping both safe from outside interference
SOLID Principles
A group of five principles for object-oriented programming and design: Single-responsibility, Open-closed, Liskov substitution, Interface segregation, and Dependency inversion.
DevOps
A set of practices that combines software development (Dev) and IT operations (Ops).
YAGNI (You Aren't Gonna Need It)
A principle of extreme programming that states to not add functionality until deemed necessary.
Scalability
The capability of a system to handle a growing amount of work or its potential to accommodate growth.
Concurrency
Property of systems that allow for multiple computations to happen simultaneously.
KISS (Keep It Simple, Stupid)
Design principle that states most systems work best if they are kept simple rather than made complex.
Refactoring
The process of restructuring existing code without changing its external behavior.
Binary Search Algorithm
A fast search algorithm with complexity of O(log n) that repeatedly divides the range of searched elements in half.
Design Patterns
Typical solutions to common problems in software design.
Coupling
A measure of how interdependent software modules are.
Continuous Integration (CI)
A software development practice where developers regularly integrate their code changes into a central repository.
DRY (Don't Repeat Yourself)
A principle aimed at reducing the repetition of software patterns.
Cohesion
The degree to which elements of a module belong together.
Waterfall Model
A linear sequential flow in which progress is seen as flowing steadily downwards through several phases.
Test-Driven Development (TDD)
A software development process based on the repetition of a very short development cycle.
© Hypatia.Tech. 2024 All rights reserved.