그림 UML구성요소
◎UML(Unified Modeling Language)의 정의와 특징
UML이란 복잡한 소프트웨어 시스템 개발 모델링에 필요한 구성요소를 옆의 그림1과 같이 제시하고 이를 이용한 추상화 방법과 산출물들을 프로젝트 참여자들이 쉽게 이해할 수 있도록 소프트웨어 개발 방법론(표현 및 기법)들이 통합된 객체지향개발 표준통합 모델링 언어이다¹. UML은 모델링 언어일 뿐 메쏘드(또는 방법론)는 아니다. 메쏘드는 프로세스에 대한 정의와 각각의 업무들에 대한 지침과, 업무들 간의 순서들을 명시해야 하는 반면, 모델링 언어는 표기법(또는 다이어그램)들만을 제시하는 것이다.
따라서 UML은 소프트웨어 개발에 사용하기 위한 8개의 다이어그램들을 정의²하고 있으며, 시스템의 정적인 면을 나타내는 한 개의 다이어그램과 시스템의 동적인 면을 나타내는 여섯 개의 다이어그램, 그리고 사용자와의 상호작용관계를 나타내는 한 개의 다이어그램으로 구분된다.
그림 2 UML 다이어그램들간의 관계
시스템의 정적인 면을 나타내는 다이어그램으로는 클래스 다이어그램(class diagram)이 있으며, 동적인 면을 나타내는 다이어그램은 협력 다이어그램(collaboration diagram), 차례 다이어그램(sequence diagram), 상태 다이어그램(state chart diagram), 활동 다이어그램(activity diagram), 배치 다이어그램(deployment diagram), 협력 다이어그램(component diagram)이 있고, 사용자와의 상호작용관계를 나타낸 다이어그램으로는 유스케이스 다이어그램(usecase diagram)이 있다³. 이들 다이어그램 사이의 관계는 위의 그림2과 같다.
UML은 위의 그림2와 그림3과 같이 그래픽 표기법을 통해 정보를 전달하므로 객체 지향적인 언어를 사용하여 소프트웨어를 개발할 때 구체적이고 효율적으로 개발할 수…(생략)
|
호작용을 나타내는 도표이다. 따라서 시퀀스 다이어그램에는 시간의 흐름과 일의 과정을 알 수 있도록 표시하는 장치로서 라이프라인을 사용한다. 라이프 라인의 위쪽이 과거를 나타내고, 시간의 경과에 따라 밑으로 내려가며, 객체의 인스턴스가 존재하는 동안에만 존재한다. 그리고 화살표가 좌로 향할 때는 메소드의 호출을 의미하고, 반대일 때는 메소드의 반환을 의미한다.?
◎Relationship - 클래스는 단 하나의 클래스만 존재하는 경우보다 여러 개의 클래스가 존재하며 그들 사이에 관계가 형성되는 일이 많다. 이러한 클래스들 사이의 연관성을 관계(relationship)라 하고, 여기에서 연관(association), 상속(generalization), 집합(aggregation), 의존(dependence), 합성(composition) 등 다양한 세부 표기법으로 분류 된다?. 이들 사이의 관계는 다음 그림과 같이 표현할 수 있다.
그림 관계 구조도
◇연관 관계(association)
클래스 사이의 연관은 다른 클래스의 객체에 대한 참조를 의미하는데, 클래스 간의 연결선을 그리는 것으로 다음과 같이 표기한다.?
그림 클래스 사이의 연관
연관을 조금 더 자세히 설명하면, 두 클래스 자체의 관계라고 하기 보다는 그 클래스들의 인스턴스간의 관계라고 할 수 있다. 이 관계에서는 한쪽 클래스의 인스턴스가 반드시 자신이 참조하는 클래스에 대하여 알고 있어야만 제대로 작동할 수 있기 때문에 ‘연관’이라는 용어를 사용하게 된 것이다.
그런데 연관관계에서는 서로 참조하는 관계가 형성되므로 클래스의 흐름상 제약조건이 따를 때가 많다. 이처럼 제약 상황이 있는 경우 아래 그림처럼 제약조건이 붙는 클래스 위에 중괄호를 사용해서 표시해둔다¹?.
그림 연관에 대한 제약조건
◇집합 관계(aggregation)
집합 관계란 연관 관계의 일종으로 클래스와 클래스의 관계가 부분