SPEM으로 설계하는 재사용 가능한 소프트웨어 개발 프로세스

SPEM의 Process Content와 Process Structure 분리 방식, 캡슐화·플러그인 메커니즘을 바탕으로 개발 프로세스를 모델링하고 재사용하는 방법을 정리합니다.

2026-08-14 · 최초 발행 2026-04-17

개발 프로세스를 모델로 다루는 SPEM

SPEM(Software & Systems Process Engineering Metamodel)은 OMG(Object Management Group)가 제안한 UML 기반 메타모델 표준이다. 소프트웨어와 시스템 개발 프로세스에 쓰이는 용어, 개념, 관계를 일관된 방식으로 정의한다.

특정 방법론에 묶이지 않는 공통 언어라는 점이 핵심이다. 문서 중심으로 프로세스를 적는 방식과 달리, 프로세스 요소와 그 관계를 모델로 표현해 구성 요소 간 추적성을 확보하고 도구 지원의 기반을 마련한다.

조직에 흩어진 개발 경험을 재사용하려면 프로세스 자체도 엔지니어링 대상이 되어야 한다. SPEM은 프로세스의 내용과 실행 구조를 분리해 이 작업을 가능하게 한다.

재사용 자산과 실행 흐름을 분리하는 구조

SPEM은 프로세스를 정의하는 Process Content와 프로젝트에서 실행할 Process Structure를 구분한다. 일반화된 지식과 특정 생명주기에서의 배치를 따로 관리하므로, 같은 자산을 여러 프로세스에 조합할 수 있다.

수행생성/수정포함SPEM (Software & SystemsProcess EngineeringMetamodel)Process Content (재사용 가능자산)Process Structure (실행가능한 프로세스)Work Product (산출물)Role (역할)Task (작업)Activity (활동)Phase (단계)Iteration (반복)

Process Content에는 역할·작업·산출물을 둔다

Process Content는 프로세스 자산의 실질적인 정의를 담는다. 누가 수행하는지(Role), 무엇을 다루는지(Work Product), 어떤 작업을 하는지(Task)를 정의하며, 특정 프로젝트 환경과 분리된 일반 지식 체계로 관리한다.

Process Structure는 콘텐츠를 실행 가능한 흐름으로 조립한다

Process Structure는 정의된 콘텐츠를 시간적 순서와 프로젝트 생명주기에 맞게 구성한 것이다. Phase, Iteration, Activity를 통해 작업과 산출물이 실제 프로젝트에서 수행될 워크플로우를 만든다.

프로세스 변경을 수용하는 메커니즘

SPEM의 유연성은 프로세스 컴포넌트의 캡슐화와 플러그인 메커니즘에서 나온다.

재사용 가능한 프로세스 컴포넌트는 내부 구현을 감추고 외부 인터페이스를 노출한다. 복잡한 프로세스를 모듈 단위로 다룰 수 있으며, 객체지향 프로그래밍의 클래스 설계와 유사한 장점을 프로세스 엔지니어링에 적용한다.

플러그인 방식은 방법론의 가변성을 다룬다. 기본 프로세스 뼈대에 특정 기술 스택이나 도메인에 맞는 프로세스 조각을 추가하거나 교체할 수 있다. 표준 프로세스를 유지하면서도 프로젝트별 특수성을 반영한 프로세스를 구성하는 방식이다.

Agile, Waterfall, V-Model 같은 서로 다른 개발 방법론도 SPEM이라는 단일 메타모델로 표현할 수 있다. 이는 CMMI, SPICE 등의 프로세스 개선 활동에서 비교와 평가의 기준을 제공하고, 도구 간 데이터 교환과 프로세스 자산 유지보수를 돕는다.

조직 프로세스를 라이브러리와 프로젝트 흐름으로 연결하기

조직 표준 프로세스는 먼저 역할, 산출물, 작업 템플릿을 식별해 SPEM 메타모델에 맞춰 정의하는 데서 시작한다. 이렇게 정의한 요소는 재사용 가능한 Process Content 라이브러리로 관리한다.

프로젝트를 시작할 때는 해당 생명주기에 필요한 요소를 라이브러리에서 선택하고 배치해 실행 가능한 프로세스를 만든다. 완성된 모델은 웹 또는 도구 형태로 배포되어 개발팀의 작업 가이드가 된다.

암묵적으로 수행되던 개발 절차를 명시적 모델로 옮기면 팀 구성원 사이의 의사소통 오류를 줄일 수 있다. 성공한 프로젝트의 프로세스 컴포넌트는 라이브러리로 만들어 다른 프로젝트에 전파할 수 있으며, 표준 메타모델을 지원하는 CASE(Computer-Aided Software Engineering) 도구와 연동해 프로세스 관리 자동화도 가능하다.

Sources

SPEM소프트웨어 프로세스UML메타모델프로세스 엔지니어링