2장. UML 기본 개념.

Slides:



Advertisements
Similar presentations
StarUML UOS, SELab. Jinhan Kim.. University of Seoul, Software Engineering Laboratory 1. StarUML 특징  StarUML™ 은 UML(Unified Modeling Language)
Advertisements

선진한국, 이렇게 만들자 재단법인 한국선진화포럼. 민생이 보는 선진화  윤택한 경제생활 ( 산업화 )  믿고 사는 사회생활 ( 민주화 ) - 개인의 재산, 자유와 권리를 보호하는 사회 모르는 사람과 믿고 협력하는 사회  함께 가는 공동생활 ( 복지사회 ) - 역경에.
The UML (Unified Modeling Language) Software Engineering Laboratory.
제 2 장 UML. 2 Contents  UML 이란 ?  UML 역사와 역할  UML 구성요소 Things Relationships Diagrams  UML 확장  Summary.
Introduction to UML © copyright 2001 SNU OOPSLA Lab.
Class diagram. 클래스 클래스 이름 연산 속성 2 class Transportation { private int maximumPassenger; private double speed; public void depart(); public void stop();
Use Cases Fashion Network System. 2 Overall Use-Case Outline: User 에게 Clothing Parsing System 의 기능들을 제공해준다. Use-Case Diagram.
학습목표 UML 소개 2010 학년도 2 학기. 학습목표 2 이번 시간의 학습목표 이번 시간을 정상적으로 이수하면 우리들은 … UML(Unified Modeling Language) 의 개념을 설명할 수 있다. UML 의 구성요소를 설명할 수 있다.
컴퓨터 응용설계 및 실험 2014년 1학기 003,004,007 분반.
지피지기면 백전백승이라!! 知彼知己면 百戰百勝이라!!
부동산 분양 사업계획서.
7~9월 프로그램 광산구드림스타트 호 소식지 신체 / 건강 인지/언어 정서/행동
Chapter 2 정보시스템 아키텍처 (IS Architecture)
UML의 모델링의 본질 다이어그램으로 쉽게 보이는 UML
트랜스내셔널리즘시대 시민지(知)를 생각한다
EXEM ( ) LTW를 활용한 데이터 수집기 김경식.
안전인증 및 안전검사제도 한국산업안전보건공단 경기남부지도원 안전인증팀.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
커뮤니케이션 스킬 UP -전화매너- ..
But, 성공하려면 과정이 필요합니다. 목표달성을 위해 정해진 기간이 필요~! 어떤 노력을 기울여야 할가요~?
캡스톤 디자인2 최종발표 유경현 김기윤 Team : 너 지금 어디야.
Programming for the java Virtual machine
미디어시스템프로젝트1 (졸업프로젝트).
Java로 배우는 디자인패턴 입문 Chapter 0. UML 과 Design Pattern
팀 명: Con Spirito 팀 원: 경주리 김다정 김소담 최은미
델파이/C++빌더 3tier 프레임워크 기반 업무 개발
소프트웨어공학 UML 학기.
10장 객체-지향 프로그래밍 II ©창병모.
자바 5.0 프로그래밍.
제2절 법인세의 계산구조와 세무조정 1. 각 사업연도소득에 대한 법인세 계산구조 회계와 사회 결산서상 당기순이익
화면(UI) 기반 도메인모델 작성 2014년 8월.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 03. 클래스의 기본.
State Chart Diagram WHY DON’T WE BE a GREEN?.
소프트웨어설계 UML 학기.
윤 홍 란 4 장 클래스 작성 윤 홍 란
2010학년도 2학기 객체지향의 이해.
1 2 Solution [physical] 소수/다수 수업 중 선택 가능 장비 사용에 대해 사전 교육 이수
WAA: J2EE 설계 및 UML 2008.봄학기 E-비즈니스학과 이영곤.
김 정 석 Web Programming 김 정 석
Android Coding Convention
APPLYING UML AND PATTERNS PART I. Introduction Chapter 1
UML 실습 (Unified Modeling Language)
Rhapsody + MFC 개발 가이드.
Choi Younghwan CSE HUFS
어서와 Java는 처음이지! 제9장 인터페이스, 패키지.
정보보안.
마을살이 제천덕산면을 중심으로 농촌공동체연구소장 한석주.
활동 다이어그램(Activity Diagram)
소프트웨어 공학 (Software Engineering)
10. 소프트웨어 아키텍처 뷰 설계 명지대학교 융합소프트웨어학부 김정호 교수.
소프트웨어 공학 Lecture #7: 상세 설계
3.1 요구 모델링 Date : Create by kim wan yi
Java Chapter 4 ~ 주차.
Chapter3 : 객체지향의 개념 3.1 객체지향(object-oriented)과
Chap02 객체 지향 개념 2.1 객체지향(object-oriented)과 절차지향(procedural-oriented)
2D게임 프로그래밍 프로젝트 Building crush 류웅국.
객체지향 패러다임에서의 코드 재사용을 위한 응집도 레벨 식별 모범 사례
[ 단원 06 ] 상속과 다형성.
UML과 객체지향 모델링 UML의 개요 객체지향 모델링.
6장 클래스(상속).
현장 작업자를 위한 업종별 교안 2013-교육미디어-1451.
2015년 2학년 1반.
제 14 장 응용 계층과 클라이언트-서버 모델 클라이언트-서버 모델 14.2 동시성 14.3 프로세스 14.4 요약.
01. ‘한글뷰어’ 설치 전 준비사항.
.Net FrameWork for Web2.0 한석수
8단계 3층을 완성한다 Case 1 Case 2 Case 3 Case 4
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
4M: Man, Machine, Material, and Method 그림 14.1 그림 14.4
발 표 자 : 7조 손 창 국 윤 오 성, 박 진 완 객체 지향 프로그래밍 C++
Deployment Diagram (배치 다이어그램)
Presentation transcript:

2장. UML 기본 개념

2.1 UML 이해 모델이란? 모델링 방법론 현실의 단순화, 기사화를 통해 개발할 시스템에 대한 계획/구상에 대한 내용을 나타낸 것 모델링 방법론 OMT ; 시스템이 요구하는 객체를 완벽하기 기술 객체 모델링 : 시스템에서 필요한 객체를 찾아내고 객체의 속성과 객체들 사이의 관계 규명 동적 모델링 : 객체 모델링에서 나타낸 객체들의 행위와 상태를 포함하는 라이프 사이클 기능 모델링 : 각 객체의 변화로 인해 다른 상태로 전이 되었을 때 수행되는 동작들을 기술 부치방법론 ; “시스템은 몇 개의 View로 분석된다.” 뷰는 모델 다이어그램으로 나타냄. 거시적/미시적 개발 프로세스를 모두 포함, 단계적 접근과 자동화 도구를 지원 분석보다는 설계에 중점. 객체지향 방법론에 대한 광범위한 이론적 배경 제시 OOSE ; Usecase를 강조 Usecase는 외부액터와 상호 작용하는 시스템의 요구사항을 정의 개발, 시스템 테스트, 시스템 검증 단계에서 사용 대 규모 시스템 개발에 이점.

2.1 UML 이해 UP ; 현재 가장 많이 쓰이는 객체지향 방법론 중의 하나 객체지향적 소프트웨어를 개발하는 프로세스를 정의한 방법론 소프트웨어를 개발하기 위한 일련의 활동과 작업, 산출물들을 작성하는 방법 제시 Usecase 중심적 방법을 사용 요구사항 식별로부터 분석, 설계 , 구현, 테스트 등의 개발단계를 반복,점진적으로 사용 아키텍처 중심적 설계 MDA ; OMA와 UML이 조함되어 만들어진 방법론 비즈니스 로직과 데이터로 정의로 구성된 플랫폼 독립적 모델 PIM을 만듦. PIM은 특정 미들웨어 플랫폼에 특화된 플랫폼 의존적 모델 PSM으로 변환 PSM을 이용하여 최종 어플리케이션 코드를 생성 PIM을 이용하여 플랫폼과 상관없이 모델링 가능 PSM을 사용하여 특정 플랫폼에 맞는 시스템을 개발 가능 XP ; 애자일 방법론 중의 하나 단순성, 소통, 피드백, 용기의 추구를 통해 고객의 비즈니스 가치 실현을 최고의 목표로 하는 실천적인 개발 방법론 일정 주기마다 주기 계획을 세우고 주기별 개발을 하여 최단시간 내에 요구사항이 수렴 요구사항 등의 변화가 잦거나, 개발자가 소규모이고 같은 공간을 사용하는 경우 높은 효과

2.1 UML 이해 UML 정의 소프트웨어 청사진을 작성하는 표준언어 소프트웨어 중심 시스템의 산출물을 가시화하고, 명세화하고, 구축하고, 문서화하는데 사용 가시화 언어 : UML은 소프트웨어의 개념모델을 가시적인 그래픽 형태로 작성하여 참여자들의 오류없고 원활한 의사소통이 이루어지게 하는 언어 명세화 언어 : UML은 소프트웨어 개발과정인, 분석, 설계, 구현 단계의 각 과정에서 필요한 모델을 정확하고 완전하게 명세할 수 있게하는 언어 구축 언어 : UML 언어는 다양한 객체지향 프로그래밍 언어로 변환 가능 UML로 명세된 설계 모델은 구축하려는 프로그램 코드로 순변환하여 (순공학) 구축에 사용 기 구축된 코드를 UML모델로 역변환(역공학) 하여 분석하게 할 수도 있다. 문서화 언어 : UML은 여러 개발자들 간의 통제, 평가 및 의사소통에 필요한 문서화를 할 수 있는 언어

2.1 UML 이해 UML 필요성 UML 구성요소 소프트웨어 시스템을 만들기 위해서 어휘와 규칙을 두어 시스템을 개념적/물리적으로 표현하는 모델이 필요 시스템의 구조적 문제와 프로젝트 팀내의 의사 소통, 소프트웨어 구조의 재사용 문제를 해결 UML 구성요소 사물 : 추상적 개념으로써 모델 구성의 기본 요소 시스템의 구조, 행위를 표현하고 개념들을 그룹화 하는 것 부가적인 설명을 위한 것들이 있다. 관계 : 사물들 간의 연결 관계를 추상화 한 것 다이어그램 : 관련성이 있는 사물들 간의 상호관계를 도형 형태로 표현

2.1 UML 이해 사물 구조사물 행동사물 그룹사물 주해사물 Class : 동일한 속성, 오퍼레이션, 관계, 의미를 공유하는 객체 표현 Interface : 외부적으로 가시화되는 요소의 행동 표현 Object : 클래스의 인스턴스 Usecase : 시스템이 행위자에게 제공하는 기능 표현 Active Class : 쓰레드나 프로세스를 갖는 클래스를 표현 Component : 물리적으로 관리되는 요소들의 패키지를 표현 Node : 실행시 나타나는 컴퓨터나 주변기기 등을 표현 행동사물 Interaction : 객체 사이의 메시지, 활동순서, 연결을 표현 State machine : 객체의 상태와 변화순서 표현 그룹사물 Package : 요소를 그룹으로 묶어 표현 주해사물 Note : 주석 및 제약을 표현

2.1 UML 이해 관계 연관관계 : 구조적 관점에서이 사물들의 연결 표현 포함관계 : 사물 사이의 포함관계를 표현 일반화관계 : 사물간의 특수화, 일반화 관계 표현 의존관계 : 사물간의 영향을 미치는 관계 표현 실체화관계 : 사물의 수행하기로 되어있는 계약을 명세화

2.1 UML 이해 다이어그램 요구모델링에 사용되는 다이어그램 구조모델링에 사용되는 다이어그램 행위모델링에 사용되는 다이어그램 유스케이스 다이어그램 : 외부 행위자, 즉 액터와 시스템을 사용하는 다양한 경우 즉, 유스케이스의 관계를 구조적으로 표현 구조모델링에 사용되는 다이어그램 클래스 다이어그램 : 시스템을 구성하는 클래스, 인터페이스 사이의 구조적 연관 관계를 표현 객체 다이어그램 : 특정 시점의 객체들의 구조적 상태를 표현 컴포넌트 다이어그램 : 소프트웨어의 물리적 단위의 구성과 의존 관계를 표현 배치 다이어그램 : 노드에 존재하는 컴포넌트의 물리적 구성을 표현 행위모델링에 사용되는 다이어그램 시퀀스 다이어그램 : 시스템 외부 이벤트를 처리하기 위하여 시스템 내부 객체 간에 주고 받는 동적 메시지를 시간의 흐름에 따라 표현 콜레보레이션 다이어그램 : 시퀀스 다이어그램과 동일한 내용을 객체 상화 관계의 관점에서 표현 액티비티 다이어그램 : 시스템 내부의 활동 흐름을 표현 스테이트차트 다이어그램 : 시스템 내부의 상태 전이를 표현

2.1 UML 이해 UML 메커니즘 명세 : 모든 UML 구성요소의 표준화된 명세법 공통분할 : 클래스와 객체, 인터페이스와 구현과 같은 공통 분할 확장메커니즘 : 소프트웨어 모델을 표현하기 위한 표준화된 언어 표현 방법 을 제공 스테레오타입 : 기본적인 요소 외에 새로운 요소를 만들기 위함. 꼬리표값 : 구성 요소가 갖는 속성을 확장하여 구성요소의 명세서에 새로운 정보를 추가 제약 : 구성 요소에 있는 이전의 규칙을 수정하거나 새롭게 생성하기 위함.

2.1 UML 이해 UML 아키텍처 Logical View Implementation View Use Case View 분석가/설계자 구조 Implementation View 프로그래머 소프트웨어 관리 Use Case View 사용자 기능성 Process View 시스템 통합자 성능, 확장성, 처리량 Deployment View 시스템 엔지니어 시스템 구성 전달, 설치, 통신

2.1 UML 이해 UseCase View Logical View Process View 외부 액터에 의해 인식되는 시스템의 기능 요구사항을 보여주는 뷰 정적인 모습 표현 - 유스케이스 다이어그램 동적인 모습 표현 - 인터랙션, 스테이트차트, 액티비티 다이어그램 Logical View 시스템의 내부가 어떻게 설계되었는지 보여주는 뷰 정적인 모습 표현 – 클래스, 객체 다이어그램 동적인 모습 표현 – 인터랙션, 스테이트차트, 액티비티 다이어그램 Process View 시스템의 효율성 및 처리량 향상을 위해 쓰레드나 프로세스를 사용하는 경 우 발생하는 통신 및 동기화 등의 문제 등을 다루는 뷰 정적/동적인 모습 – 논리뷰에서와 같은 종류 쓰레드와 프로세스를 표현하기 위해서는 액티브 클래스를 사용

2.1 UML 이해 Implementation View Deployment View 시스템의 구현 형태를 나타내기 위하여 컴포넌트와 같은 구현모듈과 그들 사이의 관계를 보여주는 뷰 정적인 부분 – 컴포넌트 다이어그램 동적인 부분 – 인터랙션, 스테이트차트, 액티비티 다이어그램 Deployment View 물리적 시스템의 구성을 노드와 그들 사이의 관계를 표현한 뷰 정적인 부분 – 배치 다이어그램

2.2 UML 구성요소 구조 사물 클래스 : 동일한 속성, 오퍼레이션, 관계, 의미를 공유하는 객체의 집합으로 써 객체지향에서 의미하는 클래스. 동일 클래스에서 생성되는 객체들은 동 일한 속성, 오퍼레이션을 갖는다. 클래스명 : 클래스명에는 단순명과 경로명이 있다. 단순명 : 클래스 자체 이름만 표현 경로명 : 클래스가 속한 패키지명까지 표현 속성 : 클래스가 지녀야 할 정보를 표현 +(public) : 외부 객체로부터 속성에 대한 직접적인 접근을 허용. -(private) : 외부 객체로부터 속성에 대한 직접적인 접근을 허용하지 않음. #(protected) : 같은 패키지 내의 객체와 속성이 #로 선언된 클래스를 상속받은 하위 클래스로 부터 속성에 대한 직접적인 접근을 허용 ~(package) : 같은 패키지 내의 객체로부터 속성에 대한 접근을 허용 오퍼레이션(메소드) : 클래스가 지니고 있는 속성을 가지고 뭔가 작업을 수행하는 행위 +(public) , -(private), #(protected) 추상클래스 추상 클래스의 오퍼레이션들 가운데 구현이 없는 가상 함수는 함수명을 이탤릭체로 표현하게 되며, 이를 상속 받아서 구현한 하위 클래스들에서는 이 함수를 보통체로 표현

2.2 UML 구성요소 객체 : 클래스의 인스턴스. 추상적인 개념의 클래스를 실제 프로그램에서 사 용할 수 있는 형태로 구체화 시킨 것 인터페이스 : 클래스나 컴포넌트가 제공하는 서비스들을 나타내는 오퍼레 이션들의 집합을 나타내는 클래스의 일종. 함수들의 Signature만 명세할 뿐 함수 구현은 존재하지 않는다. 구현은 인터페이스를 실현할 클래스에서 한 다. 객체를 생성할 수 없으며, 속성이나 함수 구현도 가질 수 없다. 클래스와 인터페이스 간에는 Realization 관계로 표현한다. 유스케이스 : 시스템이 액터에게 제공하는 기능을 표현 액티브 클래스 : 객체가 하나 또는 그 이상의 프로세스나 쓰레드를 갖는 클 래스를 표현. 컴포넌트 : 시스템에서 물리적으로 관리되는 클래스, 인터페이스 콜레보레 이션 등의 요소를 패키지화 한 것 노드 : 실행 시에 존재하는 물리적 요소

2.2 UML 구성요소 행동사물 인터랙션 : 지정된 목적을 완성하기 위하여 특정 문맥에 속한 객체들 사이 에 주고 받는 메시지들로 구성 객체 사이의 메시지, 활동 순서, 객체 사이의 연결 등을 표현 상태머신 : 객체 혹은 인터랙션에 발생하는 이벤트에 대한 객체의 상태와 상태의 변화 순서 그룹사물 패키지 : 요소를 그룹으로 묶는 기능. 주해사물 노트 : 첨부되는 주석 또는 제약을 기술하는 기호

2.2 UML 구성요소 관계 연관관계 : 일회성이 아닌 지속적으로 유지되는 구조적 관계. 사물 객체들 간의 연결 관계를 나타냄.

2.2 UML 구성요소 포함관계 : 연관관계의 특수형태로 사물 사이의 포함관계를 나타냄 집합연관 – 한 사물이 또 다른 사물을 포함하는 전체와 부분간의 구조적 관계 합성연관 – 사물간의 포함관계를 표현하나, 집합연관보다 더 강한 포함 관계를 지닌다.

2.2 UML 구성요소 일반화관계 : 특수화, 일반화된 사물간의 관계를 표현. 클래스와 클래스, 유스케이스와 유스케이스 사이의 상속 관계 표현

2.2 UML 구성요소 의존관계 : 두 사물간의 의미적 관계. 한쪽 사물의 명세의 변화가 다른 사물 에 영향을 주는 관계를 표현

2.2 UML 구성요소 실체화관계 : 분류자간의 의미적 관계.

2.2 UML 구성요소 클래스 다이어그램

2.2 UML 구성요소 객체 다이어그램

2.2 UML 구성요소 유스케이스 다이어그램

2.2 UML 구성요소 시퀀스 다이어그램

2.2 UML 구성요소 콜레보레이션 다이어그램

2.2 UML 구성요소 스테이트차트 다이어그램

2.2 UML 구성요소 액티비티 다이어그램

2.2 UML 구성요소 컴포넌트 다이어그램

2.2 UML 구성요소 배치 다이어그램

2.2 UML 구성요소 패키지 다이어그램