Download presentation
Presentation is loading. Please wait.
1
APPLYING UML AND PATTERNS PART I. Introduction Chapter 1
APPLYING UML AND PATTERNS PART I. Introduction Chapter 1. Object-Oriented Analysis and Design 금오공과대학 컴퓨터공학전공
2
Objectives 분석과 설계의 차이점 비교 OOA/D 정의 간단한 예제로 설명 금오공과대학 컴퓨터공학부 컴퓨터공학전공
3
1.1 무엇을 배울 것인가? 과연 유용한가? 자바나 C++로 수준 높은 프로그램을 작성하려면?
객체지향 분석 및 설계 기술(OOA/D) well-designed, robust, maintainable한 소프트웨어 개발에 중요한 요소이다. robustness: 잘못된 환경이나 입력에 대해서도 잘못된 동작이나 이상한 결과를 내지 않는 능력 다음 기술을 적용한 OOA/D를 공부할 것임 Unified Modeling Language (UML) Patterns Unified Process (UP) 금오공과대학 컴퓨터공학부 컴퓨터공학전공
4
기본 개념 UML Design Patterns Unified Process 소프트웨어 모델링을 위한 표준 다이어그램 표기법
객체지향 분석 및 설계 방법이 아닌, 단지 표기법(notation)이다. 본 교재에서는, UML 적용 방법을 배울 것이다. Design Patterns 자주 발생하는 설계 문제와 그 해답을 체계적으로 표현함 Unified Process 반복적인(iterative) 개발 과정 금오공과대학 컴퓨터공학부 컴퓨터공학전공
5
학습할 주제들 Chapter가 많다. 그러나 내용이 적으므로 겁먹지 말자. OOA/D UML Patterns notation
Topics and Skill Principles and Guidelines Requirement analysis Iterative development With UP 금오공과대학 컴퓨터공학부 컴퓨터공학전공
6
1.2 Assigning Responsibilities
OOA/D에서 가장 중요한 능력은, 책임(responsibilities)를 소프트웨어 컴포넌트(software components)들에게 기술적으로 할당하는 것이다. 객체를 설계하고 책임을 할당하는 데 9가지 기본적인 원칙이 설명되고 적용된다. 이러한 원칙들은 Information Expert와 Creator 같은 원칙들의 GRASP라 불리는 학습 보조 장치 안에 구성된다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공
7
1.3 What Is Analysis and Design?
해결책(solution)보다는 문제와 요구사항(requirements)을 조사하는데 중점을 둔다. 설계(Design) 구현(implementation) 보다는 요구 사항을 실현시키는 개념적 해결책(conceptual solution)에 중점을 둔다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공
8
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 문제 영역에서의 객체와 개념을 찾고 표현한다. 소프트웨어 객체를 정의하고, 요구사항을 실현하기 위해 그들이 어떻게 협동하는지를 정의한다. 객체들이 실제 언어로 구현된다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공
9
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 금오공과대학 컴퓨터공학부 컴퓨터공학전공
10
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 금오공과대학 컴퓨터공학부 컴퓨터공학전공
11
도메인 모델(Domain Model) Define a Domain Model 객체 관점에서 도메인에 대하여 기술
개념, 속성, 관계(association) 등을 식별함 금오공과대학 컴퓨터공학부 컴퓨터공학전공
12
Define Interaction Diagrams
소프트웨어 객체(software object)와 그들 사이의 협동 관계(collaborations)를 기술한다. 객체 사이의 메시지 전송을 표현한다. 책임을 할당한다 :DiceGame die1:Die die2:Die play() roll() getFaceValue() roll getFaceValue() DiceGame 객체가 die1객체의 getFaceValue( ) 메소드를 호출한다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공
13
Define Design Class Diagrams
클래스들의 정적인 뷰(Static view)를 정의함 클래스의 속성과 메소드를 보여준다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공
14
그러면 코딩은? 코딩의 특징 우리는 분석 설계까지만 한다. 단순 작업 계속적으로 변경 어디까지 분석/설계해야 하는가?
열심히 한다고 잘하는 것은 아님 분석은 필수 기본 설계는 강추 상세 설계는 권장 코딩은 상세 설계의 많은 부분을 커버할 수 있다. 라이브러리, 유틸리티 상세 설계는 코딩 중에 변경될 가능성이 높다. 기준: C++가 아닌 자바로 한다고 가정했을때도 변화가 없어야 한다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공
15
주요 방법론 구조적 방법론 정보공학방법론 객체지향방법론 계기: 구조적 프로그래밍 언어 핵심 내용:
Bottom-up Top-down Function 및 프로세스 중심 DFD 정보공학방법론 계기: RDB 정보 즉 자료 중심: 자료는 프로세스보다 안정적 ERD 객체지향방법론 계기: 객체지향 언어 객체 = Data + Method 객체지향방법론 = 구조적 방법론 + 정보공학방법론 + alpha UML 금오공과대학 컴퓨터공학부 컴퓨터공학전공
16
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 금오공과대학 컴퓨터공학부 컴퓨터공학전공
17
UML UML을 적용하는 3가지 방법 Agile 모델링은 스케치로서의 UML을 중요시함
개념적 관점 / 개념적 클래스 명세적 관점 / 소프트웨어 클래스 구현적 관점 / 구현 클래스 금오공과대학 컴퓨터공학부 컴퓨터공학전공
18
정리 소프트웨어공학의 고부가가치 교재의 주요 범위 전체 개발 프로세스의 Bird Eye View UML의 적용 방법
금오공과대학 컴퓨터공학부 컴퓨터공학전공
Similar presentations