패키지 다이어그램 패키지 다이어그램의 UML 표기법 다른 다이어그램을 포함하는 패키지 다이어그램 패키지 다이어그램의 예 패키지 다이어그램 실습
패키지 다이어그램의 개념을 이해한다. 중첩된 패키지를 이해한다. 예제와 실습을 통한 패키지 다이어그램을 학습한다.
패키지 패키지 다이어그램은 패키지와 관계라는 2가지 요소로 표현 요소들을 그룹으로 조직하기 위한 범용 메커니즘 탭이 달린 폴더로 표현 패키지 표기법 아이콘 안에 패키지 이름만을 표기한 단순표기법과 패키지에 포함된 내부 패키지나 클래스까지 표현한 확장표기법 [그림 11-2] (a)는 패키지와 함께 그 속에 있는 클래스 표현 (b)는 패키지 안에 있는 클래스를 이름만 나타내고, 이름 앞에는 가시성(Visibility) 표시 (c), (d)는 패키지 안에 패키지가 있을 경우 (c)는 패키지의 경로를 표현 (d)는 포함관계를 직접 다이어그램에 표현 (a) [그림 11-1] 패키지의 단순표기법 (a) (b) (c ) (d) [그림 11-2] 패키지의 확장표기법
패키지의 표준 스테레오타입 <<facade>> : 다른 패키지에 뷰를 제공해주는 패키지 → 단면 <<framework>> : 주로 패턴으로 구성된 패키지 → 주인(빼대) <<stub>> : 다른 패키지의 공용 내용물에 대한 대리자 역할을 수행하는 패키지 → 대리자 <<subsystem>> : 전체 시스템의 독립된 일부분을 나타내는 패키지 <<system>> : 전체 시스템을 나타내는 패키지
관계 패키지 사이에 있을 수 있는 관계 일반화 관계 의존관계 패키지들의 일반화는 클래스들 사이의 일반화와 유사 일반화 관계, 의존관계 일반화 관계 패키지들간의 상속을 나타내고, 의존관계 수입(import)과 접근(access) 관계로 한쪽이 수출한 것을 다른 한쪽의 패키지 요소가 수입하는 데 사용 패키지들의 일반화는 클래스들 사이의 일반화와 유사 [그림 11-3] 패키지간의 의존관계
의존관계 어떤 패키지에서 다른 패키지에 있는 최소한 하나의 클래스를 이용해야 하는 것 [그림 11-3] 접수에서 매입까지 점선으로 그어진 의존성 화살표를 보여주고 있다. 주문 패키지에 있는 상품 클래스(Ordering::Item)는 상품을 구매하기 위해서 가격패키지에 있는 계산주문 클래스(Pricing::Calcrater)의 상세 내용을 얻을 필요가 있다는 것을 의미 [그림 11-3] 패키지간의 의존관계
의존관계 [그림11-4] 점선 양쪽 끝에 화살표를 표시하여 양방향 의존관계를 나타내는 것도 가능 운송 패키지는 주문처리 서브 시스템에 있는 주문 수정 주문처리는 주문에 대한 물품을 포함하고 있는 출고상태 확인(두 패키지가 서로 모두 사용) [그림 11-4] 패키지간의 양방향 의존관계
[그림 11-5] 패키지 의존성은 의존성의 성질을 나타내기 위해 스테레오타입을 붙이기도 한다. UML에서는 <<import>>와 <<access>> 스테레오타입 정의 [그림 11-5] 스테레오타입 <<import>>는 원천 패키지의 이름을 나타내지 않고 클래스에 대한 내부 참조(패키지 내에서의 참조)를 허용함으로써, 실행 시간 동안 접수 패키지가 매입주문클래스를 자신에게 추가한다는 의미 [그림 11-5] 의존관계의 <<import>> 스테레오타입
[그림 11-6] <<access>> 스테레오타입의 표현은 운송 서브 시스템이 접수 서브 시스템과 통신하길 원하지만, 실제로 실행 시간 동안 접수에서 운송으로 클래스를 가져오지는 않는다. 실행 시간 동안 접수 서브 시스템의 인터페이스를 호출하는 객체를 운송 서브 시스템에서 볼 수 있다고 추측 [그림 11-6] 의존관계의 <<import>> 스테레오타입
중첩된 패키지 패키지는 패키지를 포함할 수 있다. 패키지 내부 요소를 참조하기 위해서는 ‘OS::Linux’처럼‘패키지 이름::패키지 요소’로 표기 [그림 11-7] 중첩된 패키지표현
클래스 다이어그램을 포함하는 패키지 [그림 11-8] 운송 서브시스템의 기능을 지원하며 클래스 다이어그램을 가지고 있는 운송패키지 개념적으로 클래스 다이어그램은 [그림 11-9]에서 보듯이 패키지 내에 존재 그러나 툴은 [그림 11-8]와 같은 방법으로 표현하지 않는다. 실제로 모델링 툴에서 이것을 표현하는 일반적인 방법은 하나의 패키지를 만들고 새로운 윈도우나 캔버스에 다이어그램을 그리는 것
클래스 다이어그램을 포함하는 패키지 [그림 11-8]는 수입 관계에 있는 예를 보여준다. Speaker와 Keyboard 클래스는 ‘패키지::요소’표기법을 사용 이 표기법은 2개의 클래스가 지정된 패키지로부터 온다는 것을 말한다. [그림 11-8] 클래스 다이어그램을 포함하는 패키지
패키지 합병하기 합병관계는 합병하는 패키지(Source Package)와 합병되는 패키지(Target Package) 사이에 이루어지는 의존관계의 일종 합병의 결과로 원래의 패키지(Source Package)가 변형 [그림 11-10] 인터넷 서점과 인터넷 의류 패키지가 합병되는 패키지 쇼핑몰이 합병하는 패키지 [그림 11-9] 패키지의 병합
[그림 11-11] 합병된 쇼핑몰 합병되는 세 패키지의 모든 클래스가 포함 경로명으로 표기된 패키지의 이름 이름에 의하면 장바구니와 좌석예약의 상속관계가 합병되는 패키지에서 비롯됨을 알 수 있다. 결제의 상속관계는 합병에서 매우 중요한 부분이다. 패키지들이 합병될 때 서로 같은 이름의 클래스를 가지고 있었다면, 변형된 패키지(Source Package)의 그 클래스는 같은 이름의 클래스들이 가지고 있던 모든 속성과 오퍼레이션을 갖는다. 장바구니 [그림 11-10] 패키지의 병합 후 나타난 패키지의 변형
▶ 쇼핑몰의 결제 패키지는 각각 합병되는 패키지의 결재로부터 상속 받았다. ▶ 그 결과 쇼핑몰::결제는 카드와 계좌이체 중 하나를 이용할 수 있음을 나타냄
좌석예약 시스템 좌석예약 시스템은 5개의 서브 시스템으로 구성됨. 좌석예약 시스템은 5개의 서브 시스템으로 구성됨. 주문 서브 시스템 가격 서브 시스템 예약선택 서브 시스템 카드서비스 서브 시스템 좌석DB 서브 시스템 주문 서브 시스템을 표현하기 위해 패키지를 추가하고, 스테레오타입 <subsystem>> 추가 예약선택과 가격 서브 시스템을 추가로 작성 [그림 11-11] 주문 패키지 [그림 11-12] 주문, 예약선택, 가격 패키지
주문 패키지는 예약선택 패키지의 도움이 필요하다는 것을 나타내기 위해 주문과 예약선택 사이에 의존성을 만든다. 주문 패키지는 예약선택 패키지에 있는 클래스를 참조한다는 것을 나타내기 위해 주문과 예약선택 사이에 의존성 스테레오타입 <<import>>를 추가한다. [그림 11-13] 주문 , 예약선택,가격 패키지 작성 [그림 11-14] 의존성 스테레오타입 <<import>> 추가
3, 4번과 동일한 방법으로 주문 패키지에서 가격 패키지로 의존관계를 표시하고<<import>>를 추가한다. 카드 서비스 패키지와 좌석DB를 추가하고, 서브 시스템으로 인식될 수 있도록<<subsystem>> 스테레오타입을 둔다. 주문 패키지와 카드 서비스 패키지 간에 의존관계 및 <<import>> 의존성 스테레오타입을 사용하여 표현 [그림 11-15] 의존성 스테레오타입 <<import>> 추가 [그림 11-16] 주문 패키지와 카 서비스 패키지 사이에 스테레오타입 <<import>> 추가
<<access>> 의존성 스테레오타입을 사용하여 예약선택 패키지와 좌석DB로 의존성을 모델링 [그림 11-17] 예약선택 패키지와 좌석DB 패키지 간의 <<access>> 의존관계
서적관리 저자가 출판사에 완성된 원고를 보내면 해당 출판사는 원고를 접수 편집 작업을 거친 후 책을 발간 발간된 책은 인터넷과 서점에서 고객이 구매 [그림 11-18] 서적관리 패키지 다이어그램
식당관리 식당을 운영하는 종업원이 관리 식당을 이용하는 고객은 종업원을 통해 메뉴를 주문 주문된 메뉴는 요리사를 통해 요리 고객은 식당에 마련된 테이블에서 식사 [그림 11-19] 식당관리 패키지 다이어그램
물류유통과정 도매점에서 출하한 물품을 센터에서 입하 관리자(Admin)를 통해 물품을 관리하고 소매점에 발주 소매점에서는 물품을 입하하고 판매 [그림 11-20] 물류유통 과정 패키지 다이어그램
프로젝트 관리 서비스 클라이언트를 통해 작품을 입력·수정 PAS_System 내에 있는 데이터베이스에서 데이터 관리 [그림 11-21] 프로젝트 관리 서비스 패키지 다이어그램
방송 무선 네트워크 통신망 무선기를 통해 파트 별 책임자에게 무선으로 통신 무선기를 통해 전달되는 데이터는 무선 네트워크를 통해 각 파트 별 관리자에게 전달 해당 책임자가 데이터를 바탕으로 일을 진행 [그림 11-22] 방송 무선 네트워크 통신망 패키지 다이어그램