소프트웨어 개발 방법론
- 소프트웨어를 생산하는데 필요한 개발 과정들을 정리하고 표준화 한 것
- 개발자들이 개발 과정에서 일관성을 유지하고 효과적인 협업이 이루어질 수 있도록 돕기 위한 것
소프트웨어 개발 방법론의 종류
세대 | 구분 | 내용 |
1970년대 | 구조적 방법론 | - 구조화 프로그래밍 - 쉽게 이해할 수 있고 검증할 수 있는 프로그램의 작성 |
1980년대 | 정보공학 방법론 | - 관리 절차와 작업 기법을 체계화 - 개발 주기를 이용해 대형 프로젝트를 수행하는 체계적인 방법론 |
1990년대 | 객체지향 방법론 | - 데이터와 그 데이터에 관련되는 동작을 모두 포함 - 정보 시스템과 데이터베이스를 설계하는 방법론 |
2000년대 | 컴포넌트 기반 방법론 | - 컴포넌트를 조립해서 새로운 응용 프로그램을 작성 - 컴포넌트는 원하는 데이터베이스와 소프트웨어의 개발된 모듈 단위를 가리킴 |
2000년대 | Agile(애자일) 방법론 | - 요구사항, 설계, 구현, 테스트의 과정으로 개발 - 개발 과정의 어려움을 극복하기 위해 적극적으로 모색한 방법론으로 개발자들로부터 호평을 받음 |
2010년대 | 제품 계열 방법론 | - 특정 제품에 수용하고 싶은 공통된 기능을 정의 - 임베디드 소프트웨어를 작성하는데 유용한 방법론 |
비용 산정 방법
모델 | 내용 |
하향식 방법 | * 전문가의 감정에 의한 방법 - 경험과 지식을 갖춘 2인 이상의 전문가에 비용 산정을 의뢰하여 비용 산출 * 델파이 방법 - 전문가가 독자적으로 감정을 할 때 발생할 수 있는 편차를 줄이기 위해 단계별로 전문가들의 견해를 조정하여 최종 견적을 결정하는 방법 |
상향식 방법 | * 원시 코드 라인 수 (LOC) 기법 - 스프트웨어 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 방법 * 개발 단계별 노력 기법 (M/M) - 원시코드라인 수(LOC)를 보완한 방법 - M/M을 소프트웨어 개발 생명 주기(SDLC)의 각 단계에 적용하여 단계별로 산정 |
수학적 방법 | * COCOMO 모형 - 보햄(Boehm)이 제안한 방법 - 원시 프로그램의 라인 수에 따라 비용을 산정하는 방법 * 생명주기 예측 모형(푸드남/Putnam 모형) - 소프트웨어 개발 주기의 각 단계마다 비중을 다르게 하여 비용을 산출하는 방법 * 펑션 포인트(FP) 모형 - 소프트웨어 각 기능에 따라 가중치를 부여하여 요인별 가중치를 합산하여 소프트웨어의 규모나 복잡도, 난이도를 산출하는 방법 |
비용 산정 모델
1) COCOMO 모형
- Organic(5만 라인 이하), Semi-Detached (30만 라인 이하), Embedded(그 이상)
( Organic < Semi-Detached < Embedded )
- 비용 산정 단계와 적용할 인수에 따라 Basic, Intermediate, Detailed 형으로 구분
- LOC(Lines of code)기법을 사용
- 예상비용 = (낙관 정도 + 4 * 기대 정도 + 비관 정도) / 6
2) 푸트남(Putnam) 모형
- 소프트웨어 개발 주기의 각 단계별로 요구할 인력의 분포를 가정하는 모델
- 대형 프로젝트의 노력 분포 산정에 이용되는 기법
- 개발 기간이 늘어날수록 프로젝트 적용 인원의 노력이 감소
3) 펑션 포인트(Function Point) FP 모형
- FP = 전체 기능점수 * [0.65 + (0.1 * 총 영향정도)]
- 요구 기능을 증가시키는 인자별로 가중치를 부여하여 기능의 점수를 계산하여 비용을 산정
기능 증대 요인 | 가중치 | ||
단순 | 보통 | 복잡 | |
자료 입력 | 3 | 4 | 6 |
정보 출력 | 4 | 5 | 7 |
명령어 | 3 | 4 | 5 |
데이터 파일 | 7 | 10 | 15 |
필요한 외부 루틴과의 인터페이스 |
5 | 7 | 10 |
소프트웨어개발 방법론 테일러링
1) 소프트웨어 개발 표준
- 소프트웨어 개발 단계에서 품질 관리를 하며 품질 관리는 국제 표준으로 정한다
- 대표적인 국제 표준: ISO 12207 표준, CMMI 모델, SPICE 모델
2) ISO 12207 표준
- ISO/IEC 12207 표준은 소트트웨어 생명주기 프로세스
- **소프트웨어와 관련된 이해관계자들이 각자의 입장에서 수령해야 할 일을 정의하고 지속적으로 개선시키기 위한 활동
**소프트웨어와 관련된 이해관계자들
- 소프트웨어와 과련된 조직과 사람, 소프트웨어 획득자, 공급자, 개발자, 운영자, 유지보수자,
품질보증 관리자, 사용자 등
3) CMMI (Capability Maturity Model Integration) 모델
- 소프트웨어의 개발 공정 및 조직의 성숙도를 초기, 반복, 정의, 관리, 최적화 등의 5개로 나누어 조직의 공정 개선 활동을 지원하는 모델
- 등급이 올라갈수록 소프트웨어 개발프로세스가 선진화 되기 때문에 품질이 올라간다는 모델
(등급이 올라갈수록 품질이 올라간다 / 등급과 품질이 비례한다)
성숙 단계 | 설명 |
1. 초기단계 | 프로세스의 성과를 예측할 수 없는 상태 |
2. 반복단계 | 성공했던 프로젝트 프로세스를 반복, 다소 통계적 관리가 가능한 상태 |
3. 정의단계 | 프로세스 작업 정의와 이해가 가능한 상태 |
4. 관리단계 | 프로세스 성과 측정, 분석, 개선, 관리가 가능한 상태 |
5. 최적화단계 | 개선이 지속적으로 진행되는 상태 |
4) SPICE 모델
- SPICE 모델 : Software Process Improvement and Capability Entermination 모델
- 소프트웨어 프로세스 평가를 위한 국제 표준을 제정하는 프로젝트
- SPICE의 목적
① 개발 기관이 프로세스 개선을 위하여 스스로 평가
② 기관에서 정한 요구 조건을 만족하는지 개발 조직 스스로 평가
③ 계약을 맺기 위하여 수탁 기관이 프로세스를 평가
- SPICE는 CMM의 단점을 개선하기 위해 출현
① CMM은 조직을 평가하므로 제품의 품질과는 직접적인 연관성이 없다
② CMM은 조직 전체에 대한 등급 판정이 비효율적, 비현실적이다
③ CMM은 소규모 업체에서는 적용이 곤란하다
테일러링 (Tailoring)
- 해당 과제에 딱 맞는 최적화된 결과를 얻기 위해 맞지 않는 일반적인 방법론이나 산출물 목록은 제거하고 꼭 필요한 방법론과 산출물만 남기는 작업
- 프로젝트의 기준에 따라 각 산출물의 적용여부 및 변경여부를 체크하고 변경 시에는 사유와 변경 문서명을 기재하는 등의 작업을 하는 것
- 테일러링의 기준
① 내부적 기준: 목표환경, 요구사항, 프로젝트규모, 보유기술, 비용, 구성원 능력 등
② 외부적 기준: 법적, 제약사항, 표준 품질기준 등
정리하기
1. 소프트웨어 개발 방법론
개발 과정들을 정리하고 표준화 한 것이며 개발자들이 개발 과정에서 일관성을 유지하고 효과적인 협업이 이루어질 수 있도록 돕기 위한 것
2. 소프트웨어 개발 방법론의 종류
구조적 (1970) > 정보공학 (1980) > 객체지향 (1990) > 컴포넌트 기반 (2000) > Agile (2000) > 제품 계열 (2010)
3. 비용 산정 방법
하향식 방법 - 전문가의 감정, 델파이 방법
상향식 방법 - 원시 코드 라인 수 (LOC), 개발 단계별 노력기법 (M/M)
수학적 방법 - COCOMO 모형, 생명주기 예측 모형 (푸트남/Putnam 모형), 평선 포인트 (FP) 모형
4. 비용 산정 모델
COCOMO 모형, 푸트남(Putnam) 모형, 평선 포인트(Function Point) FP 모형
5. 소프트웨어개발 방법론 테일러링
개발 국제 표준: ISO12207, CMMI 모델, SPICE 모델
6. 테일러링
꼭 필요한 방법론과 산출문만 남김
내부적 기준: 목표환경, 요구사항, 프로젝트규모, 보유기술, 비용, 구성원 능력
외부적 기준: 법적 제약사항, 표준 품질기준
'정보처리기사 > 5과 정보시스템 구축 관리' 카테고리의 다른 글
4. 시스템 보안 구축 (0) | 2023.03.30 |
---|---|
3. 소프트웨어 개발 보안 구축 (0) | 2023.03.29 |
2. IT프로젝트 정보 시스템 구축 관리 (0) | 2023.03.28 |