1️⃣ 소프트웨어 설계

객체지향

: 객체와 속성, 클래스와 멤버, 전체와 부분 등으로 나누어 분석

객체 고유 식별자, 하나의 독립된 존재로 일정한 기억장소를 보유한 상태이다. 즉 이는 객체가 가질 수 있는 조건, 속성 값에 의해 정의되는 행위로 객체가 반응할 수 있는 메시지 집합을 말한다.
클래스 공통 속성과 연산을 갖는 객체들의 집합으로 데이터 수상화 단위이다.
캡슐화 데이터와 데이터 처리 함수를 하나로 묶은 것으로, 세부 내용을 은폐하여 외부 접근을 제한한다. → 결합도가 낮고 재사용이 용이하며 인터페이스가 단순하고 오류 파급효과가 낮다.
상속 상위 클래스의 속성과 연산을 하위 클래스가 물려받는 것을 말한다.
다형성 하나의 메시지에 각 객체 별 고유 특성에 따른 여러 형태의 응답을 말한다.

분석방법론

Booch: 미시적, 거시적 개발 프로세스를 모두 사용하는 것

Jacobson: Use case를 사용하는 것으로 사용자, 외부 시스템이 시스템과 상호작용하는 것

Coad-Yourdon: E-R 다이어그램 사용

Wirfs-Brock: 분석과 설계 구분이 없으며 고객 명세서 평가 후 설계 작업까지 연속으로 수행하는 것을 의미

Rumbaugh

5대 설계 원칙 (SOLID)