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