협업을위한소프트웨어공학 ( 부제 : 다같이코딩하는데한사람이만든것처럼만들기 ) 1. 개요 프로그래밍은매우수작업에의존적인일이다. 산업혁명이발생하기전직물제조와같이도구의도움은있어도사람의손이많이가는그런작업이다. 백지장도맞들면낫다 라는말이있다. 쉬운일이라도협력하여하면훨씬쉽다는말인

Similar documents

백서2011표지

무인항공기 국제표준 현황 및 테스팅 형상관리 서비스

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

1 SW

SW

텀블러514

¿À¸®ÄÞ40

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

¿À¸®ÄÞ38

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

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

인권1~2부73p

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

PowerPoint Template

1. 파일 명명규칙

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

Convenience Timetable Design

Install stm32cubemx and st-link utility

4S 1차년도 평가 발표자료

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

PowerPoint 프레젠테이션

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

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


캐빈의iOS프로그램팁01

00Àâ¹°

00Àâ¹°

Drucker Innovation_CEO과정

[Brochure] KOR_TunA


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

(Microsoft PowerPoint \261\350\301\276\277\370 [\310\243\310\257 \270\360\265\345])

ISP and CodeVisionAVR C Compiler.hwp

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

07( ) CPLV12-35.hwp

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

Studuino소프트웨어 설치

Visual Studio online Limited preview 간략하게살펴보기

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

0312젠-가이드라인-표지최종.ps, page Normalize

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

강의 개요

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

PowerPoint 프레젠테이션

Ver. DS-2012.T3.DWS.STR-1.0 System Test Report for Digital Watch System Test Cases Specification Test Summary Report Project Team 이동아 Latest update on

Microsoft PowerPoint - 발표자료.pptx

Microsoft PowerPoint 웹 연동 기술.pptx

PowerPoint 프레젠테이션

#반룡리_본문

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

csr13호

untitled

PowerPoint 프레젠테이션

API 매뉴얼

>> >> 손안의컴퓨터스마트폰! 손쉽게관리하자! 파일관리자 아스트로 (astro) 파일관리자 Free ES 파일탐색기 안드로이드폰에서내장메모리와외장메모리의파일을검색하고파일복사, 삭제, 폴더생성을할수있으며중요한어플리케이션을백업후에재설치를도와주는초보자들의필수설치

RVC Robot Vaccum Cleaner

슬라이드 1

ƯÁý2-~27pš


<4D F736F F F696E74202D205B34C0E55D20BFE4B1B8BBE7C7D720B0B3B9DF20B9D720B0FCB8AE2E BC8A3C8AF20B8F0B5E55D>

DE1-SoC Board

소프트웨어개발방법론

F120L(JB)_UG_V1.0_ indd

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

DBPIA-NURIMEDIA

Motor Control Solution

Microsoft Word - codevision사용법_pdf버전.docx

서현수

슬라이드 1

UML

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

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

OCW_C언어 기초

S - O I L M A G A Z I N E 2016 April Vol

arcplan Enterprise 6 Charting Facelifts

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

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

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



<3635B1E8C1F8C7D02E485750>

Microsoft PowerPoint - chap06-2pointer.ppt

윈도우시스템프로그래밍

#유한표지F

NX1000_Ver1.1

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

ePapyrus PDF Document

<4D F736F F F696E74202D205B31C0E55D20BCD2C7C1C6AEBFFEBEEEBFCD20BCD2C7C1C6AEBFFEBEEEB0F8C7D02E BC8A3C8AF20B8F0B5E55D>

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

2

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx

ÀÌ·¯´×_³»Áö1-1ÃÖÁ¾

강의 개요

ETL_project_best_practice1.ppt

Microsoft PowerPoint - 02처음으로만드는(Ver 1.0)

JDI_정책동향브리프_2015년_vol.1( ).hwp

마켓온_제품소개서_ key

View Licenses and Services (customer)

À̽ºÆ®¼ÒÇÁÆ®IR_9

Transcription:

협업을위한소프트웨어공학 ( 부제 : 다같이코딩하는데한사람이만든것처럼만들기 ) 1. 개요 프로그래밍은매우수작업에의존적인일이다. 산업혁명이발생하기전직물제조와같이도구의도움은있어도사람의손이많이가는그런작업이다. 백지장도맞들면낫다 라는말이있다. 쉬운일이라도협력하여하면훨씬쉽다는말인데하물며, 프로그래밍작업이쉬운일인가 ( 제대로한다면 ). 프로그래밍에는다른자원이거의들지않는대신인적자원이매우많이사용된다. 그리고그사람들은협업해서혼자서만들지못할거대한프로그램을만든다. 지금까지는혼자서프로그래밍을해왔지만당장에팀프로젝트가학교과제인마당에언제까지혼자할수없는일이다. 그래서협업을하기위한방법을서술하고자한다. 혼자와는달리여러명이서프로그래밍을한다면, 서로의생각과의견을하나로맞춰서방향성을갖고진행할필요가있다. 이게소프트웨어공학이다. 다른게아니다. 협업을하면소프트웨어공학은필수적으로따라온다. 그래서협업을하기위한소프트웨어공학을한번다뤄보도록한다. 2. 소프트웨어 (for 팀프로젝트 ) 공학의용례 우선팀프로젝트를막코딩을하거나아무생각없이하게되면일어나는현상을생각해보자. a. 버스기사가캐리 그림 1. 타요! b. 차라리혼자할걸 그림 2. 개허탈

끝은비참하다. 이를막기위해아래의이미지를보자. 예시를위한프로젝트이다. 예시를위한 프로젝트를설명한다. 1. 협업을위한소프트웨어공학 그림3. 예시프로그램이프로젝트는지정한앱을지정한시간이되면사용하지못하도록중지 (kill) 시키는안드로이드어플리케이션이다. ( 사용대상 : 자기절제가부족한어린아이나, 시험기간의학생등 ) 이프로그램의작동을전체적으로소개하면다음과같다. 그림 4. 예시프로그램프로세싱순서

이프로그램은시작하면다음과같은순서로작동한다. 처음시작을하면어플리케이션과잠금시간의목록이나오고어플리케이션과잠금시간을설정하면, 데이터베이스에저장한다. 그리고앞의과정과는상관없이백그라운드프로세스로현재시간을주기적으로읽는다. 그리고설정한시간이되면데이터베이스에저장되어있던프로세스킬을실행할어플리케이션목록을불러와서설정한시간이끝날때까지주기적으로프로세스킬을실행한다. 3. 소프트웨어개발과정 앞으로이프로젝트를만드는과정을협업을위한소프트웨어공학으로나타내본다. 3.1 소프트웨어개발절차협업을위한소프트웨어공학을하려면우선소프트웨어공학에따른소프트웨어개발절차에대해서알아야한다. 소프트웨어개발절차는다음과같다. ORD ->SRR -> SDP -> SDD -> SRS -> STP -> STR -> 배포 ORD: Operational Requirements Document : 운용요구서 SRR : System Requirement Review : 시스템요구검토 SDP : Software Development Plan : SW 개발계획서 SDD : Software Design Description : SW설계명세서 SRS : Software Requirement Specification : SW요구사항명세서 STP : Software Test Description : SW시험계획서 STR : Software Test Report : SW시험보고서 이절차는어떤소프트웨어공학론이라도사용하는개발순서이다. 어떻게사용하는지익숙한소 프트웨어공학론을예시로설명한다. 3.2 소프트웨어공학모델 그림 5. 폭포수모델 그림 6. V 모델

그림 7. 나선모델 그림 8. 애자일모델 흔히사용하는모델들도결국이과정을거친다. 간략하게거치는가. 복잡하고크게거치는가의 차이일뿐이다. 이방법으로프로그래밍의윤곽을정하면팀원들과알맞은분업으로시너지를낼 수있는프로그래밍을할수있다. 3.3 SRR : System Requirement Review : 시스템요구검토 SRR 은프로그래밍을하기위해처음해야하는일이라고볼수있다. SSR 은산출된아이디어의 요구조건을정리하는일이다. SRR 에서주로해야하는일은다음과같다.

A. 무엇을하는프로그램인가? B. 프로그램을만들때필요한것은무엇인가? C. 어떤환경으로설계할것인가? D. 할수있을만한가?( 인원, 자원, 역량등 ) 결과물 : 검토회의결과보고서 3.4 SDP : Software Development Plan : SW 개발계획서 SDP는소프트웨어를개발하기위한계획서를작성하는단계이다. SDP에서해야하는일은다음과같다. A. 전체의일정을대략적으로정하기 B. 인원계획을대략적으로정하기 C. 개발환경을대략적으로정하기 D. 할수있을만한가?( 인원, 자원, 역량등 ) 결과물 개발일정표 인원계획표 SDE (Software Development Environment) 계획서 SDD 계획서

3.5 SDD : Software Design Description : SW 설계명세서 SDD 는본격적으로소프트웨어를디자인하는과정이다 SDD 에서하는일은다음과같다. A. 프로그램기능분석 그림 9. 잠금설정액티비티 ( 화면 ) 의기능과내부기능분석 B. 인원분배 그림 10. 기능에맞는인원분배 인원분배는가장중요한일중하나이다. 인원분배의핵심은사용하는기술을최대한몰아서배 분해야한다. 이기능을구현하고할줄아는사람은팀내한사람으로족하다.

C. 시퀀스다이어그램 그림 11. 시퀀스다이어그램 시퀀스다이어그램은프로그래밍을하면서시간순서에따라무엇이어떤순서로흘러가는볼 수있다. D. I/O Mapping table 작성 그림12. 데이터출력의 I/O분석데이터출력을하려면 GUI측에서데이터베이스의함수를호출할때전달하는정보인매개변수의형태를데이터베이스측과 GUI프로그래머측이통일하여알고있어야한다. 리턴을하게되어도리턴형을둘다알고있어야한다. 그림 13. 데이터입력의 I/O 마찬가지로상호간에작동하는리턴형과매개변수의형태를파악하고있어야한다.

표 1. 데이터입출력자료형과형태, 용도분석 어떤용도로누가호출하며, 어떤데이터가상호간에전송되는지는필수로알아야하는팀프로 젝트를하면서필요한가장중요한것중하나이다. 3.6 SRS : Software Requirement Specification : SW 요구사항명세서 SRS 는 SDD 에서정한소프트웨어설계를상세히하여기능을서술하는일이다. 다음의기능을 SRS 로정의해보는예시를들어본다. 그림 14. 앱목록출력기능 앱목록출력기능은그야말로스마트폰에설치된어플리케이션의목록을그림 14 의모양대로출 력하는기능이다. 이기능을구현하는방법을서술하면아래와같다.

1. 앱목록추출기능 1.1 View 앱목록은리스트뷰로표시한다. 앱아이콘, 목록은패키지명으로추적해서추출한다. 1.2 Touch Select Action 앱선택해제는토글버튼으로표시한다. 데이터베이스응답시간이 n초이상걸릴시실패처리한다. 이벤트발생시데이터베이스에바로저장한다. 그리고할수있으면 Use Case 와같은기능을사용해도좋다. 그림 15. UseCase 예시 Use Case 는사용자가할수있는경우의수를표시한다이어그램이다. 3.7 STP : Software Test Description : SW시험계획서 STP는코딩을다하고난뒤의프로토타입의프로그램을테스트하기위한계획을서술하는단계이다. STP에서할수있는일은두가지가있다. A. 개인이할수있는단계에서의테스트 B. 통합테스트에서테스트개인이모듈별로테스트를하고통합을한뒤전체적인테스트를한다. 3.8 STR : Software Test Report : SW 시험보고서 STR 은 STP 에의해계획된테스트를하고난보고서이다. 이를바탕으로문제점을개선하며개발 을마무리한다.

이상으로협업을위한소프트웨어공학에대한소개를마치도록한다. 이글을보는사람들은팀프로젝트의경험이미숙한사람이많을텐데, 가장중요한것은팀원들의역량을파악하고할수있을만한것인가, 아닌가를잘파악하는것이라하겠다. 학교프로젝트에서가장적당한수준의프로그램은가장책임감있고잘하는사람이살짝버거우면서혼자하면퀄리티가낮아질만한수준이적당하다. 프로젝트가실패하지도않지만팀원들의어깨를조금이나마빌릴수있기때문이다. 이상으로협업을위한소프트웨어공학의소개를마친다.