본문 바로가기
IT License/정처기-5과목

2021 #정보처리기사 필기요약 #5-1. 소프트웨어 개발방법론 활용

by 시뮝 2021. 3. 2.
728x90
2021년 NCS기반 정처기 필기입니다.

참고1. 노랑마킹은 시험에 나온 중요한 부분입니다.

참고2. 주황강조는 약어 혹은 중요한 내용입니다.

참고3. 회색마킹은 예시입니다. 


제 5과목 정보시스템 구축 관리 > 소프트웨어 개발방법론 선정


 

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

소프트웨어 생명주기(SDLC; Software Development Life Cycle)

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

 

소프트웨어 생명주기 모델 프로세스 (요설구테유)

  1. 구사항 분석 단계
  2. 계 단계
  3. 현 단계
  4. 스트 단계
  5. 지보수 단계

 

소프트웨어 생명주기 모델 종류 (폭프나반) 

종류 설명
포수 모델
(Waterfall Model)

소프트웨어 개발 시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델
선형 순차적 모형으로 고전적 생명주기 모형이라고도 함
절차: 타당성 검토→계획→요구사항분석→설계→구현→테스트→유지보수
로토타이핑 모델
(Prototyping Model)
고객이 요구한 주요 기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델
선형 모델
(Spiral Model)

시스템 개발 시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델
절차(반복): 계획 수립 → 위험 분석 → 개발 및 검증  → 고객 평가 [2020년 3,4회]
복적 모델
(Iteration Model)
구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 SDLC 모델

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

소프트웨어 개발방법론(Software Development Methodology)은 소프트웨어 개발 전 과정에 지속적으로 적용할 수 있는 방법, 절차, 기법이다.

 

소프트웨어 개발 방법론 종류 (구정객컴 애제)

종류 설명
조적 방법론
(Structured Development)

프로세스 중심의 하향식 방법론
구조적 프로그래밍 표현을 위해 나씨-슈나이더만 차트를 사용한다.
보공학 방법론
(Information Engineering Development)

정보시스템 개발에 필요한 절차와 작업 기법을 체계화한 방법론
개발주기를 이용해 대형 프로젝트를 수행하는 체계적인 방법론
체지향 방법론
(Object-Oriented Development)
'객체'라는 기본 단위로 시스템을 분석 및 설계하는 방법론
포넌트 기반 방법론
(CBD; Component Based Development)

소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론
개발 기간 단축으로 인한 생산성 향상
새로운 기능 추가가 쉬운 확장성
소프트웨어 재사용이 가능
자일 방법론
(Agile Development)
절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론
품 계열 방법론
(Product Line Development)
특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론

 

나씨-슈나이더만(Nassi-Shneiderman) 차트 [2020년 4회]

  • 논리의 기술에 중점을 둔 도형식 표현 방법이다.
  • 연속, 선택 및 다중 선택, 반복 등의 제어 논리 구조로 표현한다.
  • 조건이 복합되어 있는 곳의 처리를 시각적으로 명확히 식별하는 데 적합하다.

 

 


(3) 요구공학 방법론

요구공학 방법론(Requirements Engineering Methodology)은 사용자의 요구가 반영된 시스템을 개발하기 위하여 사용자 요구사항에 대한 도출, 분석, 명세, 확인 및 검증하는 구조화된 방법이다.

 

요구공학 특징

구조적 요구분석을 하기 위해 블록 다이어그램을 채택한 자동화 도구로 SADT가 있다.

 

SADT(Structured Analysis and Design Technique)

SoftTech 사에서 개발한 것으로 시스템 정의, 소프트웨어 요구사항 분석, 시스템/소프트웨어 설계를 위해 널리 이용되어 온 구조적 분석 및 설계 도구이다.

 

요구사항 개발 프로세스

이전글 참고: https://simuing.tistory.com/entry/2021-정보처리기사-필기요약-인터페이스-설계

 


(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회]

문제 LOC 기법에 의하여 예측된 총 라인 수가 50000라인, 프로그래머의 월평균 생산성이 200라인, 개발에 참여할 프로그래머가 10인일 때, 개발 소요 기간은?
풀이 (Man Month)
 = (LOC)/(프로그래머의 월간 생산성)
 = 50000/200 = 250

(프로젝트 기간)
 = (Man Month)/(프로젝트 인력) = 250/10 = 25
정답 25개월

 

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회]

  1. 기화 단계(Initial)
  2. 리 단계(Managed)
  3. 의 단계(Defined)
  4. 정량적 리 단계(Quantitatively Managed)
  5. 적화 단계(Optimized)

CMMI 구성

SW-CMM / CE-CMM / IPD-CMM / People-CMM / SA-CMM / SECAM

 

 

SPICE

  • SPICE(Software Process Improvement and Capability dEtermination)
  • 소프트웨어 프로세스에 대한 개선 및 능력측정 기준에 대한 국제 표준이다. [2020년 3회,4회]

 

SPICE 프로세스 수행 능력 수준 (불수관 확예최)

레벨 단계
0 불안정
1 수행
2 관리
3 확립
4 예측
5 최적화

 

 

테일러링

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

 

테일러링 프로세스 (정표 상세문)

특징 의 / 준 프로세스 선정 및 검증 / 위 커스터마이징 / 부 커스터마이징 / 서화

 

 

테일러링 개발 방법론 기준 (목요프구 국법) [2020년 1회]

  • (내부) 목표환경 / 요구사항 / 프로젝트 특성 / 구성원 능력
  • (외부) 국제 표준 품질 기준 / 법적 규제

 

테일러링 고려사항

  • 프로젝트 대상은 지역과 도메인(금융, 통신, 공공, 특수산업 등)을 고려한다.
  • 일정 및 범위는 기존 산출물 및 AS-IS 환경 재사용성을 고려한다.
  • 다중 플랫폼은 두 개 이상의 방법론 사용 필요 여부를 고려한다.
  • 외부 환경
  • 적용 기술
  • 표준 준용
  • 산출물은 테일러링 내역서에 대한 산출물화 필수 여부를 고려한다.
  • 교육

 

 

소프트웨어 개발 프레임워크(Software Development Framework)

소프트웨어 개발 프레임워크 적용 시 기대효과 [2020년 1회]

  • 품질 보증
  • 개발 용이성
  • 변경 용이성
  • 복잡도 감소
  • 상호 운용성 향상
  • 유지보수 용이
  • 공통 컴포넌트 재사용으로 중복 예산 절감

 

소프트웨어 재사용

소프트웨어 재사용 요소

전체 프로그램 / 부분 코드 / 응용된 지식 / 데이터 모형 / 구조 / 테스트 계획 / 문서화 방법

 

소프트웨어 재사용 방법

구분 설명
합성 중심
(Composition-Based)
전자 칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추어 소프트웨어를 완성시키는 방법으로, 블록 구성 방법이라고 함 [2020년 3회]
생성 중심
(Generation-Based)
추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법으로, 패턴 구성 방법이라고 함

 

 

 


 

 

 

#정보처리기사필기요약 #정처기필기요약

 

728x90

댓글