정보처리기사,

5과목 - 1장: 소프트웨어 개발 방법론(1)

Aug 17, 2020 · 4 mins read

소프트웨어 개발 방법론

개요

  • 목적: 소프트웨어의 생산성과 품질 향상
  • 종류: 구조적 방법론, 정보공학 방법론, 객체지향 방법론, 컴포넌트 기반(CBD) 방법론, 애자일(Agile) 방법론, 제품 계열 방법론이 있다.

    구조적 방법론
  • 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론
  • 복잡한 문제를 다루기 위해 분할과 정복 원리를 적용

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

    객체지향 방법론
  • 객체들을 조립해서 필요한 소프트웨어를 구현하는 방법론
  • 기본 원칙: 캡슐화, 정보 은닉, 추상호, 상속성, 다형성 등이 있다.

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

    애자일(Agile) 방법론
  • 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하며 개발을 진행하는 방법론
  • 소규모 프로젝트, 급변하는 요구사항에 적합하다.

    제품 계열 방법론
  • 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론.
  • 임베디드 소프트웨어를 만드는데 적합하다.
  • 영역공확과 응용공학으로 구분된다.

비용 산정 기법

소프트웨어 비용 결정 요소

  • 프로젝트 요소
    • 제품 복잡도: 문제점들의 난이도
    • 시스템 크기: 규모에 따른 개발 시스템의 크기
    • 요구되는 신뢰도: 프로그램이 필요한 기능을 수행하는 정도

자원 요소

  • 인적 자원: 소프트웨어 개발 관련자들이 갖춘 능력 혹은 자질
  • 하드웨어 자원: 필요한 장비와 보조 장비들
  • 소프트웨어 자원: 언어 분석기, 문서화 도구 등의 개발 지원 도구

생산성 요소

  • 개발자 능력: 개발자들의 지식, 경험, 실력 등
  • 개발 기간

    하향식 비용 산정 기법
  • 과거의 경험을 바탕을 개발자들이 회의를 통해 비용을 산정(비과학적)
  • 전문가 감정 기법: 두 명 이상의 전문가에게 비용 산정을 의뢰
    • 가장 편리하고 신속하게 비용 산정 가능
    • 개인적이고 주관적
  • 델파이 기법: 전문가 감정 기법의 주관적 편견을 보완하기 위해 많은 전문가의 의견을 종합하여 산정하는 기법
    • 한 명의 조정자와 여러 전문가로 구성

      상향식 비용 산정 기법
  • 프로젝트의 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정
  • LOC(원시 코드 라인 수) 기법: 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정
  • 개발 단계별 인월수(Effort Per Task) 기법: LOC 기법을 보완, 기능 구현 시 필요한 노력을 생명 주기의 각 단계별로 산정.

수학적 산정 기법(상향식 비용 산정 기법)

  • 경험적 추정 모형, 실험적 추정 모형이라고도 불림, 개발 비용 산정의 자동화를 목표
  • COCOMO 모형, Putnam 모형, 기능 점수(FP) 모형 등이 존재

    COCOMO 모형
  • 보헴이 제안함, LOC에 의한 비용 산정 기법.
  • 조직형(5만KDSI), 반분리형(30만KDSI 이하), 내장형(30만KDSI 이상)로 유형이 나뉜다.
  • 모형의 종류
    • 기본(Basic)형 COCOMO: 소프트웨어의 크기 + 개발 유형만을 이용하여 비용 산정
    • 중간(Intermediate)형 COCOMO: 기본형을 토대로 4가지 특성(제품, 컴퓨터, 개발 요원, 프로젝트)의 요인에 의해 비용을 산정
    • 발전(Detailed)형 COCOMO: 중간형을 보완하여 만들어짐, 개발 공정별로 보다 자세하고 정확하게 노력을 산출하여 비용을 산정하는 모형

PutNam 모형

  • Putnam이 제안, 생명 주기 예측 모형이라고도 불림
  • 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 함.
  • 대형 프로젝트의 노력 분포 산정에 사용
  • 개발 기간이 늘어날수록 프로젝트 적용 인원의 노력이 감소

기능 점수(FP) 모형

  • 알브레히트(Albrecht)가 제안 , 소프트웨어의 기능을 증대시키는 용인별로 가중치 부여
  • 요인별 가중치를 합산해 총 기능 점수를 산출, 총 기능 점수와 영향도를 이용해 기능 점수를 구현 후 이를 이용해 비용을 산정하는 기법.

자동화 추정 도구(비용 산정의 자동화를 위해 개발된 도구) - SLIM: Rayleigh-Norden 곡선과 Putnam 에측 모델을 기초로 하여 개발된 자동화 추정 도구. - ESTIMACS: FP 모형을 기초로 하여 개발된 자동화 추정 도구.




소프트웨어 개발 표준

개요

  • 소프트웨어 개발 단계에서 수행하는 품질 관리에 사용되는 국제 표준
  • ISO/ISE 12207, CMMI, SPICE etc.

ISO/IEC 12207

  • ISO에서 만든 표준 소프트웨어 생명 주기 프로세스로, 소프트웨어의 개발, 운영, 유지보스 등을 체계적으로 관리하기 위한 소프트웨어 생명 주기 표준을 제공
  • 기본 생명 주기 프로세스: 획득, 공급, 개발, 운영, 유지보수 프로세스
  • 지원 생명 주기 프로세스: 품질 보증, 검증, 확인, 활도 검토, 감사, 문서화, 형상 관리, 문제 해결 프로세스
  • 조직 생명 주기 프로세스: 관리, 기반 구조, 훈련, 개선 프로세스

    CMMI(능력 성숙도 통합 모델)
  • 개발 조직의 업무 능력 및 조직의 성숙도를 평가, 카네기멜론 대학의 소프트웨어 공학연구소(SEI)에서 개발
  • 초기, 관리, 정의, 정랼적 관리, 최적화 5단계로 구분



    SPICE(Software Process Improvement and Capability dEtermination)

  • 정보 시스템 분야에서 소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준, 공식 명칭은 ISO/IEC 15504
  • 목적: 프로세스 개선을 위해 개발 기관이 스스로 평가,
  • 5개의 프로세스 범주와 40개의 세부 프로세스로 구성
  • 수행, 관리, 확립, 예측, 최적화의 6단계 프로세스 수행 능력 단계로 구분


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

개요

  • 소프트웨어 개발에 공통적으로 사용디는 구성 요소와 아키텍처르 일반화하여 손쉽게 구현할 수 있도록 여러 가지 기능들을 제공해주는 반제품 형태의 소프트웨어 시스템
  • 주요 기능: 예외 처리, 트랜잭션 처리, 메모리 공유, 소스 관리, 서비스 관리, 쿼리 서비스, 로깅 서비스, 사용자 인증 서비스 etc.
  • 종류: 스프링, 전자정부, 닷넷 프레임워크 등이 존재

    스프링 프레임워크
  • 자바 플랫폼
  • 동적인 웹 사이트의 개발을 위한 서비스 제공
  • 전자정부 표준 프레임워크의 기반 기술

    전자정부 프레임워크
  • 나라의 공공부문 정보화 사업 시 효율적인 정보 시스템의 구축을 지원하기 위해 필요한 기능 및 아키텍처 제공

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


Written by