제 5 장 집합연관, 복합연관, 인터페이스, 실체화 (교재: J. Schmuller 저/곽용재 역, 초보자를 위한 UML 객체지향설계, 제3판, 정보문화사, 2006) 2010-2학기 소프트웨어설계
차례 5.1 집합연관 5.2 복합연관 5.3 복합체 구조 다이어그램 5.4 인터페이스와 실체화 5.5 인터페이스와 포트 5.6 요약 2010-2학기 소프트웨어설계
5.1 집합연관 집합연관 (aggregation) 하나의 클래스가 여러 개의 컴포넌트 클래스로 구성되어 있는 경우 예 : 가정용컴퓨터 시스템 CPU 박스, 키보드, 마우스, 모니터, CD-ROM 드라이브, 한 개 이상의 하드 드라이브, 디스크 드라이브, 프린터 그리고 스피커 등으로 구성 각 컴포넌트 클래스가 하나의 전체 클래스에 속해 있는 상황만이 집합연관은 아니다. 예: 가정용 통합 엔터테인먼트 시스템 리모콘 - TV의 컴포넌트, VCR의 컴포넌트 2010-2학기 소프트웨어설계 3
5.1 집합연관 집합연관 (aggregation) 표기법 - 컴포넌트 클래스와 전체 클래스를 실선으로 잇고, 빈 마름모꼴을 전체 클래스 쪽에 붙여서 나타낸다. 예 : 가정용컴퓨터 시스템 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소프트웨어설계
5.1 집합연관 집합연관에 대한 제약(constraints) Or 관계 제약 두 컴포넌트 중 하나만이 전체를 구성하는 데 사용 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소프트웨어설계
5.2 복합연관 복합체(Composite) 강한 집합연관에 의해 만들어진 클래스 각 컴포넌트 클래스는 오직 하나의 전체 클래스에만 속할 수 있다. 복합연관의 표기 집합연관과 동일 검은 마름모꼴만 다르다 예 - 커피테이블 몸체와 다리로 구성 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소프트웨어설계
5.3 복합체 구조 다이어그램 복합체 구조 다이어그램(composite structure diagram) 클래스의 내부 구조를 보여줄 때 이용 UML 2.0에서 도입 예: 셔츠 제작 과정의 모델링 전체 클래스 셔츠(Shirt)는 사각형으로 표현 셔츠를 구성하는 각 컴포넌트(Sleeve, Body, Collar, ButtonSystem)는 전체 클래스의 내부에 표현 2010-2학기 소프트웨어설계
5.3 복합체 구조 다이어그램 복합체 구조 다이어그램(composite structure diagram) 예: 셔츠 제작 과정의 모델링 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소프트웨어설계 8
5.4 인터페이스와 실체화 인터페이스 (interfaces) 실체화(realization) 클래스의 일정한 행동(behavior)을 나타내는 오퍼레이션의 집합 다른 클래스에서 사용될 수 있다. 예 - 세탁기 조절 손잡이 세탁기가 조절손잡이의 오퍼레이션을 세탁기의 오퍼레이션에 전달 실체화(realization) 인터페이스와 클래스의 관계 예: 세탁기 조절손잡이의 행동을 세탁기의 행동이“실체화(realize)”함 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소프트웨어설계
5.4 인터페이스와 실체화 실체화 관계 (realization) 클래스는 인터페이스에 대하여 실체화 관계 표기법 클래스에서 인터페이스로 향하는 점선화살표 클래스의 인터페이스 손잡이 표시 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소프트웨어설계
5.4 인터페이스와 실체화 의존관계: 인터페이스와 사용자와의 교류 사용자는 세탁기 동작을 인터페이스에 의존 UML 2.0 표기법 - 인터페이스 관계를 나타내는 공과 소켓 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소프트웨어설계
5.5 인터페이스와 포트 포트 (ports) 인터페이스와 연결되어 있는 단자 클래스 기호의 가장자리에 작은 사각형 예 : 컴퓨터의 포트 시리얼 포트, 병렬 포트, 1개 이상의 USB 포트 등 컴퓨터를 주변 기기들과 연결 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소프트웨어설계
5.5 인터페이스와 포트 가시성(visibility) 속성과 오퍼레이션에 적용 클래스(혹은 인터페이스)의 속성 값을 읽어내거나, 오퍼레이션을 호출 및 사용할 수 있는 범위 (+)public - 다른 클래스가 사용 가능 (#)protected - 원래 클래스와 상속 받은 클래스만 사용 가능 (-)private - 원래의 클래스만 사용 가능 인터페이스를 실체화하기 위해서는 인터페이스 안에 설정된 오퍼레이션들이 모두 public 가시성을 가지고 있어야 한다. 2010-2학기 소프트웨어설계 13
5.5 인터페이스와 포트 가시성(visibility) 예: Television의 public, private 오퍼레이션 예: Automobile의 public, protected 오퍼레이션 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소프트웨어설계
5.5 인터페이스와 포트 스코프(scope) 인스턴스 스코프(instance scope) 각 인스턴스에 속한 속성과 오퍼레이션들이 각자의 값을 갖는다 (해당 인스턴스에 대해 유일한 속성값과 오퍼레이션 값) 자바의 인스턴스 변수/인스턴스 메소드 클래스 스코프(classifier scope) 해당 클래스에 대해 유일한 속성값과 오퍼레이션 값을 갖는다. 자바의 클래스 변수/클래스 메소드 2010-2학기 소프트웨어설계 15
5.6 요약 집합연관 “부분-전체(part-whole)” 관계를 표현 복합체, 복합연관, 복합체 구조 다이어그램 실체화 클래스와 인터페이스의 연관관계 인터페이스 여러 클래스가 사용할 수 있는 오퍼레이션의 집합 속성을 갖지 않은 클래스, «interface» 표시 포트는 클래스와 주변요소가 연결되는 단자 가시성: public, protected, private 스코프: 인스턴스 스코프, 클래스 스코프 2010-2학기 소프트웨어설계 16