개요

 

UML@Classroom[1]의 Chater 4의 9절에 있는 Information System of a University의 예를 본다. 여기서는 요구 사항에서 Class Diagram을 추출하는것을 살펴 볼 수가 있다. 실제 예에서 볼 수 있는 몇가지 테크닉도 포함하고 있으므로, 참고할 만하다.

 

여기서 사용하는 절차는 요구 사항에서 클래스(Class)를 추출하고, 각 클래스의 속성을 추출한다. 그리고, 마지막으로 클래스 간의 관계를 설정하며 Class Diagram을 완성한다. 이를 한번에 완성하는 것으로 여기서는 설명하고 있지만, 잘 보면 한번에 나온다기 보다는 몇번의 반복을 통해서 완성 되는것이 맞아 보인다. 우선은 여기서는 최종 결과물만을 가지고 설명한다.

요구 사항

책에 포함되어 있는 요구사항까지 번역하는 것은 효용성이 떨어진다. 물론, 한글로 되어 있는 요구사항에서 이를 추출하는것은 또 다른 이야기가 될 수 있다. 하지만, 책의내용을 이해하기 위해서 번역하는 것도 이해도를 떨어 뜨릴 수 있다. 그러므로, 여기서는 우선 요구 사항을 그대로 두고, 살펴 보도록 하자

.

다음이 책에 있는 영문 요구 사항이다.

  •  A university consists of multiple faculties which are composed of various institutes. Each faculty and each institute has a name. An address is known for each institute.
  •  Each faculty is led by a dean, who is an employee of the university. 
  •  The total number of employees is known. Employees have a social security number, a name, and an e-mail address. There is a distinction between research and administrative personnel. 
  •  Research associates are assigned to at least one institute. The field of study of each research associate is known. Furthermore, research associates can be involved in projects for a certain number of hours, and the name, starting date, and end date of the projects are known. Some research associates teach courses. They are called lecturers.
  •  Courses have a unique number (ID), a name, and a weekly duration in hours. 

 

클래스 추출

첫째, 우리는 클래스를 식별 시스템 대학에서 발생하는 요소를 식별해야합니다. 이것들은 아래 그림과 같다. 요구 사항 중에서 명사로 되어 있는 것들을 추출하면 된다.

  •  A university consists of multiple faculties which are composed of various institutes. Each faculty and each institute has a name. An address is known for each institute.
  •  Each faculty is led by a dean, who is an employee of the university. 
  •  The total number of employees is known. Employees have a social security number, a name, and an e-mail address. There is a distinction between research and administrative personnel. 
  •  Research associates are assigned to at least one institute. The field of study of each research associate is known. Furthermore, research associates can be involved in projects for a certain number of hours, and the name, starting date, and end date of the projects are known. Some research associates teach courses. They are called lecturers.
  •  Courses have a unique number (ID), a name, and a weekly duration in hours. 

 
아래 결과에서 보면, 대학(University)은 별도의 Class가 아니다. 이는 잊어 버린 것이 아니라, 의도적으로 포함시키지 않은 것이다. 책에서는 대학을 Class Diagram으로 설명하고 있다. 그래서, 모델의 인스턴스에는 대학 내에서 발생하는 객체 (예 : Vienna University of Technology)에 포함된다고 볼 수 있으므로 제외한다고 보면 된다.

 

Dean (학과장)의 경우도 Class 추출에서는 자세한 설명이 없지만, 의도적으로 빼 놓고진행한 것으로 보인다. 이는 역할(Role)의 특성이 강한 것으로 보고있다. 즉, Faculty의 속성으로 볼 수 있지만, 결국에는 Class의 관계들을 설명하면서 추가한다.

 

인식된 Class들

속성 추출 (Identifing Attributes)

이제 속성을 사용하여 클래스를보다 자세히 설명 할 수 있다. 클래스의 속성은 아래 그림에 나타나있다.각 속성은 데이터 유형(Data Type)을 가지고 있다. 아래 요구 사항에 서 보이듯이 추출된 클래스의 속성도 클래스의 특징을 나타내는 명사로 추출 될 수있다.

 

  •  A university consists of multiple faculties which are composed of various institutes. Each faculty and each institute has a nameAn address is known for each institute.
  •  Each faculty is led by a dean, who is an employee of the university. 
  •  The total number of employees is known. Employees have a social security numbera name, and an e-mail address. There is a distinction between research and administrative personnel. 
  •  Research associates are assigned to at least one institute. The field of study of each research associate is known. Furthermore, research associates can be involved in projects for a certain number of hours, and the namestarting date, and end date of the projects are known. Some research associates teach courses. They are called lecturers.
  •  Courses have a unique number (ID)a name, and a weekly duration in hours

 

또한 모든 속성의 공개 여부를 공개(Public)로 설정 했으므로 이 단계에서는 외부에서 볼 수있는 속성과 그렇지 않은 속성을 생각할 필요가 없다. Employee 클래스의 속성 counter는 해당 값이 인스턴스에 속하지 않으므로 클래스 속성으로 정의된다. 이 속성은 Employee 클래스의 인스턴스가 생성 될 때 증가힌다.

연구원(Research Employee)의 프로젝트 참여시간도 속성이 될 수 있지만, 여기서는 포함하지 않고 나중에 관계 연계 시킬 때 최종 처리하기는 한다.

 

 

속성(Attributes) 추출

 

클래스 간의 관계 인지 (Identifying the relationship between classes)

클래스간의 관계를 추출하는 방법을 책[1]에서는 2가지로 설명하고 있다.

  • 일반화(Generalizations)
  • Associations and Aggregations

 

Generalization의 관점

결국, Administrative Employee와 Research Associate가 Employee의 더 상세한 구체화 이기 때문에 추상 클래스로 만들수 있다. 그리고, 교수(Lecturer)도 Research Associate의 일종이므로 Generalize된 것이라 볼 수 있다. 특히, 아래 요구사항 중 줄 친 항목들이 이 관계를 설명한다고 볼 수 있다.

 

 

  •  A university consists of multiple faculties which are composed of various institutes. Each faculty and each institute has a name. An address is known for each institute.
  •  Each faculty is led by a dean, who is an employee of the university. 
  •  The total number of employees is known. Employees have a social security number, a name, and an e-mail address. There is a distinction between research and administrative personnel
  •  Research associates are assigned to at least one institute. The field of study of each research associate is known. Furthermore, research associates can be involved in projects for a certain number of hours, and the name, starting date, and end date of the projects are known. Some research associates teach courses. They are called lecturers.
  •  Courses have a unique number (ID), a name, and a weekly duration in hours. 

 

 

Generalization

Associations and Aggregations

이 단계가 마지막 단계로 볼 수있고, 완성된 클래스 다이어그램이 아래와 같다. 줄 친 부분들이 이러한 관계들을 설명한다고 볼 수 있다.

 

  •  A university consists of multiple faculties which are composed of various institutes. Each faculty and each institute has a name. An address is known for each institute.
  •  Each faculty is led by a dean, who is an employee of the university. 
  •  The total number of employees is known. Employees have a social security number, a name, and an e-mail address. There is a distinction between research and administrative personnel. 
  •  Research associates are assigned to at least one institute. The field of study of each research associate is known. Furthermore, research associates can be involved in projects for a certain number of hours, and the name, starting date, and end date of the projects are known. Some research associates teach courses. They are called lecturers.
  •  Courses have a unique number (ID), a name, and a weekly duration in hours. 

 

 

완성된 클래스 다이어그램

 

결론

책에서의 결과물도 좋은 결과물이기는 하지만, 다른 견해가 있을 수 있다는 단서를 달아 놓고 있다. 즉, 정답은 없을 수 있다는 것이다.

 

참고 문헌

[1] UML@Classroon: An Introduction to Oject-Oriented Modeling 2015 Springer

 

 

+ Recent posts