APPLYING UML AND PATTERNS PART I. Introduction Chapter 1

Slides:



Advertisements
Similar presentations
© Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models 배재대학교 멀티미디어 정보공학 연구실 발표자 : 이 상 조
Advertisements

학습목표 UML 소개 2010 학년도 2 학기. 학습목표 2 이번 시간의 학습목표 이번 시간을 정상적으로 이수하면 우리들은 … UML(Unified Modeling Language) 의 개념을 설명할 수 있다. UML 의 구성요소를 설명할 수 있다.
컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
교재: J. Schmuller 저/곽용재 역, 초보자를 위한 UML 객체지향설계, 제3판, 정보문화사, 2006
Chapter 2 정보시스템 아키텍처 (IS Architecture)
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
(1.1 v) 엔트리교육연구소 엔트리 카드게임 설명서.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Power Java 제3장 이클립스 사용하기.
최윤정 Java 프로그래밍 클래스 상속 최윤정
Ch.07-5 xml-rpc 사용하기 김상엽.
제 4 장 관계 학기 소프트웨어설계.
Introduction To Computers
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
컴퓨터 프로그래밍 기초 [Final] 기말고사
UML (Unified Modeling Language)
데이터베이스 및 설계 금오공과대학교 컴퓨터공학부 이 이섭.
2장. UML 기본 개념.
Object Oriented Programming
OMT와 UML 1.
윤 홍 란 4 장 클래스 작성 윤 홍 란
C++ Programming: Sample Programs
Error Detection and Correction
컴퓨터과학 전공탐색 배상원.
시스템 분석 및 설계.
Power Java 제14장 배치 관리자.
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
자바 5.0 프로그래밍.
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
Method & library.
Chap 6.Assembler 유건우.
인터넷응용프로그래밍 JavaScript(Intro).
소프트웨어 공학의 개요.
소프트웨어 공학 (Software Engineering)
소프트웨어공학 윤일노 STARuml Guide 소프트웨어공학 윤일노
컴퓨터소프트웨어설계및실험 년 1학기 실험계획 -.
‘Chess’를 읽고 컴퓨터공학부 배상수.
제1장 생산공정 개요.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
C++ 프로그래밍 2010년 봄학기 C++ 세계에 오신 걸 환영합니다!!.
제 5 장 집합연관, 복합연관, 인터페이스, 실체화 (교재: J. Schmuller 저/곽용재 역, 초보자를 위한 UML 객체지향설계, 제3판, 정보문화사, 2006) 학기 소프트웨어설계.
웹디자인
04. DBMS 개요 명지대학교 ICT 융합대학 김정호.
3장 구조적 분석(SSA) 방법론 한빛미디어(주).
자바 5.0 프로그래밍.
Power Java 제11장 상속.
Part 1 개요 Chapter 1 : 컴퓨터와 프로그램 그리고 자바 Chapter 2 : 자바의 환경
3장 구조적 분석(SSA) 방법론.
JA A V W. 06.
소프트웨어 중심에 존재하는 복잡성 에 도전장을 내밀다
UML과 객체지향 모델링 UML의 개요 객체지향 모델링.
주요 패턴 (한)문화방송 14 HY울릉도M 13 [ Bottom-Up ] 휴먼새내기체 12 [ Top-Down ]
충남대학교 Software Engineering Lab 김 대 엽
Flow Diagram IV While.
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
3. 모듈 (5장. 모듈).
JSP Programming with a Workbook
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
발표자 : 이지연 Programming Systems Lab.
운영체제 (Operating Systems)
Component Diagram 1.
.Net FrameWork for Web2.0 한석수
이산수학(Discrete Mathematics)  술어와 한정기호 (Predicates and Quantifiers)
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
Power Java 제14장 배치 관리자.
학부 컴퓨터공학부 교육과정 (학부) 2학년 4학년 3학년 1학년 1학기 2학기 IPP 자격과정 전공트랙
상속 (Inheritance) private 전용부분 전용부분 공용부분 공용부분 public 기본 클래스
소프트웨어 설계 및 실습 강기준.
BoardGame 보드게임 따라가기.
Presentation transcript:

APPLYING UML AND PATTERNS PART I. Introduction Chapter 1 APPLYING UML AND PATTERNS PART I. Introduction Chapter 1. Object-Oriented Analysis and Design 금오공과대학 컴퓨터공학전공

Objectives 분석과 설계의 차이점 비교 OOA/D 정의 간단한 예제로 설명 금오공과대학 컴퓨터공학부 컴퓨터공학전공

1.1 무엇을 배울 것인가? 과연 유용한가? 자바나 C++로 수준 높은 프로그램을 작성하려면? 객체지향 분석 및 설계 기술(OOA/D) well-designed, robust, maintainable한 소프트웨어 개발에 중요한 요소이다. robustness: 잘못된 환경이나 입력에 대해서도 잘못된 동작이나 이상한 결과를 내지 않는 능력 다음 기술을 적용한 OOA/D를 공부할 것임 Unified Modeling Language (UML) Patterns Unified Process (UP) 금오공과대학 컴퓨터공학부 컴퓨터공학전공

기본 개념 UML Design Patterns Unified Process 소프트웨어 모델링을 위한 표준 다이어그램 표기법 객체지향 분석 및 설계 방법이 아닌, 단지 표기법(notation)이다. 본 교재에서는, UML 적용 방법을 배울 것이다. Design Patterns 자주 발생하는 설계 문제와 그 해답을 체계적으로 표현함 Unified Process 반복적인(iterative) 개발 과정 금오공과대학 컴퓨터공학부 컴퓨터공학전공

학습할 주제들 Chapter가 많다. 그러나 내용이 적으므로 겁먹지 말자. OOA/D UML Patterns notation Topics and Skill Principles and Guidelines Requirement analysis Iterative development With UP 금오공과대학 컴퓨터공학부 컴퓨터공학전공

1.2 Assigning Responsibilities OOA/D에서 가장 중요한 능력은, 책임(responsibilities)를 소프트웨어 컴포넌트(software components)들에게 기술적으로 할당하는 것이다. 객체를 설계하고 책임을 할당하는 데 9가지 기본적인 원칙이 설명되고 적용된다. 이러한 원칙들은 Information Expert와 Creator 같은 원칙들의 GRASP라 불리는 학습 보조 장치 안에 구성된다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공

1.3 What Is Analysis and Design? 해결책(solution)보다는 문제와 요구사항(requirements)을 조사하는데 중점을 둔다. 설계(Design) 구현(implementation) 보다는 요구 사항을 실현시키는 개념적 해결책(conceptual solution)에 중점을 둔다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공

1.4 What Is Object-Oriented Analysis and Design? 분석 설계 구현 domain concept visualization of domain concept representation in an object-oriented programming language public class Book { private String title; public Chapter getChapter(int) {…} } Book title 문제 영역에서의 객체와 개념을 찾고 표현한다. 소프트웨어 객체를 정의하고, 요구사항을 실현하기 위해 그들이 어떻게 협동하는지를 정의한다. 객체들이 실제 언어로 구현된다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공

1.5 An Example Dice Game A birds-eye view of OOA/D 플레이어(Player)가 두 주사위를 던져서, 합이 7이면 이기고, 그렇지 않으면 지는 게임 A birds-eye view of OOA/D Use case: Domain Processes Domain model: Domain concepts or objects Interaction diagram: Flow of msgs between software objects Design class diagram: name, attr., method Define use cases domain model interaction diagrams Define design class diagrams 금오공과대학 컴퓨터공학부 컴퓨터공학전공

Use Case Define Use Cases 요구 사항 분석 결과는 쓰임새(Use Cases)로 표현된다. 사용자의 입장에서 시스템의 기능 및 사용 방법 등을 기술한다. Play a Dice Game A player picks up and rolls the dice. If the dice face value total seven, they win; otherwise, they lose. Player 금오공과대학 컴퓨터공학부 컴퓨터공학전공

도메인 모델(Domain Model) Define a Domain Model 객체 관점에서 도메인에 대하여 기술 개념, 속성, 관계(association) 등을 식별함 금오공과대학 컴퓨터공학부 컴퓨터공학전공

Define Interaction Diagrams 소프트웨어 객체(software object)와 그들 사이의 협동 관계(collaborations)를 기술한다. 객체 사이의 메시지 전송을 표현한다.  책임을 할당한다 :DiceGame die1:Die die2:Die play() roll() getFaceValue() roll getFaceValue() DiceGame 객체가 die1객체의 getFaceValue( ) 메소드를 호출한다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공

Define Design Class Diagrams 클래스들의 정적인 뷰(Static view)를 정의함 클래스의 속성과 메소드를 보여준다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공

그러면 코딩은? 코딩의 특징 우리는 분석 설계까지만 한다. 단순 작업 계속적으로 변경 어디까지 분석/설계해야 하는가? 열심히 한다고 잘하는 것은 아님 분석은 필수 기본 설계는 강추 상세 설계는 권장 코딩은 상세 설계의 많은 부분을 커버할 수 있다. 라이브러리, 유틸리티 상세 설계는 코딩 중에 변경될 가능성이 높다. 기준: C++가 아닌 자바로 한다고 가정했을때도 변화가 없어야 한다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공

주요 방법론 구조적 방법론 정보공학방법론 객체지향방법론 계기: 구조적 프로그래밍 언어 핵심 내용: Bottom-up  Top-down Function 및 프로세스 중심 DFD 정보공학방법론 계기: RDB 정보 즉 자료 중심: 자료는 프로세스보다 안정적 ERD 객체지향방법론 계기: 객체지향 언어 객체 = Data + Method 객체지향방법론 = 구조적 방법론 + 정보공학방법론 + alpha UML 금오공과대학 컴퓨터공학부 컴퓨터공학전공

1.6 The UML The method war UML UML Profile UML meta-model Booch, OMT, OOSE, Fusion, Coad/Yourdon UML Standard at OMG(Object Management Group), 1997 A standard for graphical notation, not methodology 소프트웨어 시스템 산출물을 specifying(명세화), visualizing(가시화), constructing(구축), documenting(문서화) 하는데 사용되는 언어 UML Profile Ex. UML EJB Profile UML meta-model 금오공과대학 컴퓨터공학부 컴퓨터공학전공

UML UML을 적용하는 3가지 방법 Agile 모델링은 스케치로서의 UML을 중요시함 개념적 관점 / 개념적 클래스 명세적 관점 / 소프트웨어 클래스 구현적 관점 / 구현 클래스 금오공과대학 컴퓨터공학부 컴퓨터공학전공

정리 소프트웨어공학의 고부가가치 교재의 주요 범위 전체 개발 프로세스의 Bird Eye View UML의 적용 방법 금오공과대학 컴퓨터공학부 컴퓨터공학전공