3) 주저자 표준과표준화연구제 3 권제 2 호, 2013, 33~45 소프트웨어개발방법론의표준화 : OMG Essence 소프트웨어개발방법론의표준화 : OMG Essence Standardization of Software Engineering Methods: OMG Essence Object Management Group (OMG) has released a beta version of Essence in June 2013 as an international de facto 3) standard for the kernel and language for software engineering methods. Essence provides a common set of elements and language to describe software engineering practices so that they can be compared, selected and integrated into a coherent method for a specific software development project. This paper introduces the Essence standard and shows how it can be applied in a software development project. The benefits of using Essence as a common foundation to describe software engineering practices are discussed. Keywords: Essence, software engineering method, software engineering standards (E-mail :june.park@kaist.ac.kr) 본연구는산업자원부기술표준원에서지원한 2013년국가표준기술력향상사업과미래창조과학부한국방송통신전 파진흥원에서지원한 2013 년정보통신 방송(ICT) 연구개발사업의일환으로수행되었음. Journal of Standards and Standardization 33
표준과표준화연구 컴퓨터소프트웨어가발명된 1940 년대말이후약20 년이지난 1960 년대말에, 소프트웨어공학 은본격적으로발전하기시작하였다. 1970 년대의구조적분석 설계 개발방법론으로출발하여, 80 년대정보공학방법론, 90 년대객체지향및컴포넌트기반개발방법론을거쳐, 2000 년대의서비스 지향방법론과 Unified 및 Agile 개발프로세스에이르렀다. 글로벌소프트웨어제품및서비스기업들은저마다회사특유의방법론을만들어내부적으로활 용하고, 또한상업적으로판매하기도해왔다 예컨대마이크로소프트의 Microsoft Solution Framework, IBM의 Rational Unified Process 등. 국내소프트웨어산업의대기업들도글로벌베 스트프랙티스들을원용하여나름대로회사내표준방법론을제정하고적용하고자노력해왔다 예 컨대삼성SDS 의 Innovator, LG CNS의 WAY4U 등. 국내중소기업들은, 일부가한국전자통신연구 원(ETRI) 에서 2000 년대초 Unified 프로세스및컴포넌트기반개발방법론을기반으로제정보급 한마르미방법론을도입적용하고있으나, 대부분은방법론없이개발업무를수행하고있다. 정보통신산업진흥원의조사에따르면, 그림 1 에서보듯이, 국내에서는 SW공학주요영역중 SW 개발방법론및도구의활용이상대적으로가장낮은성숙도를보이고있다 [1]. Figure 1. SW공학주요영역별국내수준 1960 년대말 SW 공학의필요성이대두됐을때, 주요문제로지적된것은프로그래밍전에분석 과설계가선행되어야만유용한 SW 를효율적으로개발할수있는데, 분석및설계를위한공학적 기법이없었다는것이다. 이후수많은방법론이쏟아져나와제각기진화하여왔다. 각기업은시 대별로유행하던방법론들중적합한것들을선택하여, 자체적으로최적화해나가면서, 회사내표 준방법론으로제정적용함으로써 SW 개발의생산성과품질을향상하고자노력해왔다. 일부기업 34 제 3 권제 2 호
소프트웨어개발방법론의표준화 : OMG Essence 들은이러한노력을통해획기적인성과를거두기도하였다. 한성공사례로미국의방위산업체인 Raytheon 사를들수있다 [2]. 동사는 1988-1995 년에걸 쳐당시의베스트프랙티스들을도입확산하였다. 우선적으로분석을위한요구공학을도입하였는 데, 당시유행하던구조적분석방법론중당사사업에적합한 Yourdon/Demarco with Hatley/Pirbhai Real-Time Extensions 이란방법론을선택하였고, 이의효과적적용을위해당시가장고가의 CASE Tool 인 Software thru Pictures 외다양한도구들을도입하였다. 신규도입한방법론및도 구의활용역량을구축하기위해사내직원뿐아니라고객까지도훈련하는교육과정을확립하였다. 요구공학외에도산출물검토, 점진적빌드및통합테스트, 프로젝트계획및트래킹, SW 품질관리, SW 외주관리등의방법론을표준화하여적용한결과, 7년기간중생산성 1.7 배증가, 평균원가 36% 감소, 결함밀도 77% 감소를실현하였다. 1990 년대이래메인프레임배치및온라인컴퓨팅에서클라이언트 / 서버컴퓨팅, 웹애플리케이 션, 모바일클라우드서비스로컴퓨팅패러다임이급속히다양화되고, 비즈니스프로세스리엔지니 어링, 프로세스통합, 메타데이터통합, 엔터프라이즈아키텍처, 서비스지향아키텍처, 프로세스 오케스트레이션등분석/ 설계의패러다임도급속히확장되면서, 2013 년현재대부분선진기업에서 는실로다양한방법론을사용하고있다 [3], [4], [5], [6], [7]. SW공학이출발한지 45 년이지난이시점에서모든기업이당면하고있는문제는, 그많은방 법론들이공통의이론적프레임워크가없이모두제각기만들어져상호비교를통한중복, 상충, 보완점을찾기힘들고, 따라서하나의프로젝트에서여러방법론을조합하여사용할때, 또는한 기업에서여러방법론을표준화하여적용할때, 중복업무발생, 산출물간의추적성결여, 생산성 저하등부작용을낳고있다는것이다 [8]. 이러한문제를극복하기위해선진기업들은메타모델을정의하여상이한방법론의산출요소들간 의복잡한관계를명시하고, 방법론간산출물의일관성및추적성을유지하려고노력해왔다. 예 컨대미국국방성에서는 DM2, 즉 DoDAF Meta-Model 을정의하고, 각종분석/ 설계모델들간의 일관성, 추적성을확보할것을요구해왔다 [9]. 그러나이러한메타모델역시기업마다독자적으 로정의하고있고, 국제적으로통용되는공통표준이없는상태이다. 2009 년전세계 SW공학전문가들이모여 SEMAT(Software Engineering Method and Theory) 라는국제협회를설립하고, 종래축적된다양한 SW공학이론및베스트프랙티스들을공통의기본 커널및프레임워크위에서재정립하고자협력하여왔다 [10]. 그결과 Essence 라명명된 SW공학 방법론의공통커널및언어를개발하게되었으며, 2011 년이래 Essence 커널및언어를 OMG 국제표 준으로제정하는절차를진행하였다. 2013 년 6월 Essence 1.0 Beta 1이 OMG Adopted Specification 으로채택되었으며, 2014 년중 Essence 표준이 OMG 공식표준으로공지될예정이다 [11]. KAIST 박준성교수가 SEMAT 협회의장직을수임하고있으며, OMG Essence Finalization TF Journal of Standards and Standardization 35
표준과표준화연구 에참여하고있다. 국내에서는 SEMAT 의한국지부가 2013년 10 월결성되어, KAIST 배두환교수가 회장을맡고있으며, 산학연의많은 SW 공학전문가가회원으로활동하고있다. 활동내용은 Essence 표준기반의 SW 공학베스트프랙티스정의, 방법론구성을위한프랙티스조립도구의 개발, 대학및산업교육과정및교재의개발등이진행되고있다 [12]. Essence 표준에는 SW공학의커널요소들이정의되어있다. 커널요소는모든 SW개발노력에서 일반적으로다루어야하는기본요소를말한다. 커널요소는, 그림 2와 3 에보인바와같이, 알파 라고부르는객체요소 (Things to Work with) 와액티비티스페이스라고부르는활동요소 (Things to Do) 로구성되어있다 [13], [14]. Figure 2. Essence 커널요소 : Alpha (Things to Work with) Figure 3. Essence 커널요소 : Activity Space (Things to Do) 36 제 3 권제 2 호
소프트웨어개발방법론의표준화 : OMG Essence 알파는 SW개발프로젝트의진척에따라일련의상태변환을거친다. 예컨대, 요구사항 (Requirements) 라는알파는 개념정의 (conceived), 범위정의 (Bounded), 명세정의 (Coherent), 이 해관계자동의 (Acceptable), 구현 (Addressed), 이해관계자만족 (Fulfilled) 의상태를거친다. SW 시스템이라는알파는아키텍처선정, 시연가능, 사용가능, 출시, 활용, 폐기의상태를거친다. 각알 파의각상태마다체크리스트가제공된다. ( 그림 4) Figure 4. 알파의상태와체크리스트 체크리스트는특정상태를달성했는가를판단하는구체적인기준이다. 예컨대요구사항알파가범위정의라는상태를달성하려면아래와같은점검항목 (Checkpoint) 들을만족해야한다. l The stakeholders involved in developing the new system are identified. l The stakeholders agree on the purpose of the new system. l It is clear what success is for the new system. l The stakeholders have a shared understanding of the extent of the proposed solution. l The way the requirements will be described is agreed upon. l The mechanisms for managing the requirements are in place. l The prioritization scheme is clear. l Constraints are identified and considered. l Assumptions are clearly stated. 알파의상태변환을달성하기위해수행하는활동(Activity) 들은커널에정의된액티비티스페이 스의실현(Instance) 에해당한다. 예컨대, 그림 3의요구사항이해 (Understand the Requirements) 라는액티비티스페이스는요구사항알파를개념정의, 범위정의, 명세정의, 이해관계자동의의 상태까지도달시키는일련의활동으로실현된다. 특정활동은여러개의작업항목 (Work Item) 들을포함할수있다. 예컨대, 요구사항알파의개념 4개 Journal of Standards and Standardization 37
표준과표준화연구 정의상태달성을위한활동으로다음과같은작업항목을수행할수있다: 목표시장및사용자클 래스정의, 상위수준의제품기능정의, 제품기능의가치명제정의. 또다른예로, 요구사항알파의 범위정의상태달성을위해, 시장분석, 재무분석을기반으로성공지표를정의하고, 지표의목표수준 을정하고, 요구공학방법론을확정하는등의작업항목을수행할수있다. 각알파의상태변환에대한일정을수립하고, 각알파상태의달성을위해수행할활동및작업 항목들을계획하고, 달성과정을추적함으로써 SW프로젝트가특정시점에건강하게진행되고있는 지를파악하고, 한편현재상황에따라다음에추진해야할작업항목들을결정할수있다. KAIST 는 2013년미래창조과학부의 ICT 연구개발사업으로 Smart Mobile Cloudlet 원천기술개발 과제를수행하고있다 [15]. 본과제에서는원천기술의연구와함께시제품개발을진행한다. 시제 품개발프로젝트의방법론을 Essence 커널기반으로수립하여적용하고있다. 그림 5는 5개년과 제기간중 1차년도의시제품개발계획을 Essence 커널기반으로표현한것이다. 1차년도종료시 점까지달성해야할알파들의상태가슬라이딩스케일의위편에나열되어있다. Figure 5. Mobile Cloudlet 개발프로젝트의 1차년도알파상태달성계획 38 제 3 권제 2 호
소프트웨어개발방법론의표준화 : OMG Essence 요구사항알파의첫상태, 즉개념정의를위해먼저개발할시제품의개념, 이해관계자 ( 정부측 사업전담기관, 과제참여기관, 상용화기업, 최종사용자포함), 목적및범위를확정하는활동을수 행했다. 이와같은방식으로이해관계자, 시장기회, 요구사항, 알파가 SW 시스템, 작업, 팀및작업방법의 7개 1차년도중각기합의 (In Agreement), 실현가능 (Viable), 이해관계자동의 (Acceptable), 시연가능 (Demonstrable), 작업시작 (Started), 협업 (Collaborating) 및방법론확산 (In Place) 상 태에도달하도록프로젝트활동들을정하고, 일정계획, 자원계획등을수립하였다. ( 표 1 참조) 표 1. Mobile Cloudlet 개발프로젝트의 1차년도활동계획 활동산출물점검사항 수행방법 수행인력 일정 A1. 시연시스템의범위설정 W1. 제품개념정의최소 1개기업이제품요구분석에현물투자희망 W2. 이해관계자그룹정의 정부, 수요기업, 개발기업등이해관계자및역할정의 A2. 가치명제정의 W3. 개발참여인력선정 W4. 프로젝트협업계획 W5. 가치확인 각이해관계자를대표하는인력및역할선정 업무, 담당자, 일정등협업계획및협업방식, 시스템확정 제품사용기관선정, 현물투자확정, 이해관계자간제품의필요성합의 W6. 가치측정제품의가치창출목표를계량적으로설정 A3. 요구사항도출 A4. 시스템사양결정 W7. 요구사항합의 W8. 시스템사양서 이해관계자간에제품의목적, 성공기준, 기능범위, 우선순위결정기준, 요구스펙작성방식, 제약조건등에합의비기능요구조건명시, 네트워크, 단말기및단말플랫폼선정, 개발언어및환경선정, 시스템구성요소의확보방안결정 (Build, Buy, Use) A5. 요구분석 W9. 요구명세서 Use Case, Data 및 UI 모델간일관성확보 A6. Prototype 개발 W10. Prototype W11. 데모평가 기본시스템사양구현및주요 Use Case Scenario 의 Mockup Prototype 구현 이해관계자간에개발제품의독창성, 유용성및사업성에관한합의 표 1에열거된산출물 (Work Product) 은알파의실현(Instance) 으로서, 예를들어 W1, W7, W8, W9은요구사항알파의실현들이다. 한편 W2, W11은이해관계자, W3, W4는팀, W5, W6는시장 기회, W10은 SW시스템알파의실현들이다. 한편특정알파를실현하는산출물들은각기해당알 Journal of Standards and Standardization 39
표준과표준화연구 파의상이한상태를달성시킨다. 예컨대, W1, W7, W8, W9은각기요구사항알파의개념정의, 범 위정의, 명세정의, 이해관계자동의상태에해당하는산출물이다. Essence 표준에서알파와산출물의관계를그림 6 와같이정의하고있다. 알파는산출물로실현 되며, 특정알파를실현(Manifest) 하는산출물들은각기해당알파의상이한상태를달성시킨다. 각상태에대한점검사항 (Checkpoint) 들을활용하여특정산출물의내용이해당알파상태를달성 했는지판단할수있다. Figure 6. 알파와산출물의관계 또한그림 6 에서보듯이, 알파에대해보다구체적인 Sub-Alpha 들을정의하여사용할수있다. 예컨대, 요구사항알파를, 표1 에서보듯이유스케이스, 데이터, UI의 3개 Sub-요구사항으로구체 화하였다. 이와같이정부지원연구개발과제를 Essence 표준에입각하여기획함으로써, 시제품개발초 기에지원기관, 상용화기업, 최종수요자, 개발참여기관등모든주요이해관계자간에, 개발제품 사양, 가치명제, 개발방법론, 과제관리방법론등에대한충분한협의를거쳐합의를도출하였고, 이 해관계자들의담당역할에대한수용과적극적참여를확약받게되었다. 그림 5 에보면, 작업, 팀및작업방법의 3개알파가 1차년도중각기작업시작 (Started), 협업 (Collaborating) 및방법론확산 (In Place) 상태에도달하도록기획하였다. 보다저돌적인기획을 했다면, 3개알파가각기작업통제 (Under Control), 성과발현 (Performing), 방법론정착 40 제 3 권제 2 호
소프트웨어개발방법론의표준화 : OMG Essence (Working Well) 의상태에까지도달하도록목표를정했을수도있었다. 그러나본개발과제에서는 개발참여기관들이익숙하지않은 Agile SW 개발프로세스, Scrum프로젝트관리등선진 SW공학방 법론과툴을적용하기로하였고, Learning Curve 를고려하여무리한목표를설정하지않았다. Smart Mobile Cloudlet 과제의수행계획을수립함에있어, Agile프로세스및 Scrum관리방식과 Essence 커널의관계를설정해야했다 [16]. Essence 표준에서 Scrum관리는하나의 Practice( 기 법) 이라부른다. 프랙티스와커널의관계는그림 7과같이어떤프랙티스도커널요소를가지고표 현할수있다. 특정 SW 개발프로젝트에적용하는방법론은보통여러개의프랙티스로구성된다. 따라서프로젝트방법론의제정은프랙티스의조립을통해이뤄진다 [17]. Figure 7. Essence 커널, 프랙티스, 방법론간관계 SW개발에적용하는프랙티스는약 2 백가지가있다고한다. 지난 20년간에 32개의프랙티스가 출현했다는조사도있다 [18]. 예를들자면, Process Reengineering, Semantic Data Modeling, Use Case Analysis, Test-Driven Development, Kanban Project Management 등이있다. Essence 표준이지니는위대한가치중하나는모든프랙티스를공통의커널기반으로표현함으로 써, 프랙티스들간의비교 즉프랙티스간의중복요소파악, 프랙티스간산출물추적성 (Traceability) 및상호의존성 (Dependency) 파악 과프랙티스통합연계가가능해졌다는것이다. Smart Mobile Cloudlet 과제에서 Scrum관리기법을그림 8과같이 Essence 커널로표현했다 [19] [20]. Journal of Standards and Standardization 41
표준과표준화연구 Figure 8. Essence 커널기반의 Scrum 기법표현 42 제 3 권제 2 호
소프트웨어개발방법론의표준화 : OMG Essence Smart Mobile Cloudlet 과제는먼저이해관계자들이수차례의워크샵을통해제품개념에합의 한후, 개발주관기관인 KAIST 에서 User Story 형태로제품요구명세서 (Product Backlog) 를작성하 였다 (Release Planning). Agile개발프로세스를적용하여 1주일단위의 Sprint 를진행하고있다. KAIST 는 SW전문기업들로 구성된개발참여기관들과함께매 Sprint 에서개발할 Product Increment 의요구명세서 (Sprint Backlog) 를계획한다 (Sprint Planning). 매주종료된 Sprint 에대해 Sprint Review 및 Retrospective 회의를진행함으로써프로젝트진척관리및위험관리를수행하고있다. Jira는 Apple, Facebook 등세계선진 SW기업들이대부분사용하는첨단툴로서그림 9와같 은메타모델구조를가지고있다 [21]. Figure 9. 프로젝트관리툴 Jira의 Metamodel Jira의특징은 Sprint 마다 Release 하는제품버전들에대해, 요구사항, 작업항목등을계획, 변 경, 추적하는과정을상태변환시스템 (State Machine) 으로구현했다. 따라서 SW 시스템 (Project Component), 요구사항 (Issue/ Requirement), 산출물오류 (Issue/Bug), 작업항목 (Operation on Issue) 들간의구조적관계(Association) 과동태적관계(State Transition) 을깊이있게설정및추 적할수있다. Essence 표준에서정의하고있는커널의 Metamodel ( 알파상태의변환, 알파상태와산출물의 관계, 알파상태변환과활동의관계, 활동과작업항목의관계등) 과 Jira의 Metamodel 간에유사 한기본원칙을따르고있다. 따라서 KAIST 와개발참여기업들은 Jira를 Agile프로젝트관리툴로선 정사용하고있다. Jira 를활용하여, Sprint 진행중간에도수시로 Social Network 및 Web Conferencing 을통해 Model Storming, Acceptance Test 및이슈관리를수행하고있다. Journal of Standards and Standardization 43
표준과표준화연구 1950 년대초 SW 기술이탄생한이래, 기술발전의중심방향은 SW시스템을재사용가능한표준 부품의조립방식으로구축할수있는상태의실현이었다. 개별 SW시스템을독립적으로구축하던 상태에서벗어나기업별로, 더나아가전세계적으로, 표준화된 SW공동부품을활용하여효율적으로 시스템을조립하는상태를지향하여왔다. 이러한상태의실현을위해, 1990 년대전반객체지향개 발로출발하여, 1990 년대후반컴포넌트기반개발, 2000 년대전반서비스지향조립, 2000 년대후 반 SaaS 기반조립으로발전하고있다. SW 공학방법론 (Method) 의제정도마찬가지이다. 개별방법론을독립적으로구축하여사용하던 상태에서벗어나, 특정 SW 프로젝트에최적인방법론을기업별로, 또는전세계적으로, 표준화된최 신공학기법 (Practice) 들을조립하여쉽고빠르게구성하는상태로가고자하는것이다 [22], [23]. OMG 에서제정하는 Essence 커널은이러한발전의토대를제공한다. Essence 표준은아직완성도가낮은베타버전이고, 앞으로전세계적인현장적용을겪으면서 많은수정과보완을거쳐성숙되어야한다. Essence 표준의확산을통해 SW공학방법론의획기적 발전이기대되며, 이러한발전의선두에한국 SW 기업들이, SEMAT 국제커뮤니티를통해, 세계 SW공학전문가들과함께동참하고있는것은향후한국 바람직한현상이다. SW산업의국제경쟁력도약을위해매우 [1] SW 공학센터, SW 공학백서, 정보통신산업진흥원, 서울, 2012. [2] T. J. Hayley, Software Process Improvement at Raytheon, IEEESoftware, 13:6,pp. 33-41,1996. [3] J. S. Park, A New Revolutionary Paradigm of Software Development for Mainstream Business Operations, InternationalJournalofTechnologyManagement,20:3/4,pp.272-286,2000. [4] J. S. Park, W. H. Sohn, J. S. Jaegal, Process/Methods for Cool:Gen/Com Proxy, Computer Associates World Conference, New Orleans, 2000. [5] 박준성, CBD 에대한小考, 정보통신연구진흥지, 3:3, pp. 42-55, 2001. [6] J. S. Park, K. J. Kim, J. P. Kim, Applying PSP/TSP to CBD Projects, Software Engineering Process Group Conference, Software Engineering Institute, Carnegie Mellon University, Boston, 2003. [7] 박준성, SaaS 에대한小考, 미래창조과학부클라우드지원센터기술보고서, 제1 호, 2013. [8] P. Johnson et al, Where's the Theory for Software Engineering, IEEESoftware,12, pp.94-96,2012. 44 제 3 권제 2 호
소프트웨어개발방법론의표준화 : OMG Essence [9] D. McDaniel, DoDAF 2.0 Meta-Model (DM2) Walkthrough, DoD Enterprise Architecture Conference, St. Louis, 2009. (http://www.ndia.org/ DoDEntArchitecture/Documents/ Forms/AllItems.aspx) [10] Software Engineering Method and Theory (SEMAT): http://semat.org/. [11] OMG, Essence - Kernel and Language For Software Engineering Methods 1.0 - Beta 1, 2013. (http://www.omg.org/spec/essence/1.0/beta1/). [12] SEMAT Korea: http://semat-korea.org/. [13] I. Jacobson, et al. TheEssenceofSoftwareEngineering:ApplyingtheSEMATKernel,Addison- Wesley,2013. [14] I. Jacobson, et al. The Essence of Software Engineering: The SEMAT Kernel, CommunicationsoftheACM,55:12,pp.42-29,2012. [15] 박준성, Mobile Cloud Architecture, 기조강연, 한국소프트웨어아키텍트대회, 서울, 2013. [16] I. Jacobson, et al. Agile and SEMAT-Perfect Partners, CommunicationsoftheACM, 56:11,pp.53-59,2013. [17] J. S. Park, Essence Kernel-Based Enterprise Method Architecture, OMG Essence Information Day, Berlin, 2013. (http://www.omg.org/news/meetings/tc/berlin-13/ special-events/essence_day.htm) [18] M. Kennaley, SDLC3.0:BeyondaTacitUnderstandingofAgile,FourthMediumPress,2010. [19] J. S. Park, P. E. McMahon and B. Myburgh, Scrum Powered by Essence, (under review for CommunicationsoftheACM). [20] J. S. Park, Activity-Centric Mapping of Software Engineering Practices to Essence Kernel, (under review for IEEETransactionsonSoftwareEngineering) [21] Atlassian, Jira (https://www.atlassian.com/software/jira). [22] L. J. Osterweil, Software Processes are Software Too, IEEE International Conference on Software Engineering, 1987. [23] J. Bhuta, B. Boehm and S. Meyers, Process Elements: Components of Software Process Architectures, International Conference on Unifying the Software Process Spectrum, 2005. Journal of Standards and Standardization 45