soft eng 1 Flashcards
Principles of Software Development
crucial role in ensuring the quality, maintainability, and longevity of projects.
SOLID
key concepts in software development
Single Responsibility
only one well-defined responsibility
Open/Closed
open for extension x for modification
Liskov Substitution
adhering to contracts when inheriting classes
Interface Segregation
defining specific interfaces x monolithic interface
Dependency Inversion
use of abstract dependencies x concrete classes
DRY
elimination of unnecessary code duplication
KISS
simplicity in code design and implementation
YAGNI
not implementing features or code x immediately necessary
Convention over Configuration
use of predetermined conventions x explicit configurations
Composition over Inheritance
using class composition x inheritance
Law of Demeter
decoupling and reducing dependencies beetw classes.
System AD
abstract depiction of the system’s component architecture.
System Test AD
test how the software is used by users