화면(UI) 기반 도메인모델 작성 2014년 8월.

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)
내 마음의 버 스 이천신하교회 청년부. 이름 : 한상훈 나이 : 30 살 종교 : 기독교 ( 모태신앙 ) 생활신조 : 인생은 한방 ! 로또나 사자 이상형 : 청순 가련한 모태미녀 특이사항 : 걸그룹 노래에 환장함 식스팩을 갖기엔 슬픈 몸을 타고 남.
독서골든벨 2009 학년도 6 학년 1 학기 6-10 반. 1. 이야기 삼국유사 정대한 원효대사는 수행을 위해 떠나던 중 피곤하여 숲 속에서 잠이 들었다. 잠결에 너무 목이 마른 나머지 어디에 담겨있는 물을 맛있게 마셨나요 ?
제 2 장 UML. 2 Contents  UML 이란 ?  UML 역사와 역할  UML 구성요소 Things Relationships Diagrams  UML 확장  Summary.
두 손 들고 두 손 들고 찬양합니다 두 손 들고 찬양합니다 다시 오실 왕 여호와께 다시 오실 왕 여호와께 두 손 들고 찬양합니다 두 손 들고 찬양합니다 다시 오실 왕 여호와께 다시 오실 왕 여호와께 오직 주만이 나를 다스리네 오직 주만이 나를 다스리네 나 주님만을.
Copyright © 2006 The McGraw-Hill Companies, Inc. 프로그래밍 언어론 2nd edition Tucker and Noonan 5 장 타입 “ 타입은 컴퓨터 프로그래밍의 효소이다 ; 프로그래밍은 타입을 통해 소화할만한 것이 된다.” 로빈.
Class diagram. 클래스 클래스 이름 연산 속성 2 class Transportation { private int maximumPassenger; private double speed; public void depart(); public void stop();
지금은 기도 하는 시간입니다 1. 송구영신예배를 위해서 2. ‘크리스마스 이브’ 행사를 준비하는 교육 기관을 위하여
6.1 사용사례 6.2 객체 모델링 6.3 동적 모델링 6.4 시스템 설계 6.5 객체 설계 6.6 디자인 패턴
1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도    1. 기관별 맞춤형 집중교육 : 실습 및 개인별 집중지도 (상설) 기관별 맞춤형 교육 - 당 교육기관에서.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
현대사회의 여성문제와 여성복지 3조 권경욱 강향원 황대인 변갑수 박창욱 김지현.
소비자 만족도 설문조사 결과.
고교평준화의 득과 실 김영주 이지영 최윤영.
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
Chapter 02 : Class 다이아그램. chapter 02 : Class 다이아그램.
소프트웨어공학 UML 학기.
데이터 베이스 란? 데이터 베이스 기능 데이터 베이스 관리 시스템 정보시스템의 구성 관게형 데이터 베이스
10장 객체-지향 프로그래밍 II ©창병모.
IOC, DI 2015 Web Service Computing.
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
2장. UML 기본 개념.
객체지향 언어와 클래스, 객체 ㅎㅎ 개요 클래스의 선언, 객체의 생성 및 속성 참조 방식 멤버 변수 메소드 한빛미디어(주)
자바 5.0 프로그래밍.
Data Modeling Database 활용을 위한 기초 이론 Database의 개요 Data Modeling
소프트웨어설계 UML 학기.
2010학년도 2학기 객체지향의 이해.
WAA: J2EE 설계 및 UML 2008.봄학기 E-비즈니스학과 이영곤.
김 정 석 Web Programming 김 정 석
UML exercise in Class.
시스템 분석 및 설계.
2010년 직원연수 자료 제1차 : 4월 16일 ~ 17일 제2차 : 4월 23일 ~ 24일
제 4주 2014년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
택배 데이터베이스 모델링 김동영 이승언.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
소프트웨어 공학 (Software Engineering)
' Strategic Alliance Partner with '
메소드와 클래스 정의 및 문제 풀이 Method and Class Define and Problem Solve
소프트웨어 공학 Lecture #7: 상세 설계
SpringFramework 중간고사 요약 REST by SpringFramework.
[INA470] Java Programming Youn-Hee Han
3.1 요구 모델링 Date : Create by kim wan yi
컴퓨터공학실습(I) 3주 인공지능연구실.
Java IT응용시스템공학과 김형진 교수 5장. 객체지향 개념 public class SumTest {
Chapter3 : 객체지향의 개념 3.1 객체지향(object-oriented)과
Chap02 객체 지향 개념 2.1 객체지향(object-oriented)과 절차지향(procedural-oriented)
Spring DI 이해 및 활용.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 22. 구조체와 사용자 정의 자료형1.
문자열 처리하기 working with Strings
2D게임 프로그래밍 프로젝트 Building crush 류웅국.
스마트워크를 위한 R&BD 플랫폼 혁신(3차) 위탁연구과제 관리
                              데이터베이스 설계 및 실습 #8 - ER-Win 한국외국어대학교 DaPS 연구실                              
Chapter 02. 소프트웨어와 자료구조.
Signature, Strong Typing
UML과 객체지향 모델링 UML의 개요 객체지향 모델링.
JVM의 구조와 메모리 모델 JVM의 내부 구조 클래스 파일 클래스 로더 메소드(method) 영역 힙(heap) 영역
자바 5.0 프로그래밍.
Signature, Strong Typing
2015년 2학년 1반.
다문화 사회의 이해 배 상 훈 . 1. 한국사회의 다문화현상 2. 원인과 정책으로 살펴본 다문화 한국사회.
캡슐화 (Encapsulation) 두원공과대학 소프트웨어개발과 이 원 주.
ER-관계 사상에 의한 관계 데이터베이스 설계
▶서류관리 프로그램 1. 로그인….2 2. 서류등록 … 서류도착 서류스티커발행
나-는 믿음으로 주 얼굴 보리니- 아침에 깰 때에 주형상에 만족하리 나주님 닮기 원하네 믿음으로 주얼굴 보리라 -
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
제 1장 프로그래밍 언어 소개 1.1 프로그래밍 언어란 무엇인가 1.2 프로그래밍 언어를 배워야 하는 이유
Deployment Diagram (배치 다이어그램)
Presentation transcript:

화면(UI) 기반 도메인모델 작성 2014년 8월

접근법 일반적인 접근법 우리의 접근법 도메인모델을 기반으로 UI와 데이터베이스와 애플리케이션 설계/구현 도메인모델을 기반으로 데이터베이스와 애플리케이션 설계/구현 ER모델 User Interface 도메인모델 애플리케이션 설계/구현

메타모델 메타모델: 모델의 모델 객체모델을 메타모델로 사용해서 도메인모델 작성 객체모델은 UML 클래스 다이어그램으로 표현

클래스 다이어그램에 표현되는 모델요소 클래스(Class), 데이터타입(Datatype), 인터페이스(Interface), 관계(Relationship) 클래스, 데이터타입, 인터페이스의 내부구조 속성(Attribute), 오퍼레이션(Operation) 관계(Relationship) 연관(Association), 의존(Dependency), 일반화(Generalization), 실현(Realization) 협력(Collaboration)

화면(UI)에 표현되는 화면(UI)요소들을 클래스 다이어그램에 표현되는 모델요소로 표현하는 것 우리가 하려는 것 화면(UI)에 표현되는 화면(UI)요소들을 클래스 다이어그램에 표현되는 모델요소로 표현하는 것 UI 구성요소 모델구성 요소

값이 작성되지 않은 UI – 값이 작성된 UI 값이 작성되지 않은 UI 값이 작성된 UI 클래스 다이어그램에 표현되는 모델요소 - 개념 값이 작성된 UI - 인스턴스 클래스 다이어그램에 표현되는 모델요소 - 개념 인스턴스에 해당하는 모델요소 - 객체(Object), 값(Value), 링크(Link) 추상보다 구체를 가지고 분석하는 것이 쉬움 객체(Object), 값(Value), 링크(Link), 협력객체

값이 작성된 UI를 가지고 어떻게 작성하는가를 통해 통해 구체적인 모델요소를 식별한다. 모델링 방법 1 값이 작성된 UI를 가지고 어떻게 작성하는가를 통해 통해 구체적인 모델요소를 식별한다. 구체적인 모델요소(인스턴스)에 대응되는 개념에 해당하는 모델요소를 식별한다. 개념에 해당하는 모델요소를 클래스 다이어그램에 작성한다.

객체와 값 객체 - 정체성(Identification)을 갖는 실체 값 - 정체성이 없는 실체

여러 개 중에 선택 가능한 화면요소를 통해 객체 식별 시스템이 제공한 목록에서 선택 검색, 선택 정체성 - 그 놈이 그 놈인 것을 알게 하는 것 정체성이 있다는 것의 의미 - 여러 개 중에 선택 가능하다는 것 여러 개 중에 선택 가능한 화면요소를 통해 객체 식별 시스템이 제공한 목록에서 선택 검색, 선택 객체에 대응되는 클래스를 식별해서 클래스 다이어그램에 표현 값 작성을 편하게 하려는 것에 주의 – 열거형, 첨부파일 선택 등 코드 – 코드를 관계로 관리할 것인지에 따라 달라짐, 코드는 가능한 복잡도를 낮추기 위해 관계로 관리하지 않음

그래픽 표현 클래스 속성부분과 오퍼레이션 부분은 별도로 자세히 다룸 - 사각형으로 작성 - 이름 부분, 속성 부분, 오퍼레이션 부분을 갖고, 각 부분은 구분 선으로 나뉨 속성부분과 오퍼레이션 부분은 별도로 자세히 다룸

실습 1) 클래스 식별 1. 선택 객체를 통한 클래스 식별 모델링 도구 설치 http://www.umlcert.com/product/rsmsmarteasy/

객체를 선택한다는 의미 링크 사용행위 생성행위 사용 생성 협력할 객체가 선택되었다는 것 협력이 요구된다는 것 어떤 협력에 어떤 객체가 요구되는지를 연결로 표현 생성 사용 객체 사용행위 생성행위

그래픽 표현 Person Company

협력객체에 대응되는 클래스를 식별해서 클래스 다이어그램에 작성한다. 모델링 방법 2 협력객체에 대응되는 클래스를 식별해서 클래스 다이어그램에 작성한다. 연결을 식별하고, 이에 대응되는 개념인 연관을 식별해서 클래스 다이어그램에 작성한다.

실습 2) 클래스 식별 2. 협력 객체를 통한 클래스 식별

화면 작성 화면에서 사용자가 작성하는 것 객체를 선택하려면 객체가 생성되어야 함 값만 작성 가능 객체는 선택만 가능 사용자가 작성한 값은 객체가 생성될 때 객체의 속성 값으로 작성

데이터타입(Data Type) Data Type Primitive Type Enumeration 데이터타입 값에 대응하는 개념 값의 유형에 따라 기본형(int, float 등, 문자열 포함), 열거형, 데이터타입(그룹값) Data Type Primitive Type Enumeration

그래픽 표현 기본타입 name : string 열거형 데이터타입 타입 이름을 그대로 작성 enumeration 키워드를 ‘<<‘ 와 ‘>>’ 사이에 작성 열거형 리터럴 부분에 열거형 리터럴을 열거 데이터타입 클래스 표현과 같은 방법을 사용 dataType키워드를 ‘<<‘ 와 ‘>>’ 사이에 작성 name : string isEqual : bool

<가시성>’/’ <이름> ’:’ <타입> <다중성> ‘=‘ <기본값> <특성문자열> static인 경우 속성 이름에 밑줄 추상: 이탤릭 + / age : int [0..1] = 0 {readOnly} Copyright © 2004-2013 by NWC Consulting

Copyright © 2004-2013 by NWC Consulting + / age : int [0..1] =0 {readOnly} - # + ~ 0..1 1 * 1..* Copyright © 2004-2013 by NWC Consulting

선택한 객체가 아닌 것은 모두 값으로 식별해서 클래스의 속성으로 작성한다. 값의 유형에 따라 대응되는 데이터타입을 작성한다. 모델링 방법 3 선택한 객체가 아닌 것은 모두 값으로 식별해서 클래스의 속성으로 작성한다. 값의 유형에 따라 대응되는 데이터타입을 작성한다. 속성의 나머지 부분을 작성한다.

실습 3) 속성 식별 및 작성

연관 전체와 부분 컴포지션(Composition), 애그리게이션(Aggregation) 전체와 부분의 연결도 연관으로 작성 전체와 부분은 포함 또는 구성의 의미를 가짐 컴포지션(Composition), 애그리게이션(Aggregation) 컴포지션은 직접, 애그리게이션은 참조 직접 포함되거나 직접 구성한다는 것은 전체를 제거하면 부분도 제거됨

전체와 부분의 생성 전체가 생성될 때 부분이 같이 생성 전체가 생성되고 난 후 부분이 생성 전체 속성 작성 시 부분 속성을 같이 작성 한 전체가 다수의 부분을 갖는 것이 일반적임 전체가 생성되고 난 후 부분이 생성 - 전체를 선택한 후 부분의 속성을 작성

그래픽 표현 컴포지션 어그리게이션

화면에 그리드가 있고 그리드의 한 행을 추가하기 위해 속성을 작성하는 부분을 식별해서 전체 부분의 개념을 식별한다. 모델링 방법 4 화면에 그리드가 있고 그리드의 한 행을 추가하기 위해 속성을 작성하는 부분을 식별해서 전체 부분의 개념을 식별한다. 식별된 전체부분의 관계가 컴포지션인지 애그리케이션인지 구별하여 클래스 다이어그램에 작성한다.

실습 4) 전체 부분 식별 및 작성

연관

그래픽 표현 재귀 다중

employer employee 를 위해 일한다 Person 0..1 * Company

컬레보레이션 클래스에서 협력하는 클래스로는 항상 일방향으로 작성 모델링 방법 5 일반연관의 방향성을 결정한다. 컬레보레이션 클래스에서 협력하는 클래스로는 항상 일방향으로 작성 컬레보레이션 클래스가 아닌 클래스들 사이에 작성된 연관의 경우에는 가능한 일방향으로 작성

전체부분의 방향성을 결정한다. 컬레보레이션 클래스들 사이에 동일 개념을 전체와 부분으로 분리한 것에는 양뱡향으로 작성 그렇지 않은 것에 일방향으로 작성 컬레보레이션 클래스가 아닌 클래스들 사이의 전체 부분에는 양방향으로 작성

실습 5) 연관 작성

일반화 생성되는 객체들이 속하는 전체집합의 개념과 부분집합의 개념 사이의 관계 도형 집합 = 원 집합 + 삼각형 집합 개념 정의의 재사용 도형 집합 = 원 집합 + 삼각형 집합 + 사각형 집합 공통속성 - 구체속성

실현 사용되는 객체들에 대한 전체집합의 개념과 부분집합의 개념 사이의 관계 역할 정의의 재사용 Drawing되는 도형들

추상클래스와 인터페이스 추상클래스 인터페이스 객체를 생성하지는 않고 생성된 객체를 묶는 전체집합에 해당하는 개념 다른 클래스의 객체들을 같은 사용(같은 역할)으로 묶는 개념

그래픽 표현 도형 삼각형 원 사각형

일반화된 개념들이 존재할 경우 해당 개념을 식별한다. 속성 중복이 발생하는 클래스들을 식별하고 일반화시킬 수 있는지 결정한다. 모델링 방법 6 일반화된 개념들이 존재할 경우 해당 개념을 식별한다. 속성 중복이 발생하는 클래스들을 식별하고 일반화시킬 수 있는지 결정한다. 상위클래스의 추상여부를 결정한다. 일반화 관계를 클래스 다이어그램에 작성한다.

연관된 클래스가 다르나 같은 역할로 묶어서 다루어야 하는 것을 식별한다. 실현 관계를 클래스 다이어그램에 작성한다.

실습 6) 일반화, 실현 작성

전체 부분

행위 식별 시스템의 목적 메뉴 그룹 메뉴 항목 버튼, 입력장치 조작 전체 행위 식별 사용자의 시스템 사용목적 유스케이스 수준의 행위 식별 메뉴 항목 사용자의 시스템 사용목적을 달성하기 위한 방법 서비스 수준의 행위 식별 버튼, 입력장치 조작 메뉴항목의 주 목적 반영 기능성 객체 선택, 값 작성, 행위 요청을 위한 것 외의 모든 것

실습 7) 행위 식별

상호작용 시나리오 작성 시퀀스 다이어그램으로 표현 Sender가 사용자인 경우 액터로 표현 Lifeline Sender 동기 비동기 리턴 객체/역할:클래스 Sender Receiver makeColor(r, g, b, a) Lifeline Message Sender가 사용자인 경우 액터로 표현

사용자의 행위 객체 선택 값 작성 요청 시스템의 행위 객체목록 제공 행위 수행

메뉴 항목으로 식별된 행위에 대해 시퀀스 다이어그램을 작성한다. 모델링 방법 7 메뉴 항목으로 식별된 행위에 대해 시퀀스 다이어그램을 작성한다. 사용자의 액션 중심으로 객체 선택, 값 작성, 요청만 작성한다. 객체 선택을 먼저 작성하고 값 작성을 그 뒤에 요청을 마지막에 작성한다. 값들은 모두 묶어서 ‘내역’으로 해서 작성한다. 부분 내역을 작성할 때는 전체 내역 작성과 분리해서 작성한다.

실습 8) 상호작용 시나리오 작성

행위수행 방법 상호작용 시나리오에 수행방법을 텍스트로 작성 수행방법모델링을 통해 작성

수행방법을 설명에 클래스가 요구되는 경우 클래스를 작성한다. 선택해야 할 것과 작성해야 할 것을 배경색 등으로 구분한다. 모델링 방법 8 수행방법을 설명에 클래스가 요구되는 경우 클래스를 작성한다. 선택해야 할 것과 작성해야 할 것을 배경색 등으로 구분한다.

실습 9) 텍스트로 수행방법 작성

객체의 책임 오퍼레이션 메소드(Method) 객체가 무엇을 해야 하는가? 객체의 행위 객체가 어떻게 책임을 수행하는가? 객체의 행위 수행방법

객체가 책임을 수행하려면 생성되어야 함 객체가 생성된 후에 수행 객체 생성, 갱신, 삭제는 객체의 책임이 아님 부분에 대한 생성, 갱신, 삭제는 전체의 책임 이 경우에도 생성, 갱신, 삭제는 외부에서 하고, 전체에 속한 부분의 추가, 제거(add, remove)만 다룸

객체의 책임 식별 전체 부분 행위 식별 수행방법 명세 부분 식별 책임 할당 (부분행위 식별)

행위수행방법 명세 도메인 전문가에 의해 표현 컵에 물 따르기 물병 뚜껑을 연다. 물병에서 물을 따라 컵에 물을 담는다. 도메인 전문가가 다루는 대상(자원)들이 수동적인 것으로 표현 컵에 물 따르기 물병 뚜껑을 연다. 물병에서 물을 따라 컵에 물을 담는다.

객체 모델 모든 객체는 능동적으로 자신의 책임을 수행

객체에 책임 할당 도메인 전문가 행위를 컬레보레이션 객체로 표현하고 객체를 다루어 하던 책임을 객체에 할당 뚜껑열기 물따르기 컵에 물 따르기 물병 뚜껑을 연다. 물병에서 물을 따라 컵에 물을 담는다. 물담기 컵에 물 따르기 물병.뚜껑열기 물병.물따르기 컵.물담기 객체지향적 사고

도메인 전문가를 통해 명세한 수행방법을 한 클래스를 대상으로 하는 수준까지 분할해서 작성한다. 모델링 방법 9 도메인 전문가를 통해 명세한 수행방법을 한 클래스를 대상으로 하는 수준까지 분할해서 작성한다.

실습 10) 수행방법모델링

의존 연관과 의존 의존과 인터페이스 의존성 주입(Dependency Injection) 연관은 협력해야 대상이 정해지면 반드시 그 객체와만 협력해야 함 의존은 협력에 참여해서 요구되는 역할만 할 수 있으면 어떤 객체라도 상관하지 않음 의존은 정보구조에 중점을 두는 도메인 모델에서는 등장하지 않음 의존과 인터페이스 인터페이스는 공통의 역할을 나타내는 개념 의존은 역할과 관련됨으로 직접적인 클래스에 의존하기 보다 인터페이스에 의존하도록 해야 함 의존성 주입(Dependency Injection) 직접적으로 의존하지 않도록 의존성 주입

End of Document