테마
프로세스 품질과 개발 도구
좋은 소프트웨어는 좋은 개발 과정에서 나온다는 생각에서, 조직의 개발 과정이 얼마나 성숙한지 평가하는 모델이 만들어졌다. 같은 목적으로 도구와 재사용 기법도 발전했다. 시험에서는 CMMI(Capability Maturity Model Integration, 능력 성숙도 통합 모델) 5단계 이름과 순서, SPICE(Software Process Improvement and Capability dEtermination, 소프트웨어 프로세스 개선 및 능력 결정), CASE(Computer Aided Software Engineering, 컴퓨터 지원 소프트웨어 공학), 컴포넌트 기반 개발(CBD, Component Based Development), 프레임워크의 특성을 묻는다.
CMMI
CMMI(Capability Maturity Model Integration, 능력 성숙도 통합 모델)는 소프트웨어 개발 조직의 업무 능력과 성숙도를 평가하는 모델이다. 조직이 몇 단계에 있는지 알면 무엇부터 개선할지 정할 수 있다. 성숙도는 다섯 단계이며 순서대로 외운다.
| 단계 | 이름 | 특징 |
|---|---|---|
| 1 | 초기 | 정해진 절차 없이 개인 능력에 따라 성패가 갈린다 |
| 2 | 관리 | 프로젝트 단위로 절차를 정해 관리한다 |
| 3 | 정의 | 조직 표준 프로세스를 정해 모든 프로젝트가 따른다 |
| 4 | 정량적 관리 | 프로세스를 수치로 측정하고 통제한다 |
| 5 | 최적화 | 측정 결과로 프로세스를 계속 개선한다 |
영어 이름은 Initial, Managed, Defined, Quantitatively Managed, Optimizing이다. 2와 3의 차이는 범위다. 관리 단계는 프로젝트마다 절차가 있고, 정의 단계는 조직 전체가 같은 표준을 쓴다. CMMI는 현재 ISACA(Information Systems Audit and Control Association, 정보시스템감사통제협회) 산하 CMMI Institute가 관리하며 2023년에 3.0판이 나왔다.
SPICE
SPICE(Software Process Improvement and Capability dEtermination, 소프트웨어 프로세스 개선 및 능력 결정)는 소프트웨어 프로세스를 평가하고 개선하기 위한 국제 표준이다. 공식 번호는 ISO/IEC 15504로 시험에서 이 번호를 묻는다. 다만 이 표준은 2015년부터 ISO/IEC 33000 계열(33001 등)로 대체되었다.1
SPICE는 개별 프로세스의 능력 수준을 0단계 불완전(incomplete)부터 1단계 수행, 2단계 관리, 3단계 확립, 4단계 예측을 거쳐 5단계 최적화까지 여섯 수준으로 잰다. 시험에서 CMMI 성숙도는 1~5단계, SPICE 능력 수준은 0~5단계로 외우므로 0단계 유무가 구분 포인트다.
CASE
CASE(Computer Aided Software Engineering, 컴퓨터 지원 소프트웨어 공학)는 분석부터 테스트까지 개발 단계에서 하는 일을 소프트웨어 도구가 대신 해 주도록 자동화하는 것이다. 손으로 하던 다이어그램·코드·문서 작업을 도구가 맡아 오류가 줄고 생산성이 오른다. 주요 기능은 생명 주기 전 단계의 연결, 여러 개발 모형 지원, 그래픽 지원이다.
CBD
컴포넌트 기반 개발(CBD, Component Based Development)은 이미 만들어진 컴포넌트를 조합해 새 애플리케이션을 만드는 방법론이다. 컴포넌트(component)는 독립적으로 교체·재사용할 수 있는 실행 단위다. 처음부터 다 만들지 않고 재사용하므로 시간과 노력이 줄고 품질이 검증된 부품을 쓸 수 있다. 개발 절차는 개발 준비, 분석, 설계, 구현, 테스트, 전개, 인도 순서다.
소프트웨어 개발 프레임워크
소프트웨어 개발 프레임워크(software framework)는 개발에 공통으로 쓰는 구성 요소와 구조를 일반화해 제공하는 반제품 소프트웨어다. 개발자는 빈칸만 채우듯 업무 코드를 끼워 넣으면 된다. 표준화된 기반을 쓰므로 특정 업체 기술에 묶이는 문제도 줄어든다. 시험에 나오는 특성은 네 가지다.
| 특성 | 뜻 |
|---|---|
| 모듈화(modularity) | 캡슐화(encapsulation)로 모듈을 나눠 변경 영향을 줄인다 |
| 재사용성(reusability) | 재사용 가능한 모듈을 제공해 비용을 줄인다 |
| 확장성 | 다형성(polymorphism)으로 인터페이스를 확장할 수 있다 |
| 제어의 역흐름(inversion of control) | 객체의 제어를 개발자 대신 프레임워크가 맡는다 |
제어의 역흐름(IoC, Inversion of Control)은 라이브러리와 프레임워크를 가르는 기준이다. 라이브러리는 내 코드가 호출하고, 프레임워크는 프레임워크가 내 코드를 호출한다.
시험 포인트
- CMMI 5단계 순서 → 초기 → 관리 → 정의 → 정량적 관리 → 최적화.
- "소프트웨어 프로세스 평가·개선 국제 표준, ISO/IEC 15504" → SPICE(현재는 ISO/IEC 33000 계열).
- "개발 과정을 도구로 자동화" → CASE. "컴포넌트를 조합해 개발" → CBD.
- 프레임워크 특성 → 모듈화·재사용성·확장성·제어의 역흐름.
참고
국내 시험 자료는 여전히 ISO/IEC 15504를 공식 명칭으로 쓴다. 답안에는 15504를 쓰되, 표준 자체는 대체되었다는 것을 알아 둔다. ↩︎
