소프트웨어설계 UML 2014. 1학기.

Slides:



Advertisements
Similar presentations
Copyright © 2015 Pearson Education, Inc. 6 장 : 프로그래밍 언어.
Advertisements

StarUML UOS, SELab. Jinhan Kim.. University of Seoul, Software Engineering Laboratory 1. StarUML 특징  StarUML™ 은 UML(Unified Modeling Language)
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.
학습목표 UML 소개 2010 학년도 2 학기. 학습목표 2 이번 시간의 학습목표 이번 시간을 정상적으로 이수하면 우리들은 … UML(Unified Modeling Language) 의 개념을 설명할 수 있다. UML 의 구성요소를 설명할 수 있다.
6.1 사용사례 6.2 객체 모델링 6.3 동적 모델링 6.4 시스템 설계 6.5 객체 설계 6.6 디자인 패턴
UML의 모델링의 본질 다이어그램으로 쉽게 보이는 UML
EXEM ( ) LTW를 활용한 데이터 수집기 김경식.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
D. 지뢰찾기 분석 설계 예제.
미디어시스템프로젝트1 (졸업프로젝트).
Java로 배우는 디자인패턴 입문 Chapter 0. UML 과 Design Pattern
팀 명: Con Spirito 팀 원: 경주리 김다정 김소담 최은미
Internet Computing KUT Youn-Hee Han
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Power Java 제4장 자바 프로그래밍 기초.
객체 지향 원리 송치형.
소프트웨어공학 UML 학기.
[INA470] Java Programming Youn-Hee Han
2장. UML 기본 개념.
자바 5.0 프로그래밍.
프로그래밍 언어론 제 9 장 객체 지향 개념 객체 지향 방법론 객체 모델링 객체 지향 언어 C++ 객체 지향 언어 CLOS
화면(UI) 기반 도메인모델 작성 2014년 8월.
Data Modeling Database 활용을 위한 기초 이론 Database의 개요 Data Modeling
State Chart Diagram WHY DON’T WE BE a GREEN?.
10장 다중 스레드 10.1 스레드 개요 10.2 Thread 클래스 10.3 스레드 생성
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
윤 홍 란 4 장 클래스 작성 윤 홍 란
2010학년도 2학기 객체지향의 이해.
Power Java 제7장 클래스와 객체.
DataScience Lab. 박사과정 김희찬 (월)
WAA: J2EE 설계 및 UML 2008.봄학기 E-비즈니스학과 이영곤.
김 정 석 Web Programming 김 정 석
시스템 분석 및 설계.
Power Java 제20장 패키지.
Mobile braille system for the blind
광운 객체지향프로그래밍 부성순 강의목표 강의세부내용
UML 실습 (Unified Modeling Language)
Rhapsody + MFC 개발 가이드.
DataScience Lab. 박사과정 김희찬 (월)
어서와 Java는 처음이지! 제9장 인터페이스, 패키지.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
마을살이 제천덕산면을 중심으로 농촌공동체연구소장 한석주.
활동 다이어그램(Activity Diagram)
UML(Unified Modeling Language)
소프트웨어 공학 (Software Engineering)
Chap10 다중 스레드 Section 1 : 스레드 개요 Section 2 : Thread 클래스와 스레드 생명주기
C# 09장. 상속성.
소프트웨어공학 윤일노 STARuml Guide 소프트웨어공학 윤일노
10. 소프트웨어 아키텍처 뷰 설계 명지대학교 융합소프트웨어학부 김정호 교수.
소프트웨어 공학 Lecture #7: 상세 설계
객체지향의 한계를 넘어, AOP 전은영,이재훈 고덕윤.
중간보고회 제2기 전라남도 지역사회복지계획 수립 전남발전연구원.
3.1 요구 모델링 Date : Create by kim wan yi
Java Chapter 4 ~ 주차.
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
Chapter3 : 객체지향의 개념 3.1 객체지향(object-oriented)과
Chap02 객체 지향 개념 2.1 객체지향(object-oriented)과 절차지향(procedural-oriented)
컨설턴트처럼 사고하고 실행하라! 요 약 본.
Chapter 02. 소프트웨어와 자료구조.
Barat을 이용한 Code Transformation
1장 시스템 개발 과정의 이해 소프트웨어 위기와 소프트웨어 공학 출 현 배경 이해 시스템(소프트웨어)의 개발자들
안드로이드 앱 분석 팀 기반의 설계 프로젝트 박민재
Java 5장. 객체지향 개념 public class SumTest {
실습과제 1번 /* 1. 멤버 변수로 반경 radius를 갖고, 그 값을 모니터에 출력하는
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
Choi Younghwan CSE HUFS
Deployment Diagram (배치 다이어그램)
Presentation transcript:

소프트웨어설계 UML 2014. 1학기

UML 다이어그램 다이어그램 이름 개략적인 모양 설 명 Use Case Diagram Class Diagram 3장 요구 분석 UML 다이어그램 다이어그램 이름 개략적인 모양 설 명 Use Case Diagram 특정 시스템 혹은 개체 내에서 기능을 표현하는 usecase들과 그 외부의 actor들 간의 관계(상호작용)를 표현한 다이어그램 Class Diagram Class 관련 요소들의 여러 가지 정적인 관계를 시각적으로 표현한 다이어그램 Package Diagram 관련된 클래스를 패키지로 grouping 하여 의존도를 낮추기 위하여 사용 객체지향 소프트웨어 공학, SciTech

UML 다이어그램 다이어그램 이름 개략적인 모양 설 명 Sequence Diagram Collaboration Diagram 3장 요구 분석 UML 다이어그램 다이어그램 이름 개략적인 모양 설 명 Sequence Diagram Instance 들이 어떻게 상호작용을 하는지를 묘사하는 다이어그램 Collaboration Diagram 순차 다이어그램과 같은 내용을 나타내지만 모양이 네트워크 형태임 State(Chart) Diagram 특정 개체의 동적인 행위를 상태와 그것들간의 transition을 통해 묘사하는 다이어그램 (일반적으로 클래스의 인스턴스에 대한 행위 묘사 객체지향 소프트웨어 공학, SciTech

UML 다이어그램 다이어그램 이름 개략적인 모양 설 명 Activity Diagram Component Diagram 3장 요구 분석 UML 다이어그램 다이어그램 이름 개략적인 모양 설 명 Activity Diagram State Diagram의 특별한 형태이며, 활동들의 수행 흐름을 묘사하는 다이어그램 (Flow Chart와 유사) 시스템의 동적 특징을 나타냄 Component Diagram Software component 사이의 의존관계를 묘사하는 다이어그램 Deployment Diagram 물리적인 컴퓨터 및 장비 등의 하드웨어 요소들과 그것에 배치되는 소프트웨어 컴포넌트, 프로세스 및 객체들의 형상을 묘사하는 다이어그램 객체지향 소프트웨어 공학, SciTech

StarUML 연습: Class Diagram 실습

StarUML 연습: Use Case Diagram 실습 [ATM System]

StarUML 연습: Sequence Diagram 객체(Object) 메시지(Message) 생명선(Lifeline) 시간의 흐름 실행 (Activation) 메시지(message) - 한 객체에서 다른 객체로 전송을 의미 - 한 객체의 생명선에서 다른 객체의 생명선으로 이동하는 것으로 표현. - 객체는 자기 자신에게 메시지를 보낼 수 있다. 실행(activation): 객체가 수행되고 있는 시간을 나타낸다. 사각형의 길이는 오퍼레이션의 실행 소요 시간을 나타낸다.

StarUML 연습: Sequence Diagram [실습] GUI는 키 입력을 운영체제에게 알린다. 운영체제는 CPU에게 그 사실을 알린다. 운영체제는 GUI를 갱신한다. CUP는 비디오 카드에게 GUI 갱신에 필요한 명령을 내린다. 비디오 카드는 모니터로 메시지를 전송한다. 모니터는 화면에 Alpha Numeric 문자를 표시하고, 사용자에게 피드백을 제공 한다.

Code Generation Generate Code from Class Diagram Java Profile 추가 [Model]->[Profiles] Java Profile을 Include함 Generate Code [Tools]->[Java]->[Generate Code] Package 선택-> 생성할 Class 선택->파일을 생성할 위치 선 택-> Option Setup 선택한 디렉토리에 .java 파일들이 생성됨

Reverse Engineering ` Generation한 Code로 Reverse Engineering [Tools]->[Java]->[Reverse Engineer] 소스 코드 선택 디렉토리 선택->자바 소스 파일 선택->모델을 생성할 Package 선택->옵션 선택 ` Generate Code Reverse Engineering

Use Case 일반적으로 Use Case는 작업의 시작부터 끝까지 전반적인 단계를 포괄해야 함 3장 요구 분석 Use Case 일반적으로 Use Case는 작업의 시작부터 끝까지 전반적인 단계를 포괄해야 함 사용자가 시스템과의 상호작용을 나타냄 시스템이 실행하는 계산이 아님 Use Case 는 특정 사용자 Interface 설계와 독립 적으로 작성되어야 함 Actor가 컴퓨터와 상호작용 하는 action만을 포함 하여야 함 Object지향 소프트웨어 공학, SciTech

시나리오 시나리오는 Use Case의 instance Use Case가 다음의 구체적인 조건에 일어난 것 특정 Actor 3장 요구 분석 시나리오 시나리오는 Use Case의 instance Use Case가 다음의 구체적인 조건에 일어난 것 특정 Actor 특정 시간 특정 데이터 Object지향 소프트웨어 공학, SciTech

Use Case를 표시하는 방법 이름 Actor 목적 시작조건 설명 관련 Use Case 단계적 사건의 흐름 종료 조건 3장 요구 분석 Use Case를 표시하는 방법 이름 Use Case에 대한 간단한 이름 Actor Use Case를 이용하는 사용자나 외부 시스템 목적 Actor가 무엇을 성취하려는가를 설명 시작조건 Use Case를 구동시키기 위하여 만족되어야 할 조건 설명 간단한 비정형적 설명 관련 Use Case 단계적 사건의 흐름 Actor의 action과 시스템의 반응은 2 컬럼으로 표현 종료 조건 종료된 후 시스템의 상태 Object지향 소프트웨어 공학, SciTech

3장 요구 분석 Use Case diagram Object지향 소프트웨어 공학, SciTech

확장(extension) 선택적인 interaction을 명시적으로 나타낼 때 또는 예외 적인 사례를 다룰 때 사용 3장 요구 분석 확장(extension) 선택적인 interaction을 명시적으로 나타낼 때 또는 예외 적인 사례를 다룰 때 사용 Use Case 확장을 분리함으로써 기본적인 Use Case의 표 현이 간단해 진다. Use Case 확장도 Use Case의 처음부터 끝까지 모든 단계 를 나열하여야 함 특수한 경우의 처리도 포함 Object지향 소프트웨어 공학, SciTech

일반화(generalization) Class diagram에서 super Class와 유사 3장 요구 분석 일반화(generalization) Class diagram에서 super Class와 유사 일반화된 Use Case는 여러 유사 Use Case를 표현 상세화 된 여러 Use Case가 유사 Use Case의 상 세한 내용을 제공 Object지향 소프트웨어 공학, SciTech

포함(inclusion) 여러 Use Case들 사이에 공통적인 부분을 표현 다른 Use Case들 안에 3장 요구 분석 포함(inclusion) 여러 Use Case들 사이에 공통적인 부분을 표현 다른 Use Case들 안에 일련의 action을 공유 다수의 Use Case 사이에 중복을 피함 하위 수준의 작업의 수행을 하위 수준의 목표로 표 현 Object지향 소프트웨어 공학, SciTech

3장 요구 분석 Use Case diagram 예 Object지향 소프트웨어 공학, SciTech

Use Case 작성 예… Use Case: 파일 불러오기 관련 Use Case: 다음 두 Use Case를 일반화 한 것임 3장 요구 분석 Use Case 작성 예… Use Case: 파일 불러오기 관련 Use Case: 다음 두 Use Case를 일반화 한 것임 파일 이름을 주고 불러오기 브라우징으로 불러오기 작업순서: Actor측 action                      시스템측 반응 1. ‘불러오기....’ 명령을 선택   2. ‘파일 불러오기’ 다이얼로그를 창을 디스플레이 3. 파일 이름을 명시                                     4. 선택을 확인                     5. 디스플레이에서 다이얼로그 창을 삭제 Object지향 소프트웨어 공학, SciTech

Use Case 작성 예… Use Case : 파일 이름을 주고 불러오기 관련 Use Case: 파일 불러오기의 상세화 3장 요구 분석 Use Case 작성 예… Use Case : 파일 이름을 주고 불러오기 관련 Use Case: 파일 불러오기의 상세화 사건의 흐름: Actor측 action                      시스템측 반응 1. ‘불러오기....’ 명령을 선택    2. ‘파일 불러오기’ 다이얼로그 창을 3a. 텍스트 필드를 선택               디스플레이 3b. 파일 이름을 입력 4. ‘불러오기’를 클릭                 5. 디스플레이에서 다이얼로그를 삭제 Object지향 소프트웨어 공학, SciTech

Use Case 작성 예 Use Case : 브라우징으로 파일 불러오기(include) 관련 Use Case: 사건의 흐름: 3장 요구 분석 Use Case 작성 예 Use Case : 브라우징으로 파일 불러오기(include) 관련 Use Case: 파일 불러오기 Use Case의 상세화 파일 브라우징 Use Case를 포함 사건의 흐름: Actor측 action                      시스템측 반응 1. ‘불러오기....’ 명령을 선택 2. ‘파일 불러오기’ 다이얼 로그를 창을 디스플레이 3. 파일을 브라우징                                     4. 선택을 확인                     5. 디스플레이에서 다이얼로그 창을 삭제 Object지향 소프트웨어 공학, SciTech

연습문제 Web-based ATM 시스템의 개발 은행 고객들이 Web 상에서 ATM의 기본적인 금융 트랜잭션을 수행 은행 직원을 위한 기능 고객의 추가/삭제 계좌의 생성/삭제 고객을 위한 기능 계좌 조회 트랜잭션 조회 현금 인출 예금 계좌이체

Use Case Diagram

Sequence Diagram (1/6) logIn customer

Sequence Diagram (2/6) addCustomer

Sequence Diagram (3/6) deleteCustomer

Sequence Diagram (4/6) addAccount

Sequence Diagram (5/6) showAccount

Sequence Diagram (6/6) transfer

System Sequence Diagram

Sequence Diagram Frame operator Loop: Opt (Alt) Par: Region: guard가 true일 동안 looping 반복 횟수 n값을 지정할 수도 있음 Opt (Alt) Guard가 true이면 수행 Par: Parallel running 구역 Region: 단 하나의 thread만 run할 수 있는 critical region

Sequence Diagram

Sequence Diagram

Sequence Diagram

Sequence Diagram

Sequence Diagram

Class Diagram Class public class Myclass { private sting Attribute1; private string attribute2; public string operation1(void); public string operation2(void); }

Class Diagram: Association Class MyClassB { private MyClassA obja; void CreateAobj() { Aobj = new MyClassA; } void CallAobj () { aobj.Aoperation1();

Class Diagram: aggregation Class MyClassAgg private MyClassA aobj; private MyClassB bobj; private MyClassC cobj; void aggjob(MyClassA obj1, MyClassB obj2, MyClassC obj3) { this.aobj = obj1; this.bobj = obj2; this.cobj = obj3; }

Class Diagram: composition Class MyClassComp private MyClassA aobj; private MyClassB bobj; private MyClassC cobj; void compjob(MyClassA obj1, MyClassB obj2, MyClassC obj3) { }

Class Diagram: dependency Class MyclassA { Public void operation1(void); Public void operation2(void); } Class MyclassB Public void createAobj() MyClassA Aobj = new MyClassA(); Aobj.operation1(); //이 method내부에서만 유지