소프트웨어 종류 및 개발 방법론 8

랑아·2023년 4월 13일
0
post-thumbnail

프로젝트 관리 및 생명주기 모형

05. 테일러링을 위한 품질 관리

1) ISO 12207 표준

1. ISO 12207 표준의 개념

  • ISO 12207 표준은 소프트웨어 개발 프로세스를 정의하고 향상시키기 위한 프로세스
  • ISO 12207 표준은 기본 공정, 지원 공정, 조직 공정으로 구성
    • 기본 공정 : 공급, 획득, 개발, 운영, 유지보수
    • 지원 공정 : 문서화, 형상 관리, 문제 해결, 품질 보증, 검증, 확인, 함동 검토, 감리
    • 조직 공정 : 관리, 기반 구조, 개선, 교육 훈련
  • 소프트웨어와 관련된 조직과 사람, 소프트웨어 획득자, 공급자, 개발자, 운영자, 유지보수자, 품질보증 관리자, 사용자 등의 이해관계자들이 각자의 입장에서 수행해야할 일을 정의하고 지속적으로 개선시키기 위한 활동

2. 기본 공정 프로세스

  • 공급 : 서비스를 제공하는 공급자 또는 공급 조직이 수행할 활동을 정의
  • 획득 : 서비스를 획득하는 획득자 또는 획득 조직이 수행할 활동을 정의
  • 개발 : 소프트웨어를 개발하는 개발자 또는 개발 조직이 수행할 활동을 정의
  • 운영 : 서비스를 제공하는 운영자 또는 운영 조직이 수행할 활동을 정의
  • 유지보수 : 유지보수를 제공하는 보수자 또는 조직이 수행할 활동을 정의

3. 지원 공정 프로세스

  • 문서화 : 산출되는 정보의 기록을 위한 활동을 정의
  • 형상 관리 : 구성 관리 활동을 정의
  • 문제 해결 : 문제점을 분석하고 제거하기 위한 프로세스를 정의
  • 품질 보증 : 객관적으로 보증하기 위한 활동을 정의
  • 검증 : 소프트웨어 제품을 검증하기 위한 활동을 정의
  • 확인 : 소프트웨어 제품을 확인하기 위한 활동을 정의
  • 합동 검토 : 활동의 상태 및 제품을 평가하기 위한 활동을 정의
  • 감리 : 요구사항에 대하여 적합성을 결정하기 위한 활동을 정의

4. 조직 공정 프로세스

  • 관리 : 프로젝트 관리를 포함한 기본적인 관리 활동을 정의
  • 기반 구조 : 프로세스의 기반 구조를 확립하기 위한 기본 활동을 정의
  • 개선 : 프로세스의 확립, 측정, 통제, 개선을 위하여 수행하는 활동을 정의
  • 교육 훈련 : 적절하게 훈련된 요원을 제공하기 위한 활동을 정의

2) ISO/IEC

  • ISO(International Organization for Standardization, 국제 표준화 기구)
    • 과학, 기술, 경제 활동 분야에서 세계 상호 간의 협력을 위해 설립한 국제기구
    • 공업 상품이나 서비스의 국제 교류를 원활히 하기 위해 이들의 표준화를 도모하는 세계적인 기구
  • IEC(International Electronical Commission)
    • 전기 기술에 관한 표준의 국제적 통일과 조정을 목적으로 설립된 국제전기표준회의
  • ISO/IEC 9126 : 소프트웨어 품질 특성과 척도에 관한 표준 지침서
  • ISO/IEC 12219 : 패키지 소프트웨어의 일반적인 제품 품질 요구사항 및 테스트를 위한 국제 표준
  • ISO/IEC 12509 : OSI 7계층의 관리 기능에 대한 공통된 정보를 명세화하는 규격으로 폐지된 규격
  • ISO/IEC 29119 : 소프트웨어 테스트 관련 국제 표준

1. 기능성(Functionality) : 명시된 요구사항과 내재된 요구사항을 만족하는가를 평가

  • 적합성(Suitability) : 지정된 작업이 사용자의 목적에 따라 적절한 기능으로 구현되는지 평가
  • 정확성(Accuracy) : 올바른 결과나 합의된 결과가 출력되는지 평가
  • 상호 운용성(Interoperability) : 하나 이상의 다른 시스템과 상호 작용할 수 있는지 평가
  • 보안성(Security) : 권한이 없으면 정보를 읽거나 변경하지 못하게 하고, 권한이 있으면 정보에 대한 접근이 거부되지 않도록 정보를 보호하는지 평가
  • 준수성(Compliance) : 표준, 관례 또는 법적 규제 및 유사한 규정을 준수할 수 있는지 평가

2. 신뢰성(Reliability) : 정의된 성능 수준을 유지할 수 있는가를 평가

  • 성숙성(Maturity) : 소프트웨어 내의 결함으로 인한 고장을 피해갈 수 있는지 평가
  • 결함 허용성(Fault Tolerance) : 소프트웨어 결함이 발생했을 때, 원하는 성능 수준으로 유지할 수 있는지 평가
  • 복구성(Recoverability) : 소프트웨어 결함 발생 시 직접적으로 영향을 받은 데이터를 복구할 수 있는지 평가

3. 사용성(Usability) : 사용자에 의해 이해, 학습, 선호될 수 있는지 평가

  • 이해성(Understandability) : 특정 작업과 조건에서 사용자가 어떻게 사용할 수 있는가를 평가
  • 학습성(Learnability) : 사용자가 소프트웨어의 응용 학습이 되는지 평가
  • 운용성(Operability) : 사용자가 소프트웨어를 운영하고 제어할 수 있는지 평가
  • 선호도(Attractiveness) : 사용자에 의해 선호되는 소프트웨어인가를 평가
  • 준수성(Compliance) : 표준, 관례 또는 법적 규제 및 유사한 규정을 준수할 수 있는지 평가

4. 효율성(Efficiency) : 사용되는 자원의 양에 따라 요구된 성능을 발휘하는가를 평가

  • 시간 반응성(Time Behaviour) : 기능을 수행할 때 적절한 반응 및 처리 시간과 처리율이 확보되는지 평가
  • 자원 활용성(Resource Utilization) : 기능을 수행할 때 적절한 자원의 양을 사용하는지 평가
  • 준수성(Compliance) : 표준, 관례 또는 법적 규제 및 유사한 규정을 준수할 수 있는지 평가

5. 유지보수성(Maintainability) : 소프트웨어의 환경 변화와 요구사항 및 기능적 명세에 따라 소프트웨어가 수정, 개선이 되었는지 평가

  • 분석성(Analyzability) : 결함이나 고장 혹은 변경된 부분들을 식별할 수 있는지 평가
  • 변경성(Changeability) : 변경딘 내용이 쉽게 구현될 수 있는지 평가
  • 안정성(Stability) : 변경으로 인한 예상치 않은 결과가 최소화되는지 평가
  • 시험성(Testability) : 변경된 소프트웨어를 테스트할 수 있는지 평가
  • 준수성(Compliance) : 표준, 관례 또는 법적 규제 및 유사한 규정을 준수할 수 있는지 평가

6. 이식성(Portability) : 다른 환경으로 전이되었을 때를 평가

  • 적응성(Adaptability) : 원래 목적이 아닌 다른 환경의 기능으로 변경될 수 있는지 평가
  • 설치성(Installability) : 다른 환경에 설치될 수 있는지 평가
  • 공존성(Co-existence) : 공통 자원을 공유하는 환경에서 다른 소프트웨어와 문제없이 운용될 수 있는지 평가
  • 대체성(Replaceability) : 다른 소프트웨어 제품을 대신하여 사용될 수 있는지 평가
  • 준수성(Compliance) : 표준, 관례 또는 법적 규제 및 유사한 규정을 준수할 수 있는지 평가

3) CMM(Capability Maturity Model)

1. CMM의 개념

  • 소프트웨어 개발과 유지보수에 대한 프로세스 개선과 능력(Capability) 향상을 위한 프레임워크이며 실용화된 모델
  • 소프트웨어 프로세스의 신뢰적이고 일관성 있는 능력 평가 기반 구조
  • 소프트웨어 개발과 유지보수 능력의 증개 요인들을 준수하도록 함
  • 소프트웨어 개발 조직의 프로세스 성숙도 개선 및 측정을 위해 정부와 산업계에서 사용

2. CMM의 특징

  • 조직, 작업 순서, 관리 방법, 기법, 도구, 환경 등을 프로세스의 요소로 정의
  • 레벨(Level)이 높을수록 소프트웨어 개발 프로세스의 품질이 좋아짐
  • 프로세스를 평가하고 개선하기 위해서는 프로세스가 가지는 기술적, 인간적 측면을 모두 고려함

3. CMM의 5가지 성숙 단계와 핵심 프로세스

성숙 단계정의핵심 프로세스
1. 초기 단계(Initial)- 소프트웨어 개발 관리 부재
- 프로세스 성과를 예측 불가
없음
2. 반복 단계(Repeatable)- 성공 프로젝트 반복 사용
- 통계적 관리가 가능
요구 관리, 계획, 추적, 감시, 형상 관리, 품질 보증
3. 정의 단계(Defined)- 프로세스 작업 정의와 이해 가능
- 데이터로 프로젝트 관리
- 발전되는 상태
조직 프로세스 관리, 교육 훈련 프로그램, 통합 소프트웨어 관리,
생산 공학, 동료 검토, 그룹 간 조정, 중간 심사
4. 관리 단계(Managed)- 프로세스 성과 측정, 분석 가능
- 프로세스 성과 개선, 관리 가능
정량적 프로세스 관리, 소프트웨어 품질 관리
5. 최적 단계(Optimizing)질적, 양적 개선이 지속적인 상태결함 예방, 기술 변화 관리, 프로세스 변경 관리

4. CMM 모델 프로세스 평가 기준

Level관리 명칭주요 내용평가
Level 1혼돈적 관리순서의 일관성이 없음위험성
Level 2경험적 관리일정, 비용의 경험적 법칙 적용
Level 3정성적 관리경험 공유, 공식적 프로세스 관리
Level 4정량적 관리통계적 방법과 조직적 분석
Level 5최적화 관리위험 예측, 최적화 도구 이용생상성, 품질

4) SPICE(Software Process Improvement and Capability dEtermination) 모델

1. SPICE 모델의 개념

  • 소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준
  • 소프트웨어 프로세스에 대한 개선 및 능력 측정 기준에 대한 국제 표준
  • 미 국방성의 CMM과 비슷한 프로세스 평가를 위한 모델을 제시

2. SPICE모델의 프로세스 수행 능력 수준 6단계

  • ISO 12207 소프트웨어 생명주기 프로세스를 참고로 하며, 1995년에 ISO/IEC 155504라는 규격을 완성
  • 수준 0, 불안정 단계 : 프로세스가 구현되지 않았거나, 프로세스가 그 목적을 달성하지 못한 단계
  • 수준 1, 수행7 단계 : 프로세스의 목적이 전반적으로 이루어진 단계
  • 수준 2, 관리 단계 : 정의된 자원의 한도 내에서 그 프로세스가 작업 산출물을 인도
  • 수준 3, 확립 단계 : 소프트웨어공학 원칙에 기반을 두어 정의된 프로세스가 수행
  • 수준 4, 예측 단계 : 프로세스가 목적 달성을 위해 통제되고, 양적인 측정을 통해서 일관되게 수행
  • 수준 5, 최적화 단계 : 프로세스 수행을 최적화하고, 지속적으로 업무 목적을 만족

3. SPICE의 목적

  • 개발 기관이 프로세스 개선을 위하여 스스로 평가하는 것
  • 기관에서 정한 요구조건을 만족하는지 개발 조직 스스포 평가하는 것
  • 계약을 맺기 위하여 수탁 기관의 프로세스를 평가하는 것

4. SPICE의 CMM 단점 개선

  • CMM은 조직을 평가하므로 제품의 품질과는 직접적인 연관성이 없음
  • CMM은 조직 전체에 대한 등급 판정이 비효율적, 비현실적
  • CMM은 소규모 업체에서는 적용이 곤란함

5) CMMI 모델

1. CMMI 모델의 특징

  • CMM의 후속 모델
  • 조직의 개발 프로세스 역량 성숙도를 평가
  • 미국 카네기멜런대학의 소프트웨어 기술 연구소가 제안한 통합 모델
  • 어떤 모델이라도 조직의 업무 목적에 맞게 수정하여 사용할 필요가 있음
  • 개발을 위한 CMMI, 발주를 위한 CMMI, 서비스를 위한 CMMI 순으로 발표

2. CMMI의 프로세스 영역(PA: Process Areas)

  • 프로세스 관리 영역 : 조직의 프로세스 정의, 조직의 프로세스 초점, 조직의 훈련, 조직의 프로세스 성과, 조직의 혁신과 배치로 구성
  • 프로젝트 관리 영역 : 프로젝트 계획 수립, 프로젝트 모니터링과 통제, 공급자와의 합의 관리, 통합된 프로젝트 관리, 위험 관리, 통합된 팀 구성, 정량적인 프로젝트 관리로 구성
  • 엔지니어링 영역 : 요구사항 관리, 요구사항 개발, 기술적 해결책, 제품 통합, 증명, 검증으로 구성
  • 지원 영역 : 형상 관리, 프로세스와 제품의 품질 경영, 측정과 분석, 의사 결정과 해결책, 통합을 위한 조직의 환경, 임시 분석과 해결책으로 구성

3. CMMI 모델의 종류

종류내용
SW-CMM소프트웨어 능력 성숙도 모델
SECM시스템 엔지니어링 능력 모델
IPD-CMM통합 제품 개발 능력 성속도 모델
People-CMM인력의 개발과 관리
SA-CMM소프트웨어 획득
SECAM시스템 엔지니어링 능력 심사 모델

0개의 댓글