0. 소프트웨어 개발 단계 별 산출물들
1. 요구사항 분석(Requirement Analysis)
- 사용자의 관점에서 시스템의 요구사항 수집
- 개발할 소프트웨어의 기능과 제약조건, 목표 등을 소프트웨어 사용자와 함께 정의
- 구현 가능한지 판단
요구사항 명세서 작성
- IEEE 830-1998으로 요구사항 명세서(SRS, Software Requirement Specification)의 표준이 있음
- 기본적으로 작성해야하는 내용들
- Introduction에는 문서의 목적, 범위, 용어 정의(정의, 두문자, 약어), 참조 등의 개요등을 작성
- Overall description에는 제품 관점에서 동작이나 기능, 사용자 특성, 소프트웨어의 가정 및 제약사항, 의존성 등을 작성
- Specific Requirement에는 소프트웨어의 모든 세부적인 요구사항을 작성해야 함
요구되는 세부 사항들은 다음 사진과 같음
요구사항 명세서가 갖춰야 할 조건
- IEEE 1012로 표준화 된 소프트웨어 검증과 확인 절차 문서에서 제시하고 있는 요구사항 평가 항목에 따라 요구사항 명세서를 평가할 수 있음
- IEEE 830-1998에서 제시하고 있는 좋은 소프트웨어 요구사항 명세서가 갖춰야 할 특징을 알 수 있음
요구사항 분석 기법
요구사항 분석 기법은 개발 대상에 대한 사용자의 요구사항 중 명확하지 않거나 모호한 부분을 걸러내기 위한 방법
- 요구사항 분석 기법에는 요구사항 분류, 개념 모델링, 요구사항 할당, 요구사항 협상, 정형 분석 등이 있음
2. 소프트웨어 설계(Design)
- 요구사항 분석 단계에서 산출된 요구사항들을 설계하는 과정
- 시스템을 구성하는 내부 프로그램이나 모듈 간의 관계와 구조 설계
- 프로그램 내의 각 모듈에서의 처리 절차나 알고리즘 설계
설계 명세서 작성
- IEEE 1016-2009에 설계 명세서(SDD, Software Design Description)의 표준이 있음
- 설계 명세서의 내용에 들어갈 내용들은 사진과 같음
- 명세서에 작성해야하는 자세한 내용들은 링크
3. 구현(Development)
- 설계 단게에서 논리적으로 결정한 문제 해결 방법을 프로그래밍 언어를 사용하여 실제 프로그램을 작성하는 단계(코딩)
- 소스코드, 단위테스트 결과서 등 산출물
소프트웨어 개발 표준
- ISO/IEC 12207
- CMMI(Capability Maturity Model Integration)
- SPICE(Software Process Impovement and Capability dEtermination)
ISO/IEC 12207
- ISO(International Organization for Standardization, 국제 표준화 기구)에서 만든 표준 소프트웨어 생명 주기 프로세스
- 소프트웨어의 개발, 운영, 유지, 보수 등을 체계적으로 관리하기 위한 소프트웨어 생명주기 표준을 제공기본 생명 주기 프로세스: 획득, 공급, 개발, 운영, 유지보수
지원 생명 주기 프로세스: 품질 보증, 검증, 확인, 활동 검토, 감사, 문서화, 형상 관리, 문제 해결
조직 생명 주기 프로세스: 관리, 기반 구조, 훈련, 개선
CMMI(Capability Maturity Model Integration)
- CMMI(능력 성숙도 통합 모델)는 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델
- 미국 카네기멜론 대학교 소프트웨어 공학 연구소(SEI)에서 개발CMMI의 소프트웨어 프로세스 성숙도
- 초기(Initial)
- 관리(Management)
- 정의(Defined)
- 정량적 관리(Quantitatively Managed)
- 최적화(Optimizing)
SPICE(Software Process Impovement and Capability dEtermination)
- SPICE(소프트웨어 처리 개선 및 능력 평가 기준)는 정보 시스템 분야에서 소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준
- 공식 명칭은 ISO/IEC 15504
SPICE의 프로세스 수행 능력
1. 불완전
2. 수행
3. 관리
4. 확립
5. 예측
6. 최적화
SPICE의 프로세스 범주
1. 고객-공급자 프로세스
2. 공학 프로세스
3. 지원 프로세스
4. 관리 프로세스
5. 조직 프로세스
4. 테스트(Testing)
- 구현된 시스템이 요구사항을 만족하는지, 실행 결과가 예상 결과와 맞는지를 검사하고 평가하는 과정
- 단위 테스트(Unit Test), 통합 테스트(Integration Test) 등
- 테스트 계획, 통합 테스트 결과서 작성소프트웨어 테스팅
- ISO/IEC/IEEE 29119는 소프트웨어 테스트를 위한 5가지 국제 표준
5. 이행(Implementation)
- 개발된 소프트웨어를 실제 사용자가 직접 사용
- 사용자가 쓸 수 있도록 메뉴얼 작성 및 사용법 교육 등
- 시스템 이행 계획서
6. 유지보수(Maintenance)
- 개발 완료된 소프트웨어에 대해 오류 발생 시 복구, 시스템 디자인 수정, 새로운 요구사항 추가 등
- 유지보수 계획서, 폐기 승인서 등 작성
유지보수의 종류
- 수리 유지보수: 최종 사용자가 보고한 버그 수정
- 적응 유지보수: 환경변화에 따라 신규 환경에 소프트웨어를 맞추는 작업
- 완전지향 유지보수: 새로운, 변경된 사용자 요구사항을 반영하여 소프트웨어 업데이트
- 예방 유지보수: 문서 업데이트, 코멘트 추가, 시스템 모듈 구조 개선, 코드 최적화 같은 시스템 유지보수성 개선