ch20-설계문서작성, pseudo code, sequence diagram, class...

34
Advanced Networking Tech. Lab. Yeungnam University (YU-ANTL) 설계문서작성 교수 김 영 탁 ch 20 - 12 요구 사항 분석 시스템 개발자는 사용자들의 요구사항을 만족시키기 위하여 하드웨어 및 소프트웨어 시스템 설계 및 구현 () 1 Km 거리에 200Kbps급 데이터를 전송할 수 있는 양방향 무선 데이터 통신모듈을 개발 z 어떤 무선 통신 채널 (: 2.4GHz 또는 900MHz)을 사용할 것인가 ? z 관련 하드웨어 모듈/Chipset? 사용가능한 임베디드 프로세서는 ? z 무선 통신 채널을 제어하고 관리하기 위한 운영체제 (OS)? (: Embedded Linux, uC/OS-III) z 무선 통신 채널의 데이터 전송 프로토콜은 ? (: stop & wait, sliding window) 요구 사항 명세서 (spec) z 사용자의 요구 조건을 만족하도록 시스템 하드웨어 및 소프트웨어 기능 및 제약 조건, 성능 목표 등을 포함

Upload: others

Post on 07-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 12

요구 사항 분석

시스템 개발자는 사용자들의 요구사항을 만족시키기위하여 하드웨어 및 소프트웨어 시스템 설계 및 구현(예) 1 Km 거리에 200Kbps급 데이터를 전송할 수 있는양방향 무선 데이터 통신모듈을 개발

어떤 무선 통신 채널 (예: 2.4GHz 또는 900MHz)을 사용할 것인가 ?관련 하드웨어 모듈/Chipset은 ? 사용가능한 임베디드 프로세서는 ?무선 통신 채널을 제어하고 관리하기 위한 운영체제 (OS)는 ? (예: Embedded Linux, uC/OS-III)무선 통신 채널의 데이터 전송 프로토콜은 ? (예: stop & wait, sliding window)

요구 사항 명세서 (spec)사용자의 요구 조건을 만족하도록 시스템 하드웨어 및소프트웨어 기능 및 제약 조건, 성능 목표 등을 포함

Page 2: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 13

기능블록다이어그램(Functional Block Diagram)

전체 시스템의 기능 블록 (하드웨어, 소프트웨어 모두포함) 을 표현User A (Client mode: Account User or Follower)

Input Messageusing MFC GUI

Display received Message

using MFC GUI

Simple Twitter Client

SendMsg()- create AppPDU- calculate checksum- enQueue()

ThreadSendPDU()- deQueue()- SendTo()- delete Acked PDUs- retransmit time-out PDUs

TxQueue

SendTo() RecvFrom()

ThreadRecvPDU()- RecvFrom()- verify checksum- enQueue()

RxQueue

ThreadReassemblePDU()-deQueue() -displayMsg()

Datagram UDP Socket

Tx Rx

Flow & Error

Control

ACK

StreamApp

ThreadTimerTCB

wnd, rwnd,cwnd,accmAck,elps_t,SeqNo,

User B (Server mode)

Receive Message, Classify Message,and multi-cast or uni-cast message

Simple Twitter Server

SendMsg()- create AppPDU- calculate checksum- enQueue()

ThreadSendPDU()- deQueue()- SendTo()- delete Acked PDUs- retransmit time-out PDUs

TxQueue

SendTo() RecvFrom()

ThreadRecvPDU()- RecvFrom()- verify checksum- enQueue()

RxQueue

ThreadReassemblePDU()- deQueue() - displayMsg()

Datagram UDP Socket

Tx Rx

Flow & Error

Control

ACK

StreamApp

ThreadTimerTCB

wnd, rwnd,cwnd,accmAck,elps_t,SeqNo,

Page 3: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 14

Functional Block Diagram (기능블록다이어그램)하드웨어 및 소프트웨어 기능 블록을 모두 포함기능블록 단위

Sub-system: e.g.) 1:1 chatting messaging subsystem Module: e.g.) SimpleTwitterClient, SimpleTwitterServer, StreamApp, DatagramUDPSocketUnit: sendMsg(), ThrdSendPDU(), ThrdRecvPDU(), ThrdReassemblePDU(), sendTo(), recvFrom()

각 기능블록간의 인터페이스를 표시기능블록도의 기능블록은 Sequence Diagram에서 interaction의 기준단위가 됨기능블록간의 interaction의 예

H/W 기능블록 <-> H/W 기능블록: 하드웨어 전기신호S/W 기능블록 <-> H/W 기능블록: Control register setting, status register readingS/W 기능블록 <-> S/W 기능블록: 함수 호출

Page 4: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 15

Modeling as a Design Technique

Modelingtesting a physical entity before building itcommunication with customersVisualization: e.g., storyboards of moviesReduction of complexity

Abstractiona selective examination of certain aspects of a problemgoal of abstraction is to isolate those aspects that are important for some purpose and suppress those aspects that are unimportantpseudo code of functional module

Three Modelsclass model: describes the structure of objects in a system -> Class Diagraminteraction model: describes interactions between objects -> Sequence Diagramstate model: describes those aspects of objects concerned with time and the sequencing of operations -> State Transition Diagram

Page 5: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 16

UML (Unified Modeling Language)

UML is a language forvisualizingspecifyingconstructingdocumenting: requirements, architecture, design, source code, project plans, tests, prototypes, releases

UML diagramsclassesinterfacessequence, collaborationsuse cases

Page 6: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 17

Design of Classes

Define ClassesDefine classes for Major functional modulesClass in appropriate size: not too large, not too small

Examples of classes in StreamAppSimpleTwitterStreamAppStreamAppPDURingBufferListNodeTransmissionControlBlock(TCB)SocketUDP

Page 7: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 18

Class designAttributesMethodsinheritancecontainment

Class Diagram

TempSensor

+curTemp: Float#notiThreshold: Int-pollingPeriod: Int

+reset()#setNotiThreshold()-setPollingPeriod()

class Name

Attributes (Data Members)+ : public attributes# : protected attributes- : private attributes

Operations (Member Functions)+ : public method# : protected method- : private method

Page 8: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 19

Example of Modeling a Schema with UML

Schoolname: Nameaddress: Stringphone: Number

addStudent()removeStudent()getStudent()getAllStudent()addDepartment()removeDepartment()getDepartment()getAllDepartment()

Departmentname: Namelocation: Stringphone: Number

addFaculty()removeFaculty ()getFaculty ()getFaculty ()

Facultyname: Nameoffice: Stringphone: Number

Coursename: NamecouseID: Number

Studentname: NamestudentID: Number

1 1..*

Has

0..1

0..1

chairperson

1..*

1..*

1..*

1..*

AssignedTo

1..**

Teaches

* *

Attends

*

1..*

Member

Page 9: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 20

Class relationships, inheritance, containments (1)StreamAPP Twitter Server

Follower_Nodefollower_number : intstatusFlags : unsigned shortfollower_data : struct follwer

Follower_Node()~Follower_Node()getfollower_number()getstatusFlags()getfollower_data()Next_followerNodeprt & Pre_followerNodeprt

ListNodeseqNo : unsigned shortstatusFlags : unsigned shorttimeout : unsigned intdataSize : intdataPtr : char*

ListNode()~ListNode()getseqNo()getstatusFlags()gettimeout()getdataSize()getdataPtr()

NextNodeptr & PreNodeprt

StreamAppPDUuchType : unsigned charuchStreamid : unsigned charushSequenceNumber : unsigned shortushACK : unsigned shortACK : unsigned charSYN : unsigned charPUSH : unsigned charunused : unsigned charLength : unsigned charwindowSize : unsigned shortChecksum : unsigned shortuserData : unsigned char*

Follower_tableMyaddress : SOCKADDR_INMyprot : unsigned shortMyid : CStringFollowercount : int

getnewfollower()Follower_table()~Follower_table()enFollower()deFollower()Delete_From_Follower_table()isFollower_Empty()isFollower_Full()

RingBufferringsize : intqueueLength : int

getnewListNode()RingBuffer()~RingBuffer()enQueue()deQueue()DeleteFromBuffer()isQueueEmpty()isQueueFull()

sockUDPm_iSenderAddrSize : intm_chBuf : char[MAX]s_wsaData : WSADATAm_ushPort : unsigned shortm_SenderAddr : SOCKADDR_INm_RecvAddr : SOCKADDR_IN

init()RecvFrom()SendTo()SockUDP()~SockUDP()

CSimpleTwitterDigm_str_LoginputOutput : CString

PrintReceivedMessage()<<virtual>> PreTranslateMessage()<<virtual>> OnInitDialog()<<afx_msg>> Onpaint()

StreamAPPTwitterServer

StreamAPPTwitterServer()<<virtual>> ~StreamAPPTwitterServer()Verifychecksum_16()ActiveOpen()<<static>> TimerThreadProc()<<static>> RecvThreadProc()<<static>> SendThreadProc()Close()makePDU()Timecheck()makeAckPDU()initStreamAppSess()ConfigStreamAppSess()CloseStreamAppSess()AddUser()DeleteUser()

Page 10: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 21

Class 설계 (1)

Class RingBuffer

1. Data Members (Attributes)

Accessspecifier

Attribute Description

private int ringSize • capacity of ring buffer (maximum number of packets that can be stored in the ring buffer)

• used by

private int queueLength

Page 11: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 22

Class 설계 (2)

2. Member Functions (Behaviors)

Accessspecifier

Member function name

Input arguments/ return data

Description

public

void enQueue(Pkt * pPkt,int numPkt

)

Pkt* pPkt• input arguments• pointer to a buffer that contains a packet

int numPkt • number of packet to be transmitted

void • no return data

publicPkt * deQueue(

void)

void • no input argument

Pkt* • return a pointer to packet

public

boolean isQueueEmpty(

void)

void • no input argument

boolean• return data type• true: Queue is empty; • false: Queue is not empty

Page 12: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 23

Sequence Diagram (순서도)

Necessary sequence diagram in StreamAppPassive Session Open: server side of SimpleTwitterActive Session Open: client side of SimpleTwitterSession Close: requested by client side or server sideMessage Transmission:

AppPDU from A to B: processing in sender side, processing in receiver sidemanagement of ACK counter at receiver for piggy-back or ACK message ACK from B to A: processing in PDU receiver side, processing in PDU sender side

Flow Control: AppPDU from A to B, manage ACK counter from B to A, send piggy back ACK or ACK message from B to A, Adjust wnd(window size) by rwnd (ACK) and cwndError Control: duplicate ACKs for out-of-order packet arrival, fast retransmit, retransmit at time out Congestion Control: Adjust cwnd at duplicate ACKs, Adjust cwnd at time out

Page 13: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 24

Sequence Diagram : Session Open(1) SYN : Client->Server

Page 14: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 25

Sequence Diagram : Session Open(2) SYN+ACK : Server->Client

Page 15: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 26

Sequence DiagramSequence diagram에서는 기능블록간의 상호 연동 (interaction)을 표시함S/W 기능블록으로 화살표가 도착하는 경우해당 S/W 기능블록의 함수 호출이 이루어 지며, 해당 S/W 기능블록 (예: C 프로그램 모듈, C++ Class)에 해당 함수가지정되어 있어야 하며, 관련 input arguments가 정확하게정의되어있어야 함

Sequence diagram에서 각 주요 기능의 처리 절차를 확인할 수 있으며, 관련 모듈/객체의 설계에서 해당 멤버 함수들과 데이터 멤버들이정확하게 설계되어 있는지를 확인할 수 있음

Page 16: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 27

State Transition Diagram (상태천이도)

State transition diagram of a Stream APP PDUObject (객체)의 상태 변화에 대한 설계어떤 object가 어떤 함수 호출에 의하여 어떤 상태로 변화하는 지에대하여 설계Object의 생성에서 부터 소멸에 까지의 전 과정이 포함되어야 함C/C++ 프로그램의 동적 메모리 할당에서 언제 메모리가 할당되는지, 언제 메모리가 반납되는지에 대하여 정확하게 관리될 수 있어야memory leak 문제를 해결할 수 있음

start

stop

Instantiated EnQueued

TransmittedDeleted

timeout() / retransmission

SendMsg() enQueue()

deQueue() /transmission

Ack()

Page 17: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 28

함수의 내부 알고리즘 설계

함수의 내부 실행 알고리즘각 함수 (thread 포함)는 지정된 기능을 수행하기 위하여 적합한자료구조를 사용하며, 알고리즘에 따라 순차적으로 수행각 함수에서 실행되는 알고리즘의 설계에 따라 성능에 큰 차이가날 수 있음

예) 100,000개 이상의 데이터 sorting에서 bubble sorting 방식과selection sorting 방식의 성능 차이예) 100,000개 이상의 데이터가 저장되어 있고, 동적으로 새로운데이터가 추가되거나 삭제되는 환경에서 전체 데이터를 순서에 따라sorting된 상태로 유지하여 신속하게 search 기능이 실행되어야 하는경우에서 이를 linked list로 관리하는 방식과 binary search tree로관리하는 방식의 성능 차이

Page 18: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 29

알고리즘의 개발

프로그램 실행에서의 핵심적인 골격 (skeleton)을 정리어떤 단계를 밟아서 어떤 순서로 작업을 처리할 것인지를 설계순서도와 의사 코드 (pseudo code)를 표현 도구로 사용알고리즘은 실제 프로그램 구현에서 사용되는 프로그래밍 언어 (예: C, C++, Java)에 제한 받지 않음알고리즘은 원하는 결과를 얻기 위하여 밟아야 하는 단계에집중적으로 초점을 맞추는 것알고리즘과 함께 사용될 자료구조 (data structure)가 중요

프로그램을 작성하기 전에 먼저 알고리즘을구상합니다.

Page 19: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 30

알고리즘을 만드는 방법

문제를 한 번에 해결하려고 하지 말고 더 작은 크기의 문제들로 분해한다.

문제가 충분히 작아질 때까지 계속해서 분해한다.

(예) 주어진 정수 k가 소수(prime)인가 아닌가를 판별하는 알고리즘을 만들어보자.

문제: 주어진 정수 k가 소수인지를 판별하라

STEP 1: 정수 k의 약수의개수를 구한다.

STEP 2: 약수의 개수가 2이면 소수이다.

STEP 1-1: 정수 k를 1로나누어서 떨어지면 약수

의 개수를 증가

STEP 1-2: 정수 k를 2로나누어서 떨어지면 약수

의 개수를 증가

STEP 1-k: 정수 k를 k로나누어서 떨어지면 약수

의 개수를 증가

...

Page 20: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 31

알고리즘의 표현

1. 영어와 국어와 같은 자연어 (natural language)2. 순서도(flowchart)3. 의사 코드(pseudo-code)

예제: 숫자들의 리스트에서 최대값을 구하는 문제컴퓨터앞에바로 앉지말고 알고리즘을 구상하여야 합니다.

12 3526 3 189

122635

노트

최대값

Page 21: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 32

순서도 (flow chart)

프로그램에서의논리순서 또는 작업순서등을 그래픽으로표현하기 위한 형식알고리즘이 복잡하면기술하기가 힘들어진다.

Page 22: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 33

의사 코드 (pseudo code)

자연어보다는 더 체계적이고 프로그래밍 언어보다는 덜엄격한 언어로서 알고리즘의 표현에 주로 사용되는 코드

Simplified list of instructions to show the overall process of algorithmnot following the details of programming languagethe skeleton of the algorithm should be shown

Page 23: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 34

Pseudo code의 예: 주어진 숫자 목록 (list)에서 제일 큰 값 찾기

Procedure FindLargest()1: int dataArray[0..N-1] // array of data with N elements2: int largest;3: int index = 0;4: largest = dataArray[index];5:6: while (index < N) {7: if (largest < dataArray[index])8: largest = dataArray[index];9: index = index + 1;10: } // end while11:12: printout largest;13: end // end of Procedure FindLargest()

Page 24: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 35

Source Coding

알고리즘의 각 단계를 프로그래밍 언어를 이용하여 기술어떤 프로그래밍 언어로도 가능알고리즘을 프로그래밍 언어의 문법에 맞추어 기술한 것을 소스프로그램(source program)소스 프로그램은 주로 텍스트 에디터나 통합 개발 환경을 이용하여작성(Q) 알고리즘 개발과 코딩 중 어떤 것이 더 어려울까?

드디어 코딩을 시작합니다.

(A) 알고리즘 개발이 더 창의적인 작업이고 더 어렵다

Page 25: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 36

Source code documentations

Standard comment at each source code file produced in this course/*** File Name: "???.c" or "xxx.h", or "yyy.cpp"* Description:* - This program is . . . . . . ** Programmed by Gil-Dong Hong,* Last updated: Version 2.0, March 1, 2011 (by Young-Chul Kim).** ========================================================* Version Control (Explain updates in detail)* ========================================================* Name YYYY/MM/DD Version Remarks* John Doe 2009/11/15 1.0 1:1 Chatting on UDP * socket, 2 threads* John Doe 2010/05/01 1.1 User interface has been* updated with GUI* Mark Kim 2010/08/03 2.0 Major change in the* program structure* ========================================================*/

Page 26: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 37

설계문서 (양식)

Page 27: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 38

Page 28: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 39

Page 29: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 40

Page 30: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 41

Page 31: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 42

Page 32: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 43

설계프로젝트 평가

Page 33: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 44

Page 34: ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class …contents.kocw.net/KOCW/document/2014/Yeungnam/Kimyoungt... · 2016-09-09 · Advanced Networking Tech. Lab. Yeungnam

Advanced Networking Tech. Lab.Yeungnam University (YU-ANTL)

설계문서작성교수 김 영 탁ch 20 - 45