1. 객체지향 설계 방법의 개요
가. 객체지향 설계 방법의 정의
-분석 클래스 다이어그램으로부터 설계 클래스 다이어드램을 생성하는 기법
나. 객체지향 설계 방법의 특징
-분석과 설계의 구분이 명확하지 않고 분석활동에서 생성된 산출물을 정제하여 구체화
-분석은 도메인에 대한 이해 활동, 설계는 솔루션 결정 활동
-설계 클래스 다이어그램은 도메인에 존재하지 않는 다양한 솔루션 클래스(엔티티, 제어, 데이터 접근) 포함
-설계 클래스를 관련 그룹으로 묶어 패키지 다이어그램 작성
-클래스 사이의 관계나 속성 이름, 속성 타입, 메소드 스그니처에 대한 정보 파악
-설계 클래스 다이어그램의 품질을 높이기 위해 응집도와 결합도 고려
객체지향 분석 방법 | 객체지향 설계 방법 |
사용사례 다이어그램 활동 다이어그램 사용사례 패키지 다이어그램 분석 클래스 다이어그램 시스템 순서 다이어그램 상태 기계 다이어그램 프로토타입(사용자 인터페이스) |
컴포넌트 다이어그램 배치 다이어그램 패키지 다이어그램 설계 클래스 다이어그램 상세 순서 다이어그램 통신 다이어그램 활동 다이어그램 상태기계 다이어그램 CRC (Class Responsibility Collaboration) 설계 패턴 |
2. 객체지향 설계 품질 및 설계 절차
가. 객체지향 설계 품질
구분 | 분류 | 설명 |
결합도 | 개요 | -클래스 사이의 상호 의존도를 의미 -클래스 사이의 관계가 밀접하면 시스템 유지보수나 재사용이 어려워 결합도 최소화 필요 |
상호작용 결합도 | -클래스 사이의 연관관계나 의존관계에 의한 결합 정도 의미 | |
상속 결합도 | -클래스 상속 관계에 의한 밀접 정도 의미 | |
응집도 | 개요 | -단일 클래스나 단일 메소드 내부의 관련 정도를 의미 |
메소드 응집도 | -각 메소드 내부의 응집력 -양질의 메소드는 한 메소드에 한가지 기능만 수행 |
|
클래스 응집도 | -클래스와 클래스에 소속된 속성과 메소드 사이의 응집 정도 -양질의 클래스는 한 클래스에 한가지 기능만 표현 |
-각 모듈이 한 가지 기능만을 갖도록 설계하고, 다른 모듈과의 상호 작용을 최소화하여 기능적인 독립성 유지 설계
나. 객체지향 설계 절차
번호 | 특징 | 설명 |
1 | 초기/상세 순서 다이어그램 | -순서 다이어그램 개발 -초기 순서 다이어그램에서 도메인 클래스만 포함하여 개발 (액터와 시스템 사이의 메시지 순서) -상세 순서 다이어그램에서 도메인 클래스 외에 UI 클래스, 제어 클래스, 데이터 접근 클래스 등 클래스 개발 |
2 | 경계 계층 도메인 계층 데이터 관리 계층 |
-설계 클래스 다이어그램 생성 -경계 계층, 도메인 계층, 데이터 관리 계층과 같은 클래스 설계 |
3 | 높은 응집도 낮은 결합도 과거 유사 사례 CRC 카드 |
-설계 클래스 다이어그램 정제 -설계 품질을 고려하여 설계 클래스 다이어그램을 정제 -높은 응집도, 낮은 결합도 -과거 유사 문제 도메인에서 발생한 솔루션 재사용 -클래스와 클래스 사이의 책임과 협력 관계 파악 돕는 CRC 카드 적용 정제 |
4 | 경계 도메인 데이터 관리 |
-설계 클래스들을 그룹화(구조화) -계층 구조에 적절하도록 설계 클래스들을 패키지화 -점선 화살표를 통해 패키지 사이의 의존 관계 표시 -단순한 데이터베이스 접근의 경우 직접 경계계층에서 데이터 관리계층에 접근 가능 |
-사용 사례 현실화를 통해 소프트웨어 아키텍처 설계 수행
3. 설계 클래스 UML 표기방법
계층 | 설계 클래스 | 설명 | 표기법 |
경계 계층 (표현 계층, 뷰 계층) |
UI 클래스 | -시스템과 사용자 사이의 인터페이스를 담당하는 클래스 예) 윈도우 같은 사용자 인터페이스 클래스 |
|
도메인 계층 | 엔티티 클래스 | -영속성이 있는 도메인이 클래스에 해당 -프로그램 실행이 끝난 후에도 데이터페이스나 파일과 같이 존재하는 클래스 예) 고객, 주문 |
|
제어 클래스 | -UI 클래스와 엔티티 클래스 사이에 위치하여 UI 클래스로부터 메세지를 받아 적절한 엔티티 클래스에 보내는 중재자 역할 수행 클래스 -제어 흐름(비즈니스 로직)을 담당하며 다른 클래스에 작업 위임을 책임짐 -외부환경과 내부 도메인 클래스들의 결합도 감소 |
||
데이터 관리 계층 (어플리케이션 계층, 비즈니스 로직 계층) |
데이터 접근 클래스 | -데이터베이스의 데이터를 검색하고 저장하는 클래스 |
-UML 은 계층 구조 모델링을 위해 4종의 설계 클래스에 대한 표기법 제공
(원문 '소프트웨어 공학의 기본원리'에서의 다이어그램 활용 참고)
'나의 서재 > 22. 소프트웨어 공학 기본원리' 카테고리의 다른 글
13.1 Singleton 패턴 (0) | 2021.12.14 |
---|---|
13. 설계 패턴 (0) | 2021.12.14 |
11. 구조적 설계 방법 (0) | 2021.12.11 |
10. 시스템 아키텍처 설계 (0) | 2021.12.06 |
9.2 설계 평가 & 명세 & 방법 (0) | 2021.12.06 |
댓글