일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Double free
- 유스케이스
- sampling theory
- 게임 개발
- 게임개발
- Rr
- pdlc
- stride
- DSP
- AINCAA
- 배경 그림
- linear difference equation
- dtft
- 운영체제
- STCF
- Unity #Indie Game
- Race condition
- 언리얼엔진
- ret2libc
- DP
- TSet
- 메카님
- 유니티
- dirty cow
- Security
- MAC
- MLFQ
- RBAC
- frequency-domain spectrum analysis
- CTF
- Today
- Total
다양한 기록
CMM, CMMI 본문
CMM (Capability Maturity Mode)
목표:
조직에서 사용중인 소프트웨어 프로세스에 있는 현재 결점에 집중해서
조직이 해당 프로세스를 개선할 수 있는 방법을 알려줌
SEI(Software Engineering Institute)가 설립되어 관리
종류:
SW-CMM : 소프트웨어 관리
P-CMM : 인적 자원 관리
SE-CMM : 시스템 엔지니어링
IPD-CMM : 통합 프로덕트 개발
SA-CMM : 소프트웨어 획득
CMMI (Capability Maturity Model Integration)
- 다섯개의 기존 모델을 통합
CMM의 정의
- 소프트웨어 프로세스를 정의, 구현, 측정, 제어 및 개선하는 동안에 소프트웨어 조직의 프로세스 발전 단계를 기술
- 소프트웨어 프로세스 개선 전략을 수립하는데 지침서로 활용
* 현재 소프트웨어 프로세스 능력의 결정
* 소프트웨어 품질 및 프로세스 향상에 있어 가장 중요한 문제의 식별
CMM은 지속적인 개선에 기반
- 진화적이지만 혁신적이지 않은 변화
- SW-CMM 프레임워크는 5단계의 진화 단계(또는 성숙도 레벨)로 구성
- 성숙도 수준은 보다 성숙된 소프트웨어 프로세스 획득하기 위해 잘 정의된 진화적인 고원
CMM의 역할
- 목표 설정
- 프로젝트 개선을 위한 우선순위 식별
- 조직의 프로세스 능력 판단
- 프로젝트들의 향후 프로세스 능력 예측
- 산업계에서의 현행 프로세스 수준 비교
CMM의 성숙도 수준 (Maturity Level)
Level 1: 초기 수준
Level 2: 반복 수준 .. 훈련된 프로세스
Level 3: 정의 수준 .. 표준화된 프로세스
Level 4: 관리 수준 .. 예측 가능한 프로세스
Level 5: 최적화 수준 .. 지속적인 프로세스 개선
Level 1 : 초기 수준 (Inital Level)
- 소프트웨어 프로젝트의 관리 능력이 부족하고 프로세스 상의 불안정성
- 일부 프로세스가 정의되어 있고, 프로젝트의 성공이 특정한 개인의 노력(능력, 지식)에 의존
- 초기 수준의 조직은 소프트웨어 프로세스가 작업의 진행 상태에 따라 끊임없이 변경됨
- 일정, 예산, 기능, 제품 품질에 관한 예측이 어려움
Level 2 : 반복 수준 (Repeatable Level)
- 기본적인 프로젝트 관리 프로세스의 확립 및 문서화
- 요구사항 관리, 프로젝트 계획, 추적과 감독, 외주 관리
- 비용, 스케줄 및 기능성 추적
- 문제점 파악 및 해결
- 새로운 프로젝트를 계획하고 관리하는 것은 과거의 유사한 프로젝트 경험에 의존
- 이전에 성공한 프로젝트와 유사한 프로젝트를 성공적으로 반복 수행 가능
- 기본적인 소프트웨어 형상 관리 및 품질 보증 활동을 수행
Level 3 : 정의 수준 (Defined Level)
- 관리와 공학적인 활동에 대한 소프트웨어
- 조직에서 공식적으로 사용하는 표준 소프트웨어 프로세스 정립
- 정립된 프로세스는 소프트웨어 프로젝트 관리자와 전문 개발자가 더욱 효과적으로 프로젝트를 수행할 수 있게 해줌
Level 4 : 관리 수준 (Managed Level)
- 소프트웨어 프로세스와 제품 품질에 대한 상세한 측정값을 수집
- 일관성있게 잘 정의된 측정 수단 제공
- 정량적인 품질 목표 정립과 통계적 품질 관리 수행
Level 5 : 최적화 수준 (Optimizing Level)
- 프로세스 능력 향상을 위하여 프로세스를 평가하고 지속적인 개선 활동을 수행
- 프로세스, 혁신적인 아이디어 및 기술로부터 피드백을 통하여 최적화
- 이미 알려진 결합의 재발 방지
핵심 프로세스 영역 (Key Process Area)
핵심 프로세스 영역은 수준에 도달하기 위해 다루어야 할 프로세스 영역
- 각각의 성숙도 수준에 여러 개의 핵심 프로세스 영역 지정
- 핵심 프로세스 영역은 해당 성숙도 수준에 도달하기 위한 필수 요구사항
- 각각의 핵심 프로세스 영역에 핵심 실천 사항(Key Practices)들을 나열
- Level 1인 초기 수준에 대한 핵심 프로세스 영역의 정의는 없음
Level 2 : 반복 수준 핵심 프로세스 영역
프로젝트 관리에 초점
- 요구사항 관리 (Requirement Management)
- 고객과 고객의 요구사항에 대한 소프트웨어 프로젝트 사이에서 공통의 이해를 확립
- 공통의 이해는 소프트웨어 프로젝트에 대한 계획과 관리에 대한 기반을 제공함
- 소프트웨어 프로젝트 계획 (Software Project Planning)
- 소프트웨어 공학의 수행과 소프트웨어 프로젝트 관리를 위한 합리적인 계획을 수립
- 해야 할 일, 요구되는 자원, 사용될 방법, 이에 따르는 활동들을 포함
- 소프트웨어 프로젝트 추적과 감독 (Software Project Tracking and Oversight)
-프로젝트의 수행이 계획에서 벗어날 때 효과적인 조치를 취할 수 있도록 진행 과정에 충분한 가시성 제공
- 문서화된 추정이나 의지, 계획에 맞춰 소프트웨어 프로젝트의 성취와 결과를 추적/검토하고 실제 성취와 결과에 따라 계획을 적용
- 소프트웨어 외주 관리 (Software Subcontract Management)
- 자격이 있는 소프트웨어 외주 계약자를 선정하고 효과적으로 관리
- 소프트웨어 품질 보증 (Software Quality Assurance)
- 품질 요건들을 충종시키기 위하여 사용되는 운영 기법 및 활동
- 프로세스와 산출물에 대하여 충분한 가시성을 갖도록 프로젝트를 관리함
- 소프트웨어 형상 관리 (Software Configuration Management)
- 시스템의 형상 항목들을 정의하고 식별하고, 시스템의 생명 주기동안 항목들을 제어하며, 항목들에 대한 변경요구의 처리 및 형상 항목들의 상태를 기록하고 완전성 증명
- == 버전 관리 .. 소프트웨어 산출물 문서를 관리
Level 3 : 정의 수준 핵심 프로세스 영역
프로젝트와 조직 차원의 문제를 다룸
- 조직 프로세스 초점 (Organization Process Focus)
- 조직의 전체 소프트웨어 프로세스 능력을 향상시키는 소프트웨어 프로세스 활동에 조직 상의 책임을 확립
- 조직 프로세스 정의 (Organization Process Definition)
- 유용한 소프트웨어 프로세스를 확립하고 유지함으로서 프로젝트들에 걸쳐 프로세스 효율성을 향상시키고 조직의 장기적인 이익 도모
- 훈련 프로그램 (Tranining Program)
- 개인의 기술과 지식을 고양시켜 각자의 역할을 효율적이고도 효과적으로 수행하도록 함
- 통합 소프트웨어 관리 (Integrated Software Management)
- 소프트웨어 공학 및 관리 활동들을 집약적이고도 정의된 소프트웨어 프로세스에 통합하는 것
- 해당 소프트웨어 프로세스는 조직 프로세스 정의에 기술되어 있는 조직의 표준 소프트웨어 프로세스 및 관련된 유용한 프로세스로부터 목적에 부합되게 조정된 것임
- 소프트웨어 제품 공학 (Software Product Engineering)
- 정확하고 일관성 있는 소프트웨어 제품을 효율적이고도 효과적으로 생산하기 위한 모든 소프트웨어 공학 활동들이 통합되어 있는 잘 정의된 공학 프로세스를 일관성 있게 수행하는 것을 목적으로 함
- 프로젝트의 기술적인 활동들(요구사항분석, 설계, 코딩, 테스트)을 말함
- 그룹 간 협력 (Inter Group Coordination)
- 하나의 그룹이 다른 그룹의 활동에 적극적으로 협력할 수 있는 방법을 확립함으로써 프로젝트에 고객의 요구사항을 더욱 효과적이고 효율적으로 만족시켜 줄 수 있도록 함
- 동료 검토 (Peer Review)
- 소프트웨어 개발 과정에서 결함을 가능한 한 초기에 효율적으로 제거
- 결함이 발생한 이후에 제거하려고 하기보다는 예방을 해야 함
Level 4 : 관리 수준 핵심 프로세스 영역
소프트웨어 프로세스와 개발하는 제품을 계량적으로 관리하는데 초점
- 계량적 프로세스 관리 (Quantative Process management)
- 소프트웨어 프로젝트의 프로세스 수행을 계량적으로 제어하는 것을 목적으로 함
- 소프트웨어 품질 관리 (Software Quality Management)
- 소프트웨어 제품이 갖는 품질에 대해 계량적으로 관리하고, 특정한 품질 목표를 성취하는 것을 목적으로 함
Level 5 : 최적화 수준 핵심 프로세스 영역
조직과 프로젝트가 측정 가능한 지속적인 소프트웨어 프로세스 개선을 구현해야 함
- 결함 예방 (Defect Prevention)
- 결함의 원인을 식별하고 재발을 방지
- 기술 변경 관리 (Technology Change Management)
- 유용한 새로운 기술(도구, 방법, 그리고 프로세스)을 식별하고, 규칙적인 방법에 따라 조직에 해당 기술을 적용
- 지속적으로 변화하는 기술 환경에 대응하여 효율적으로 기술 혁신을 수행하는 것에 초점
- 프로세스 변경 관리 (Process Change Management)
- 조직에서 사용하는 소프트웨어 프로세스를 지속적으로 개선시키는 것을 목적으로 함
- 소프트웨어 품질 향상, 생산성 증가, 그리고 제품 개발을 위한 주기 시간을 단축시키려는 의도를 포함
핵심 실천 사항 (Kep Practice)
- 각각의 핵심 프로세스 영역의 목표를 달성하기 위해 필요한 핵심 실천 사항을 상세히 기술
- 핵심 실천 사항은 핵심 프로세스 영역의 효과적인 구현과 규정에 도움을 주는 활동 및 인프라를 기술함
- 핵심 실천 사항은 어떻게 해야 하는가가 아닌 무엇을 해야 하는가를 기술함
핵심 실천 사항들은 5가지 공통 특징으로 분류됨
- 수행 의지 (Commitment to perform)
- 수행 능력 (Ability to perform)
- 수행 활동 (Activites performed)
- 측정과 분석 (Measurement and analysis)
- 구현 검증 (Verfying implmentation)
단계 1 > 2 : 3년 내지 5년 소요
단계 2 > 3 : 1.5년 내지 3년이 소요
각 성숙도 단계에 대해 SEI는 조직이 다음 성숙도 단계에 도달하려는 노력의 대상으로 KPA(Key Process Area)들의 시리즈를 강조
'소프트웨어공학' 카테고리의 다른 글
Software Design (0) | 2024.12.13 |
---|---|
Requirement Engneering (0) | 2024.12.13 |
Extreme Programming (XP) (0) | 2024.12.12 |
User story (0) | 2024.12.02 |
MIS, CRM, ERP, SCM (0) | 2024.10.29 |