본문 바로가기
  • (개인)정보보호/최신ICT 정보 공유 블로그
나의 서재/22. 소프트웨어 공학 기본원리

12. 객체지향 설계 방법

by 노벰버맨 2021. 12. 12.

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

댓글