Microsoft PowerPoint - 08_DesignPrinciple(2010).ppt [호환 모드]

Similar documents
Microsoft PowerPoint 설계.pptx

소프트웨어공학의 이해

<4D F736F F F696E74202D205B36C0E55D20BCB3B0E820B9D720B1B8C7F62E BC8A3C8AF20B8F0B5E55D>

슬라이드 1

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

PowerPoint 프레젠테이션

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

2002년 2학기 자료구조

ICT개론2017_07

슬라이드 1

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

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

Microsoft Word - PLC제어응용-2차시.doc

<C6F7C6AEB6F5B1B3C0E72E687770>

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

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

Microsoft PowerPoint - Java7.pptx

CAN-fly Quick Manual

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

01....b

00목차

¾Ë·¹¸£±âÁöħ¼�1-ÃÖÁ¾

2007백서-001-특집

(291)본문7

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

chap x: G입력

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

제목

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

RVC Robot Vaccum Cleaner

슬라이드 1

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

Microsoft PowerPoint - es-arduino-lecture-03

PowerPoint 프레젠테이션

Microsoft Word - [TP_3][T1]UTP.docx

C++ Programming

C 언어 프로그래밊 과제 풀이

<BACFC7D1B3F3BEF7B5BFC7E22D3133B1C733C8A BFEB2E687770>


untitled

JAVA PROGRAMMING 실습 08.다형성

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

Drucker Innovation_CEO과정

감각형 증강현실을 이용한

Microsoft PowerPoint - CSharp-10-예외처리

USER GUIDE

PowerPoint 프레젠테이션

결과보고서

C# Programming Guide - Types

Contents Activity Define Real s Activity Define Reports UI, and Storyboards Activity Refine System Architecture Activity Defin

adfasdfasfdasfasfadf

BY-FDP-4-70.hwp

PowerPoint 프레젠테이션

<4D F736F F D20C1A4B3E2BFACC0E5BFA120B4EBBAF1C7D120C0CEB7C220BFEEBFB520C0FCB7AB5F >

Journal of Educational Innovation Research 2018, Vol. 28, No. 3, pp DOI: NCS : * A Study on

슬라이드 1

MVVM 패턴의 이해

중간고사

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

Edition 4(2006) Total Solution for Lightning Damages

제4장 기본 의미구조 (Basic Semantics)

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

ez-shv manual

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

Microsoft PowerPoint 웹 연동 기술.pptx

final_thesis

금오공대 컴퓨터공학전공 강의자료

IT현황리포트 내지 완

Microsoft PowerPoint - o8.pptx

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

성능 감성 감성요구곡선 평균사용자가만족하는수준 성능요구곡선 성능보다감성가치에대한니즈가증대 시간 - 1 -

[Brochure] KOR_TunA

PowerPoint Presentation

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

<4D F736F F F696E74202D2031C1D6C2F72D31C2F7BDC32028B0ADC0C7C0DAB7E D20C7C1B7CEB1D7B7A1B9D6BEF0BEEE20B0FAB8F1BCD2B

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

UI TASK & KEY EVENT

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

PowerPoint 프레젠테이션

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

윈도우시스템프로그래밍

<353420B1C7B9CCB6F52DC1F5B0ADC7F6BDC7C0BB20C0CCBFEBC7D120BEC6B5BFB1B3C0B0C7C1B7CEB1D7B7A52E687770>

6주차.key

Visual Basic 반복문

歯처리.PDF

untitled

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

DE1-SoC Board

PowerPoint 프레젠테이션

Special Theme _ 모바일웹과 스마트폰 본 고에서는 모바일웹에서의 단말 API인 W3C DAP (Device API and Policy) 의 표준 개발 현황에 대해서 살펴보고 관 련하여 개발 중인 사례를 통하여 이해를 돕고자 한다. 2. 웹 애플리케이션과 네이

Journal of Educational Innovation Research 2019, Vol. 29, No. 1, pp DOI: * Suggestions of Ways

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

1. 파일 명명규칙

Microsoft PowerPoint - a10.ppt [호환 모드]

Microsoft PowerPoint - chap05-제어문.pptx

PCServerMgmt7

PowerPoint Template

Microsoft PowerPoint - [2009] 02.pptx

Microsoft Word - src.doc

Transcription:

LECTURE 8 설계원리와구조적설계 똑똑한사람은문제를해결한다. 그러나현명한사람은문제를예방한다. 최은만, CSE 4039 소프트웨어공학

읽기 교과서 4 장설계 참고문헌 Code Complete( 제 2판 ), 스티브맥코넬, 정보문화사, 2005. Chapter 5, pp129-196. 최은만, CSE 4039 소프트웨어공학 2

설게 (Design) 이란? 최은만, CSE 4039 소프트웨어공학 3

소프트웨어설계 아키텍처는상위수준의설계이며시스템의컴포넌트와이들의커넥션에초점 상세설계는코드에더가까운수준, 즉객체, 클래스, 알고리즘, 변수들을관찰 상위수준의설계와하위수준의설계작업의차이가애매할수도있음. 동일한원리가적용됨 최은만, CSE 4039 소프트웨어공학 4

좋은설계는? 설계를움직이는힘은복잡성콘트롤 모든소프트웨어설계기술의목표는복잡한문제를단순한조각으로자르는것 성능을높이는열쇠는복잡한예외처리가아니라간결함 최은만, CSE 4039 소프트웨어공학 5

설계의목표 7 가지바람직한설계목표 1. 복잡성최소 2. 느슨한결합 (Loose coupling) 3. 강한응집력 (Strong cohesion) 4. 확장성 5. 재사용성 6. 유지보수성 7. 유연성 최은만, CSE 4039 소프트웨어공학 6

추상화의원리 복잡한문제 추상화 개념 ( 현실 ) 소프트웨어의구조를이루는계층의파악 기능추상화 입력자료를출력자료로변환하는과정을추상화 부프로그램의시그네처와기능만생각 자료추상화 자료와기능을묶어서생각 제어추상화 외부이벤트에대한반응을추상화 최은만, CSE 4039 소프트웨어공학 7

정보은닉 (information o hiding) 각모듈의자세한처리내용이시스템의다른부분으로부터감추어져있어야 각모듈이다른모듈에구애받지않고설계 인터페이스가모듈안의구체적사항을최소로반영 전역변수가없어야 모듈단위의수정, 시험, 유지보수에큰장점 모듈설계평가에기초 최은만, CSE 4039 소프트웨어공학 8

단계적분해 기능을최대한으로떼어내어생각 점차적으로구체화 상세한내역 ( 알고리즘, 자료구조 ) 는가능한뒤로미룸 추상화 I 추상화 II 추상화 III CAD system CAD softrware tasks: procedure: 2-D drawing creation; user interaction task; repeat util <drawing creation task terminates> 2-D drawing creation task; do while <digitizer interaction occurs> graphics display task; digitizer interface task; drawing file management task; determine drawing request; end. line: line drawing task; curcle: cricle drawing task;... 최은만, CSE 4039 소프트웨어공학 9

모듈화 4 1 5 2 3 6 0 1 4 2 5 1 4 3 6 2 3 5 6 문제영역시스템분해시스템구조 시스템의분해를어떻게할것인가? 한모듈의규모 이식성 모듈의응집력 (cohesion) 이높게 모듈간의결합력 (coupling) 은약하게 최은만, CSE 4039 소프트웨어공학 10

구조적설계 시스템을이루는모듈의구조를파악하는방법 모듈분해의계층적, 인터페이스지향적접근 W. Stevens, G. Myers 와 L. Constantine Functional Decomposition Design + + Criterion Design Heuristics 데이타의흐름형식에중점 (cohesion, coupling) source-transform-sink: 변환분석 (transform analysis) transaction pattern: 처리분석 (transaction analysis 최은만, CSE 4039 소프트웨어공학 11

구조적설계 ( 계속 ) 시스템템구구조도 (structure chart) 의도출 시스템을모듈단위로분할 모듈의계층적구성 모듈사이의입출력인터페이스 모듈의이름과기능 S1 S2 S3 S4 S5 S1 S4 S5 S4 S3 S1 S5 S2 Structure #1 Structure #2 S2 S3 Structure #3 최은만, CSE 4039 소프트웨어공학 12

시스템구조도 표준기호 한모듈이모듈을호출 자료흐름 ( 변수나자료구조 ) 제어흐름 ( 플래그 ) 모듈 반복선택주석달기 comment Module 최은만, CSE 4039 소프트웨어공학 13

구조적설계 ( 계속 ) 예 a Main b c A B C f a f f W X Y Z 기타사용되는기호 미리정의된모듈 ( 라이브러리 ) 입출력모듈 최은만, CSE 4039 소프트웨어공학 14

변환분석 자료의변환흐름 (transformation flow) 입력흐름 출력흐름 변환센터 변환분석은자료흐름도를입력흐름, 변환센터, 출력흐름으로분할하는과정 입력흐름 : 입력을준비하는단계 ( 입력, 검증...) 출력흐름 : 출력을위하여준비되는단계 ( 포매팅, 출력 ) 변환센터 : 실제자료가변환 최은만, CSE 4039 소프트웨어공학 15

변환분석방법 1 자료흐름도에서입력자료흐름과출력자료흐름을파악 2 중앙변환부분을식별 3 변환중심부를축으로최상위구조 (first-cut) 작성 4 각모듈의하위구조도같은방법으로분석 5 설계기준을적용하여수정, 최적화 예 : 화일안에포함된단어의개수를계산 화일이름읽음 입력흐름 화일이름화일이름검증검증된화일이름 단어개수계산 단어개수 단어개수편집 출력흐름 단어개수출력 변환센터 16 최은만, CSE 4039 소프트웨어공학

변환분석 ( 계속 ) 시스템구조도 단어계산 검증된화일이름화일이름상태단어개수 화일이름 단어개수 입력, 검증 계산 프로그램의구조 main() {... read_file(file_name, status); count_word(file_name, &word_count); display(word_count); } read_file(char* file_name, boolean status) { 단어개수... 편집, 출력 } count_word(char* file_name, boolean status) {... } display(int word_count) {... } 최은만, CSE 4039 소프트웨어공학 단어개수 17

구독자관리시스템 1 자료흐름의요소를분해 입력자료흐름, 출력자료흐름, 변환센터 구독자레코드준비 구독자레코드 출력흐름 입력흐름 만료일추출 만료일 새만료일계산 새만료일 구독자레코드변경 구독갱신기간입력 갱신기간 변환센터 레코드를화일에출력 변경레코드 최은만, CSE 4039 소프트웨어공학 18

구독자관리시스템 ( 계속 ) 구조도의최상위층작성 구독갱신시스템 구조도를상세화 구독갱신시스템 갱신정보추출 구독갱신 갱신레코드저장 갱신정보추출 구독갱신 갱신레코드저장 새구독기간입력 구독만료일준비 구독자레코드변경 레코드화일로출력 구독레코드추출 구독만료일추출 최은만, CSE 4039 소프트웨어공학 19

처리분석 처리 (transaction) 자료흐름도의한프로세스에서여러개의자료흐름이유출되는것 처리흐름 처리센터 T 처리경로 (action path) 방법 1 자료흐름도에서처리센터를식별 2 처리모듈을중심으로구조도작성 3 구조도를상세화 - 하위구조도를작성 최은만, CSE 4039 소프트웨어공학 20

설계평가기준 모듈의크기 소규모시스템 : 함수, 서브루틴 대규모시스템 : 독립프로그램 ( 하나의수행화일 ) 모듈응집력 (module cohesion) 모듈안의요소들이강한응집력을갖도록설계 모듈결합도 (module coupling) 다른모듈과의결합도가약한모듈이되도록설계 설계요령 (design heuristics) 최은만, CSE 4039 소프트웨어공학 21

모듈응집력 모듈안의구성요소들이공동의목적을달성하기위하여관련되어있는정도 목표 한모듈이단일기능을갖도록설계 < 예 > finishup : 최종보고서를출력하고, 계산결과를디스크에저장 응집력의단계 1 기능적 (functional) 모듈의기능이한문장으로떨어짐 < 예 > 판매세금계산 2 순차적 (sequential) 작업의결과가다른작업에입력 < 예 > 거래를읽고마스터화일을변경 22 최은만, CSE 4039 소프트웨어공학

모듈응집력 ( 계속 ) 3 교환적 (communicational) 동일한입력과출력을사용하는작업의모임 4 절차적 (procedural) < 예 > 출력화일을출력하고저장 같은범주에속하는일들이순서적으로수행 < 예 > restart-rtn : 총계를출력하고, 화면을지우고메뉴를뿌리고, 메뉴선택을받음 5 시간적 (temporal) 프로그램초기화 6 논리적 (logical) 유사한성격의작업을한모듈로모음 7 우연적 (coincidential) 아무관련없는작업을한모듈에모음 최은만, CSE 4039 소프트웨어공학 23

모듈결합도 모듈간의관련정도 설계목표 모듈간의결합도가낮게설계 결합의단계 1 자료결합 (data coupling) 모듈들이간단한변수를파라메터로교환 2 스탬프결합 (stamp coupling) 모듈사이에 nonglobal 자료구조를교환 3 제어결합 (control coupling) 제어용신호 (flag) 를주고받음 4 공통결합도 (common coupling) global variable 을사용 5 내용결합 (content coupling) 한모듈이다른모듈내의값을수정 최은만, CSE 4039 소프트웨어공학 24

설계요령 (design heuristics) first-cut( 최상위 ) 모듈의결합은줄이고응집은높이도록최대한노력 high fan-out 은줄이도록노력... redundancy 와 complexity 를줄이기위하여모듈의 인터페이스를점검 최은만, CSE 4039 소프트웨어공학 25

설계요령 ( 계속 ) 양파모양의구조가일반적 복잡한모듈의연결은피함 과다한깊이를가진구조도피함 모듈의영향권을그모듈의하위에둔다 < 잘못된예 > < 잘된예 > 변경된모듈 변경된모듈 영향받는모듈 최은만, CSE 4039 소프트웨어공학 26

사례 : 비디오대여점 (Level 0 변환분석 ) 최은만, CSE 4039 소프트웨어공학 27

사례 : 비디오대여점 (Level 1 변환분석 ) 최은만, CSE 4039 소프트웨어공학 28

사례 : 비디오대여점 ( 시스템구조도 ) 최은만, CSE 4039 소프트웨어공학 29