2022. 6. 13. 16:12ㆍ정처기(필기)/정보시스템구축관리
(1) 소프트웨어 생명주기 모델
1. 소프트웨어 생명주기 모델이란
- 소프트웨어 생명주기는 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차
- 시스템이 개발될 때부터 운용과 유지보수를 거쳐 생애를 마칠 때까지 어떠한 순서를 밟는지에 대한 작업 프로세스를 모델화한 것이다.
2. 소프트웨어 생명주기 모델 프로세스
순서 | 프로세스 | 설명 | 활동 |
1 | 요구사항 분석 | 다양한 이해관계자의 요구사항을 고려하여 새로운 제품이나 변경된 제품에 부합하는 요구와 조건을 결정하는 단계 | 기능 요구사항 비기능 요구사항 |
2 | 설계 | 시스템 명세 단계에서 정의한 기능을 실제 수행할 수 있도록 수행 방법을 논리적으로 결정하는 단계 | 시스템 구조 설계 프로그램 설계 사용자 인터페이스 설계 |
3 | 구현 | 설계 단계에서 논리적으로 결정한 문제해결 방법을 특정 프로그래밍 언어를 사용하여 실제 프로그램을 작성하는 단계 | 인터페이스 개발 자료 구조 개발 오류 처리 |
4 | 테스트 | 시스템이 정해진 요구를 만족하는지, 예상과 실제 결과가 어떤 차이를 보이는지 검사하고 평가하는 단계 | 단위 테스트 통합 테스트 시스템 테스트 인수 테스트 |
5 | 유지보수 | 시스템이 인수되고 설치된 후 일어나는 모든 활동을 수행하는 단계 | 예방, 완전, 교정, 적응 유지보수 |
3. 소프트웨어 생명주기 모델 종류
- 폭포수 모델 : 소프트웨어 개발 시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델(선형 순차적 모델)
- 프로토타이핑 모델 : 고객이 요구한 주요 기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델
- 나선형 모델 : 시스템 개발 시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델(계획 및 정의 -> 위험 분석 -> 개발 -> 고객 평가)
- 반복적 모델 : 구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 SDLC 모델
(2) 소프트웨어 개발방법론
1. 소프트웨어 개발방법론이란
- 소프트웨어 개발 전 과정에 지속적으로 적용할 수 있는 방법, 절차, 기법이다.
2. 소프트웨어 개발방법론 종류
종류 | 설명 |
구조적 방법론 | 전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 분할과 정복 접근 방식의 방법론 나씨-슈나이더만 차트 사용 |
정보공학 방법론 | 정보 시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론 |
객체 지향 방법론 | 객체라는 기본 단위로 시스템을 분석 및 설계하는 방법론 |
컴포넌트 기반 방법론 | 소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론 |
애자일 방법론 | 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론 |
제품 계열 방법론 | 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론 |
(3) 요구공학 방법론
1. 요구공학 방법론이란
- 사용자의 요구가 반영된 시스템을 개발하기 위하여 사용자 요구사항에 대한 도출, 분석, 명세, 확인 및 검증하는 구조화된 방법
2. 요구사항 개발 프로세스
- 요구사항 도출 : 소프트웨어가 해결해야 할 문제를 이해하고, 고객으로부터 제시되는 추상적 요구에 대해 관련 정보를 식별하고 수집 방법을 결정, 수집된 요구사항을 구체적으로 표현하는 단계
- 요구사항 분석 : 도출된 요구사항에 대해 충돌, 중복, 누락 등의 분석을 통해 완전성과 일관성을 확보하는 단계
- 요구사항 명세 : 체계적으로 검토, 평가, 승인될 수 있는 문서를 작성하는 단계
- 요구사항 확인 및 검증 : 요구사항 문서가 회사의 표준에 적합하고 이해 가능하며, 일관성 있고, 완전한지 검증하는 단계
3. 요구사항 관리 프로세스
- 요구사항 협상 : 가용한 자원과 수용 가능한 위험 수준에서 구현 가능한 기능을 협상하기 위한 기법(우선순위 설정, 시뮬레이션)
- 요구사항 기준선 결정 : 공식적으로 검토되고 합의된 요구사항 명세서(공식 회의, 형상 관리)
- 요구사항 변경관리 : 요구사항 기준선을 기반으로 모든 변경을 공식적으로 통제하기 위한 기법(형상통제 위원회, 영향도)
- 요구사항 확인 및 검증 : 구축된 시스템이 이해관계자가 기대한 요구사항에 부합하는지 확인하기 위한 방법(확인 및 검증)
(4) 비용산정 모델
1. 비용산정 모델이란
- 소프트웨어 규모파악을 통한 투입자원, 소요시간을 파악하여 실행 가능한 계획을 수립하기 위해 비용을 산정하는 기법
2. 비용산정 모델 분류
하향식 산정방법 : 경험이 많은 전문가에게 비용 산정을 의뢰(전문가 감정 기법, 델파이 기법)
상향식 산정방법 : 세부적인 요구사항과 기능에 따라 필요한 비용을 계산하는 방식(코드 라인 수, Man Month, COCOMO 모형, Putnam 모형, FP 모형, 개발 단계별 노력 기법)
3. 하향식 비용 산정 모델
- 전문가 감정 기법 : 조직 내에 있는 경험이 많은 2명 이상의 전문에게 비용 산정을 의뢰하는 기법
- 델파이 기법 : 전문가 감정 기법의 주관적인 판단을 보완하기 위해 많은 전문가의 의견을 종합하여 비용을 산정하는 기법
4. 상향식 비용 산정 모델
모델 | 설명 |
LOC(Lines Of Code) | 소프트웨어 각 기능의 원시 코드 라인 수의 낙관치, 증가치, 비관치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정(측정이 쉽고 이해하기 쉬움) |
Man Month | 한 사람이 1개월 동안 할 수 있는 일의 양을 기준으로 프로젝트 비용을 산정하는 기법 |
COCOMO | 보헴이 제안한 모형으로 프로그램 규모에 따라 비용을 산정하는 방법 (조직형 : 중소규모의 소프트웨어, 5만 라인 이하의 소프트웨어 개발) (반 분리형 : 단순형과 임베디드형의 중간형, 30만 라인 이하) (임베디드형 : 초대형 규모의 트랜잭션 처리 시스템이나 운영체제, 실시간 처리 시스템 등의 프로그램 개발에 적용) |
푸트남 모형 | 소프트웨어 개발 주기의 단계별로 요구할 인력의 분포를 가정하는 모형 |
기능점수 모형(FP) | 요구 기능을 증가시키는 인자별로 가중치를 부여하고, 요인별 가중치를 합산하여 총 기능의 점수를 계산하여 비용을 산정하는 방식, 이를 기초로 개발된 자동화 추정 도구인 ESTIMACS가 있음 |
개발 단계별 노력 기법 | LOC 기법을 확장한 기법, SW 개발 생명주기 단계별로 적용시켜 모든 단계에서의 비용을 산정하는 기법 |
(5) 일정관리 모델
1. 일정관리 모델이란
- 일정관리 모델은 프로젝트가 일정 기한 내에 적절하게 완료될 수 있도록 관리하는 모델
2. 일정관리 모델 종류
- 주 공정법(CPM; Critical Path Method) : 여러 작업의 수행 순서가 얽혀 있는 프로젝트의 일정을 계산하는 기법
- PERT : 일의 순서를 계획적으로 정리하기 위한 수렴 기법(비관치, 중간치, 낙관치의 3점 측정방식)
- 중요 연쇄 프로젝트 관리(CCPM) : 주 공정 연쇄법으로 자원제약사항을 고려하여 일정을 작성하는 기법
(6) 소프트웨어 개발 표준
1. 소프트웨어 개발 표준 개념
- 소프트웨어 개발 단계에서 품질 관리와 개발 표준을 위하여 국제적으로 정하는 표준
2. ISO/IEC 12207 표준
- ISO/IEC 12207 표준은 소프트웨어 생명주기 프로세스
▼ISO/IEC 12207 구성
- 기본 공정 프로세스 : 획득 프로세스, 공급 프로세스, 개발 프로세스, 운영 프로세스, 유지보수 프로세스
- 조직 공정 프로세스 : 기반 구조 프로세스, 관리 프로세스, 개선 프로세스, 훈련 프로세스
- 지원 공정 프로세스 : 문서화 프로세스, 품질 보증 프로세스, 형상 관리 프로세스, 검증 프로세스, 확인 프로세스, 문제 해결 프로세스, 활동 검토 프로세스, 감사 프로세스
3. CMMI 개념
- CMMI는 기존 능력 성숙도 모델을 발전시킨 것으로서, 기존에 소프트웨어 품질 보증 기준으로 사용되던 SW-CMM과 시스템 엔지니어링 분야의 품질 보증 기준으로 사용되던 SE-CMM을 통합하여 개발한 품질 개선 모델
[1] CMMI 모델
- 단계적 모델 : 조직의 전체적인 성숙도 확인을 위해 CMMI 평가를 5단계의 성숙도 레벨로 정의하고 성숙수준 기반으로 평가하는 모델
- 연속적 모델 : 조직의 비즈니스 목적을 충족시키고, 위험 요소를 완화하는 데 중요한 개선사항의 순서를 정하여 적용할 수 있고, 능력 레벨을 이용하여 프로세스 영역별로 성숙도 평가가 가능한 모델
▼ CMMI 구성
- SW-CMM : 소프트웨어 능력 성숙도 모델
- SE-CMM : 시스템 엔지니어링 능력 모델
- IPD-CMM : 통합 제품 개발 능력 성숙도 모델
- People-CMM : 인력 개발 및 관리 모델
- SA-CMM : 소프트웨어 획득 모델
- SECAM : 시스템 엔지니어링 능력 심사 모델
▼CMMI 단계적 표현 모델의 성숙도 레벨
- 초기화 단계 : 정의된 프로세스가 없고 작업자 능력에 따라 성과가 좌우되는 단계
- 관리 단계 : 특정한 프로젝트 내의 프로세스가 정의되고 수행되는 단계
- 정의 단계 : 조직의 표준 프로세스를 활용하여 업무를 수행하는 상태 표준화, 일관된 프로세스가 존재하는 단계
- 정량적 관리 단계 : 정량적 기법을 활용하여 핵심 프로세스를 통제하는 단계
- 최적화 단계 : 플세스 역량 향상을 위해 신기술 도입, 프로세스 혁신 활동 수행하는 단계
4. SPICE
- SPICE는 소프트웨어 프로세스에 대한 개선 및 능력측정 기준에 대한 국제 표준
(7) 테일러링
1. 테일러링 개념
- 테일러링은 조직의 표준 프로세스를 커스터마이징하여 프로젝트의 비즈니스적으로 또는 기술적인 요구에 맞게 적합한 프로세스를 얻는 과정
▼테이러링 프로세스
- 프로젝트 특징 정의 : 사업목표, 현황확인, 프로젝트에 대한 이해(프로젝트 특징 파악)
- 표준 프로세스 선점 및 검증 : 표준 프로세스 선정 및 검증
- 상위 수준의 커스터마이징 : 비즈니스 니즈에 따른 생명주기 정의(개발 단계/인력의 조정)
- 세부 수준의 커스터마이징 : 테일러링 매트릭스를 활용해 세부 WBS 적용, 일정 계획 수립
- 테일러링 문서화 : 결정 사항 문서화, 검토 및 승인
(8) 소프트웨어 개발 프레임워크
1. 소프트웨어 개발 프레임워크 개념
- 반제품 상태의 제품을 토대로 도메인별로 필요한 서비스 컴포넌트를 사용하여 재사용성 확대와 성능을 보장받을 수 있게 해주는 개발 소프트웨어
(9) 소프트웨어 재사용
1. 소프트웨어 재사용 개념
- 이미 개발되어 인정받은 소프트웨어의 전체 혹은 일부분을 다른 소프트웨어 개발이나 유지보수에 사용하는 기법
2. 소프트웨어 재사용 방법
- 합성 중심 : 전자 칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추어 소프트웨어를 완성시키는 방법(블록 구성 방법)
- 생성 중심 : 추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법(패턴 구성 방법)
'정처기(필기) > 정보시스템구축관리' 카테고리의 다른 글
시스템 보안 설계 (0) | 2022.06.18 |
---|---|
소프트웨어 개발 보안 설계 (0) | 2022.06.16 |
IT 신기술 및 SW 개발 트렌드 정보 (0) | 2022.06.15 |
네트워크 구축관리 (0) | 2022.06.14 |