소프트웨어 공학 – 클래스 다이어그램

등장인물 간의 관계는 Association, Aggregation, Composition이 있다.

Association: 관계가 있다
Aggregation: 한 쪽이 전체고 다른 한 쪽이 부분인 관계이다. (마름모는 전체에 붙임)
Composition: 전체가 부분을 강하게 소유하고 있다. (부분은 공유될 수 없음, 전체가 죽으면 부분도 죽음)

Example)
PC와 RAM은 Aggregation 관계이다.
PC는 RAM을 소유하고 있다.
PC의 RAM은 다른 PC에게 공유될 수 있고, 전체(PC)가 죽는다고 부분(RAM)이 항상 죽는 것은 아니다.

사람과 눈은 Aggregation 관계이다.
사람은 눈을 소유하고 있다.
사람의 눈은 다른 사람에게 이식될 수 있으므로 전체(사람)가 죽는다고 부분(눈)이 죽는 것도 아니다.

고양이와 눈은 Composition 관계이다.
고양이는 눈을 소유하고 있다.
고양이의 눈은 다른 고양이에게 이식될 수 없으므로 전체(고양이)가 죽으면 부분(눈)이 죽는다.

Multiplicity

교과목 한 개당 교수 한 명이 담당한다.
교수 한 명이 0~4개의 교과목을 가르친다.
If) 여러 교수가 한 과목을 가르칠 수 있다면?
CourseOffering(0..4), Professor(1..*)

[문제]
프레젠테이션 시스템

  • 파워포인트 같은 프레젠테이션 어플리케이션을 만들려고 한다. 새로운 한 문서(Document 클래스)는 한 페이지(Page 클래스) 이상을 포함하고 한 페이지는 다음과 같은 요소를 포함할 수 있다.
    1. 0개 이상 1개 이하의 제목 (TitleElement 클래스)
    2. 0개 이상의 그림 (PictureElement 클래스)
    3. 0개 이상의 표 (TableElement 클래스)
    4. 0개 이상의 글 상자 (ScriptElement 클래스)
    5. 0개 이상의 Wave (WaveElement 클래스)
  • WaveElement의 경우 여러 페이지에 같은 요소가 사용되는 경우, 메모리 절약을 위해 한 개의 객체만 이 모든 페이지에 공통적으로 쓰인다.
  • 표의 각 셀은 글 상자이고 표는 1개 이상의 셀로 구성되어 있다.

Q. Multiplicity를 고려해서 Class Diagram을 그려라.
Answer.

클래스는 속성과 메소드로 구성된다.

클래스 다이어그램(Class Diagram) 구성

시퀀스 다이어그램의 메시지(화살표 위 설명)를 보면 메소드와 속성을 대략적으로 식별할 수 있다!!

Example)

  • User에서 Document로 ‘delete a Page’ 메시지가 있으면 Document 클래스는 delete()라는 메소드가 존재한다.
  • Document에서 Document로 ‘save undo data’ 메시지가 있으면 Document 클래스는 UndoData라는 속성과 saveUndoData()라는 메소드가 존재한다.

(Document Class)
-: private, +: public

Leave a Reply

Your email address will not be published. Required fields are marked *