컴포넌트 다이어그램 컴포넌트 정의 컴포넌트 다이어그램의 UML 표기법 컴포넌트와 클래스 컴포넌트 다이어그램의 간단한 예

Slides:



Advertisements
Similar presentations
2008 년 11 월 20 일 실습.  실험제목 ◦ 데이터베이스 커넥션 풀  목표 ◦ 데이터베이스 커넥션 풀의 사용.
Advertisements

컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
UML의 구성 UML 구성 요소 UML 아키텍처 UML 메커니즘.
CHAP 22. 블루투스.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Power Java 제3장 이클립스 사용하기.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
4강. Servlet 맛보기 Servlet 문서 작성 하기 web.xml에 서블릿 맵핑 어노테이션을 이용한 서블릿 맵핑
최윤정 Java 프로그래밍 클래스 상속 최윤정
Entity Relationship Diagram
제 2 장 객체지향의 이해.
제 4 장 관계 학기 소프트웨어설계.
Chapter 02 : Class 다이아그램. chapter 02 : Class 다이아그램.
Ubiquitous Computing Practice - Part I (Installation) -
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Visual Basic .NET 처음 사용하기.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Error Detection and Correction
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
Power Java 제14장 배치 관리자.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
10장. 예외처리.
11장. 1차원 배열.
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
2장 JSP 개발 환경 설정 이장에서 배울 내용 : JSP 페이지를 작성하기 위한 개발환경을 설정하고, 웹 어플리케이션 개발을 위해 반드시 이해하여야 할 웹 어플리케이션 폴더 구조에 대해 학습한다. 또한 요청된 JSP 페이지가 어떠한 처리과정을 거쳐 응답이 이루어지는가에.
CHAP 12. 리소스와 보안.
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
Method & library.
자바 5.0 프로그래밍.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
MVC 모델을 이용한 웹 애플리케이션 작성 웹 애플리케이션 개발 순서를 알아본다 웹 애플리케이션의 실행 순서를 이해한다.
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
제 5 장 집합연관, 복합연관, 인터페이스, 실체화 (교재: J. Schmuller 저/곽용재 역, 초보자를 위한 UML 객체지향설계, 제3판, 정보문화사, 2006) 학기 소프트웨어설계.
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
웹디자인
20장. 객체지향 프로그래밍 01_ 객체지향 프로그래밍의 시작.
Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
자바 5.0 프로그래밍.
LabVIEW WiznTec 주임 박명대 1.
Mariadb JDBC PROGRAMMING2
CHAP 21. 전화, SMS, 주소록.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
객체기반 SW설계 팀활동지 4.
배치 다이어그램 배치 다이어그램의 UML 표기법 결합된 다이어그램의 모델링 예 배치 다이어그램의 간단한 예
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
발표자 : 이지연 Programming Systems Lab.
유스케이스 다이어그램 유스케이스 모델링과 UML 표기법 유스케이스와 유스케이스 관계 액터 사이의 일반화관계
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
Component Diagram 1.
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
.Net FrameWork for Web2.0 한석수
Power Java 제14장 배치 관리자.
CHAP 15. 데이터 스토리지.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
7 생성자 함수.
6 객체.
JAVA 프로그래밍 16장 JNLP.
Presentation transcript:

컴포넌트 다이어그램 컴포넌트 정의 컴포넌트 다이어그램의 UML 표기법 컴포넌트와 클래스 컴포넌트 다이어그램의 간단한 예 컴포넌트 다이어그램 예제

컴포넌트의 개념을 이해한다. 컴포넌트간 관계를 학습한다. 예제를 통한 컴포넌트 다이어그램을 실습한다.

컴포넌트 객체지향 원리에서 컴포넌트란 컴포넌트의 대표적 예 시스템을 구성하는 임의의 물리적인 요소를 의미 물리적인 요소란 가상의 모델을 실제로 구현하여 나타내는 것을 의미 객체지향의 원리에 따라 업무 기능과 관련 데이터를 하나의 단위로 처리 UML 관점과 CBD(Component Based Development) 관점에서의 컴포넌트 의미와는 조금 다르다. 객체지향 원리에서 컴포넌트란 인터페이스에 의해서 기능이 정의된, 독립적으로 개발·배포·조립이 가능한 시스템의 구성 단위로 정의 컴포넌트의 대표적 예 J2EE 플랫폼의 JAR 파일([ java archiver ] 닷넷 플랫폼의 DLL 파일([ dynamic linking library ] JAR 파일 :클래스 파일의 효율적인 배포를 위해 여러 클래스 파일들을 하나로 묶어 단일의 파일로 만드는 포멧. DLL 파일 :컴퓨터의 기동과 함께 핵심부(kernel)가 주기억 장치에 올려져 컴퓨터를 작동시키고 운영을 관리하여 응용 프로그램이 효율적으로 실행될 수 있는 환경을 제공하는 기본 소프트웨어

컴포넌트의 대표적 예 J2EE 플랫폼의 JAR 파일 닷넷 플랫폼의 DLL 파일 [표 9-1] 컴포넌트 다이어그램의 구성 요소 [그림 9-1] 컴포넌트 다이어그램에 사용하는 심벌

[그림 9-2] UML 관점 음악 플레이어를 구성하는 클래스 파일(play.class)와 서블릿 소스(play.java), music_player.exe 등은 컴포넌트에 해당 CBD 관점 인터페이스와 연결된 music_player.exe만이 컴포넌트에 해당 클래스 파일, 자바 소스 등은 컴포넌트에 해당하지 않음 [그림 9-2] 음악 플레이어를 구성하는 파일의 예

컴포넌트 컴포넌트 다이어그램 시스템을 구성하는 물리적인 컴포넌트와 그들 사이의 의존관계를 나타내는 다이어그램 컴포넌트, 인터페이스, 의존관계로 표현 컴포넌트 컴포넌트는 탭이 달린 직사각형으로 표현 모든 컴포넌트는 반드시 이름을 가지고 있어야 한다. 컴포넌트가 패키지에 포함되어 있다면 컴포넌트의 이름 앞에 패키지 이름을 붙일 수 있으며, 클래스처럼 컴포넌트에 꼬리표 값을 달아주거나 컴포넌트 내부의 오퍼레이션을 보여줄 수도 있다. [그림 9-3] 컴포넌트의 표현 방법

[그림 9-5] 컴포넌트와 인터페이스의 실체화와 컴포넌트 인터페이스는 2가지 방식으로 표현 컴포넌트와 인터페이스, 그리고 이를 연결하는 화살표 모양의 점선(의존관계)으로 나타낼 수 있다. ( [그림 9-4] (a)) [그림 9-4] (b) 인터페이스를 실체화한다는 의미 실제로 동작하는 컴포넌트에 인터페이스를 적용한다는 것 컴포넌트 다이어그램은 실체화 관계뿐만 아니라 의존관계도 표현 의존관계는 컴포넌트와 필수의 인터페이스 사이에 설정 [그림 9-5] 컴포넌트와 인터페이스의 실체화와 의존관계 표현 방법 [그림 9-4] 인터페이스의 표현 방법

의존관계 컴포넌트 사이의 의존관계는 한 컴포넌트에 변경이 발생한 경우, 그 변경의 범위를 추적해서 파악하고 싶을 때 매우 유용 한 컴포넌트에 변경이 발생한 경우, 그 변경의 범위를 추적해서 파악하고 싶을 때 매우 유용 → 컴포넌트 B에 어떤 변경이 발생했을 때 그 변경으로 인해 컴포넌트 A도 영향을 받음 [그림 9-6] 컴포넌트간의 의존관계 play.class에서 play.java로의 의존관계는 클래스 파일이 play.java의 소스 파일을 컴파일 함으로써 얻어지는 것 play.java 컴포넌트에서 music_player 인터페이스로의 의존관계는 music_player.exe 컴포넌트가 인터페이스를 통하여 이용되는 것을 의미 → Play.java 컴포넌트에서 music_player 인터페이스 의존관계는 music_player.exe 컴포넌트가 인터페이스를 통하여 이용되는 것을 의미함. [그림 9-7] 컴포넌트간의 의존관계 예

컴포넌트와 클래스의 차이점 컴포넌트와 클래스의 공통점 둘 다 이름이 있고, 정해진 인터페이스를 실현할 수 있으며, 의존성과 일반화 및 연관관계에 참여할 수 있고 중첩이 가능 인스턴스를 가질 수 있으며, 교류에 참여할 수 있다 컴포넌트와 클래스의 차이점 클래스는 논리적으로 추상화한 것이며, 컴포넌트는 물리적인 것을 나타냄. 컴포넌트는 노드(또는 프로세서)에 존재할 수 있지만 클래스는 그렇지 않다. 모델링을 하는 것이 노드에 직접 존재한다면 컴포넌트를 사용하고, 그렇지 않으면 클래스 사용

컴포넌트와 클래스의 차이점 ② 컴포넌트는 서로 다른 논리적 요소들을 물리적으로 패키지화한 것 컴포넌트는 클래스나 통신과 같은 서로 다른 논리 요소들을 물리적으로 구현한 것 ( [그림 9-8] ) ③ 클래스는 속성과 오퍼레이션을 직접 가질 수 있지만, 컴포넌트는 자신의 인터페이스를 통해서만 접근할 수 있는 오퍼레이션들만 갖는다. 컴포넌트와 클래스는 둘다 인터페이스를 실현할 수 있으나, 컴포넌트가 갖는 서비스들은 항상 자신의 인터페이스를 통해서만 접근이 가능 [그림 9-8] 컴포넌트와 클래스의 관계

[그림 9-9] <<executable>> 스테레오타입을 사용하여 실행 컴포넌트임을 나타낸다. item_search.exe 컴포넌트 부품을 검색하는 컴포넌트 [그림 9-10] <<table>> 스테레오타입을 사용하여 실행 코드가 참조하는 데이터베이스 컴포넌트임을 나타낸다. item_database.tbl 컴포넌트는 데이터베이스를 관리하기 위한 컴포넌트 [그림 9-9] item_search.exe 컴포넌트 [그림 9-10] item_database.tbl 컴포넌트

item_database.tbl 컴포넌트가 부품의 종류를 확인하기 위해 item.dll 컴포넌트를 추가한 것 [그림 9-11] item_database.tbl 컴포넌트가 부품의 종류를 확인하기 위해 item.dll 컴포넌트를 추가한 것 item.dll 컴포넌트는 <<library>> 스테레오타입을 사용하여 실행 중에 실행 코드가 참조하는 라이브러리의 집합임을 나타낸다. “item_database.tbl 컴포넌트는 item.dll 컴포넌트를 이용한다”고 해석 [그림 9-11] item.dll 컴포넌트

[그림 9-12] item_search.exe 컴포넌트가 item_database.tbl 컴포넌트에 접근하기 위해 item_database.tbl 컴포넌트에 Interface_data 인터페이스를 추가 item_search.exe 컴포넌트와 Interface_data 인터페이스 사이에 item_search.exe컴포넌트에서 Interface_data 인터페이스 쪽으로 화살표를 추가 “item_search.exe 컴포넌트는 반드시 Interface_data 인터페이스를 거쳐item_database.tbl 컴포넌트를 이용한다”고 해석 [그림 9-12] Interface_data 인터페이스의 추가

사용자 인터페이스를 처리하는 애플리케이션인 user_interface.exe 컴포넌트를 추가한 그림 [그림 9-13] 사용자 인터페이스를 처리하는 애플리케이션인 user_interface.exe 컴포넌트를 추가한 그림 사용자 인터페이스에 접근하기 위해 Interface_search 인터페이스를 제공 [그림 9-13] 사용자 인터페이스와 공유 인터페이스

클래스를 컴포넌트로 매핑 클래스로부터 컴포넌트를 구성할 때 클래스들 중에 서로 연관되어 분류가 가능한 것들은 컴포넌트에 소속될 수 있다. 컴포넌트에 포함되는 클래스들의 인터페이스는 컴포넌트의 인터페이스가 된다. [그림 9-14] item_database.tbl 데이터베이스 테이블 컴포넌트를 정의한 것 입고 클래스, 출고 클래스, 현황관리 클래스로 구성 [그림 9-14] 클래스를 기반으로 생성된 컴포넌트

[그림 9-15] 애플리케이션에서 중요한 역할을 하는 것은 클래스의 전체 또는 일부를 구현하는 것 <<executable>> 컴포넌트를 생성하기 위해서는 여러 클래스를 묶어서 하나의 실행 파일로 컴파일 함. [그림 9-15] 클래스로부터 생성한 item_search.exe 컴포넌트

[그림 9-16] 실행 파일, 라이브러리, 테이블, 문서처럼 단일 클래스로 구성되는 컴포넌트도 있다. present_state.exe 컴포넌트는 여러 개의 클래스를 하나의 컴포넌트로 컴파일하지 않고 각각의 클래스를 개별적으로 컴파일한 라이브러리 컴포넌트를 참조 사용자 인터페이스는 하나의 DLL 컴포넌트로 구성 [그림 9-16] 하나의 클래스로 구성된 컴포넌트

축구 경기 서버와 데이터베이스 축구 경기는 선수(Player)와 심판(Referee)으로 구성 각 선수는 고유의 포지션(position)을 가져 경기에 임한다. 서버와 데이터베이스 서버는 데이터베이스를 바탕으로 되어 있으며, 관리자를 통해 서버와 데이터베이스를 관리 [그림 9-17] 축구 경기 컴포넌트 다이어그램 [그림 9-18] 서버와 데이터베이스 컴포넌트 다이어그램

TV 채널 선택 상점 관리 TV는 다양한 채널이 있으며 리모콘을 통해 채널신호를 입력 고객이 상점에 입장하면 상품을 선택하고 선택한 상품을 주문 주문한 상품은 주문명을 확인한 후 그 결과를 보여준다. [그림 9-19] TV 채널 선택 컴포넌트 다이어그램 [그림 9-20] 상점관리 컴포넌트 다이어그램