소프트웨어개발방법론

Similar documents
소프트웨어개발방법론

UML

논리적 구조 설계: 패키지도

시스템 순차도

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

03.Agile.key

Microsoft PowerPoint - se-ch06

Intro to Servlet, EJB, JSP, WS

Something that can be seen, touched or otherwise sensed

Inclusion Polymorphism과 UML 클래스 다이어그램 구조에 의거한 디자인패턴 해석

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

PowerPoint 프레젠테이션

소프트웨어개발방법론

Microsoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx

06.AnalysisModeling.key

13 Who am I? R&D, Product Development Manager / Smart Worker Visualization SW SW KAIST Software Engineering Computer Engineering 3

Microsoft Word - [2017SMA][T8]OOPT_Stage_1000 ver2.docx

ecorp-프로젝트제안서작성실무(양식3)

Microsoft PowerPoint - 1주차 UML의 구성과 도구

2Q SWG Teleweb Business Plan & 1Q Recovery Plan April 2, 2003

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

제2장객체지향분석과설계

소프트웨어 개발의 성공 열쇠 - 오브젝트 디자인

Ver. 2017SE-POS-SRS-3.0 Software Requirement Analysis for Point Of Sale System Project Team Team 6 Date Team Information 김병식 2016

MVVM 패턴의 이해

Microsoft Word - [2017SMA][T8]OOPT_Stage_1000_ docx

Software Modeling < < OOAD Stage 김정태 최정명 이낙원 송준현

Ver. 4.0 OOPT Stage 1000 <Plan and Elaboration> Version 4.0 Project Team T7 Team Date Team Information 오세욱 임현유

thesis

Convenience Timetable Design

제11장 프로세스와 쓰레드

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

SW¹é¼Ł-³¯°³Æ÷ÇÔÇ¥Áö2013

DBPIA-NURIMEDIA

슬라이드 1

DE1-SoC Board

서현수

객체들이책임을가지고협력하는것을어떻게설계할것인가? applying OO Design principles and the UML 책임을할당하고객체들사이의협력을설계하는것은, 설계시에가장중요하고창조적인작업이다. 2/55

Rose교육.ppt

유니티 변수-함수.key

Service-Oriented Architecture Copyright Tmax Soft 2005

untitled

APOGEE Insight_KR_Base_3P11

15_3oracle

IBM blue-and-white template

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

JAVA PROGRAMMING 실습 08.다형성

학습영역의 Taxonomy에 기초한 CD-ROM Title의 효과분석

PowerPoint 프레젠테이션

PowerPoint Presentation

OOP 소개

27송현진,최보아,이재익.hwp

SchoolNet튜토리얼.PDF


PowerPoint 프레젠테이션

17장 클래스와 메소드

DocsPin_Korean.pages

Microsoft PowerPoint - 06_ClassDiagram(2010).ppt [호환 모드]

A NEW CSE ATM OOPT Stage 1000 Project Team T3 Date Team Information 이원오 이재규

ISO17025.PDF

歯두산3.PDF

thesis

PowerPoint Presentation

소프트웨어공학개론 강의 7: 시퀀스다이어그램 최은만동국대학교컴퓨터공학과

Microsoft PowerPoint _UML

JVM 메모리구조

03-최신데이터

DW 개요.PDF

강의방법 (Teaching Method) 강의및실습 요소출석중간고사기말고사과제물기타 1 기타 2 기타 3 기타 4 비율 (%) 10% 30% 30% 30% 성적평가 (Grading) 만점 (Full Marks) 요소기타 5 기타 6 기타 7 기타

Contents. Phase Revise Plan --- Phase Synchronize Artifacts --- Phase 2130 Analyze Activity2131. Define Essential Use Cases --- Activity21

ETL_project_best_practice1.ppt

쉽게 풀어쓴 C 프로그래밍

03¼ºÅ°æ_2

1

07_Àü¼ºÅÂ_0922

Ver 1.0 마감하루전 Category Partitioning Testing Tool Project Team T1 Date Team Information 김강욱 김진욱 김동권

김기남_ATDC2016_160620_[키노트].key

Microsoft PowerPoint - Java7.pptx

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

제8장 자바 GUI 프로그래밍 II

- 2 -

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

PowerPoint Presentation

C# Programming Guide - Types

슬라이드 1

Design Issues

A NEW CSE ATM OOPT Stage 1000 Project Team T3 Date Team Information 이원오 이재규

<31325FB1E8B0E6BCBA2E687770>

01-OOPConcepts(2).PDF

슬라이드 1

Joseph Hwang, IBM Rational Software

PowerPoint Template

1. 서 론

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Ver. T3_DWS.UTP-1.0 Unit Testing Plan for Digital Watch System Test Plan Test Design Specification Test Cases Specification Date Team Infor

No Slide Title

제목

PowerPoint Presentation

Transcription:

OOAD 개요

Objectives 분석과설계의구분 OOA/D 의정의 간단한예시 2

학습내용 UML vs. 객체지향적으로생각하기 객체지향설계 : 원칙및패턴 사례연구 유스케이스 반복적개발,Agile 모델링, Agile UP 기타다른기술 3

Applying UML and Pattern in OOA/D OOA/D 패턴 UML 주제및기술 원칙및지침 요구사항분석 Agile UP 를사용한반복적개발 망치를가졌다고건축가가되는것은아니다 4

가장중요한학습목표 중요하고기본적인객체지향설계분석의목적은소프트웨어객체에 책임 을기술적으로할당하는것 객체를설계하고책임을할당하는 9 가지원칙 : GRASP 5

분석및설계란? 분석은문제및요구사항들을조사하는데초점을두는것이며그해결책에초점을두는것이아님. What! 설계는요구사항들을달성하기위한개념적인해결책을강조하며, 그설계에대한구현을강조하는것이아님. How! 6

객체지향분석및설계란 도메인개념 도메인개념의시각화 객체지향프로그래밍언어로표현 title Book public class Book { private String title; public Chapter getchapter(int) { } } 문제영역의객체와개념을포착 소프트웨어객체들을기술하고요구사항을수행하기위해그객체들이어떻게협력하는지를정의 설계객체를구현 7

다른예제 8

간단한예제 주사위게임시뮬레이션분석설계 두사람의경기자는 2 개의주사위를굴려두수를얻도록요청한다. 시스템은두사람의결과를비교하여, 다음의규칙으로승패를결정하여출력한다. 두수가같으며높은숫자일경우승리 두수의합이더큰경우승리 A birds-eye view of OOA/D 유스케이스정의 도메인모델정의 인터랙션다이어그램정의 설계클래스정의 9

사용사례작성 - 요구분석 요구분석은쓰임새들로기술될수있는관련영역의프로세스를기술하는것을포함. Play a Dice Game Player UC: 주사위경기하기 1. 두경기자는시스템에게주사위두개를던지도록요구한다. 2. 시스템은경기자에게윗면의값들을보여주고승패를알려준다. 3. 시스템은게이머들에게다시할것인지를묻고 1 부터반복하거나종료한다. 유스케이스정의 도메인모델정의 A player 인터랙션 picks up and 설계 rolls 클래스 the 다이어그램 dice. If the dice 정의 face value 정의 total seven, they win; otherwise, they lose. 10

문제영역분석및표현 객체지향분석은영역객체를분류하는관점에서관심영역을기술하는것과연관 Define use cases Define domain model Define interaction diagrams Define design class diagrams Player -name 2 1 Plays 1 Rolls 12 2 Includes Die -facevalue 2 DiceGame 1 11

상호협력관계표현 12

Define Interaction Diagrams 객체지향설계는소프트웨어객체들과그들간의협력관계를정의하는것. Define use cases Define domain model Define interaction diagrams Define design class diagrams :DiceGame die1 : Die die2 : Die play() roll() fv1 := getfacevalue() roll() fv2 := getfacevalue() 13

Define Design Class Diagrams Static view of the class definitions Define use cases Define domain model Define interaction diagrams Define design class diagrams DiceGame Die -die1 : Die -die2 : Die +play() 1 2 -facevalue : int +roll() +getfacevalue() : int 14

도메인모델 vs. 구현모델 -name Player Rolls 1 2 Die -facevalue 1 Plays 1 Includes 2 DiceGame 1 DiceGame -die1 : Die -die2 : Die +play() 1 2 Die -facevalue : int +roll() +getfacevalue() : int 15

1.6 UML 이란무엇인가? OMG (Object Management Group) 에서정의한객체표현방법 UML 적용하는세가지방범 스케치로서의 UML 청사진으로서의 UML ( 코드의표현, 설계의표현 ) 프로그래밍언어로서의 UML : 코드자동생성 UML 적용하는세가지관점 개념적모델관점 명세 ( 소프트웨어 ) 관점 구현관점 16

UML 의서로다른관점들 DiceGame 1 Includes 2 facevalue Die Conceptual Perspective (domain model) Raw UML class diagram notation used to visualize real-world concepts. die1 : Die die2 : Die play() DiceGame 2 Die facevalue : int getfacevalue() : int roll() Specification or Implementation Perspective (design class diagram) Raw UML class diagram notation used to visualize software elements. 17

UML1 과 UML2 1997 년 UML 1.0 발표 2005 년 UML 2.0 -> 시스템공학적관점까지확장 OMG (Object Management Group) 의객체표현에관한세계표준 현재에도계속해서발전중 OOA/D 의역사 1960/1970: Simula, Smalltalk 1980 Grady Booch: Object-Oriented Design Ivar Jacobson Jim Rumbaugh 1997: UML1.0 http://www.omg.org http://www.uml.org 18

Larman s Process 1. Use Cases 2. Conceptual Model 3. System Sequence Diagram 4. System Contracts 5. Collaboration Diagram 6. Class Diagram 7. Code 19

Homework#1 UML 도구를사용하여주사위게임에쓰인 UML 도해를그리고, 구현모델을 C++ 또는 Java 를통해구현하여라. 단, 주사위의 roll() 함수에서랜덤넘버를생성할때 rand() 함수를사용하여라. Java 또는 C++ 프로그래밍을위한통합개발도구는무엇을사용하고있는가? UML 그리기도구는어떤것들이있는지조사하시오. 20

The UML The method war; Booch, OMT, OOSE, Fusion, Coad/Yourdon Standard at OMG 1997 A standard for graphical notation, not method 21

Further Reading Summary of UML UML Distilled, by Martin Fowler Introduction to UP The Rational Unified Process, by Philippe Kruchten Detailed discussion of UML The Unified Modeling Language Reference Manual and The Unified Modeling Language User Guide, by Three Amigo Current version of UML www.omg.org www.celigent.com/uml Software pattern Design Pattern, by Gamma, Helm, Johnson, and Vlissides 22

Case Study: POS

The NextGen POS System 판매시점관리 (Point-Of-Sale) 시스템 POS 시스템은주로소매점에서사용되는매출등록과결재처리를위한애플리케이션이다. 시스템은컴퓨터나바코드스캐너와같은하드웨어부품과시스템에서동작하는소프트웨어로구성된다. 시스템은제 3 자가제공하는세금계산기나재고관리애플리케이션같은다양한서비스애플리케이션과인터페이스한다. 이시스템은비교적고장으로부터안전해야한다. 즉, 재고관리애플리케이션같은원격서비스가일시적으로사용불능이더라도, 업무가중단되어서는안된다. POS 시스템은점차적으로다양한클라이언트측의터미날과인터페이스를지원해야한다. 여기에는신 - 클라이언트웹브라우져, 자바 Swing 그래픽사용자인터페이스를사용하는일반적인개인용컴퓨터, 터치스크린, 무선 PDA 등이포함된다. 더욱이, 우리는상업적인목적으로 POS 시스템을만들고있다. 우리는시스템을각기다른업무규칙과요구사항을갖고있는고객에게판매할것이다. 그러므로, 우리는유연성과변형성을제공해주는매커니즘이필요할것이다. 우리는반복적인개발전략에따라, 요구사항, 객체지향분석과설계, 구현을수행하게될것이다. 24

Architectural Layers and Case Study Emphasis interface The FOO Store Item ID _ X minor focus Quantity Enter Item And so on explore how to connect to other layers application logic and domain object Sale Payment primary focus of case study explore how to design objects technical Service object Log Persistence Facade secondary focus explore how to design objects 25

The Book s Strategy Iterative learning and development core functions Iteration 1 Introduces just those analysis and design skills related to iteration one. Iteration 2 Additional analysis and design skills introduced. expand the functionality of the system Iteration 3 Likewise. 26

Agile UP Business Modeling date... Sale Sample UP Artifact Relationships Domain Model 1 1..* Sales LineItem... quantity... Requirements Cashier Process Sale Use Case Diagram Operation: enteritem( ) Post-conditions: -... Operation Contracts Use-Case Model use case names system operations : Cashier objects, attributes, associations Process Sale 1. Customer arrives... 2. Cashier makes new sale. 3.... Use Case Text system events make NewSale() enteritem (id, quantity) : System System Sequence Diagrams scope, goals, actors, features terms, attributes, validation non-functional reqs, quality attributes Vision Glossary Supplementary Specification requirements : Register Design Model : ProductCatalog : Sale Design enteritem (itemid, quantity) spec = getproductspec( itemid ) addlineitem( spec, quantity ) 27

객체설계로전이 (Transition to Object Design)

Objectives 동적 / 정적객체설계모델링을이해한다. 다이어그램을그리기위해 Agile 모델링또는 UML CASE 도구를사용해본다. 29

소개 일반적인객체설계방법 1. 코드 (code): 코딩하면서동시에설계하기 ( 자바, C#), 리팩토링 (refactoring) 을같이하면이상적. 정신적인모델에서코드로. 2. 그리고난후코드화하기 (draw, then code) : UML 다이어그램을화이트보드나 UML CASE 도구를이용하여그림. 그리고, 이를개발도구 (Eclipse,Visual Studio 등 ) 텍스트코드로작성한다. 3. 그림만그리기 (only draw): CASE 도구는다이어그램만그려주면코드를생성한다. 그린후코딩 방법이가장적절 현재로선가능한간단하게그린후코드로바꾸는것이 Agile 방법론에서사용됨 30

1. Agile 모델링과간단하게 UML 그리기 Agile 모델링 다이어그램을그리는오버헤드를가급적줄이면서문서화보다는의사소통을위해모델링한다! 도구 화이트보드또는흰색접착용지 마커펜, 디지털카메라, 프린터 민첩한모델링은다음을포함 다른사람과함께모델링한다. 여러모델을병렬로생성한다. 즉, 교류도를 5 분간생성하고다른벽면에는이를반영한클래스도를 5 분간그린다. XP Agile 방법론 흰색접착용지 ( 또는화이트보드활용 ) 이를디지털카메라로찍어웹 ( 예 :wiki (www.wiki.org)) 에업로드한다. 31

2. UML CASE 도구 CASE (Computer Aided Software Engineering) 도구도매우유용 무료에서부터수천만원짜리까지 선택가이드라인 Eclipse 나 Visual Studio 같은대중적인텍스트기반 IDE 와같이사용할수있는 ( 연동되는 ) UML CASE 도구를선택하라. 클래스다이어그램뿐만아니라인터랙션다이어그램까지역공학을할수있는 UML 도구를선택하라. 대부분, IDE 에서잠깐코딩하고이를역공학버튼을눌러 UML 그림을살펴봄. 벽을사용하는 Agile 방법과도구를사용하는방법론은상호보완적 32

3. 코딩전에 UML 을그리는데소요되는시간 가이드라인 3 주정도의타임박스를가진반복개발일경우, 초기객체설계중어렵고창조성이필요한부분을위해 UML 로벽에그리거나 CASE 도구를이용해몇시간에서길어도하루정도의시간을보내라. 만약스케치를한다면디지털카메라를사용하여사진을찍고인쇄하며, 만들어진 UML 다이어그램을사용하여남은기간에코딩으로전환해본다. 하지만코드의마지막설계에는개선될수있음을인정한다. 늘어나는클래스들 코딩된것것을역공학하여인쇄한다음계속설계한다. 33

4. 객체설계하기 : 정적모델링과동적모델링이란? 정적모델 : 클래스도 객체의속성과연산, 객체사이의연관 동적모델 : 순차도 / 협력도 객체들간의상호작용 ( 호출순서 ) 34

동적객체모델링 필요한객체, 객체간의상호작용식별 가이드라인 클래스도에집중하기보다는인터랙션다이어그램을위해시간을많이보낸다. 이가이드라인을무시하는것은매우흔하지만 좋지않는실행기술 이다. 책임주도설계 (RDD: Responsibility-Driven Design) 와 GRASP (General Guideline for Responsibility Assignment Software Pattern) 원칙 UML 순차도 ( 협력도 ) : 순차도, 협력도 == 인터랙션다이어그램 상태도 (State Machine Diagram) 활동도 (Activity Diagram) 35

정적객체모델링 UML 클래스도사용 먼저동적모델을한후에클래스도작성 Agile 방법론 : UML 클래스도와인터랙션다이어그램을병렬로작성 패키지도, 배치도를병행해서사용 패키지도 : 클래스를군으로분류 배치도 : 물리적인위치를표시 36

5. UML 표기기술과비교한객체설계기술의중요성 객체설계기술 vs. UML 표기기술 UML 다이어그램은해당설계에대한의사결정내용이반영된다. 객체설계기술은 UML 다이어그램을어떻게그리는가를아는것이아니라, 무엇을그리는가에대한것을아는것이다. 근본적인객체설계는다음과같은지식이요구된다. 책임할당의원칙 디자인패턴 37

6. 기타객체설계기법 : CRC 카드 Class Responsibility Collaboration 카드 Memo Card 를사용 Roll Playing 38

CRC 카드의네가지작성예 39