객체지향설계와패턴 Lecture #0: 강의소개 Eun Man Choi

Similar documents
Microsoft PowerPoint - 11_DesignPatterns(2010).ppt [호환 모드]

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

(Microsoft PowerPoint - 11_DesignPatterns\(2008\).ppt [\310\243\310\257 \270\360\265\345])

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

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

2. 강의방법 (CourseResources) 세미나 Seminar 발표 Presentation 질의응답 Q&A 초청강의 Special Lecture 현장답사 Field Trip 유인물활용 Handouts Audio/Video/TV Team Teaching 토의 / 토

PART

Part Part

£01¦4Àå-2

½ºÅ丮ÅÚ¸µ3_³»Áö

272*406OSAKAÃÖÁ¾-¼öÁ¤b64ٽÚ

객체지향설계와패턴 Lecture #14: 아키텍처패턴 Eun Man Choi

? !

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

<4D F736F F F696E74202D2031C1D6C2F72D31C2F7BDC32028B0ADC0C7C0DAB7E D20C7C1B7CEB1D7B7A1B9D6BEF0BEEE20B0FAB8F1BCD2B

Microsoft PowerPoint - MonthlyInsighT-2018_9월%20v1[1]

객체지향소프트웨어공학 6 장 아키텍처설계 2017 최은만, 객체지향소프트웨어공학

Microsoft PowerPoint - chap01-C언어개요.pptx

강의계획서 (Sylabus) 2013 학년도 2 학기 * 강의과목 교과목명 (CourseName) 한국문화를찾아서 INSEARCHOFKOREANCULTURE 언어 (Language) 영어 과목번호 - 분반 (CourseNo.-Class) 수강대상

열거형 교차형 전개형 상승형 외주형 회전형 도해패턴 계층형 구분형 확산형 합류형 대비형 상관형 (C) 2010, BENESO All Rights Reserved 2

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

교과과정표 영역과목명학점 ( 시간 ) 교과교육학 및 교과내용학 교육공학교수법 Teaching Strategies for Educational Technology 멀티미디어활용교수법 Teaching Strategies for Using Multimedia 교육공학이론 T

1 1 제 1 장 C# 의개요 1.1 소개 1.2 콘솔 / 윈폼애플리케이션 C# 개발환경 콘솔애플리케이션 윈폼애플리케이션 C# 프로그램실행과정 1.3 기본특징 자료형 연산자 배열 스트

About

PowerPoint Presentation

< C0DAC0B2C5BDB1B820BFEEBFB520B8DEB4BABEF32D33C2F720C6EDC1FD2E687770>

Architectural Design

VHDL 기초 VHDL 두원공과대학정보통신미디어계열이무영

슬라이드 1

Level 학습 성과 내용 1수준 (이해) 1. 기본적인 Unix 이용법(명령어 또는 tool 활용)을 습득한다. 2. Unix 운영체계 설치을 익힌다. 모듈 학습성과 2수준 (응용) 1. Unix 가상화 및 이중화 개념을 이해한다. 2. 하드디스크의 논리적 구성 능력

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

슬라이드 1

슬라이드 1

???德嶠짚

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

Java Programing Environment

17장 클래스와 메소드

<4D F736F F F696E74202D205B36C0E55D20BCB3B0E820B9D720B1B8C7F62E BC8A3C8AF20B8F0B5E55D>

제목

Ç×°ø¾ÈÀüÁ¤º¸³×Æ®¿öÅ©±¸Ãà¹æ¾È¿¡°üÇÑ¿¬±¸.hwp

PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

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


[Brochure] KOR_TunA

I. GoF 디자인패턴 의개요 I. GoF 디자인패턴의개요 가. 개념 소프트웨어개발시자주발생되는문제해결을위한솔루션 ( 재사용 ) 특정상황에서일반적설계문제해결을위해상호교류하는수정가능한객체와클래스들에대한설명 객체지향언어에디자인패턴을접목한 Erich Gamma, Richar



FreeBSD Handbook

2015 경제ㆍ재정수첩

untitled

MVVM 패턴의 이해

TTA Journal No.157_서체변경.indd

Microsoft PowerPoint - 권장 사양

( 부교재 ) 이은영, 복식디자인론, 교문사, 00 ( 참고문헌 ) 이경희외 명, 패션디자인플러스발상, 교문사, 차별강의 ( 실습 실기 실험 ) 내용차강의 ( 실습 실기 실험 ) 내용과및기타참고사항별시 * 강의 : 패션디자인개요. 수업계획서배부및수업방법안


Microsoft PowerPoint - 4주차_Android_UI구현.ppt [호환 모드]

<3635B1E8C1F8C7D02E485750>

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

EA0015: 컴파일러

UML의 구성과 도구

intro

2013 년도 1 학기 정보사회와컴퓨터 / 교육용프로그래밍기초 강의계획서 교과목명정보사회와컴퓨터 / 교육용프로그래밍기초이수구분및학점 / 시수균형교양, (2.0) 학점 /(2) 시간 개설학과 ( 부 ) 및학년 교육대학초등교육과 1 학년 강의시간및강의실월

2018 학년도수시 1 차모집정원내입시결과 모집단위 입학정원 수업년한 면접및실기고사점수는반영안됨 지원율 최저 수시 1 차 일반전형특별전형 ( 일반고교졸업자 ) 특별전형 ( 특성화고교졸업자 ) 내신등급 내신등급 내신등급 최초 최종 지지원최초최종원 최초 최종 최 최 최 율

UML

JAVA PROGRAMMING 실습 08.다형성

조선해양과 항공기계과 자동차과 일반고등졸업자 특성화고등졸업자 특기자 _ 영어 특기자 _ 중어 급 특기자 _ 일어 2 2 1

A G E N D A 소규모 스튜디오가 살아가는 법 Fake Magazine Out of the Ordinary cass

슬라이드 1

chap x: G입력

2 단계 : 추상화 class 오리 { class 청둥오리 extends 오리 { class 물오리 extends 오리 { 청둥오리 mallardduck = new 청둥오리 (); 물오리 redheadduck = new 물오리 (); mallardduck.swim();

슬라이드 1

C++ Programming

PowerPoint 프레젠테이션

?

2018 학년도입학전형지원및성적현황 정시 ( 일반전형 ) 의수능성적은이해를돕기위하여 3 과목백분위성적을합산한점수 ( 가산점포함 ) 임 ( 실제반영시에는합산점수 ( 가산점포함 ) 에 2/3 을곱하여 200 점으로반영함 ) 지원학과모집시기전형명모집인원지원인원지원율최고성적최

2019년도 지엠디 교육

Microsoft PowerPoint _04

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

PowerPoint 프레젠테이션

1.프레스조립도(유한대학교 이춘규교수)-완결.hwp

요약 1 요약 제 1 장사업의개요및조사방법

06 지식과 인공지능 (2)

에스디엘팜플렛-최종.cdr

밀크T 사용설명서

PRO OBJECTIVE-C DESIGN PATTERNS FOR IOS by Carlo Chung Original English language edition published by Apress, Inc. Copyright c 2011 by Apress. Korean

Microsoft PowerPoint _UML

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

쉽게 풀어쓴 C 프로그래밊

untitled

No Slide Title

* 주 ) ( 일반전형 ) 의수능성적은백분위의합 (3 과목, 300 점만점 ) 을반영한것임 조선해양과 항공기계과 자동차과 일반고등졸업자 특성화고등졸업자 특기자 ( 영어 ) 5 5

Agenda 오픈소스 트렌드 전망 Red Hat Enterprise Virtualization Red Hat Enterprise Linux OpenStack Platform Open Hybrid Cloud

gnu-lee-oop-kor-lec06-3-chap7

<BFB9BCFAB0E6BFB5C1F6BFF8BCBEC5CD5F BFB9BCFAB0E6BFB520C4C1BCB3C6C FB3BBC1F628C3D6C1BEBBF6BAAFC8AF292E706466>

JAVA Bean & Session - Cookie

1)2) 1

<4D F736F F D20C0CCBEBEC1A6BEEE5FC3A5BCD2B0B35F >

오토 2, 3월호 내지최종

Transcription:

객체지향설계와패턴 Lecture #0: 강의소개 Eun Man Choi emchoi@dgu.ac.kr

교육목표 l 강의소개 l 목표, 평가방법, 일정계획 l 설계란무엇인가? l 창의적인설계 2

강의목표 l 소프트웨어설계에기본이되는설계원리와 UML 을학습한다. l 객체지향설계에쓰이는중요한패턴에대하여공부한다. l 배운설계기법을적용하는능력을기른다. 3

강의방법 l Part 1: 강의 (100 분 ) l 10 분지난주복습과 Q&A l 80 분매주강의슬라이드를사용하여분석과설계와관련된특정한주제를설명하고토론 l 10 분실습문제또는과제설명 l Part 2: 실습과설계 (100 분 ) l 요구분석, 설계에관한실습 ( 전반부 ) l 설계과제 #1: 마이크로웨이브설계 ( 개인별 ) l 패턴에관한프로그래밍실습 ( 후반부 ) l 설계과제 #2: 자유과제설계 ( 팀별 ) 4

평가방법 l 강의출석및참여도 : 10% l 3 번의지각은 1 번의결석 l 1/5 이상결석은 F l 중간및기말시험 : 60% l 응용형 l 추가시험없음 l 과제 : 30% l 실습과제 l 설계프로젝트 5

교과서및참고서적 l 교과서 : l 최은만, UML 을활용한시스템분석설계, 생능출판사, 2010. l 에릭감마, 리처드헬름, 랄프존슨, 존블라시디스공저, GoF 의디자인패턴, 피어슨에듀케이션, 2007( 번역본 ). l l 참고서적 : l l l Headfirst 디자인패턴 Larman C., Applying UML and Patterns: An Introduction to Analysis and Design and Iterative Process, 3rd Edition, Prentice-Hall, 2004( 번역본도있음 ). Martin Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley, 2002. 데이비드토머스외, 이용원공역, 실용주의프로그래머를위한단위테스트, 인사이트, 2004. 6

강의일정 l Lecture 1: 강의소개, 설계란무엇인가? l Lecture 2: 프로젝트계획, 비즈니스목표설정, 타당성분석등 l Lecture 3: 기능적모델링 ( 사용사례 ) l Lecture 4: 구조적모델링 ( 클래스와속성, 연관, 오퍼레이션 ) l Lecture 5: 동적모델링 ( 순서다이어그램, 커뮤니케이션다이어그램, 상태다이어그램 ) l Lecture 6: 아키텍처설계 ( 설계원리, 아키텍처유형 ) l Lecture 7: 패턴의소개 l Lecture 8: 중간시험 7

강의일정 l Lecture 9: 생성패턴 (1) 팩토리, 싱글톤패턴 l Lecture 10: 생성패턴 (2) 추상팩토리, 프토토타입패턴 l Lecture 11: 구조패턴 (1) 퍼싸드, 데코레이터패턴 l Lecture 12: 구현패턴 (2) 컴포지트, 어뎁터, 프록시패턴 l Lecture 13: 행위패턴 (1) 인터프리터, 반복자, 중재자패턴 l Lecture 14: 행위패턴 (2) 옵서버, 상태, 책임체인패턴 l Lecture 15: 소프트웨어아키텍처패턴 - 아키텍처패턴이란?, 블랙보드, 브로커, PAC, 마이크로커널아키텍처패턴, 리플렉션아키텍처패턴 l Lecture 16: 기말시험 8

실습 l 실습과제 l 방법의설명 강의, 조교의설명 l Self 스터디 도구 l 개인별과제 방법의적용, 문제해결 l 내용 프로그래밍, 설계표현 l 설계과제 l UML 설계 l 작업과튜터링중심 l 개인별설계작업 l 팀별설계 9

설계의사전적정의 l 건축, 토목, 기계제작따위에서그목적 에따라실제적인계획을세워도면따위 로명시하는일. 표준국어대사전 10

과학과엔지니어링의차이 왜? 과학 지식 Need 과학 / 기술 엔지니어링 설계 프로토타입 Specification 11

설계란? l 설계에는의도 (conscious) 가있다. l 설계의중심에는사람의관심사 ( 비용, 효율, 선호도등 ) 가있다. l 설계는재료 (material) 와함께하는것이다. l 설계는창의적 (creative) 이다. l 설계는의사소통 (communication) 이다. l 설계는협동작업 (social activity) 이며협동에의한결과물을만든다. - Bringing Design to Software by Terry Winograd 12

설계란? l ( 사용자 ) 를위하여 ( 기능 ) 을가진 ( 프로젝트 ) 을만들기위하여설계 l 프로젝트 : l 사용자 : l 기능 : 무선 MP3 음악또는라디오청취자 선이꼬이는것이없음 l 기술 : 아날로그 / 디지털전자공학, 무선통신 13

창의적통찰 (creative insight) 표면아래숨어있는진실을발견 문제의정의재해석새로운개념의도입, 재조직벤치마킹 새로운아이디어의탄생 14

창의적인설계의결과 15 15

창의적인통찰 l 어떤문제와결핍이있는지해결 l 의도를가지고충분한주의를기울여라 l 문제를재해석 l 새로운개념을만나게하라. l 정보를조직화 l 강점을최대로살려라. l 성공사례를배워라. - 신병철지음, 통찰의기술 16

설계의표현 17

엔지니어링설계과정 l 필요를인식 l 문제가무엇인가? l 문제를정의 l 목표, 목적, 제한사항 l 프로젝트를계획 l 작업일정, 예산계획 l 작업의순서 l 여러가지안을고안 l 광범위한제안 l 여러가지안을평가 l 성능분석 l 최적안을결정 l 설계를구현 18

소프트웨어설계 l 상품이될대규모소프트웨어를개발하려면수많은추상적표현이필요 l 소프트웨어의구조적측면, 행위적측면, 자료적측면등여러특성에대한설계, 의사결정과문서작성이필요 l 소프트웨어설계를잘하려면 l 추상적표현을이해하고 l 설계의도를표현할수있어야 l 좋은설계 ( 패턴 ) 를많이알고있어야 19

소프트웨어제작 l 좋은소프트웨어제작의장애물 l 공장의조립과정으로생각하는잘못된인식 l 적절하지않는교육 l 한정된도구 l 응용분야와설계방법의다양함 l 소비자와제작자의의사소통의어려움 l 문제자체와작업의복잡 l 품질을관리하기어려움 20

코드와디자인 l 프로그램이좋다고설계가좋다고할수있나? l No l 코드에오류가없더라도설계가좋지않을수있음 l 고치기어려움 l 검증하기어려움 l 다시사용하기어려움 l 알아보기어려움 l 사용하기어려움 21

좋은품질을위하여고려할사항 l 모든기능이잘구현되었나?(Correctness) l 사용자가실수하였을때시스템이중단되지않는가?(Robustness) l 계좌개수의오류 l 잘못된계좌번호 l 잘못된금액 ( 정수가아닌 ) l 잘못된명령 (Stop, Quit) l 어떤메소드가무엇을하는것인지분명하지않음 (Documentation) 22

좋은품질을위하여고려할사항 l 프로그램을수정하고추가, 제거하기쉬운가? l Flexibility l 충분히빠른가? l Speed Efficiency l 기억용량요구를만족하는가? l Space Efficiency l 다른응용에사용할수있는가? l Reusability 23

설계작업 l 엔지니어링작업의핵심 l 목표로하는생산물을만들기전에경제적, 기술적, 법적등여러측면을고려하여궁리한해결책 l 설계작업의특징 l 주어진문제를알고있는이론과기술을동원하여해결하는탐구작업 l 모델이중요 l 품질을중요시하는작업이며프로덕트에대한전반적인관점이필요 l 프로덕트를완성하기위한팀작업의일부 24

소프트웨어에서의설계 l 다른엔지니어링설계와다름 l 추상적모델이더욱중요 l 무형의정보나프로그램의구조가중요 l 계속변경하고발전하므로설계도따라서발전 l 컴퓨터와관련된설계 l 하드웨어설계 모듈화, 설계와제조가정확히분리 l 소프트웨어설계 설계와구현의갭이크므로분리하기어려움 l Co-design 25

소프트웨어설계의특징 l 구현을모르면설계하기어려움 l 구현기술에따라설계하는방법이달라짐 l C 언어 자료흐름도, 모듈구조도 l Java, C++ 언어 UML l Lisp, Prolog 룰 l EJB 컴포넌트 l 소프트웨어설계 l 프로덕트를제작하는여러원리들을잘이해하고이를적용하여비전을잘표현할수있어야 26

좋은설계교육방법 l 좋은설계교육방법은? l 강의, 주입식 (?) l 토론식 l 협동작업위주 l 튜터링 l 멀티미디어 l 컴퓨터기반교육 l 27

디자인스튜디오 l 현장에서일어나는복잡한문제와다수의클라이언트, 모호한요구등을다루기위한교육방법 l 건축설계나그래픽설계, 패션디자인등에서도스튜디오스타일의강좌를운영 l 예비전문가들의창의성과기술통합력을교육 l 스튜디오강좌는프로젝트문제에대하여아이디어를내고, 논의하고직접해보고, 이를비평하는작업 28

설계패턴 l 좋은설계의조각들을이해하고기억 l 설계작업의숙어 l 사례 : 팀장 : 이번프로그램은홍길동씨가만들어보세요. 주식값이실시간으로바뀌는내용을화면에띄워야하니이번설계에는옵서버패턴을써야겠어요. 홍 : 네제가하겠습니다. 그런데옵서버패턴이뭔가요? 팀장님 팀장 : 그걸모르나요? 그걸설명하려면일일이프로그램짜는것만큼설명이필요한데 l 좋은설계사례들을보고적용하는기술을익힘 29

Questions?