728x90
참고1. 노랑마킹은 시험에 나온 중요한 부분입니다.
참고2. 주황강조는 약어 혹은 중요한 내용입니다.
참고3. 회색마킹은 예시입니다.
제 5과목 정보시스템 구축 관리 > 소프트웨어 개발방법론 선정
(1) 소프트웨어 생명주기 모델
소프트웨어 생명주기(SDLC; Software Development Life Cycle)
소프트웨어 생명주기는 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차이다.
소프트웨어 생명주기 모델 프로세스 (요설구테유)
- 요구사항 분석 단계
- 설계 단계
- 구현 단계
- 테스트 단계
- 유지보수 단계
소프트웨어 생명주기 모델 종류 (폭프나반)
종류 | 설명 |
폭포수 모델 (Waterfall Model) |
소프트웨어 개발 시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델 [2020년 4회] |
선형 순차적 모형으로 고전적 생명주기 모형이라고도 함 | |
절차: 타당성 검토→계획→요구사항분석→설계→구현→테스트→유지보수 | |
프로토타이핑 모델 (Prototyping Model) |
고객이 요구한 주요 기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델 |
나선형 모델 (Spiral Model) |
보헴이 제안한 것으로, 위험 분석 기능이 있으며, 여러 번의 개발 과정을 거쳐 점진적으로 개발해 나가는 모델 [2022년 3회] |
절차(반복): 계획 수립 → 위험 분석 → 개발 및 검증 → 고객 평가 [2020년 4회] | |
반복적 모델 (Iteration Model) |
구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 SDLC 모델 |
(2) 소프트웨어 개발방법론
소프트웨어 개발방법론(Software Development Methodology)은 소프트웨어 개발 전 과정에 지속적으로 적용할 수 있는 방법, 절차, 기법이다.
소프트웨어 개발 방법론 종류 (구정객컴 애제)
종류 | 설명 |
구조적 방법론 (Structured Development) |
프로세스 중심의 하향식 방법론 |
구조적 프로그래밍 표현을 위해 나씨-슈나이더만 차트를 사용한다. | |
정보공학 방법론 (Information Engineering Development) |
정보시스템 개발에 필요한 절차와 작업 기법을 체계화한 방법론 |
개발주기를 이용해 대형 프로젝트를 수행하는 체계적인 방법론 | |
객체지향 방법론 (Object-Oriented Development) |
'객체'라는 기본 단위로 시스템을 분석 및 설계하는 방법론 |
컴포넌트 기반 방법론 (CBD; Component Based Development) [2020년 4회] |
소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론 |
개발 기간 단축으로 인한 생산성 향상 | |
새로운 기능 추가가 쉬운 확장성 | |
소프트웨어 재사용이 가능 | |
애자일 방법론 (Agile Development) |
절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론 |
제품 계열 방법론 (Product Line Development) |
특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론 |
나씨-슈나이더만(Nassi-Shneiderman) 차트 [2020년 4회]
- 논리의 기술에 중점을 둔 도형식 표현 방법이다.
- 연속, 선택 및 다중 선택, 반복 등의 제어 논리 구조로 표현한다.
- 조건이 복합되어 있는 곳의 처리를 시각적으로 명확히 식별하는 데 적합하다.
(3) 요구공학 방법론
요구공학 방법론(Requirements Engineering Methodology)은 사용자의 요구가 반영된 시스템을 개발하기 위하여 사용자 요구사항에 대한 도출, 분석, 명세, 확인 및 검증하는 구조화된 방법이다.
(4) 비용산정 모델
비용산정 모델 분류 [2020년 4회]
분류 | 설명 | 종류 |
하향식 산정방법 | 경험이 많은 전문가에게 비용 산정을 의뢰하거나 여러 전문가와 조정자를 통해 산정하는 방식 | 전문가 판단, 델파이 기법 |
상향식 산정방법 | 세부적인 요구사항과 기능에 따라 필요한 비용을 계산하는 방식 | 코드 라인 수(LOC; Lines of Code) Man Month COCOMO 모형 Putnam 모형 FP(Function Point) 모형 |
비용산정 모델 종류
모델 | 설명 |
LOC (Lines of Code) |
소프트웨어 각 기능의 원시 코드 라인 수의 낙관치, 중간치, 비관치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정 |
Man Month | 한 사람이 1개월 동안 할 수 있는 일의 양을 기준으로 프로젝트 비용을 산정하는 기법 (Man Month) = (LOC)/(프로그래머의 월간 생산성) (프로젝트 기간) = (Man Month)/(프로젝트 인력) |
COCOMO (COnstructive COst MOdel) |
보헴(Bohem)이 제안한 모형으로 프로그램 규모에 따라 규모를 산정 비용 산정 결과는 프로젝트를 완성하는 데 필요한 노력(Man-Month)으로 산정 |
Putnam | Rayleigh-Norden 곡선의 노력 분포도를 이용한 프로젝트 비용산정 기법, Putnam 모형을 기초로 해서 만든 자동화 추정 도구로 SLIM이 있다. [2020년 3회] |
기능점수 (FP; Functional Point) |
기능점수 모형에서 비용산정에 이용되는 요소 [2020년 3회] : 자료 입력(입력 양식) / 정보 출력(출력보고서) / 명령어(사용자 질의 수) / 데이터 파일 / 필요한 외부 루틴과의 인터페이스 |
개발 소요 기간을 구하는 기출문제 [2020년 1회] [2022년 1회]
출제 | 2020년 1회 |
문제 | LOC 기법에 의하여 예측된 총 라인 수가 50000라인, 프로그래머의 월평균 생산성이 200라인, 개발에 참여할 프로그래머가 10인일 때, 개발 소요 기간은? |
풀이 | (Man Month) = (LOC)/(프로그래머의 월간 생산성) = 50000/200 = 250 (프로젝트 기간) = (Man Month)/(프로젝트 인력) = 250/10 = 25 |
정답 | 25개월 |
츨제 | 2022년 1회 |
문제 | LOC 기법에 의하여 예측된 총 라인 수가 36000라인, 개발에 참여할 프로그래머가 6명, 프로그래머의 월평균 생산성이 300라인일 때 개발 소요 기간은? |
풀이 | (Man Month) = (LOC)/(프로그래머의 월간 생산성) = 36000/300 = 120 (프로젝트 기간) = (Man Month)/(프로젝트 인력) = 120/6 = 20 |
정답 | 20개월 |
COCOMO의 소프트웨어 개발 유형 [2020년 1회]
유형 | 설명 |
조직형 (단순형) (Organic Mode) |
기관 내부에서 개발된 중 소규모의 소프트웨어로 일괄 자료 처리나 과학 기술 계산용, 비즈니스 자료 처리 개발에 적용 |
5만(50KDSI) 라인 이하의 소프트웨어를 개발하는 유형 | |
반 분리형 (중간형) (Semi-Detached Mode) |
단순형과 임베디드형의 중간형 |
30만(300KDSI) 라인 이하의 소프트웨어를 개발하는 유형 | |
임베디드형 (Embedded Mode) |
초대형 규모의 트랜잭션 처리 시스템이나 운영체제, 실시간 처리 시스템 등의 시스템 프로그램 개발에 적용 |
30만(300KDSI) 라인 이상의 소프트웨어를 개발하는 유형 |
KDSI(Kilo Delivered Source Instruction)
전체 소스 코드 라인 수를 1,000라인으로 묶은 단위이다.
(5) 일정관리 모델
일정관리 모델 종류
- 주 공정법(CPM; Critical Path Method)
- PERT (Program Evaluation Technique)
- 중요 연쇄 프로젝트 관리 (CCPM; Critical Chain Project Management)
CPM에서 임계 경로 기간 계산
CPM(Critical Path Method) 네트워크를 걸려서 가장 긴 경로를 찾는다.
20년 3회 기출 | CPM 네트워크가 다음과 같을 때 임계경로의 소요기일은? | |
풀이 | A→B→C→D→H | 2+2+2+3 = 9일 |
A→B→E→G→H | 2+3+5+4 = 14일 | |
A→F→G→H | 3+5+4 = 12일 | |
정답 | 14일 |
소프트웨어 개발방법론 테일러링
(1) 소프트웨어 개발 표준
ISO/IEC 12207
소프트웨어 생명주기 프로세스이다.
ISO/IEC 12207 구성 (기조지)
- 기본 공정 / 조직 공정 / 지원 공정 프로세스로 구성된다.
- 소프트웨어 생명주기 프로세스이다.
CMM(I)
- CMMI(Capability Maturity Model Integration)
- 기존 능력 성숙도 모델(CMM)을 발전시킨 것이다.
- CMMI 모델은 단계적 모델, 연속적 모델이 있다.
- 소프트웨어 개발 업체들의 업무 능력 및 조직의 성숙도를 평가하기 위한 모델이다.
CMM(I) 단계적 표현 모델의 성숙도 레벨 (초관 정관최) [2020년 1회, 4회]
- 초기화 단계(Initial)
- 관리 단계(Managed)
- 정의 단계(Defined)
- 정량적 관리 단계(Quantitatively Managed)
- 최적화 단계(Optimized)
CMMI 구성
SW-CMM / CE-CMM / IPD-CMM / People-CMM / SA-CMM / SECAM
SPICE
- SPICE(Software Process Improvement and Capability dEtermination)
- 소프트웨어 프로세스에 대한 개선 및 능력측정 기준에 대한 국제 표준이다. [2020년 4회]
SPICE 프로세스 수행 능력 수준 (불수관 확예최)
레벨 | 단계 |
0 | 불안정 |
1 | 수행 |
2 | 관리 |
3 | 확립 |
4 | 예측 |
5 | 최적화 |
테일러링
조직의 표준 프로세스를 커스터마이징하여 프로젝트의 비즈니스적으로 또는 기술적인 요구에 맞게 적합한 프로세스를 얻는 과정이다.
테일러링 프로세스 (정표 상세문)
특징 정의 / 표준 프로세스 선정 및 검증 / 상위 커스터마이징 / 세부 커스터마이징 / 문서화
테일러링 개발 방법론 기준 (목요프구 국법) [2020년 1회]
- (내부) 목표환경 / 요구사항 / 프로젝트 특성 / 구성원 능력
- (외부) 국제 표준 품질 기준 / 법적 규제
테일러링 고려사항
- 프로젝트 대상은 지역과 도메인(금융, 통신, 공공, 특수산업 등)을 고려한다.
- 일정 및 범위는 기존 산출물 및 AS-IS 환경 재사용성을 고려한다.
- 다중 플랫폼은 두 개 이상의 방법론 사용 필요 여부를 고려한다.
- 외부 환경
- 적용 기술
- 표준 준용
- 산출물은 테일러링 내역서에 대한 산출물화 필수 여부를 고려한다.
- 교육
소프트웨어 개발 프레임워크(Software Development Framework)
소프트웨어 개발 프레임워크 적용 시 기대효과 [2020년 1회]
- 품질 보증
- 개발 용이성
- 변경 용이성
- 복잡도 감소
- 상호 운용성 향상
- 유지보수 용이
- 공통 컴포넌트 재사용으로 중복 예산 절감
소프트웨어 재사용
소프트웨어 재사용 요소
전체 프로그램 / 부분 코드 / 응용된 지식 / 데이터 모형 / 구조 / 테스트 계획 / 문서화 방법
소프트웨어 재사용 방법
구분 | 설명 |
합성 중심 (Composition-Based) |
전자 칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추어 소프트웨어를 완성시키는 방법으로, 블록 구성 방법이라고 함 [2020년 3회] |
생성 중심 (Generation-Based) |
추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법으로, 패턴 구성 방법이라고 함 |
728x90
'IT License > 정처기필기-5과목' 카테고리의 다른 글
2024 #정보처리기사 필기요약 #5-4. 시스템 보안 구축 (3) | 2024.07.05 |
---|---|
2024 #정보처리기사 필기요약 #5-3. 소프트웨어 개발 보안 구축 (0) | 2024.07.05 |
2024 #정보처리기사 필기요약 #5-2. IT 프로젝트 정보시스템 구축관리 (1) | 2024.07.05 |
댓글