C++ 수업 ReportUML이란?목차1. UML이란?2. 역사3. UML 모델 소개4. UML의 사용의 예5. 참고 자료1. UML이란?1.1 UML통합 모델링 언어(UML, 영어: Unified Modeling Language)는 소프트웨어 공학에서 사용되는 표준화된 범용 모델링 언어이다. 이 표준은 UML을 고안한 객체 관리 그룹 관리하고 있다.UML은 소프트웨어 집약 시스템의 시각적 모델을 만들기 위한 도안 표기법을 포함한다.통합 모델링 언어는 객체 지향 소프트웨어 집약 시스템을 개발할 때 산출물을 명세화, 시각화, 문서화할 때 사용한다.[1] UML은 아래와 같은 사항을 포함하여 시스템의 구조적 청사진을 시각화 하는 표준안을 제공한다:1.2. MVC, MFC, UML과의 관계(1) MVC(model-view-controller)패턴프로그램을 데이터를 관리하고, 데이터를 보여주고, 프로그램의 흐름을 제어하는 구조. C++의 MFC에서 Document-view-architecture)와 비슷하다(2) C ++의 MFCMFC는 Microsoft foundation class의 약자입니다. API가 C 기반의 함수들의 집합이라면. MFC는 C++ 기반의 클래스 라이브러리, 즉 클래스들의 집합입니다.Document-view-architecture를 통해 UML 표현이 가능하다2. 역사이제 UML에 대한 이해를 하기에 앞서 간략하게 UML의 역사를 되돌아 보도록 하겠습니다.2.1 UML 1.x 이전. Grady Booch, James Rumbaugh와 Ivar Jacobson 세 사람은 80년대부터 각자의 객체지향 방법론을 연구합니다. 1994년 Booch가 세운 Rational사에 Rumbaugh가 합류하고, 일년 후 Jacobson이 합류하면서 이들의 연구는 하나로 결집되어 UML 드레프트 버전을 만들어냅니다. 이것은 소프트웨어업계에 큰 반향을 일으켜 Microsoft, Oracle, HP, DEC, TI 등 유수의 멤버로 결성된 UML 컨소시엄을 발족하게 0을 만들어 내고 이를 OMG(Object Management Group)에 제출합니다. 그 해 말에 OMG는 이를 수정한 UML 1.1을 표준 모델링 언어로 채택하기에 이르죠. 현재 1.3 스펙에 이어 1.4 버전까지 논의되고 있습니다.2.3 UML 2.02003년 UML 컨소시엄은 UML 버전 2.0 발표, 13개의 다이어그램을 규정하였다3. UML 모델 소개3.1. 모델링 구성요소행위자 (UML)비즈니스 프로세스(논리적) 부품 (UML)프로그래밍 언어 구문데이터베이스 스키마논리기호 (그림)3.2. 다이어그램 개요(1) 구조 다이어그램구조 다이어그램은 시스템의 정적인 상태인 논리적인 구조(클래스)를 표현한다 Class, Interface,Collaboration 간의 관계를 나타내며, 객체지향 개발에서 가장 공통적으로 많이 사용한다클래스 다이어그램을 구성하는 클래스(객체)와 관계이다구조 다이어그램의 특징은 시스템의 요구사항에 표현된 작업 즉, 시스템이 처리해야 하는 작업에 대한 책임을 분할하고, 모델은 점점 증가하여 관련된 클래스들끼리 패키지화한다(2) 시퀀스 다이어그램객체간의 상호작용(교류),시계열적, 2차원(시간,객체), 메시지, 유스케이스 실현,시스템 내부 동작시퀀스 다이어그램은 실제 개발자에게 더욱 친밀하다.앞서 유스케이스 다이어그램은 ‘사용자 참여’ 에 중점인 반면 시퀀스 다이어그램은 실제 시스템을 프로그래밍 언어로구현할 개발자에게 보다 더 유용하게 사용되며 해석될 수 있다.유스케이스 : 사용자의 입장에서 본 시스템의 행동시퀀스 : 개발자의 입장에서 본 시스템의 행동※시퀀스(Sequence)시퀀스를(Sequence)는 사전적으로 연속,계속,순서의 뜻을 가지고 있다즉 UML 에서의 시퀀스는 시간에 흐름에 따른 시스템 내부 동작에 대한 표준적인 표기법이라 할 수 있다.※시퀀스 다이어그램 정의유스케이스 다이어그램에서는 시스템이 어떤 기능을 제공하는지에 대한 것에 초점이 있는 반면,시퀀스 다이어그램은 그 기능들이 시스템 내부적으로 어떤식으로 구현(실현)되기 위해서는 객체들간의 교류로 이루어 지는 경우가 많다.즉 클래스로부터 생성된 객체들이 다른 객체에 메시지를 전달하며 연산을 호출함으로써 기능(Use Case) 을 실현하게 된다.(3) 상호작용 다이어그램객체들 간의 요청이 수행되는 절차를 나타내는 도표. 수행 순서는 위에서부터 아래로 진행되며, 수직으로 그어진 점선이 해당 객체의 지속 시간을 나타낸다. 수직 사각형은 요청을 제어하는 활성 객체를 나타내고, 수행 결과 수평 화살표로 표시된 다음 객체로 요청을 보내며, 요청 명칭은 화살표 위에 표시된다.4. UML의 예시UML - 기본편 ( 기본 표기 형식 및 관계 표현법 )4.1 Class 및 Class instance 의 기본 표기 형식(1) Class 표기형식UML Diagram 중에서 가장 기본적인 표현 단위인 클래스의 표기형식을 알아보자.+ : public- : private# : protected* variables, methods 는 생략이 가능하나 class 이름은 반드시 명시해주어야 한다.위의 class 를 소스코드로 표현하면 아래와 같다.(2) Class instance 객체의 표기형식Relationships( 관계 표현 )서로 의미있는 클래스들의 관계에는 크게 4가지 종류가 있다.일반적인 의미의 연결 관계인 연관( association ) 관계, 전체와 부분을 나타내는집합( aggregation ) 관계, 다른 클래스의 재산을 물려받는 상속( inheritance ) 관계,그리고 한 클래스가 다른 클래스에 영향을 미치는 의존( dependency ) 관계가 있다.이 중에서도 association 과 aggregation, composition 이 세가지 관계가 가장 헷갈릴 수있는데 간략하게 정리를 해보자면 아래의 그림과 같다. 회색 부분이 각각의 관계를 구분짓는기준이 된다고 볼 수 있다.association 과 dependency 를 구분짓는 가장 큰 기준은 ' 참조하는 클래스 인스턴스의레퍼런스를 계속 유지하고 있느냐, 아니냐 ' 이다. 아래의cy[ UML ] dependency ( A ----> B )[ 소스 코드 2 ] association[ UML ] association ( A - > B )(3) dependency( 의존 관계 )클래스가 연관, 상속, 집합 관계로 엮여 있는 것은 아니지만, 한 곳이 변경되면 그것을 사용하는다른 곳도 같이 변경해줘야 하는 관계를 표현할 때 주로 사용한다. 단, 주의해야 할 점은association 과 달리 dependency 의 경우에는 클래스 인스턴스의 레퍼런스를 유지하고있지 않다는 점이다. 레퍼런스를 계속적으로 유지하게 되면 이는 association 으로 표현해야한다.주로 다음과 같은 세 가지 경우에 의존 관계로 표현한다.1. 한 클래스의 메소드가 다른 클래스의 객체를 인자로 받아 그 메소드를 사용한다.( 가장 일반적 )2. 한 클래새의 메소드가 또 다른 클래스의 객체를 반환한다.3. 다른 클래스의 메소드가 또 다른 클래스의 객체를 반환한다. 이때 이 메소드를 호출하여반환되는 객체의 메소드를 사용한다.(4) association( 연관 관계 )한 객체가 다른 객체와 연결되어 있음을 나타낼 때 그들을 연관관계로 지칭한다. 이러한연관관계에서 중요하게 볼 점은 ' 연관 관계의 방향( navigability ) 과 멀티플리시티( multiplicity ) 이다.(5) 양방향 연관 관계 :연결된 클래스들이 서로의 존재를 알고 있다는 의미이다.위의 UML 을 해석하자면 House 와 Person 클래스는 서로의 존재를 알고 있으며, 반드시한 사람 이상이 House에 속해야 한다는 것을 뜻한다.(6)단방향 연관 관계 :House 클래스는 Person 클래스의 존재를 알고 있지만, Person 은House 클래스의 존재를 모르고 있다고 이해하면 된다. 이와 같은 경우는 House 클래스만Person 클래스에 대한 참조값을 가지고 있고, Person 은 House 에 대한 어떠한 참조값도가지고 있지 않는다.관계 표현을 나타낸 그림에서 보면 일반 연관과 특수 연관이라고 란 앞에서 살펴본 association 을나타내며, association 중에서도 ' 부분과 전체 ' 로 나눌 수 있는 관계를 aggregation 과composition 으로 묶어서 분류한 것이다.aggregation 과 composition 은 모두 association 의 한 특별한 형태로 각각을 구분하는기준은 ' life cycle 이 같느냐, 같지 않느냐 ' 이다. life cycle 이란 클래스 인스턴스의생명 주기를 말하는 것으로 생성에서 소멸까지의 과정을 말한다. 즉, life cycle 이 같다는 것은관계된 클래스 혹은 그 인스턴스의 생성과 소멸이 동시에 이루어진다는 것을 뜻한다.쉽게 예를 들어 표현하자면 모자와 안경을 쓴 사람을 놓고 보자. 현재 이 사람을 구성하고 있는요소에는 눈, 팔, 다리와 같이 사람이 죽으면 같이 없어지는 요소들이 있고, 안경 모자와 같이바꿔 사용할 수 있는 요소들이 있다. 즉, 눈, 팔, 다리는 사람과 life cycle 이 같은composition 관계 이고, 안경이나 모자는 aggregation 관계인 것이다. 이러면 이해가 좀 쉽게갈라나? ^-^[ 소스 코드 1 ] aggregation[ UML ] aggregation[ 소스 코드 2 ] composition[ UML ] composition(7) 상속 관계 ( inheritance )[ 소스 코드 ][ UML ] inheritance(8) interface[ 소스 코드 ][ UML ]5. 참고 자료1. 위키피디아 – UML이란? Hyperlink "http://ko.wikipedia.org/wiki/UML" http://ko.wikipedia.org/wiki/UML2. UML 객체지향 설계 : 초보자를 위한 [3판], Joseph Schmuller 저/ 곽용재,오종범 역 | 정보문화사 | 2004.03.243. 짱오리의 Study World~UML - 기본편( 기본 표기 형식 및 관계 표현법 ) Hyperlink "http://geniusduck.tistory.8
REPORT미국의 외교정책을 찾아서"멀리하지 말라. 통합해라"과 목 명 : PT&CU제 출 일 : 2005년 11월 16일인하대학교 공과대학1. 기사주제: 미국의 외교정책은 통합적으로 하여, 급변하는 정세에 대응해야한다2. 요약: 냉전시대가 끝나고 미국은 새로운 경쟁국들의 등장, 중국의성장, 인도의출현, 일본의 새로운독단, 유럽의흐름, 러시아의 침제에 대해 어떻게 대응해야하는지 그리고 반미단체와 핵무기 확산,테러행위에 대한 대처와 자유와 무역에 대한 증진시킬수 있는지에 대하여 염두 해야 한다 지금 워싱턴 부시행정부는 그것에 명분없이 대답하려고 애쓰고있다 지금 미국이 필요한 것은 냉전시대후의 세계와 9/11후의 세계에 두 세계에 대한 외교정책이다 부시정권 이후 새롭게 생겨난 부시독트린 정책은 일방적인 지배원칙이 잘 나타내며, 미국의 우선권과 의도를 선호한다 또한 부시행정은 앞뒤가 맞지않는 일방주의로 보복테러,선공격을 주장시켜 왔다 그리하여 필자는 미국은 공통적 도전성취의 분배를 기본으로 하는 통합을 제안한다 통합은 현재 세계화 진행되는 국제정세를 반영하고 미국의 국가적 안보과제를 알려주며 성취가능한 목표를 내세운다 통합을 미국의 정책으로 받아들임으로써, 미국의 정책 제안자들은 미국안보에 가장 위협적인 것은 큰 힘을 가진 적들에게서 오는 것이 아니라 테러리즘, 핵 확산, 세계기상이변, 보호무역주의와 같은 세계화의 부정적인 면으로부터라는 새로운 현실을 깨닫고 받아들일 것이다. 통합으로 인해 외국은 어떠한 정책을 펼 것인가? 미국은 중국과 러시아와 동맹관계을 구축할 것이며, 인도의 핵현실을 받아들이고 더욱 단정적인 일본을 반기며, 더욱 역량있고 적극적인 유럽을 장려해야 할 것이다 미국은 이란과 북한에게 핵포기를 위해 안전보장과 실질적인 정치적, 경제적지원을 제공해야 한다 또한 미국은 실질적으로 모든 제조업과 서비스업의 형태를 덮을 것을 WTO에 베풀 것을 제안하고, 우리의 관세, 몫과 보수금을 줄이거나 없앨 것이다. 또한 미국은 지구온난화를 막기 위해 도쿄 성명을 추진시켰던것처럼 에이즈와 조류독감에 대해 전 세계적으로 지원해야한다. 부시 정부 첫 임기동안 정책방향이 확실히 이러한 쪽으로 움직여왔다 그러나 그 후 각종 고소와 폭로가 빈번하지만 이러한 정책들로 인한 사람들의 불만이 커지지 않는 이유는 국가안보계획이 본질적으로 부시의 1기 내각과 계속 같기 때문이다 오히려 가장 큰 변화는 콜린파월의 내각변화이다. 내각인원 대두수가 통합정책이 방향으로 기울고 있다. 수많은 변화들이 세계에 현실적으로 접근하는 것이 실제이다. 수십억의 비용과 미군으로 인해 이라크의 긴장상태는 극도에 달해있고 전 세계적 국제관계도 멀어지고 있다. 또한 미국인들의 선교적인 외교에 대한 열정도 줄었다. 선택의 고루한 전쟁이 계속되는 이라크가 부시행정 2기에 선택을 강요하는 역설적 상황을 피하기는 어렵다. 세금감면 ,과다비용 지출 ,석유수입 문제에 대한 정책의 부재는 이러한 선택을 더욱 강요한다. 부시 정권은 국내?외의 사정을 모두 고려한 다각적인 측면에서의 실용적인 외교적 정책을 시도해야 한다.