본문으로 이동

SEMAT

위키백과, 우리 모두의 백과사전.

SEMAT(소프트웨어 공학 방법 및 이론, Software Engineering Method and Theory)는 소프트웨어 공학이 엄격한 학문으로서의 자격을 갖출 수 있도록 재구성하기 위한 이니셔티브이다. 이 이니셔티브는 2009년 12월 이바르 야콥슨, 베르트랑 마이어, 그리고 리처드 솔리에 의해 시작되었으며[1], 행동 촉구 성명서[2]와 비전 성명서가 함께 발표되었다.[3] 이 이니셔티브는 개발자 커뮤니티와 학계 사이의 격차를 줄이고, 전체 소프트웨어 커뮤니티에 가치를 제공하는 커뮤니티를 만들기 위한 다년간의 노력으로 구상되었다.

이 작업은 현재 관행(Practice), 교육(Education), 이론(Theory), 커뮤니티(Community)라는 네 가지의 서로 다르지만 강력하게 연관된 영역으로 구성되어 있다. 관행 영역은 주로 실무를 다룬다. 교육 영역은 학생을 포함한 개발자와 학계 종사자 모두를 위한 훈련과 관련된 모든 문제를 다룬다. 이론 영역은 주로 소프트웨어 공학의 일반 이론을 탐구하는 데 집중한다. 마지막으로, 커뮤니티 영역은 법적 실체를 설립하고 웹사이트를 구축하며 커뮤니티를 성장시키는 일을 한다. 관행 영역, 교육 영역, 이론 영역은 언젠가 서로에게 가치 있는 방식으로 통합될 것으로 예상되었다. 즉, 관행 영역은 이론 영역의 "고객"이 되어 개발자 커뮤니티에 유용한 연구 결과를 도출하도록 유도할 것이며, 이론 영역은 관행 영역에 탄탄하고 실용적인 기반을 제공하고, 교육 영역은 이러한 결과를 적절한 방식으로 전달할 것이라는 구상이다.

관행 영역

[편집]

첫 번째 단계는 소프트웨어 개발 시 항상 존재하고, 항상 수행하며, 항상 생산하는 요소들을 포함하는 공통 기반 또는 커널을 개발하는 것이었다. 두 번째 단계는 이 커널 위에 실무 라이브러리 형태로 가치를 더하여, 사용하는 팀의 선호도나 구축 중인 소프트웨어의 유형 등 다양한 이유에 따라 구체적인 방법론으로 구성될 수 있도록 하는 것을 목표로 했다. 이 글을 쓰는 시점에서 첫 번째 단계는 거의 마무리 단계에 있다. 그 결과물은 소프트웨어 개발을 위한 보편적인 요소를 포함하는 '에센스 커널(Essence Kernel)'과 이러한 요소(및 커널 위에 구축된 요소들)를 기술하기 위한 '에센스 언어(Essence Language)'이다. 커널과 언어를 모두 포함하는 에센스(Essence)는 2013년 7월 OMG 표준 베타 버전으로 발표되었으며[4] 2014년 초에 공식 표준으로 채택될 것으로 예상된다.

두 번째 단계는 막 시작되었으며, 관행 영역은 상호 연결된 여러 개의 트랙으로 나뉠 예정이다. 현재까지 실무(라이브러리 트랙)와 도구 트랙이 식별되었으며 작업이 시작되었거나 곧 시작될 예정이다. 실무 트랙은 현재 사용자 가이드를 제작 중이다.

교육 영역

[편집]

이 영역은 학계와 산업계 전반에서 소프트웨어 공학 교육에 SEMAT의 성과를 활용하는 데 중점을 둔다. 에센스(Essence)라는 공통 기반에 기초한 글로벌 교육을 장려하며, 주요 대상은 대학교수나 산업계 코치와 같은 교육자와 그들의 학생 및 학습 중인 실무자들이다.

이 영역의 목표는 국제적으로 통용 가능한 교육 과정과 자료를 만들고, 특정 대상 집단에 적절하고 효과적인 교수법을 식별하며, 경험과 교훈을 전파하는 것이다.

이 영역에는 전 세계의 여러 대학과 연구소 회원들이 참여하고 있다. 대부분의 회원은 이미 자신의 소프트웨어 공학 강의에서 SEMAT의 요소들을 활용해 왔다. 그들은 자원을 모으고 있으며, 차세대 SEMAT 기반 소프트웨어 공학 커리큘럼을 정의하기 위한 공동 프로젝트를 시작했다.

2018년 기준으로 교육 현장에서 에센스를 활용하는 사례들에 대한 연구가 존재한다. 대학 교육에서 에센스를 사용한 한 가지 예로 노르웨이 과학기술대학교에서 진행된 소프트웨어 공학 강의가 있다. 에센스를 프로젝트 기반 소프트웨어 공학 강의에 도입하여 학생들이 에센스를 사용하면서 겪는 어려움과 유용성 여부를 파악하기 위한 연구가 수행되었다[5]. 결과에 따르면 에센스는 다음의 이유로 초급 소프트웨어 엔지니어에게도 유용할 수 있다: (1) 자신만의 방법론을 만들기 위해 새로운 관행과 방법을 찾아 공부하도록 장려함, (2) 상황에 맞게 성찰적으로 작업 방식을 조정하도록 도움, (3) 작업 방식을 구조화하는 데 도움을 줌. 디지털 게임을 통해 학생들에게 에센스를 소개한 또 다른 연구 결과도 이를 뒷받침한다. 학생들은 에센스가 향후 실제 프로젝트에서 유용할 것이라고 느꼈으며, 실제 현장에서 활용하기를 희망했다.[6]

이론 영역

[편집]

SEMAT의 중요한 부분은 소프트웨어 공학의 일반 이론을 정립하여 상당한 이점을 얻는 것을 계획하고 있다는 점이다.[7]

'소프트웨어 공학 일반 이론(GTSE)에 관한 SEMAT 워크숍'이라는 제목으로 열리는 일련의 워크숍은 일반 이론에 대한 인식을 높이는 핵심 요소이다.[8]

커뮤니티의 인식 제고 외에도 SEMAT는 특정 소프트웨어 공학 일반 이론을 구축하는 데 기여하고자 한다. 이 이론은 SEMAT 에센스 언어와 커널에 기반을 두어야 하며, 소프트웨어 공학 실무자들의 목표 지향적인 의사결정을 지원해야 한다. 다른 곳에서 주장된 바와 같이, 이러한 지원은 이론의 예측 능력에 달려 있다. 따라서 SEMAT 에센스는 중요한 소프트웨어 공학 현상을 예측할 수 있도록 확장되어야 한다.

GTSE 워크숍 시리즈는 더 넓은 커뮤니티를 참여시켜 SEMAT 이론의 기반이 될 수 있는 유망한 이론을 탐색, 개발, 평가함으로써 SEMAT 일반 소프트웨어 공학 이론의 발전을 돕는다.

조직 구조

[편집]

중앙 조직

[편집]

SEMAT은 타타 컨설턴시 서비스의 수미트 S. 말호트라(Sumeet S. Malhotra)가 의장을 맡고 있다.[9] 조직의 CEO는 후지쯔(Fujitsu)의 스테 나딘(Ste Nadin)이다. SEMAT의 경영위원회(Executive Management Committee)는 이바르 야콥슨, 스테 나딘, 수미트 S. 말호트라, 폴 E. 맥마흔(Paul E. McMahon), 미하엘 괴디케(Michael Goedicke), 세실 페레르(Cecile Peraire)로 구성되어 있다.

일본 지부

[편집]

일본 지부는 2013년 4월 설립되었으며, 2013년 11월 기준으로 250명 이상의 회원을 보유하고 있다. 회원 활동으로는 SEMAT 관련 세미나 개최, 다양한 요구공학 기법과 지식 체계(BoK) 통합을 위한 SEMAT 에센스 활용 검토, 관련 기사의 일본어 번역 등이 있다.

한국 지부

[편집]

한국 지부는 2013년 10월 약 50명의 회원으로 출범했다. 주요 활동으로 2e 컨설팅이 에센스 커널을 사용하여 자사의 IT 서비스 참여 방법론을 재작성하기 시작했고, uEngine 솔루션즈는 에센스 커널 기반의 실무를 프로젝트 방법론으로 조정하는 도구를 개발하기 시작했다. 한국 정부는 한국과학기술원이 에센스 관련 연구를 수행하도록 지원했다.

라틴 아메리카 지부

[편집]

SEMAT 라틴 아메리카 지부는 2011년 8월 콜롬비아 메데인에서 열린 라틴 아메리카 소프트웨어 공학 심포지엄 중에 이바르 야콥슨에 의해 설립되었다. 이 지부는 콜롬비아의 카를로스 자파타(Carlos Zapata) 박사를 의장으로 하여 콜롬비아, 베네수엘라, 페루, 브라질, 아르헨티나, 칠레, 멕시코 출신의 9명으로 구성된 집행위원회를 두고 있다. 초기 선언문에 80명 이상이 서명했으며, 오늘날 지부 회원들은 라틴 아메리카 전역에 SEMAT의 아이디어를 전파하는 책임을 맡고 있다. 회원들은 라틴 아메리카 정보학 컨퍼런스(CLEI)[10], 이베로 아메리카 소프트웨어 공학 및 지식공학 여정(JIISIC)[11], 콜롬비아 컴퓨팅 컨퍼런스(CCC)[12], 칠레 컴퓨팅 회의(ECC) 등 다양한 컨퍼런스에 참여했다. 이 지부는 OMG의 제안 요청서에 대한 응답으로 제출물에 기여했으며, 현재 게임을 통한 SEMAT 커널 교육 전략, 커널 요소에 대한 이론적 연구, SEMAT 커널을 사용한 여러 소프트웨어 개발 및 품질 방법론의 실무적 표현 등을 연구하고 있다. 일부 회원은 에센스 서적과 기타 SEMAT 자료 및 논문을 스페인어로 번역하기도 했다.

러시아 지부

[편집]

러시아 지부는 약 20명의 회원을 보유하고 있다. 모스크바 국립 대학교, 모스크바 물리 기술 대학교, 고등경제대학, 모스크바 국립 경제 통계 정보 대학교 등 여러 대학이 교육 과정에 SEMAT를 통합했다. 지부와 일부 기업들은 SEMAT에 관한 세미나를 열고 있다. INCOSE 러시아 지부는 SEMAT를 시스템 공학으로 확장하는 작업을 진행 중이다. EC-leasing은 소프트웨어 수명 주기를 위한 커널 확장 작업을 하고 있다. 러시아 지부는 시스템 및 소프트웨어 공학의 당면 과제 컨퍼런스와 SECR에 SEMAT 세션과 논문으로 참여했다. 에센스 서적의 러시아어 번역이 진행 중이다.

SEMAT의 실제 적용

[편집]

SEMAT 커뮤니티에서 개발된 아이디어는 산업계와 학계 모두에서 적용되고 있다. 주목할 만한 사례는 다음과 같다:

  • 재보험 회사인 뮤닉 리(Munich Re)는 소프트웨어 및 애플리케이션 작업 전체 영역을 아우르는 "협업 모델" 제품군을 구축했다. 탐색형, 표준형, 유지보수형, 지원형 등 4가지 협업 모델이 동일한 커널과 12개의 공통 실무 세트 위에서 구축되었다.[13]

SEMAT 지원 도구

[편집]

커널을 기반으로 SEMAT 실무의 저작 및 개발을 지원한 첫 번째 도구는 이바르 야콥슨 인터내셔널(Ivar Jacobson International)이 제공한 에스워크 프랙티스 워크벤치(EssWork Practice Workbench)이다.[14] 프랙티스 워크벤치 도구는 2012년 6월 SEMAT 커뮤니티에 공개되었으며 현재 무료로 사용할 수 있다. 이 도구는 협업적 실무 및 방법론 개발을 지원하는 통합 실무 개발 환경이다. 프랙티스 워크벤치의 주요 기능은 다음과 같다:

  • 에센스 커널의 대화형 프레젠테이션
  • 에센스 언어를 사용한 실무 저작 및 확장
  • 방법론 구성
  • 혁신적인 카드 기반 표현
  • 방법론, 실무, 커널을 카드 기반 HTML 웹사이트로 출판
  • 에스워크(EssWork) 배포 환경으로 내보내기

SEMAT의 에센스를 지원하는 다른 공개 도구는 다음과 같다:

  • SematAcc[15][16]: 소프트웨어 공학 에센스 이론 학습을 가속화하고 소프트웨어 프로젝트에서 쉽게 테스트하도록 설계된 에센스 가속화 시스템
  • 에센스 보드 게임(Essence Board Game)[17]: 재미있게 에센스의 기초를 가르치기 위한 도구
  • 에센서리(Essencery)[18][19]: 에센스 그래픽 언어 구문을 사용하여 방법론을 구성하는 오픈 소스 대안 도구

각주

[편집]
  1. ↑ “Welcome - SEMAT”. 《www.semat.org》.
  2. ↑ “The SEMAT Initiative: A Call for Action”. 《Dr. Dobb's》.
  3. ↑ “Software engineering method and theory – a vision statement” (PDF). 2021년 5월 1일에 원본 문서 (PDF)에서 보존된 문서.
  4. ↑ “Essence 1.0”. 《www.omg.org》. 2025년 1월 8일에 확인함.
  5. ↑ Kemell, Kai-Kristian; Nguyen-Duc, Anh; Wang, Xiaofeng; Risku, Juhanki; Abrahamsson, Pekka (2018). “The Essence Theory of Software Engineering - Large-Scale Classroom Experiences from 450+ Software Engineering BSC Students”. arXiv:1809.08827 [cs.SE].
  6. ↑ Pieper, J., Lueth, O., Goedicke, M., and Forbrig, P. (2017). A Case Study of Software Engineering Methods Education Supported By Digital Game-Based Learning - Applying the SEMAT Essence Kernel in Games and Course Projects. In Proceedings of the 2017 IEEE Global Engineering Education Conference (EDUCON), pp. 1689-1698.
  7. ↑ Pontus Johnson; Mathias Ekstedt; Ivar Jacobson. “Where's the Theory for Software Engineering?” (PDF). 2014년 8월 1일에 원본 문서 (PDF)에서 보존된 문서. 2013년 8월 8일에 확인함.
  8. ↑ “Welcome - SEMAT”. 《semat.org》.
  9. ↑ “Dr. Sumeet Malhotra has been elected Chairman of the Board of Directors of SEMAT, Inc. - News - SEMAT”. 《www.semat.org》.
  10. ↑ “Tutoriales « CLEI 2013”. 2013년 12월 2일에 원본 문서에서 보존된 문서. 2013년 11월 25일에 확인함.
  11. ↑ “Class Schedule” (PDF). University of Medellin. 2022년 12월 8일에 원본 문서 (PDF)에서 보존된 문서.
  12. ↑ “Tutorial sobre la iniciativa Semat y el juego MetriCC” [Tutorial on the Semat initiative and the MetriCC game] (PDF) (스페인어). 2013년 12월 2일에 원본 문서 (PDF)에서 보존된 문서. 2013년 11월 25일에 확인함.
  13. ↑ “Applying SEMAT Concepts at Munich Re”. 2013년 7월 27일.
  14. ↑ “Agile Practices Workbench | Agile Development Tools”. 《Ivar Jacobson International》. 2015년 8월 7일.
  15. ↑ Graziotin, Daniel; Abrahamsson, Pekka (2013년 9월 2일). “A Web-based modeling tool for the SEMAT Essence theory of software engineering”. 《Journal of Open Research Software》 1 (1): E4. arXiv:1307.2075. doi:10.5334/jors.ad.
  16. ↑ “Unknown”.
  17. ↑ Kemell, Kai-Kristian; Risku, Juhani; Evensen, Arthur; Abraharnsson, Pekka; Dahl, Aleksander Madsen; Grytten, Lars Henrik; Jcdryszek, Agata; Rostrup, Petter; Nguyen-Duc, Anh (2018). 〈Gamifying the Escape from the Engineering Method Prison〉. 《2018 IEEE International Conference on Engineering, Technology and Innovation (ICE/ITMC)》. 1–9쪽. arXiv:1809.08656. doi:10.1109/ICE.2018.8436340. ISBN 978-1-5386-1469-3. S2CID 52015385.
  18. ↑ “Semat”. 《www.essencery.com》.
  19. ↑ Evensen, Arthur; Kemell, Kai-Kristian; Wang, Xiaofeng; Risku, Juhani; Abrahamsson, Pekka (2018). “Essencery - A Tool for Essentializing Software Engineering Practices”. arXiv:1808.02723 [cs.SE].

외부 링크

[편집]