카테고리 없음

[CS] software engineering principles

bay07 2026. 1. 17. 06:20


Brooks’s Law

Adding more people to a delayed software project will only make it later.
This is because new team members require training and increase communication overhead, which slows down progress.


---

Pareto Principle (80/20 Rule)

In software testing, 80% of defects are found in 20% of the modules.
This is known as the defect concentration principle, meaning a small portion of the system contains most of the problems.


---

Long Tail Law

The combined value of many small, less popular items (80%) can exceed the value created by a small number of popular core items (20%).
In software and digital markets, niche features or products can collectively generate significant value.


---

Boehm’s Law

Finding and fixing defects in the early stages of development saves a lot of time and cost.
If defects are discovered in later stages, the cost to fix them increases dramatically.


---

Moore’s Law

The performance of semiconductor integrated circuits doubles every 18 to 24 months.
This explains the rapid and continuous growth in computing power over time.


---

DRY Principle (Don’t Repeat Yourself)

Avoid duplication in software development.
Each piece of information or logic should exist in one single, authoritative source to improve maintainability and reduce errors.


---

YAGNI Principle (You Aren’t Gonna Need It)

Do not implement features until they are actually needed.
This principle helps prevent over-engineering, unnecessary complexity, and wasted development effort.

---

Polymorphism 다형성
같은 이름의 메서드가 상황에 따라 다르게 동작
Overriding, Overloading

^ XOR

C language
0 => False
not 0, 1,2,3,4,5 .... => true