Just do IT
article thumbnail

소프트웨어 개발 방법론

   - 소프트웨어를 생산하는데 필요한 개발 과정들을 정리하고 표준화 한 것 

   - 개발자들이 개발 과정에서 일관성을 유지하고 효과적인 협업이 이루어질 수 있도록 돕기 위한 것

 

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

세대 구분 내용
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. 테일러링
   꼭 필요한 방법론과 산출문만 남김
   내부적 기준: 목표환경, 요구사항, 프로젝트규모, 보유기술, 비용, 구성원 능력
   외부적 기준: 법적 제약사항, 표준 품질기준

 

2. IT프로젝트 정보 시스템 구축 관리

profile

Just do IT

@AmyG

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!