객체지향 설계 원칙 (SOLID)
시스템 변경이나 확장에 유연한 시스템을 설계하기 위해 지켜야 할 다섯 가지 원칙으로 각 원칙의 앞 글자를 가져와 SOLID *솔리드 원칙이라고 한다.
단일 책임 원칙 (SRP; Single Responsibility Principle)
- 하나의 클래스는 하나의 목적을 위해 생성된다. 즉, 클래스가 제공하는 모든 서비스는 하나의 책임을 수행하는 데 집중되어 있어야 한다.
- 응집도는 높게, 결합도는 낮게 설계 되어야한다
개방-폐쇄 원칙 (OCP; Open-Closed Principle)
- 소프트웨어의 구성요소(컴포넌트, 클래스, 모듈, 함수)는 확장에는 열려있고, 변경에는 닫혀있어야 한다
리스코프 치환 원칙 (LSP; Liskov Substitution Principle)
- 자식(sub)은 부모(super)로 치환될 수 있어야 한다
- 서브 타입(상속 받은 하위 클래스)은 어디서나 자신의 기반 타입(상위 클래스)으로 교체할 수 있어야 한다.
인터페이스 분리 원칙 (ISP; Interface Segregration Principle)
- 한 클래스는 사용하지 않는 인터페이스는 구현하지 말아야 한다
- 객체 설계 시 특정 기능에 대한 인터페이스는 그 기능과 상관없는 부분이 변해도 영향을 받지 않아야 한다
- 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다
의존 역전 원칙 (DIP; Dependency Inversion Principle)
- 객체에서 어떤 클래스를 참조해서 사용하는 경우, 그 클래스를 직접 참조하지 않고 상위 요소를 참조한다
- 상위 모듈은 하위 모듈에 의존해서는 안되며, 모든 것은 추상에 의존해야 한다
객체지향 분석(OOA; Object Oriented Analysis) 의 방법론
사용자의 요구사항을 분석하여 요구된 문제와 관련된 모든 클래스(객체), 속성과 연산, 관계를 정의하는 모델링 작업을 의미한다. 객체는 클래스로 부터 인스턴스 화 되고 이 클래스를 식별하는 것이 객체지향 분석의 목적이다.
OMT (Object Modeling Technology) : 럼바우 방법 (Rumbaugh)
- 그래픽 표기법을 이용하여 소프트웨어 구성요소를 모델링하는 방법론. 만든 사람인 럼바우의 이름을 따 럼바우 방법이라고도 한다.
- 분석 절차 : 객체 모델링 > 동적 모델링 > 기능 모델링
> 객체 모델링
- 정보 모델링이라고도 한다
- 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체 들 간의 관계를 규정
- 객체 다이어그램으로 표현
> 동적 모델링
- 상태 다이어그램을 이용
- 시간의 흐름에 따라 객체들 사이의 제어 흐름, 동작 순서 등의 동적인 행위를 표현하는 모델링
> 기능 모델링
- 자료 흐름도(DFD)릴 이용하여 표현
- 프로세스들의 자료 흐름을 중심으로 처리 과정 표현하는 모델링
OOSE (Object Oriented SW Engineering) : 야콥슨 방법 (Jacobson)
- 유스케이스에 의한 접근 방법, 유스케이스를 모든 모델의 근간으로 활용하는 방법론
- 기능적 요구사항 중심의 시스템
- 분석, 설계, 구현 단계로 구성
OOD (Object Oriended Design) : 부치 방법 (Booch)
- 설계 문서화를 강조하여 다이어그램 중심으로 개발
- 분석과 설계의 분리 불가능
- 분석하는 데 이용된 객체 모델의 설계 시 적용
코드-요돈 방법론 (Cood - Yourdon)
- E-R 다이어그램을 사용하여 객체의 행위를 모델링
- 객체 식별, 구조 식별, 주체 정의, 속성 및 관계 정의, 서비스 정의 등의 과정으로 구성됨
워프-브록 방법론 (Wirfs - Brock)
분석과 설계 간의 구분이 없고, 고객 명세서를 평가하여 설계 작업까지 연속적으로 수행하는 분석 방법