2008 년 SW 공학컨퍼런스발표용 SW 발주 관리프로세스적용툴및 SW 공학툴리포지토리활용방안 2008. 11. 26 배문식 KIPA aims to assist Korea to achieve a global competitive advantage and grow into a world s Software leader. It provides systematic and strategic aids to the nation s IT industry, including promoting key source technology development, cultivating architect level Software professional and supporting Software export.
목차 I II III IV SW공학툴의정의및필요성 SW공학툴분류체계 SW공학분야별기법및도구현황 SW개발도구의기능별분류 V SW 발주 관리프로세스적용툴 VI SW 발주관리프로세스적용툴활용방안 VII SW 공학툴리포지토리 VIII SW 공학툴리포지토리활용방안
I. SW 공학툴의정의및필요성 SW공학은 SW의품질및생산성혁신을통하여 SW의경쟁력을향상시키는것으로, 기술중심적노하우인 SW공학기술, SW공학지식을습득한 SW공학인력, SW공학기술의보급 확산을위한 SW공학기반구축여부가핵심 SW공학기술은제품생산기술 (Technology) 과달리제품생산에기반이되는프로세스 (process), 기법 (techniques 또는 skills 및도구 (tools) 를의미 SW공학이란 SW의개발, 운영, 유지보수에대한체계적이고, 정량적인접근법을연구하고적용하는것 (IEEE 610) SW 공학툴을도입함으로서일정수준의프로세스와품질수준을담보 SW 공학툴을통해정량적인프로젝트관리와효율적인리소스관리가가능 SW 공학툴을통해기술인력이아닌프로세스가개발업무를수행 ( 개발자부재시다른개발인력이인수개발가능 ) SW 공학툴을통해인력을통제하는것이아닌프로세스를통제함으로서보다효율적인 SW 개발프로젝트추진가능 1
II. SW 공학툴분류체계정비및선정기준 (1) ISO / IEC 14102 분석 소프트웨어분류체계분석 ISO / IEC 12207 분석 [ ISO/IEC 12207] SWEBOK 분석 SWEBOK 과기존공학도구분류체계비교분석 [ 정보통신상품및서비스분류체계 ] [ ETRI 분류체계 ] SW 공학툴분류체계정립 [ 정보통신기술분류체계 ] 기존분류체계의문제점 [ISO/IEC 15940 JTC1/WG4 의 SW 공학도구아키텍처 ] o 개발프로세스및환경특성을반영하지못하고너무상세하거나세부적이어서도구적용시유연성이떨어짐 o 사용된용어의정의가통일되지못하거나일관성이떨어지며, 도구평가기준및선정기준이분류체계와엮여있어도구가제공하는기능과활용을파악하기어려움 분류체계정립의필요성 o 공학도구의사용분야파악, 지원하는분야명확화필요 o 도구의평가, 활용, 관리할수있는프레임워크필요 o 프로세스활동에기반하여파악할수있는분류체계필요 2
II. SW 공학툴분류체계도출 (2) SWEBOK 과 IS15940 비교분석하고 분류체계기본방향설정 프로젝트계획및통제프로세스 SW 프로세스평가모델 (K 모델 ) CMMI(level2) 1. 프로젝트에대한추정을바탕으로프로젝트계획을수립한다프로젝트계획 2. 프로젝트계획에따라진행상황을확인하고발견된문제점에대해시정조치를취한다 프로젝트감시및제어 3. 외주업체와의계약을체결하고계약의준수를관리한다공급자합의관리 SW 공학도구분류체계 SW 공학관리도구 대분류는 SWEBOK 의대분류를따르되, 하위분류는 IS15940 의하위분류에 맞게국내사업환경을고려하여재구성 1. 요구사항을추출하고관리해야한다 2. SW 요구사항을분석한다 요구사항관리 요구사항도구 개발프로세스 3. SW 를설계한다설계도구 4. SW 를구현하고단위테스트를실시한다 구축도구 / 테스트도구 5. SW를통합하고통합테스트를실시한다테스팅도구 6. 시스템테스트를수행한다요구사항분석설계 & 모델링도구측정과분석 / & 관리도구구현도구테스팅도구지원 1. 프로세스및작업산출물을객관적으로평가한다프로세스와제품품질도구프로세스품질보증요구사항 2. 형상관리를수행한다설계모델링도구형상관리테스트설계형상관리및도구모델링도구프로그램편집도구실행도구 형상 & 버전관리도구 버그및이슈추적도구 프로젝트관리도구 프로젝트계획도구 품질관리도구 검토및감시도구 요구사항검증도구 설계검증도구 컴파일러및코드생성도구 테스트관리도구 버전관리도구 위험관리도구 정적분석도구 요구사항추적도구 인터프리터도구 테스트평가도구 배포관리도구 프로젝트추적및모니터링도구 결함관리도구 디버깅도구 변경관리도구 프로젝트평가도구 3
III. SW 공학분야별기법및도구현황 (1) 분야기법도구활동내용대중소해외국내해외국내 SW 개발 분석 설계 구현 시험 요구분석 명세작성 기본설계 상세설계 코딩 코드확인 단위시험 통합시험 시스템시험 사용자요구나주어진문제를정확히분석 이해하는과정 기능요구사항, 성능, 사용용이성, 이식성등목표시스템의품질요구사항을파악과정 커뮤니케이션기법 프로토타입 요구된내용의명세작성 시스템의골격을형성하는모듈간의구조및사용자인터페이스를설계 기본알고리즘, 기본자료구조, 예외처리, 이식성, 입출력등모듈내부에서판단되어야하는상세한설계요소를검토 미리정해진모듈설계의내용을프로그래밍언어로표현하는일을수행하는과정 코딩된각모듈은테스트의기본단위 코딩이정해진표준을기준으로개발자가확인하는과정 프로그래머자신이코딩한모듈에대한시험의책임을가지고수행하는시험활동 통합시험에서는전체시스템에포함된작은시스템들이올바로결합될수있는지를시험 통합된전체적인기능이사용자요구내역과일치하는지를시험 구조적설계 객체지향설계 SaaS SOA 개발언어 JAVA 애자일, XP 디자인패턴 Review Inspection white box black box Topdown Bottomup Bigbang DOORS RequisitePro System Architect ROSE Together COOL:Joe Argo UML OOA.JBuilder Eclips Visual Studio.NET JUnit, Apache Ant, BoundsChecker ACT Test Coverage Purify 알파, 베타테스트 시스템테스트가끝난후에도 SW 는개발자내부와사용자환경에서독립적으로시험되는과정 4
III. SW 공학분야별기법및도구현황 (2) 분야기법도구활동내용대중소해외국내해외국내 SW 개발 관리 인수 유지보수 프로젝트관리 품질보증 형상관리 인수 인수시험 유지보수 프로젝트관리 품질보증 형상관리 인수절차는 SW 상품의성격과개발프로젝트의계약내용에따라다름 설치후인수받을사용자나발주자가하는시험을인수시험 (acceptance test) 이라 하며인수시험이성공적으로수행되어야실제가동 유지보수란개발이종료된 SW 가사용자에인수되고설치되어진후일어나는모든 SW 공학적활동 SW 개발의성공을위한과제진행에방법에대한최적화계획및관리 산출물및프로세스의품질관리 Review.Audit. 결함관리 correction adaption Perfective PSP TSP 산출물의형상및릴리즈관리 감리 ClearCASE (Rational) GNU CVS MS Project Clearcase GNU CVS 프로세스 프로세스 개발생산성및 SW 품질향상을위한개발및관련프로세스의수립, 확산및개선 SW Lifecycle CMMI SPICE 프로세스품질인증 개발지원 재사용 재사용 개발생산성및 SW 품질향상을위한개발산출물의재사용 객체지향 컴포넌트 디자인패턴 프로덕트라인 리모델링 오래된리거시코드에대한품질개선기법 대규모공사의리모델링기법 아키텍처재건 자동화자동화 요구사항에따른테스팅자동화 5
IV. SW 개발도구의기능별분류 구분 요구사항정의 분석 설계 구현 테스트 보정 핵심 프로세스 시스템 SW 네트워크 Doors RequisitePro easee.rm Rose RT/XDE TAU ASCET Davinci Tools Suite Simulink & Stateflow Rhapsody Realtime Studio CANoe & DeNoe CANdelaStudio CANdb++ Rose RT/XDE TAU ASCET MATLAB Realtime Workshop Stateflow Coder Targetlink StatemateC CANbedded CANfbl oscan MotionDesk AutomationDesk RTI LABCAR MATLAB Mtest & ControlDesk Robot Test Realtime CANape & CANdito CANoe & DENoe CANalyzer CANScope CANstress CalDesk AutomationDesk INCA CANdela CANdito CANdesc CANape ECU Diagnostics 시뮬레이션 ContolDesk / ASM / Mtest / INTECRIO / Simulator 지원 프로젝트관리 요구사항관리 Project Management / easee.pm & easee.wf purifyplus & Unified Process Doors / RequisitePro / easee.rm 프로 세스 형상 & 변경관리 테스트관리 Project Management / easee.pm & easee.wf purifyplus & Unified Process Doors / RequisitePro / easee.rm 6
V. SW 발주 관리프로세스적용툴개발추진배경 (1) 정부는다각적인발주관리체계개선기반을마련해왔으며여전히존재하는공공부문의현실적인문제점들을해결하기위한실용적인지원이필요한상황 사업배경 공공부문발주관리현황 사업목표 공공부문 SW 사업발주관리표준프로세스지침및가이드라인개발 실용적인발주관리체계개선및지원 2004 년공공부문 SW 사업발주관리체계개선의일환으로표준프로세스지침및가이드라인을개발 공공부문 SW 사업발주관리표준프로세스국가표준채택 2006 년도공공부문의적용확산을위해정보통신국가표준 (KICS_KO09_0038) 으로채택 공공부문 SW 사업발주관리표준프로세스교육 2005 년부터공공부문의전문성강화및지침보급을위한교육을현재까지수행중 SW 사업관리감독에관한일반기준제정 2006 년도공공부문 SW 사업발주관리체계개선의기반마련을위해정보통신부고시 ( 정보통신부고시제 2006 39 호 (061013)) 공공부문 SW 사업발주관리표준프로세스시범적용 2005 년부터 2007 년까지지침확산및개선을위해공공부문 SW 사업에시범적용실시 ( 정보통신부, 통일부, 해양수산부등다수 ) SW사업관리감독에관한일반기준제정및국가표준채택에도불구하고공공부문 SW사업발주관리표준프로세스의활용도가높지않음 발주. 관리체계개선에대한실무자의인식개선미흡및발주관리프로세스에대한이해부족 실무적용을위한정보부족 ( 예, 절차, 연계업무, 수행가이드, 템플릿, 수행예제등 ) 정보시스템발주업무담당자의교체로업무에대한경험부족이부족하나지식이전의어려움 발주자의발주관리인식제고및전문성향상을위한기반마련 발주관리표준프로세스활용도제고 공공부문 SW 사업발주관리체계개선사업의효율적지원 민간도구업체시장활성화 7
V. SW 발주 관리프로세스적용툴개발목적 (2) SW 발주 관리프로세스적용툴개발사업의목적은발주자가툴을활용하여발주관리사업에필요한기본적인작업을수행하고학습하도록하는데있으며, 나아가발주자의발주관리에대한인식제고를통하여민간툴시장활성화를도모 SW 발주 관리프로세스적용툴개발목적 SW 발주 관리프로세스적용툴은발주자가 SW 사업을수행하는데필요한발주 관리업무를이해시키고기본적인업무의수행을지원하는데개발목적이있으며, 이를위해발주자가사업을발주및관리하는데필요한최소한의기능으로구성됨 SW 발주 관리프로세스적용툴은발주자의인식제고및교육을수행하기에는충분하나전반적인발주 관리업무를수행할수있는 PMS(Project Management System) 의강력한관리기능을모두제공하고있지는않음 발주 관리프로세스적용툴 [SW 발주 관리프로세스적용툴기본기능 ] 테일러링기능 일정수립기능 작업수행기능 표준프로세스제공 학습기능 사례제공기능 추가기능 민간툴시장활성화 SW 발주 관리프로세스적용툴이발주관리업무에대한실질적인 PMS 기능을하기위해서는추가적인기능을갖춘민간도구가필요함 SW 발주 관리프로세스적용툴배포를통해발주자의수준을향상시키고이를통해민간시장에툴개발에대한 Needs 를불러일으킴으로써민간툴시장의활성화를도모할수있음 추가기능 발주 관리적용툴기능 [ 민간 PMS 주요기능 ] 통합적인프로젝트계획 강력한일정 / 자원 / 비용관리 산출물관리 프로젝트측정 / 성과관리 이슈 / 위험 / 시정조치관리 변경관리 Dashboard 협업지원 ( 게시판, 자료실, 공지사항관리등 ) 기타결재, 보고, 조직관리, 시스템관리기능등 8
V. SW 발주 관리프로세스적용툴 (3) 발주자가사업을효율적으로수행하기위한 SW 발주 관리프로세스적용툴은발주자가발주관리업무를수행하는데있어필요한기본적인기능을중심으로개발 1. 프로젝트생성 프로젝트개요입력, 담당자입력 2. 프로세스테일러링 프로세스테일러링, 상세테일러링 3. 계획수립 프로젝트일정계획, 담당자지정, 신규작업추가 4. 프로젝트현황관리 작업진행관리, ToDo, 마일스톤관리 5. 작업수행 작업수행관리, 체크리스트, 가이드라인, 산출물관리, 지침정보제공 6. 프로젝트종료 Lessons Learned 입력, 설문조사 SW 발주 관리프로세스적용툴 7. 전체작업관리 작업, 체크리스트, 가이드라인, 산출물관리 8. 다양한뷰 프로세스맵, WBS, 프로세스통계 9. 라이브러리 프로세스자산관리 ( 체크리스트, 템플릿, 가이드라인등 ) 10. 알기쉬운발주관리 알기쉬운발주관리애니메이션교육자료제공 11. 교육교재 발주관리교육교재제공 SW 발주 관리프로세스적용툴 12. 발주관리적용사례 3 개기관시범적용사례 13. 도움말 시스템이용도움말, 프로그램일반정보, 모듈활용가이드 14. 기타부가기능 Open, 인쇄, Export/Import 기능등제공 9
VI. SW 발주 관리프로세스적용툴활용방안 SW 발주 관리프로세스적용툴을공공부문발주자에게는라이센스제공방식으로툴을배포하고민간업체에는발주관리표준프로세스모듈및활용가이드를무상으로제공하여 SW 발주 관리프로세스적용툴의활용향상도모 공공부문활용 패키지 SW 를 CD 로공공부문에배포하며발주자의요청에의해한국소프트웨어진흥원홈페이지를통해라이센스를발급 발주자가라이센스를발급받기위해서는한국소프트웨어진흥원홈페이지를통하여설문서를작성 민간부문활용 민간도구업체에발주관리표준프로세스모듈및활용가이드를무상으로제공 민간도구업체는다양한버전의 PMS 개발을통하여공공부문에특화된 Advanced PMS 를개발하여공급 한국소프트웨어진흥원은라이센스발급, help Desk 운영, 데이터수집, 관련정보제공의역할을수행함 패키지 SW(CD) 배포 / 라이센스발급 [ 공공부문발주자 ] 발주관리표준프로세스기반사업관리툴활용 Advanced 민간툴활용 홈페이지를통한라이센스요청 Advanced 발주관리 PMS 공급 * 발주자및민간업체지원 라이센스발급 Help Desk 운영 데이터수집 관련정보제공 * 라이센스발급조건 발주자로부터필요한데이터를수집하기위한설문서작성 발주관리표준프로세스모듈및활용가이드무상제공 * 다양한버전의 PMS 개발 공공부문별특화된 PMS( 사업특성별 ) 품질인증기반 PMS [ 민간도구업체 ] SW 발주 관리프로세스적용툴활용방안 10
VII. SW 공학툴리포지토리소개 공개 SW 공학툴에대한소개, 활용과관련된정보를제공 ( 중소기업대상 ) 하고, 상용 SW 공학툴에대한사전정보 ( 대기업및 필요성을인지한기업대상 ) 를파악할수있는 SW 공학툴공용저장소구축추진 분류체계 ( 카테고리 ) 도구명 분류체계 ( 카테고리 ) 도구명 분류체계 ( 카테고리 ) 도구명 Requirement Analysis & Management (6 개 ) JFeature JRequisite Requirement Heap TRUC Implementation (9개) PMD Maven Ant Eclipse Metrics Configuration & Version Management (6 개 ) Subclipse TortoriesCVS Mercurial GNU arch Requirements Manager Checkclipse TkCVS OSRMT Checkstyle CodeVille Design & Modeling (14 개 ) Papyrus UML Violet UML Editor Taylor CAP JDepend Archive Builder Project Management (5 개 ) Gantt Project Dot Project ToDoList StarUML Umlet Testing (6개) JUnit JMeter OpenProj XPlanner ArgoUML JUPE AmaterasERD Watij Httpunit TestLink Quality Management (4 개 ) Trac Scarab EmForge Argoumldb Eclipse TPTP Mantis DB Designer 4 JpathFinder ESC/Java 2 NuSMV SPIN 11
VIII. SW 공학툴리포지토리활용방안 SW 공학툴공용저장소내의프로세스영역별 SW 공학툴의사용은조직의프로세스구축의기반제공 조직내구성원들의 SW 공학툴기본교육을위한매뉴얼활용 개발자 설계담당자 SW 공학툴공용저장소내의 Forum 공간을활용하여, 관계자들간의정보공유의장으로활용 SW 공학툴에대한사용사례공유 SW 공학툴사용방법에대한토론 SW 공학툴에대한동향파악 프로젝트관리자 품질담당자 SW 공학툴공용저장소 형상관리담당자 테스터 요구사항분석가 조직의프로세스 Engineering 요구분석설계구현테스팅인도 지원지원지원 Management & Supporting 프로젝트관리형상관리품질관리 조직프로세스구축의기반 SW 공학툴공용저장소 SW 공학툴웹사이트 SW 공학툴 매뉴얼 12
감사합니다. 한국소프트웨어진흥원 SW 공학기술센터배문식 m sbae@softwar e. or. kr