8-3 객체지향 분석(구조 모델링)

윤효준·2025년 7월 16일
0

소프트웨어 공학

목록 보기
13/43

구조모델링은 개발 대상 소프트웨어가 어떤 구조적 요소들로 이루어질 수 있는가를 분석하는 과정이다.
업무 수행 과정에서 생성되고 사용되어야 할 객체에 어떤 것들이 있는지 식별하고 그들 간의 관계를 정의하는 것이다.

🔍 객체 식별

구조 모델링의 첫 번째 작업은 객체를 식별하는 것이다.
소프트웨어를 구성하게 될 객체들은 결국 객체를 추상화한 클래스로 정의하는데 기능 모델링을 통해서 작성된 유스 케이스 설명서를 이용하여 식별한다. 이 과정에서 다음과 같은 4가지 방법을 고려할 수 있다.

문장 분석

문장 분석은 유스 케이스 설명서의 정상 시나리오와 예외 처리 시나리오에 나타난 문장들의 구성 요소를 분석하는 것이다.
일반적으로 시나리오를 구성하는 각 문장의 품사에 따라 클래스의 구성 요소를 매핑한다.

일반 명사 = 클래스
동사 = 클래스의 연산
고유 명사 = 클래스의 인스턴스
형용사 = 클래스의 속성

일반 객체 목록

도메인별로 나타나는 일반적인 용어들을 식별하여 목록화한 후에 이를 구조 모델의 클래스로 사용한다면 객체 식별이 용이해진다.

  • 역할: 문제 영역에 나타나는 역할자 => 의사, 간호사, 환자 등과 같은 객체
  • 상호작용: 업무 수행 과정에서 발생하는 처리에 관한 것으로, 판매 처리, 등록 처리, 갱신 처리 등과 같은 객체
  • 물리적으로 존재하는 사물: 책, 의자, 사무실, 장비 등과 같은 객체

브레인스토밍

브레인스토밍은 프로젝트 관련자들의 생각으로부터 객체를 추출하는 방법이다.
브레인스토밍을 통한 객체 식별은 요구사항이나 유스 케이스 설명서에서 누락될 수 있는 객체들을 식별하는 좋은 기회를 제공한다.
다만 기능 모델의 산출물을 사전에 검토를 하면 브레인스토밍을 할 때 생각에 제한이 생길 수 있어 유의해야 한다.

패턴 적용

패턴은 빈번하게 발생하는 실세계의 문제를 해결하기 위해 체계적으로 작성된 클래스와 이들 간의 협업 관계를 정의한 것이다.
이러한 패턴을 이용하면 패턴에 포함된 객체를 구조 모델의 클래스로 직접 사용할 수 있다.

📝 클래스 명세

앞에서 제시한 방법에 의해 클래스가 식별되면 클래스에 대한 명세가 필요하다.
클래스 명세는 CRC 카드(Class-Responsibility-Collaboration Card)를 이용하여 작성하는데 다음과 같이 구성된다.

기본 정보 명세

CRC 카드의 앞면에는 대체로 클래스에 대한 기본 정보를 표현한다. 예를 들면, 클래스 이름, 식별자, 클래스 타입, 클래스 설명, 관련된 유스 케이스 식별자, 클래스의 책임, 협업 관계를 표현한다.

속성 및 연산 명세

CRC 카드의 뒷면에는 클래스의 속성과 연산을 정의한다. 뒷면에는 크게 멤버 변수를 나타내는 Attributes 항목과 해당 클래스와 상호작용하는 다른 클래스들과의 관계를 나타내는 Relationship 항목이 있다.

📊 클래스 다이어그램 작성

식별된 모든 클래스를 CRC 카드에 명세한 후에 클래스 다이어그램을 작성한다. 클래스 다이어그램에 나타나는 기본적인 관계에는 세 가지 유형이 있다.

일반화 관계

식별된 클래스들을 추상화하여 보다 보편적인 클래스로 나타낸 것이다.

집합 관계

식별된 다수의 클래스가 모여 하나의 집합체를 이루는 경우를 이야기한다.

연관 관계

일반화 관계와 집합 관계가 아닌 두 클래스 간의 관계를 연관 관계라고 한다.

속성 가시성

클래스의 속성으로 정의되는 변수가 갖는 접근 범위를 나타낸다.

관계 기수성

서로 연관을 맺은 두 클래스 간에 몇 개의 인스턴스가 발생할 수 있는가를 나타내기 위해 사용된다.

profile
작은 문제를 하나하나 해결하며, 누군가의 하루에 선물이 되는 코드를 작성해 갑니다.

0개의 댓글