[정보처리기사] 정보처리기사 실기 정리 7 (수학적 산정 기법, 프로젝트 일정 계획, 소프트웨어 개발 방법론 결정, 소프트웨어 개발 표준, 소프트웨어 개발 방법론 테일러링, 소프트웨어 개발 ..

미음제

·

2021. 8. 10. 19:45

Section 25

 

수학적 산정 기법

 

수학적 산정 기법

 

상향식 비용 산정 기법으로,

경험적 추정 모형, 실험적 추정 모형이라고도 한다.

 

개발 비용 산정의 자동화를 목표로 한다.

 

* 주요 수학적 산정 기법

 

✓ COCOMO 모형

✓ Putnam 모형

✓ 기능 점수(FP) 모형

 

COCOMO 모형

 

원시 프로그램의 규모인 LOC(원시 코드 라인수)에 의한

비용 산정 기법이다.

 

개발할 소프트웨어의 규모(LOC)를 예측한 후

이를 소프트웨어 종류에 따라 다르게 책정되는

비용 산정 방정식에 대입하여 비용을 산정한다.

 

보헴(Boehem)이 제안했다.

 

COCOMO의 소프트웨어 개발 유형

 

LOC의 규모, 복잡도에 따라 나누어진다.

 

유형 특징
조직형(Organic Mode) ✓ 기관 내부에서 개발된 중, 소 규모의 소프트웨어
✓ 일괄 자료처리, 과학기술 계산용, 비즈니스 자료 처리용
✓ 5만(50KDSI) 라인 이하의 소프트웨어를 개발하는 유형
✓ 사무 처리용, 업무용, 과학용 응용 소프트웨어 개발에 적합
반분리형(Semi-Detached Mode) ✓ 조직형, 내장형의 중간형 소프트웨어
✓ 트랜잭션 처리 시스템, 운영체제(소규모), 데이터베이스 관리 시스템
✓ 30만(30KDSI) 라인 이하의 소프트웨어를 개발하는 유형
✓ 컴파일러, 인터프리터와 같은 유틸리티 개발에 적합
내장형(Embedded Mode) ✓ 초대형 규모의 소프트웨어
✓ 트랜잭션 처리 시스템, 운영체제 등
✓ 30만(30KDSI) 라인 이상의 소프트웨어를 개발하는 유형
✓ 신호기 제어 시스템, 미사일 유도 시스템, 실시간 처리 시스템 등의 시스템 프로그램 개발에 적합

 

COCOMO 모형의 종류

 

종류 특징
기본형(Basic) COCOMO 소프트웨어 크기(LOC)와 개발 유형만을 이용해 비용 산정
중간형(Intermediate) COCOMO 기본형 COCOMO의 공식을 토대로 사용하나, 다음 4가지 특성에 의해 비용을 산정함
✓ 제품의 특성
✓ 컴퓨터의 특성
✓ 개발 요원의 특성
✓ 프로젝트 특성
발전형(Detailed) COCOMO 중간형 COCOMO를 보완해 만들어진 모형
개발 공정별로 보다 자세하고 정확하게 노력을 산출해 비용 산정
소프트웨어 환경과 구성 요소가 사전에 정의되어 있어야 하며 개발 과정의 후반부에 주로 사용

 

Putnam 모형

 

소프트웨어 생명 주기의 전 과정 동안에 사용될

노력의 분포를 예상하는 모형.

 

Putnam이 제안한 것으로

생명 주기 예측 모형이라고도 한다.

 

Rayleigh-Norden 곡선의 노력 분포도를 기초로 한다.

 

대형 프로젝트의 노력 분포 산정에 이용된다.

 

기능 점수(FP, Function Point) 모형

 

소프트웨어의 기능을 증대시키는 요인별로

가중치를 부여하고,

요인별 가중치를 합산해 총 기능 점수를 산출하며,

총 기능 점수와 영향도를 이용해

기능 점수(FP)를 구한 후 이를 이용해

비용을 산정하는 기법이다.

 

비용 산정 자동화 추정 도구

 

SLIM Rayleigh-Norden 곡선과 Putnam 예측 모델을 기초로 하여 개발된 자동화 추정 도구
ESTIMACS 다양한 프로젝트와 개인별 요소를 수용하도록 FP 모형을 기초로 하여 개발된 자동화 추정 도구

 


 

Section 26

 

프로젝트 일정 계획

 

프로젝트 일정(Scheduling) 계획

 

프로젝트의 프로세스를 이루는 소작업을 파악하고

예측된 노력을 각 소작업에 분배하여

소작업의 순서와 일정을 정하는 것이다.

 

* 프로젝트 일정 계획에 사용되는 기능

 

✓ WBS

✓ PERT/CPM

✓ 간트 차트

 

PERT(Program Evaluation and Review Technique)

프로그램 평가 및 검토 기술

 

프로젝트에 필요한 전체 작업의

상호관계를 표시하는 네트워크이다.

 

각 작업별로 다음과 같이 단계를 나누어 종료 시기를 결정.

✓ 낙관적인 경우

✓ 가능성이 있는 경우

✓ 비관적인 경우

 

개발 경험이 없어 소요 기간 예측이 어려운

프로젝트 일정 계획에 사용한다.

 

노드, 간선으로 구성되고

간선에는 낙관치, 기대치, 비관치를 표시한다.

 

PERT

 

결정 경로, 작업에 대한 경계 시간,

작업 간의 상호 관련성 등을 알 수 있다.

 

* 작업 예측치 계산 공식

 

작업 예측치 계산 공식

 

CPM(Critical Path Method)

임계 경로 기법

 

프로젝트 완성에 필요한 작업을 나열하고

작업에 필요한 소요 기간을 예측하는 데 사용하는 기법이다.

 

원형 노드는 각각의 작업을 의미,

작업 이름과 소요 기간을 표시한다.

 

박스 노드는 이정표를 의미,

이정표 이름과 예상 완료 시간을 표시한다.

 

임계 경로 기법은

가장 오래 걸리는 경로를 구하면 된다.

 

CPM

 

간트 차트

 

프로젝트의 각 작업들이 언제 시작하고 언제 종료되는지에 대한

작업 일정을 막대 도표를 이용하여 표시하는

프로젝트 일정표이다.

 

간트 차트

 


 

Section 27

 

소프트웨어 개발 방법론 결정

 

소프트웨어 개발 방법론 결정 절차

 

① 프로젝트 관리와 재사용 현황을 소프트웨어 개발 방법론에 반영.

② 개발 단계별 작업 및 절차를 소프트웨어 생명 주기에 맞춰 수립.

③ 결정된 소프트웨어 개발 방법론의 개발 단계별

활동 목적, 작업 내용, 산출물에 대한 매뉴얼을 작성.

 

프로젝트 관리(Procject Management)

 

주어진 기간 내에 최소의 비용으로

사용자를 만족시키는 시스템을 개발하기 위한

전반적인 활동이다.

 

관리 유형 주요 내용
일정 관리 작업 순서, 작업 기간 산정, 일정 개발, 일정 통제
비용 관리 비용 산정, 비용 예산 편성, 비용 통제
인력 관리 프로젝트 팀 편성, 자원 산저으 프로젝트 조직 정의, 프로젝트 팀 개발, 자원 통제, 프로젝트 팀 관리
위험 관리 위험 식별, 위험 평가, 위험 대처, 위험 통제
품질 관리 품질 계획, 품질 보증 수행, 품질 통제 수행

 


 

Section 28

 

소프트웨어 개발 표준

 

소프트웨어 개발 표준

 

소프트웨어 개발 단계에서 수행하는 품질관리에

사용되는 국제 표준을 의미.

 

* 주요 소프트웨어 개발 표준

 

✓ ISO/IEC 12207

✓ CMMI(능력 성숙도 통합 모델)

✓ SPICE(소프트웨어 처리 개선 및 능력 평가 기준)

 

ISO/IEC 12207

 

ISO(국제표준화기구)에서 만든

표준 소프트웨어 생명 주기 프로세스.

 

소프트웨어 개발, 운영, 유지보수 등을

체계적으로 관리하기 위한 소프트웨어 생명 주기 표준을 제공.

 

* ISO/IEC 12207 구분

 

기본 생명 주기 프로세스 획득, 공급, 개발, 운영, 유지보수 프로세스
지원 생명 주기 프로세스 품질 보증, 검증, 확인, 활동 검토, 감사, 문서화, 형상 관리, 문제 해결 프로세스
조직 생명 주기 프로세스 관리, 기반 구조, 훈련, 개선 프로세스

 

CMMI(Capability Maturity Model Integration)

 

소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델이다.

 

* CMMI의 소프트웨어 프로세스 성숙도

 

초기(Initial) 정의된 프로세스 없음
관리(Managed) 규칙화된 프로세스
정의(Defined) 표준화된 프로세스
정략적 관리(Quantitatively Managed) 예측 가능한 프로세스
최적화(Optimizing) 지속적 개선 프로세스

, 리, 의, 정적 관리, 최적화 순서

 

SPICE

(Software Process Improvement and Capability dEtermination)

 

정보 시스템 분야에서

소프트웨어의 품질 및 생산성 향상을 위해

소프트웨어 프로세스를 평가 및 개선하는 국제 표준.

 

ISO/IEC 15504가 공식 명칭.

 

* SPICE의 구성

 

범주 특징
고객-공급자(Customer-Supplier) 프로세스 ✓ 소프트웨어를 개발하여 고객에게 전달하는 것을 지원
✓ 소프트웨어의 정확한 운용 및 사용을 위한 프로세스로 구성
공학(Engineering) 프로세스 ✓ 시스템과 소프트웨어 제품의 명세화, 구현, 유지보수를 하는데 사용되는 프로세스로 구성
지원(Support) 프로세스 ✓ 소프트웨어 생명 주기에서 다른 프로세스에 의해 이용되는 프로세스로 구성
관리(Management) 프로세스 ✓ 소프트웨어 생명 주기에서 프로젝트 관리자에 의해 사용되는 프로세스로 구성
조직(Organization) 프로세스 ✓ 조직의 업무 목적 수립과 조직의 업무 목표 달성을 위한 프로세스로 구성

 

** SPICE의 프로세스 수행 능력 단계

 

✓ 불완전(Incomplete)

✓ 수행(Performed)

✓ 관리(Manged)

✓ 확립(Established)

✓ 예측(Predictable)

✓ 최적화(Optimizing)

 


 

Section 29

 

소프트웨어 개발 방법론 테일러링

 

소프트웨어 개발 방법론 테일러링

 

프로젝트 상황 및 특성에 맞도록 정의된

소프트웨어 개발 방법론의 절차, 사용기법 등을

수정 및 보완하는 작업.

 

소프트웨어 개발 방법론 테일러링 고려사항

 

기준 내용
내부적 기준 ✓ 목표 환경
✓ 요구 사항
✓ 프로젝트 규모
✓ 보유 기술
외부적 기준 ✓ 법적 제약 사항
✓ 표준 품질 기준

 


 

Section 30

 

소프트웨어 개발 프레임 워크

 

소프트웨어 개발 프레임 워크

 

소프트웨어 개발에 공통적으로 사용되는

구성 요소와 아키텍처를 일반화하여

손쉽게 구현할 수 있도록 여러 가지 기능들을

제공해주는 반제품 형태의 소프트웨어 시스템이다.

 

* 소프트웨어 개발 프레임워크의 주요 기능

 

✓ 예외 처리

✓ 트랜잭션 처리

✓ 메모리 공유

✓ 데이터 소스 관리

✓ 서비스 관리

✓ 쿼리 서비스

✓ 로깅 서비스

✓ 사용자 인증 서비스

 

** 소프트웨어 개발 프레임 워크 종류

 

✓ 스프링 프레임워크

✓ 전자장부 프레임워크

✓ 닷넷 프레임워크

 

스프링 프레임워크(Spring Framework)

 

자바 플랫폼을 위한 오픈 소스 경량형 애플리케이션 프레임워크

 

전자장부 프레임워크

 

대한민국의 공공부문 정보화 사업 시

효율적인 정보 시스템의 구축을 지원하기 위해

필요한 기능 및 아키텍처를 제공하는 프레임워크

 

닷넷 프레임워크(.NET Framework)

 

Windows 프로그램의 개발 및 실행 환경을 제공하는 프레임워크

 

코드 실행을 관리하는

CLR(Common Language Runtime, 공용 언어 런타임)이라는 이름의

가상 머신 상에서 작동한다.

 

소프트웨어 개발 프레임워크의 특성

 

특성 내용
모듈화(Modularity) ✓ 프레임워크는 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화함으로써 소프트웨어의 품질을 향상시킴
✓ 프레임워크는 개발 표준에 의한 모듈화로 인해 유지보수가 용이함
재사용성(Reusability) ✓ 프레임워크는 재사용 가능한 모듈들을 제공함으로써 예산 절감, 생산성 향상, 품질 보증이 가능함
확장성(Extensibility) ✓ 프레임워크는 다형성(Polymorphism)을 통한 인터페이스 확장이 가능하여 다양한 형태와 기능을 가진 애플리케이션 개발이 가능함
제어의 역흐름(Inversion of Control) ✓ 개발자가 관리하고 통제해야 하는 객체들의 제어를 프레임워크에 넘김으로써 생산성을 향상시킴

 

 

 

반응형