728x90
객체지향 분석(OOA; object-oriented anaysis)
사용자의 요구사항을 토대로 클래스, 관계 등을 정의하여 모델링하는 단계이며 클래스를 식별 및 정의하는 것이 목적이다.
클래스 식별: 실생활에서 어떤 객체들이 서로 유사한 특성과 행동을 가지고 있는지 파악하는 것
ex: 자동차(클래스) - 속도, 연료량 등의 특성을 가지며 주행, 가속, 감속 등의 행동을 할 수 있다.
객체지향 분석의 방법론
- Rumbaugh(럼바우) 방법 : 모든 구성요소를 그래픽 표기법(UML)을 이용하여 모델링하는 기법
[JAVA] UML(Unified Modeling Language)
UML(Unified Modeling Language) 객체지향 소프트웨어 개발 전 단계에서 다양한 측면을 의사소통이 원활하게 이루어지도록 시각화 한 모델링 언어 사물(Things), 관계(Relationships), 다이어그램(Diagram)으로 구
developerhun.tistory.com
-
- 객체 모델링(Objcet) : 객체들 간 관계를 규정(E-R다이어그램을 만드는 과정)을 모델링하며 객체 다이어그램을 활용하여 표현
- 동적 모델링(Dynamic) : 시간의 흐름에 따라 객체 사이의 제어, 동작 등 동적인 행동을 행위 다이어그램으로 표현
- 기능 모델링(Functional) : 프로세스들의 자료 흐름을 중심으로 처리 과정을 DFD로 표현
- Booch(부치) 방법 : 미시적, 거시적 개발 프로세스를 모두 사용하는 분석방법
- Jacobson 방법 : UseCase를 강조하여 사용하는 분석 방법
- Coad와 Yourdon 방법 : E(Entity)-R(Relationship)다이어그램을 사용
- Wirfs-Brock 방법 : 분석, 설계 구분없이 고객 명세서로 설계작업까지 연속적으로 수행
객체지향 설계(OOA; object-oriented Design)
소프트웨어 문제를 해결하기 위해 상호 작용하는 객체 시스템을 계획하는 프로세스
객체지향 설계(OOD)의 원칙(SOLID) : 유지보수성, 재사용성, 확장성, 테스트 용이성 등 다양한 측면에서 이점을 제공
- Single Responsibility Principle (SRP): 객체는 하나의 책임만 가져야 한다(모듈이 변경되는 이유가 한가지여야 한다)
- 변경이 필요할 때 수정할 대상이 명확해진다
- 낮은 결합도를 유지할 수 있다.
- Open-Closed Principle (OCP) : 확장에 대해 열려있고 수정에 대해서는 닫혀있어야 한다
- 코드를 변경하지 않고 기능을 추가할 수 있도록 설계하여야 한다
- ex: PSA
- Liskov Substitution Principle (LSP) : 자식클래스는 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다
- 부모 클래스의 책임을 무시하거나 재정의 하지않고 확장만 수행하여야 한다
- Interface Segregation Principle (ISP) : 사용하지 않는 인터페이스의 영향을 받지 않아야 한다
- 클라이언트의 목적과 용도에 적합한 인터페이스 만 제공하여야 한다
- 목적과 관심이 각기 다른 클라이언트가 있다면 인터페이스를 통해 적절하게 분리하여야 한다
- Dependency Inversion Principle (DIP) : 고수준 모듈은 저수준 모듈의 구현에 의존해서는 안 되며, 저수준 모듈이 고수준 모듈에 의존해야 한다
- 고수준 모듈: 입력과 출력으로부터 먼(비즈니스와 관련된) 추상화된 모듈
- 저수준 모듈: 입력과 출력으로부터 가까운(HTTP, 데이터베이스, 캐시 등과 관련된) 구현 모듈
- 추상성이 높은 클래스와 의존관계를 맺어야 한다
'CS' 카테고리의 다른 글
[Spring] Bean의 생명주기 및 Scope (0) | 2023.10.20 |
---|---|
[JAVA] UML(Unified Modeling Language) (1) | 2023.10.19 |
[Java] 객체지향 프로그래밍(OOP; Object-Oriented Programming) (0) | 2023.10.19 |
[Spring] PSA(Portable Service Abstraction) (0) | 2023.10.18 |
[OS] 캐시의 지역성 (0) | 2023.10.07 |