728x90
반응형
01.클래스다이어그램이란?
- 1. 문제 해결을 위한 도메인 구조를 나타내어 보이지 않는 도메인 안의 개면과 같은 추상적인 개념을 기술하기 위해
- 2.소프트웨어의 설계 혹은 완성된 소프트웨어의 구현 설명을 목적으로 할 수 있음
- 시스템에서 사용되는 객체타입(클래스)을 정의하고 그들 간에 존재하는 정적인 관계를 다양한 방식으로 표현한 다이어그램
- 클래스 다이어그램은 객체지향 SW시스템을 분석하고 설계하는 데 사용되는 핵심적인 모델
- 객체지향 SW시스템은 클래스와 그 관계로 뼈대가 구성되기 때문에
- 이를 정의한 클래스 다이어그램은 곧 시스템의 구현될 모습을 정의한 것임
- 클래스 다이어그램은 분석되거나 설계되는 모든 클래스를 한장의 다이어그램으로 정의한것
- 클래스의 정적인 정의와 관계를 표현
- 객체가 아닌 클래스는 본질적으로 정적
- 시간과 조건이 개입되지 않기 때문임
- 그러나 객체는 그 자체가 동적인 개념을 가짐, 클래스에서 파생된 것이 객체
- 객체는 상태와 행위가 시간과 구체적인 조건에 따라 변화하고, 또한 다른 객체와 동적으로 상호 작용하는 것이기 때문
02.작성목적
- 대표적인 UML의 다이어그램이라고 할 수 있는 목적은 아래와 같음
- 객체지향 SW시스템의 기본 단위인 클래스를 식별하고 그 관계를 정의하는 유용한 방식을 제공
- 객체지향 SW시스템의 기본 단위인 클래스의 정의를 용이하게 함으로써 시스템을 구축하는 본격적인 단계로 인도
- 클래스 간의 정적인 협력관계를 정의함으로써 시스템을 이해하는데 용이하게 함
- 하나의 클래스가 할 수 있는 일은 적음, 한 단위의 임무를 수행하려면 클래스간의 협력은 필수적으로 필요함
- 이러한 클래스간의 정적인 협력관계를 정의함으로써 시스템을 분석하고 이해하는데 도움을 줌
- 클래스의 오퍼레이션과 속성을 상세히 정의함으로써 SW시스템을 설계함
- 클래스의 속성과 오퍼레이션을 상세히 정의하는 일은 객체지향 SW시스템에 있어서의 설계를 의미
- 이러한 설계관점의 작업을 쉽게 수행하는데 도움을 주어, 시스템 구축 과정에 큰 역할을 함
- 논리적인 관점으로 부터 물리적인 관점까지 시종 일관된 형식으로 SW시스템을 분석, 설계하는 방식을 제공
- 기존 방식의 가장 큰 단점인 분석/ 설계 모델간의 차이를 극복하고,
- 동일한 형식과 관점을 제공함으로써 의미의 소실없이 효과적인 시스템 분석, 설계방식을 제공함
03.작성시기
- 다이어그램을 작성하는 시기마다 그 관점이 변함
- 분석단계 -> 개략설계 단계 -> 상세 설계 단계
- 클래스 다이어그램을 작성하려면 사용자의 요구사항이 정의되고, 개발할 SW시스템에 대한 범위가 정의 되어야 함
04.작성시 3가지 관점
- 클래스 다이어그램을 처음부터 상세하게 정의할 수는 없음
- 그래서 상세한 클래스 다이어그램을 얻기 위해 단계적으로 상세화시켜 나가는 방식을 사용
- 아래와 같이 3가지 관점으로 반복적이면서 점증적인 방식으로 작성해 나감
- Conceptual level
- 개발범위에 속해있는 문제영역에 대해 단순한 관계를 도출하는데 중점
- 업무 관점의 class들만 도출하고, 구현에 관련된 시각은 최대한으로 배제
- Specification level
- 구현관점을 살려 모델링을 수행
- 어떻게 코딩할 건지에 대한 관점을 배제
- 클래스의 속성과 오페이션을 될 수 있는 한 상세히 정의하고,
- 구체적인 플랫폼(개발언어의 특성등)특성을 반영하지 않음
- Implementation level
- 언어와 개발플랫폼이 가진 특성 및 제한 사항을 반영
- 정의된 class를 보고 정해진 개발언어로 개발자가 코딩을 하기에 충분한 정보를 모두 표현
05. 클래스 다이어그램의 기본 요소
- 접근제어자 리스트
- + : public
- - : private
- #: protected
- 형식
- 속성
- 접근제어자 이름 : 타입 = 기본값
- Ex) - title : String = ""
- 접근제어자 이름 : 타입 = 기본값
- 메서드
- 접근제어자 이름(파라미터 속성): 리턴값
- Ex) +setTitle(String)
- Ex)+getTitle():String
- 접근제어자 이름(파라미터 속성): 리턴값
- interface와 abstract와 같은 요소들은 <<>>을 이용해서
- <<interface>>, <<abstract>>로 나타낼 수 있음
- 속성
728x90
반응형
'CS Study > Csharp' 카테고리의 다른 글
22.03.09_Nuke적용메뉴얼 (0) | 2022.03.09 |
---|---|
22.03.05_템플릿메소드 (0) | 2022.03.06 |
22.03.02_x64,x86,AnyCpu (0) | 2022.03.02 |
22.03.02_obj와bin (0) | 2022.03.02 |
22.03.02_컴파일타임과런타임의차이 (0) | 2022.03.02 |
댓글