소프트웨어 개발방법론 선정

2022. 6. 13. 16:12정처기(필기)/정보시스템구축관리

더보기

(1) 소프트웨어 생명주기 모델

1. 소프트웨어 생명주기 모델이란

- 소프트웨어 생명주기는 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차

- 시스템이 개발될 때부터 운용과 유지보수를 거쳐 생애를 마칠 때까지 어떠한 순서를 밟는지에 대한 작업 프로세스를 모델화한 것이다. 

 

2. 소프트웨어 생명주기 모델 프로세스

순서 프로세스 설명 활동
1 요구사항 분석 다양한 이해관계자의 요구사항을 고려하여 새로운 제품이나 변경된 제품에 부합하는 요구와 조건을 결정하는 단계 기능 요구사항
비기능 요구사항
2 설계 시스템 명세 단계에서 정의한 기능을 실제 수행할 수 있도록 수행 방법을 논리적으로 결정하는 단계 시스템 구조 설계
프로그램 설계
사용자 인터페이스 설계
3 구현 설계 단계에서 논리적으로 결정한 문제해결 방법을 특정 프로그래밍 언어를 사용하여 실제 프로그램을 작성하는 단계 인터페이스 개발
자료 구조 개발
오류 처리
4 테스트 시스템이 정해진 요구를 만족하는지, 예상과 실제 결과가 어떤 차이를 보이는지 검사하고 평가하는 단계 단위 테스트
통합 테스트
시스템 테스트
인수 테스트
5 유지보수 시스템이 인수되고 설치된 후 일어나는 모든 활동을 수행하는 단계 예방, 완전, 교정, 적응 유지보수

 

3. 소프트웨어 생명주기 모델 종류

  • 폭포수 모델 : 소프트웨어 개발 시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델(선형 순차적 모델)
  • 프로토타이핑 모델 : 고객이 요구한 주요 기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델
  • 나선형 모델 : 시스템 개발 시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델(계획 및 정의 -> 위험 분석 -> 개발 -> 고객 평가)
  • 반복적 모델 : 구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 SDLC 모델

 

더보기

(2) 소프트웨어 개발방법론

1. 소프트웨어 개발방법론이란

- 소프트웨어 개발 전 과정에 지속적으로 적용할 수 있는 방법, 절차, 기법이다. 

 

2. 소프트웨어 개발방법론 종류

종류 설명
구조적 방법론 전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 분할과 정복 접근 방식의 방법론
나씨-슈나이더만 차트 사용
정보공학 방법론 정보 시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론
객체 지향 방법론 객체라는 기본 단위로 시스템을 분석 및 설계하는 방법론
컴포넌트 기반 방법론 소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론
애자일 방법론 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론
제품 계열 방법론 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론

 

더보기

(3) 요구공학 방법론

1. 요구공학 방법론이란

- 사용자의 요구가 반영된 시스템을 개발하기 위하여 사용자 요구사항에 대한 도출, 분석, 명세, 확인 및 검증하는 구조화된 방법

 

 

2. 요구사항 개발 프로세스

  1. 요구사항 도출 : 소프트웨어가 해결해야 할 문제를 이해하고, 고객으로부터 제시되는 추상적 요구에 대해 관련 정보를 식별하고 수집 방법을 결정, 수집된 요구사항을 구체적으로 표현하는 단계
  2. 요구사항 분석 : 도출된 요구사항에 대해 충돌, 중복, 누락 등의 분석을 통해 완전성과 일관성을 확보하는 단계
  3. 요구사항 명세 : 체계적으로 검토, 평가, 승인될 수 있는 문서를 작성하는 단계
  4. 요구사항 확인 및 검증 : 요구사항 문서가 회사의 표준에 적합하고 이해 가능하며, 일관성 있고, 완전한지 검증하는 단계

 

3. 요구사항 관리 프로세스

  1. 요구사항 협상 : 가용한 자원과 수용 가능한 위험 수준에서 구현 가능한 기능을 협상하기 위한 기법(우선순위 설정, 시뮬레이션)
  2. 요구사항 기준선 결정 : 공식적으로 검토되고 합의된 요구사항 명세서(공식 회의, 형상 관리)
  3. 요구사항 변경관리 : 요구사항 기준선을 기반으로 모든 변경을 공식적으로 통제하기 위한 기법(형상통제 위원회, 영향도)
  4. 요구사항 확인 및 검증 : 구축된 시스템이 이해관계자가 기대한 요구사항에 부합하는지 확인하기 위한 방법(확인 및 검증)

 

더보기

(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 단계적 표현 모델의 성숙도 레벨

  1. 초기화 단계 : 정의된 프로세스가 없고 작업자 능력에 따라 성과가 좌우되는 단계
  2. 관리 단계 : 특정한 프로젝트 내의 프로세스가 정의되고 수행되는 단계
  3. 정의 단계 : 조직의 표준 프로세스를 활용하여 업무를 수행하는 상태 표준화, 일관된 프로세스가 존재하는 단계
  4. 정량적 관리 단계 : 정량적 기법을 활용하여 핵심 프로세스를 통제하는 단계
  5. 최적화 단계 : 플세스 역량 향상을 위해 신기술 도입, 프로세스 혁신 활동 수행하는 단계

 

4. SPICE

- SPICE는 소프트웨어 프로세스에 대한 개선 및 능력측정 기준에 대한 국제 표준

 

 

더보기

(7) 테일러링 

1. 테일러링 개념

- 테일러링은 조직의 표준 프로세스를 커스터마이징하여 프로젝트의 비즈니스적으로 또는 기술적인 요구에 맞게 적합한 프로세스를 얻는 과정 

 

▼테이러링 프로세스

  1. 프로젝트 특징 정의 : 사업목표, 현황확인, 프로젝트에 대한 이해(프로젝트 특징 파악)
  2. 표준 프로세스 선점 및 검증 : 표준 프로세스 선정 및 검증
  3. 상위 수준의 커스터마이징 : 비즈니스 니즈에 따른 생명주기 정의(개발 단계/인력의 조정)
  4. 세부 수준의 커스터마이징 : 테일러링 매트릭스를 활용해 세부 WBS 적용, 일정 계획 수립
  5. 테일러링 문서화 : 결정 사항 문서화, 검토 및 승인

 

더보기

(8) 소프트웨어 개발 프레임워크

1. 소프트웨어 개발 프레임워크 개념

- 반제품 상태의 제품을 토대로 도메인별로 필요한 서비스 컴포넌트를 사용하여 재사용성 확대와 성능을 보장받을 수 있게 해주는 개발 소프트웨어

 

 

더보기

(9) 소프트웨어 재사용

1. 소프트웨어 재사용 개념

- 이미 개발되어 인정받은 소프트웨어의 전체 혹은 일부분을 다른 소프트웨어 개발이나 유지보수에 사용하는 기법

 

2. 소프트웨어 재사용 방법

  • 합성 중심 : 전자 칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추어 소프트웨어를 완성시키는 방법(블록 구성 방법)
  • 생성 중심 : 추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법(패턴 구성 방법)