Etc/📃 Certification

[정보처리기사] 5과목 1장 - 소프트웨어 개발 방법론 활용

posted by sangmin

5과목 - 정보시스템 구축 관리

1장. 소프트웨어 개발 방법론 활용


157. 소프트웨어 개발 방법론

소프트웨어 개발 방법론의 개요

  • 소프트웨어 개발, 유지보수 등에 필요한 여러 일들의 수행 방법과 이러한 일들을 효율적으로 수행하려는 과정에서 필요한 각종 기법 및 도구를 체계적으로 정리하여 표준화한 것
  • 목적 : 소프트웨어의 생산성과 품질 향상
  • 종류
    • 구조적 방법론 / 정보공학 방법론 / 객체지향 방법론 / 컴포넌트 기반 방법론 / 애자일 방법론 / 제품 계열 방법론 등

구조적 방법론

  • 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론
  • 복잡한 문제를 다루기 위해 분활과 정복 원리 적용

정보공학 방법론

  • 정보 시스템 개발을 위해 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료 중심의 방법론
  • 정보 시스템 개발 주기를 이용하여 대규모 정보 시스템을 구축하는 데 적합

객체지향 방법론

  • 소프트웨어를 개발할 때 기계의 부품을 조립하듯이 객체들을 조립해서 필요한 소프트웨어를 구현하는 방법론
  • 구조적 기법의 문제점으로 인한 소프트웨어 위기의 해결책으로 채택
  • 구성 요소 : 객체, 클래스, 메시지 등
  • 기본 원칙 : 캡슐화, 정보 은닉, 추상화, 상속성, 다형성 등

컴포넌트 기반 (CBD, Component Based Design) 방법론

  • 기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론
  • 컴포넌트 재사용이 가능하여 시간과 노력 절감
  • 유지보수 비용을 최소화하고 생산성 및 품질 향상 가능

애자일 (Agile) 방법론

  • 고객의 요구사항 변화에 유연하게 대응할 수 있또록 일정한 주기를 반복하면서 개발 과정을 진행하는 방법론
  • 소규모 프로젝트, 고도로 숙달된 개발자, 급변하는 요구사항에 적합
  • 종류 : 익스트림 프로그래밍 (XP), 스크럼, 칸반 등

제품 계열 방법론

  • 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법
  • 임베디드 소프트웨어를 만드는데 적합

158. 비용 산정 기법

소프트웨어 비용 산정의 개요

  • 소프트웨어 비용 산정은 개발 규모를 소요되는 인원, 자원, 기간 등으로 확인하여 실행 가능한 계획을 수립하기 위해 필요한 비용을 산정하는 것
  • 소프트웨어 비용 산정 기법
    • 하향식 비용 산정 기법
    • 상향식 비용 산정 기법

소프트웨어 비용 결정 요소

  • 프로젝트 요소
    • 제품 복잡도 : 소프트웨어 종류에 따라 발생할 수 있는 문제점들의 난이도
    • 시스템 크기 : 개발해야 할 시스템의 크기
    • 요구되는 신뢰도 : 일정 기간 내 주어진 조건하에서 프로그램이 필요한 기능을 수행하는 정도
  • 자원 요소
    • 인적 자원 : 소프트웨어 개발 관련자들이 갖춘 능력
    • 하드웨어 자원 : 개발 시 필요한 장비와 워드프로세서, 프린터 등의 보조 장비
    • 소프트웨어 자원 : 개발 시 필요한 언어 분석기, 문서화 도구 등의 개발 지원 도구
  • 생산성 요소
    • 개발자 능력
    • 개발 기간

159. 비용 산정 기법 - 하향식

하향식 비용 산정 기법의 개요

  • 과거의 유사한 경험을 바탕으로 전문 지식이 많은 개발자들이 참여한 회의를 통해 비용을 산정하는 비과학적인 방법
  • 프로젝트 전체 비용을 산정한 후 각 작업별로 비용 세분화
  • 하향식 비용 산정 기법
    • 전문가 감정 기법
    • 델파이 기법

전문가 감정 기법

  • 조직 내 경험이 많은 두 명 이상의 전문가에게 비용 산정을 의뢰하는 기법
  • 개인적이고 주관적일 수 있음

델파이 기법

  • 전문가 감정 기법의 주관적인 편견을 보완하기 위해 많은 전문가의 의견을 종합하여 산정하는 기법
  • 한 명의 조정자와 여러 전문가로 구성

160. 비용 산정 기법 - 상향식

상향식 비용 산정 기법의 개요

  • 프로젝트의 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정하는 방법
  • 상향식 비용 산정 기법
    • LOC 기법
    • 개발 단계별 인월수 기법
    • 수학적 산정 기법

LOC (원시 코드 라인 수, source Line Of Code) 기법

  • 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법
  • 측정이 용이하고 이해하기 쉬움
  • 예측치를 이용하여 생산성, 노력, 개발 기간 등의 비용을 산정
image

(출처 - 네이버 블로그)

개발 단계별 인원수 (Effort Per Task) 기법

  • LOC 기법을 보완하기 위한 기법으로, 각 기능을 구현시키는 데 필요한 노력을 생명 주기 각 단계별로 산정

161. 수학적 산정 기법

수학적 산정 기법의 개요

  • 비용을 자동으로 산정하기 위해 사용되는 공식은 과거 유사한 프로젝트를 기반으로 하여 경험적으로 유도된 것
  • 수학적 산정 기법
    • COCOMO 모형
    • Putnam 모형
    • 기능 점수 (FP) 모형

COCOMO 모형 개요

  • 보헴이 제안한 것으로, 원시 프로그램 규모인 LOC에 의한 비용 산정 기법
  • 비용 견적의 강도 분석 및 비용 견적의 유연성이 높아 소프트웨어 개발비 견적에 널리 통용
  • 같은 규모의 프로그램이라도 그 성격에 따라 비용이 다르게 선정
  • 비용 산정 결과는 프로젝트를 완성하는 데 필요한 노력 (Man-Month)으로 나타냄

COCOMO의 소프트웨어 개발 유형

  • 조직형 (Organic Mode)
    • 기관 내부에서 개발된 중소 규모의 소프트웨어로 일괄 자료 처리나 과학 기술 계산용으로 5만 라인 이하의 소프트웨어를 개발하는 유형
  • 반분리형 (Semi-Detached Mode)
    • 조직형과 내장형의 중간형으로 트랜잭션 처리 시스템이나 운영체제, DBMS 등의 30만 라인 이하의 소프트웨어를 개발하는 유형
  • 내장형 (Embedded Mode)
    • 최대형 규모의 트랜잭션 처리 시스템이나 운영체제 등의 30만 라인 이상의 소프트웨어를 개발하는 유형

COCOMO 모형의 종류

  • 기본 (Basic)형 COCOMO
    • 소프트웨어의 크기 (생산 코드 라인 수)와 개발 유형만을 이용하여 비용을 산정하는 모형
  • 중간 (Intermediate)형 COCOMO
    • 기본형 COCOMO의 공식을 토대로 사용하나, 아래 4가지 특성에 의해 비용을 산정하는 모형
      1. 제품의 특성
      2. 컴퓨터의 특성
      3. 개발 요원의 특성
      4. 프로젝트 특성
  • 발전 (Detailed)형 COCOMO
    • 중간형 COCOMO를 보완하여 만들어진 방법으로 보다 개발 공정별로 자세하고 정확하게 노력을 산출하여 비용을 산정하는 모형

Putnam 모형 (= 생명 주기 예측 모형)

  • 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 가정해주는 모형
  • 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로함
  • ex) SLIM

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

  • 소프트웨어 기능을 증대시키는 요인별로 가중치를 부여하고, 요인별 가중치를 합산하여 총 기능 점수를 산출
  • ex) ESTIMACS

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

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

  • 프로젝트 관리와 재사용 현황을 소프트웨어 개발 방법론에 반영하고, 확정된 소프트웨어 생명 주기와 개발 방법론에 맞춰 소프트웨어 개발 단계, 활동, 절차 등을 정의하는 것
  • 프로젝트 관리
    • 일정 관리
    • 비용 관리
    • 인력 관리
    • 위험 관리
    • 품질 관리

163. 소프트웨어 개발 표준

소프트웨어 개발 표준의 개요

  • 소프트웨어 개발 단계에서 수행하는 품질 관리에 사용되는 국제 표준

ISO/IEC 12207

  • ISO에서 만든 표준 소프트웨어 생명 주기 프로세스
  • 기본 생명 주기 프로세스
  • 지원 생명 주기 프로세스
  • 조직 생명 주기 프로세스

CMMI (능력 성숙도 통합 모델, Capability Maturity Model Integration)

  • 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델
  • 단계
    • 초기 (Initial) : 정의된 프로세스 없음
    • 관리 (Managed) : 규칙화된 프로세스
    • 정의 (Defined) : 표준화된 프로세스
    • 정량적 관리 (Quantitatively Managed) : 예측 가능한 프로세스
    • 최적화 (Optimizing) : 지속적 개선 프로세스

SPICE (Software Process Improvement and Capability dEtermination)

  • 소프트웨어 처리 개선 및 능력 평가 기준은 소프트웨어 프로세스를 평가 및 개선하는 국제 표준
  • 목적
    • 프로세스 개선을 개발 기관이 스스로 평가하는 것
    • 기관에서 지정한 요구조건의 만족 여부를 개발 조직이 스스로 평가하는 것
  • 구성
    • 고객-공급자 (Customer-Supplier) 프로세스
    • 공학 (Engineering) 프로세스
    • 지원 (Support) 프로세스
    • 관리 (Management) 프로세스
    • 조직 (Organization) 프로세스
  • 단계
    • 불완전 (Incomplete)
    • 수행 (Performed)
    • 관리 (Managed)
    • 확립 (Established)
    • 예측 (Predictable)
    • 최적화 (Optimizing)

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

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

  • 프로젝트 상황 및 특성에 맞도록 정의된 소프트웨어 개발 방법론의 절차, 사용기법 등을 수정 및 보완하는 작업
  • 수행절차
    1. 프로젝트 특징 정의
    2. 표준 프로세스 선정 및 검증
    3. 상위 수준의 커스터마이징
    4. 세부 커스터마이징
    5. 테일러링 문서화

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

  • 내부적 요건
    • 목표 환경 : 시스템 개발 환경과 유형이 서로 다른 경우 테일러링 필요
    • 요구사항 : 프로젝트 생명 주기 활동에서 우선적으로 고려할 요구사항이 서로 다른 경우 테일러링 필요
    • 프로젝트 규모 : 비용, 인력, 기간 등 프로젝트 규모가 서로 다른 경우 테일러링 필요
    • 보유 기술 : 프로세스, 개발 방법론, 산출물 등이 서로 다른 경우 테일러링 필요
  • 외부적 요건
    • 법적 제약사항 : 프로젝트별 적용될 IT Compliance가 서로 다른 경우 테일러링 필요
    • 표준 품질 기준 : 분야별 표준 품질 기준이 서로 다른 경우 테일러링 필요

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

  • 프로젝트 규모와 복잡도에 따른 테일러링 기법
  • 프로젝트 구성원에 따른 테일러링 기법
  • 팀내 방법론 지원에 따른 테일러링 기법
  • 자동화에 따른 테일러링 기법

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

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

  • 프레임워크는 소프트웨어 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 손쉽게 구현할 수 있도록 여러 기능을 제공해주는 소프트웨어 시스템
  • 프레임워크의 주요 기능
    • 예외 처리, 트랜잭션 처리, 메모리 공유, 데이터 소스 관리, 로깅 서비스 등
  • 프레임워크의 조류
    • 스프링 프레임워크
    • 전자정부 프레임워크
    • 닷넷 프레임워크

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

  • 자바 플랫폼을 위한 오픈 소스 경량형 애플리케이션 프레임워크
  • 동적인 웹 사이트 개발을 위해 다양한 서비스 제공

전자정부 프레임워크

  • 우리나라 공공부문 정보화 사업 시 효율적인 정보 시스템 구축을 지원하기 위해 필요한 기능을 제공하는 프레임워크
  • 특정 업체의 종속성을 배제하고 사업별 공통 컴포넌트의 중복 개발 방지

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

  • Windows 프로그램의 개발 및 실행 환경을 제공하는 프레임워크
  • 닷넷 프레임워크는 코드 실행을 관리하는 CLR (Common Language Runtime) 라는 가상머신 상에서 작동

참고

 

시나공 정보처리기사 필기

2020년 정보처리기사 NCS기반 전면 개편!정보처리기사 시험은 NCS 학습 모듈 중 정보통신 분야의 ‘정보기술’ 분류에 포함된 ‘정보기술개발’과 ‘정보기술운영’에 속한 125개의 학습 모듈을

book.naver.com