일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AWS
- 수제비2022 정리
- 지독한 컨셉충
- 플러터
- 뽀모도로 타이머
- 개강해짐
- 스프링 MVC
- 교육봉사
- 다들 안잊어서
- 레이튼 교수와 이상한 마을
- N-Queen
- 대외활동
- 재택치료
- 교수님 과제 이제 그만..
- 생일축하해 나 자신
- 다행이야...ㅎ
- CRUDS
- 확진
- 2022 정보처리기사
- 다음에 또 만나자
- 정보처리기사2022
- 자가격리
- 정보처리기사 2022
- 수제비 2022
- 아싸의 생일
- 모바일 청첩장
- 얘들아 잘 지내니
- 대학생
- pem키 분실
- FLUTTER
- Today
- Total
Rei’s Tech diary
Chapter 1. 소프트웨어 개발방법론 활용 본문
[1] 소프트웨어 개발방법론 선정
#. 소프트웨어 생명주기 모델 종류
종류 | 설명 |
폭포수 모델 (Waterfall Model) |
˙ 소프트웨어 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델 ˙ Bohem이 제시한 고전적 생명주기 모형으로서 선형 순차적 모델이라고 함 ˙ 가장 오래된 모델로 적용 경험과 성공 사례가 많음 ˙ 단계별 정의와 산출물이 명확 ˙ 요구사항 변경이 어려움 절차) 타당성 검토→계획→요구사항 분석→설계→구현→테스트→유지보수 |
프로토타이핑 모델 (Prototyping Model) |
˙ 고객이 요구한 주요 기능을 프로토타입으로 구현, 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델 ˙ 프로토타입은 발주자나 개발자 모두에게 공동의 참조 모델을 제공 ˙ 프로토타입은 구현 단계의 구현 골격 |
나선형 모델 (Spiral Model) |
˙ 시스템 개발 시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델 ˙ 비교적 대규모 시스템에 적합 ˙ 소프트웨어를 개발하면서 발생할 수 있는 위험을 관리하고 최소화하는 것을 목적 ˙ 계획 및 정의, 위험 분석, 공학적 개발, 고객 평가의 개발 주기를 반복해서 수행 절차) 타당성 계획 및 정의→위험분석→개발→고객 평가 |
반복적 모델 (Iteration Model) |
˙구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 SDLC 모델 ˙ 사용자의 요구사항 일부분 혹은 제품 일부분을 반복적으로 개발하여 최종 시스템으로 완성하는 모델 |
#. 소프트웨어 개발 방법론 종류
종류 | 설명 |
구조적 방법론 (Structure Development) |
˙ 전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 분할과 정복 접근 방식의 방법론 ˙ 프로세스 중심의 하향식 방법론 ˙ 구조적 프로그래밍 표현을 위해 나씨-슈나이더만 차트 사용 ˙ 정형화된 분석 절차에 따라 사용자 요구사항을 파악, 문서화하는 체계적인 분석 방법으로 자료흐름도, 자료 사전, 소단위명세서의 특징을 갖는 방법론 나씨-슈마이더만 차트 특징 - 논리의 기술에 중점을 둔 도형식 표현 장법 - 연속, 선택 및 다중 선택, 반복 등의 제어 논리 구조로 표현 - 조건이 복합되어 있는 곳의 처리를 시각적으로 명확히 식별하는 데 적합 |
정보공학 방법론 (Information Engineering Development) |
˙ 정보 시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론 ˙ 개발주기를 이용해 대형 프로젝트를 수행하는 체계적인 방법론 ˙ 정보 시스템의 개발을 위해 개발, 분석, 설계, 구축에 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료 중신의 방법론 |
객체 지향 방법론 (Object-Oriented Development) |
˙ 객체라는 기본 단위로 시스템을 분석 및 설계하는 방법론 ˙ 복잡한 현실 세계를 사람이 이해하는 방식으로 시스템에 적용하는 방법론 ˙ 객체, 클래스, 메시지를 사용 ˙ 현실 세계의 개체를 하나의 객체로 만들어서 소프트웨어를 개발할 때 조립하듯이 객체들을 조립해서 소프트웨어를 구현하는 방법론 |
컴포넌트 기반 방법론 (CBD; Component Based Development) |
˙ 소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론 ˙ 생산성과 품질을 높이고 유지보수 비용을 최소화 할 수 있음 ˙ 컴포넌트 제작 기법을 통해 재사용성을 향상 ˙ 독립적인 컴포넌트 단위의 고나리로 복잡성 최소화 ˙ 소프트웨어 재사용이 가능 |
애자일 방법론 (Agile Development) |
˙ 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론 ˙ 애자일은 개발 과정의 어려움을 극복하기 위해 적극적으로 모색한 방법론 |
제품 계열 방법론 (Product Line Development) |
˙ 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론 ˙ 임베디드 소프트웨어를 작성하는 데 유용한 방법론 ˙ 영역 공학와 응용 공학으로 구분 - 영역 공학 : 영역 분석, 영역 설계, 핵심 자산을 구현하는 영역 - 응용 공학 : 제품 요구분석, 제품 설계, 제품을 구현하는 영역 |
#. 비용 산정 모델
- 소프트웨어 규모파악을 통한 투입자원, 소요시간을 파악하여 실행 간으한 게획을 수립하기 위해 비용을 산정하는 기법
#. 비용산정 모델 분류
분류 | 설명 | 종류 |
하향식 산정방법 | 경험이 많은 전문가에게 비용산정을 의뢰, 혹은 여러 전문가와 조정자를 통해 산정 | 전문가 감정 기법 델파이 기법 |
상향식 산정방법 | 세부적인 요구사항과 기능에 따라 필요한 비용을 계산 | LOC, Man Month, COCOMO, Putnam FP 개발 단계별 노력 기법 |
① 하향식 비용 산정 모델
모델 | 설명 |
전문가 감정 기법 | ˙ 조직 내에 있는 경험이 많은 2명 이상의 전문가에게 비용 산정을 의뢰하는 기법 ˙ 편리하고 신속하게 비용을 산정할 수 있지만, 개인적이고 주관적. |
델파이 기법 | ˙ 전문가 감정 기법의 주관적인 판단을 보완하기 위해 많은 전문가의 의견을 종합하여 비용을 산정하는 기법 ˙ 1명의 조정자와 여러 전문가로 구성됨 |
② 상향식 비용 산정 모델
모델 | 설명 |
LOC (Lines of Code) |
˙ 소프트웨어 각 기능의 원시 코드 라인 수의 낙관치, 중간치, 비관치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정 ˙ 측정이 쉽고 이해하기 쉬워 많이 사용 ˙ 예측치를 이용하여 생산성, 노력, 개발 기간 등의 비용을 산정 ˙ 예측치 = (o+4m+p)/6 (o : 낙관치, m : 중산치, p : 비관치) |
Man Month | ˙ 한 사람이 1개월 동안 할 수 잇는 일의 양을 기준으로 프로젝트 비용을 산정하는 기법 - (Man Month) = (LOC)/(프로그래머의 월간 생산성) - (프로젝트 기간) = (Man Month)/(프로젝트 인력) |
COCOMO (COnstructive COst MOdel) |
˙ 보헴(Bohem)이 제안한 모형으로 프로그램 규모에 따라 비용을 산정하는 방법 ˙ 비용 산정 결과는 프로젝트를 완성하는 데 필요한 노력으로 산정 ˙ 비용 견적의 강도 분석 및 비용 견적의 유연성이 높아 소프트웨어 개발비 견적에 널리 통용 ˙ 규모에 따라 유형을 조직형, 반 분리형, 임베디드 형으로 나뉨 - 조직형(Organic) : 5만 라인 이하 - 반 분리형(Semi-Detached) : 30만 라인 이하 - 임베디드(Embedded) : 30만 라인 이상 |
푸트남(Putnam) 모형 | ˙ 소프트웨어 개발 주기의 단계별로 요구할 인력의 분포를 가정하는 모형 ˙ 푸트남이 제안, 생명주기 예측 모형이라고 함 ˙ 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 함 ˙ 개형 프로젝트의 노력 분포 산정에 이용 ˙ 개발 기간이 늘어날수록 프로젝트 적용 인원의 노력이 감소됨 ˙ 푸트남 예측 모델을 기초로 하여 개발된 자동화 추정 도구로서 SLIM이 있음 |
기능점수 모형 (FP; Function Point) |
˙ 요구 기능을 증가시키는 인자별로 가중치를 부여, 요인별 가중치를 합산하여 총 기능의 점수를 계산하는 비용을 산정하느 방식 ˙ 기능점수(FP) = 총 기능점수 X [0.65 + (0.1 X 총 영향도)] ˙ 경험을 바탕으로 단순, 보통, 복잡한 정도에 따라 가중치를 부여 - 자료 입력, 자료 출력, 명령어, 데이터 파일, 외부루틴과의 인터페이스 등 ˙ 다양한 프로젝트와 개인별 요소를 수용하도록 FP 모형을 기초로 하여 개발된 자동화 추정 도구인 ESTIMACS가 있음 |
개발 단게별 노력 기법 (Effort Per Task) |
˙ LOC 기법을 확장한 기법으로, LOC 기법을 코딩 단계뿐 아니라 SW개발 생명주기 단계별로 적용시켜 모든 단계에서 비용을 산정하는 기법 |
#. 일정관리 모델 종류
- 주 공정법 (CPM)
- PERT
- 중요 연쇄 프로젝트 관리
#. CPM에서 임계 경로 기간 계산
- CMP 네트워크를 그려서 가장 긴 경로를 찾는다.
[2] 소프트웨어 개발방법론 테일러링
#. ISO/IEC 12207 표준
- ISO/IEC 12207 표준은 소프트웨어 생명주기 프로세스이다.
- 소프트웨어와 관련된 조직과 사람, 소프트웨어 획득자, 공급자, 개발자 등의 이해관계자들이 각자의 입장에서 수행해야 할 일을 정의하고 지속적으로 개선시키기 위한 활동이다.
▼ ISO/IEC 12207 구성
구성 | 주요 프로세스 |
기본 공정 프로세스 | 획득 프로세스, 공급 프로세스, 개발 프로세스, 운영 프로세스, 유지보수 프로세스 |
조직 공정 프로세스 | 기반 구조 프로세스, 관리 프로세스, 개선 프로세스, 훈련 프로세스 |
지원 공정 프로세스 | 문서화 프로세스, 품질 보증 프로세스, 형상 관리 프로세스, 검증 프로세스, 확인 프로세스, 문제 해결 프로세스, 활동 검토 프로세스, 감사 프로세스 |
① CMMI 개념
- CMMI는 기존 능력 성숙도 모델(CMM)을 발전시킨 것으로, 기존에 소프트웨어 품질 보증 기준으로 사용되던 SW-CMM과 시스템 엔지니어링 분야의 품질 보증 기준으로 사용되던 SE-CMM을 통합하여 개발한 품질 개선 모델이다.
② CMMI 모델
모델 | 설명 |
단계적 모델 | 조직의 전체적인 성숙도 확인을 위해 CMMI평가를 5단계의 성숙도 레벨로 정의 |
연속적 모델 | 조직의 비즈니스 목적을 충족, 위험 요소를 완화하는 데 중요한 개선사항의 순서를 정하여 적용할 수 있고, 능력 레벨을 이용하여 프로세스 영역별로 성숙도 평가가 가능한 모델 |
③ CMMI 구성
구분 | 설명 |
SW-CMM | 소프트웨어 능력 성숙도 모델 |
SE-CMM | 시스템 엔지니어링 능력 모델 |
IPD-CMM | 통합 제품 개발 능력 성숙도 모델 |
Prople-CMM | 인력 개발 및 관리 모델 |
SA-CMM | 소프트웨어 획득 모델 |
SECAM | 시스템 엔지니어링 능력 심사 모델 |
④ CMMI 단계적 표현 모델의 성숙도 레벨
수준 | 레벨 | 설명 |
1 | 초기화 단계 (Initial) |
˙ 정의된 프로세스가 없고 작업자 능력에 따라 성과가 좌우되는 단계 ˙ 프로세스 미비/비공식적, 예측 불가 |
2 | 관리 단계 (Managed) |
˙ 특정한 프로젝트 내의 프로세스가 정의되고 수행되는 단계 ˙ 프로젝트 관리 시스템 정착, 프로젝트 결과의 반복성 |
3 | 정의 단계 (Defined) |
˙ 조직의 표준 프로세스를 활용하여 업무를 수행하는 상태 표준화, 일관된 프로세스가 존재하는 단계 ˙ 엔지니어링 및 관리 프로세스의 통합 |
4 | 정량적 관리 단계 (Quantitatively Managed) |
˙ 정량적 기법을 활용하여 핵심 프로세스를 통제하는 단계 ˙ 제품 및 프로세스의 정량적 통제 |
5 | 최적화 단계 (Optimized) |
˙ 프로세스 역량 향상을 위해 신기술 도입, 프로세스 혁신 활동 수행하는 단계 ˙ 프로세스 개선이 내재화된 조직 |
① SPICE 모델 개념
- SPICE는 소프트웨어 프로세스에 대한 개선 및 능력측정 기준에 대한 국제 표준이다.
- 소프트웨어 프로세스 평가를 위한 국제 표준이다.
- 미 국방성의 CMM과 비슷한 프로세스 평가를 위한 모델을 제시한다.
② SPICE 프로세스 수행 능력 수준
레벨 | 수준 | 설명 |
0 | 불안정 단계 | 프로세스가 구현되지 않았거나, 프로세스가 그 목적을 달성하지 못한 단계 |
1 | 수행 단계 | 프로세스의 목적이 전반적으로 이루어진 단계 |
2 | 관리 단계 | 정의된 자원의 한도 내에서 그 프로세스가 작업 산출물을 인도 |
3 | 확립 단계 | 소프트웨어 공학 원칙에 기반하여 정의된 프로세스가 수행 |
4 | 예측 단계 | 프로세스가 목적 달성을 위해 통제되고, 양적인 측정을 통해서 일관되게 수행 |
5 | 최적화 단계 | 프로세스 수행을 최적화하고, 지속적으로 업무 목적을 만족 |
#. 테일러링(Tailoring)
- 테일러링은 조직의 표준 프로세스를 커스터마이징하여 프로젝트의 비즈니스적으로 또는 기술적인 요구에 맞게 적합한 프로세스를 얻는 과정이다.
- 프로젝트 상황에 맞게 이미 정의된 개발 방법론의 절차, 기법, 산출물 등을 재활용하여 계획을 수립하는 기법이다.
▼ 테일러링 개발 방법론의 기준
1) 내부적 기준
- 목표환경
- 요구사항
- 프로젝트 특성
- 구성원 능력
2) 외부적 기준
- 국제 표준 품질 기준
- 법적 규제
#. 소프트웨어 개발 프레임워크 적용 시 기대효과
- 개발할 소프트웨어에 대한 품질 보증이 가능
- 소프트웨어 개발 용이성 증가
- 소프트웨어 변경 사항 발생 시 대응이 용이
- 개발하고자 하는 소프트웨어의 복잡도 감소
- 표준화된 연계 모듈 활용으로 상호 운용성 향상
- 개발 표준에 의한 모듈화로 유지보수 용이
- 공통 컴포넌트 재사용으로 중복 예산 절감
'정보처리기사 > [5] 정보시스템 구축관리' 카테고리의 다른 글
Chapter 4. 시스템 보안 구축 (0) | 2022.04.04 |
---|---|
Chapter 3. 소프트웨어 개발 보안 구축 (2) | 2022.04.04 |
Chapter 2. IT프로젝트 정보시스템 구축관리 (0) | 2022.03.30 |