Ⅰ. 요구사항 확인

Chapter 01 소프트웨어 개발방법론

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

  • 요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수
  • 폭포수 모델(순차적), 프로토타이핑 모델(프로토타입), 나선형 모델(절차 반복적), 반복적 모델(병행적) 등이 있음

(2) 개발방법론

  • 구조적 방법론 : 기능에 따라 나누어 개발하고 통합하는 분할정복식 접근방법

  • 정보공학 방법론 : 개발주기를 이용해 대형 프로젝트를 수행하는 방법

  • 객체지향 방법론 : ‘객체’ 단위로 시스템을 분석 및 설계

  • 컴포넌트 기반 방법론 : 소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 응용 프로그램을 작성하는 방법으로 확장성이 용이하며 소프트웨어의 재사용이 가능

  • 애자일 방법론 : 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 경량 개발방법론으로 이터레이션 주기(분석→디자인→개발→테스트를 반복)를 통해 개발됨

    • 대표적인 애자일 방법론의 유형 : XP, Lean, 스크럼 등
  • XP(eXtreme Programming) : 용기, 단순성, 의사소통, 피드백, 존중의 5가지 가치를 가지며 짝프로그래밍을 포함한 12가지 기본 원리로 구성됨

  • 스크럼 : 매일 정해진 시간·장소에서 개발팀을 위한 프로젝트 관리 중심 방법론

    • 백로그, 스프린트, 스크럼 미팅, 스크럼 마스터, 스프린트 회고, 번 다운 차트
  • Lean : Just In Time, 칸반 보드를 사용함

(3) 비용산정, 일정관리 모형

  • 하향식, 상향식 산정방법
  • Lines of Code(LoC) 모형 : 낙관치, 중간치, 비관치를 측정하여 비용을 산정
  • Man Month 모형 : LoC / 프로그래머의 월간 생산성, Man Month / 프로젝트 인력 = 프로젝트 기간
  • COCOMO 모형
    • 조직형 : 5만라인 이하의 소프트웨어 개발에 적용
    • 반 분리형 : 30만라인 이하의 소프트웨어 개발에 적용
    • 임베디드형 : 30만라인 이상의 소프트웨어 개발에 적용
  • 푸트남 모형 : 단계별로 요구할 인력의 분포를 가정
  • 기능점수 모형 : 요인별 가중치를 합산하고 총 기능의 점수를 계산하여 비용을 산정 (기능점수 = 총 기능점수 x (0.65 + (0.1 총 영향도)))
  • 일정관리 모델에는 주 공정법, PERT, 중요 연쇄 프로젝트 관리가 있다

기출문제

  1. 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 갭라할 수 있는 신속 적응적 경량 개발방법론으로, 개발 기간이 짧고 신속하며, 워터폴에 대비되는 방법론으로 최근 회사에서 각광받는 방법론은 무엇인가?

애자일 방법론

  1. LoC가 30,000 라인이고 개발자가 5명이며, 월평균 300라인을 개발한다면 프로젝트 개발 기간과 계산식을 쓰시오

프로젝트 개발 기간 : Man Month = LoC / 월간 생산성 = 30,000 / 300 = 100개월
프로젝트 기간 = 100 개월 / 5 명 = 20개월

예상문제

  1. 소프트웨어 생명주기 모델에 대해 서술하시오

시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차로 시스템이 개발될 때부터 운용과 유지보수를 거쳐 생애를 마칠 때 까지의 작업 프로세스를 모델화 한 것

  1. 소프트웨어 생명주기 모델 중에서 시스템 명세 단계에서 정의한 기능을 실제 수행할 수 있도록 수행 방법을 논리적으로 결정하는 단계는 무엇인가?

설계 단계

  1. 소프트웨어 개발 시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델은 무엇인가?

폭포수 모델

  1. 전체 시스템을 기능에 따라 나누어 개발하고 이를 통합하는 분할과 정복 접근 방식의 방법론은 무엇인가?

구조적 방법론

  1. TDD에 대해서 설명하시오

테스트를 기반으로 한 개발 방식으로 작성해야 하는 프로그램에 대한 테스트를 먼저 수행하고 이 테스트를 통과할 수 있도록 코드를 작성하는 것

  1. XP 12가지 가치 중 매일 여러 번씩 소프트웨어를 통합하고 빌드해야 한다는 원리는 무엇인가?

지속적인 통합

  1. 애자일 방법론 중에서 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론은 무엇인가?

스크럼 기법

  1. 델파이 기법에 대해 서술하시오

전문가의 경험적 지식을 통한 문제 해결 및 미래 예측을 위한 기법

  1. 요구 기능을 증가시키는 인자별로 가중치를 부여하고 요인별 가중치를 합산하여 총 기능 점수를 계산하고 비용을 산정하는 방식은 무엇인가?

기능 점수 방식

  1. 일의 순서를 계획적으로 정리하기 위한 수렴 기법으로 비관치, 중간치, 낙관치의 3점 추정방식을 통해 일정을 관리하는 기법은 무엇인가?

PERT

  1. CPM 네트워크가 다음과 같을 때 임계 경로의 소요기일은 얼마인가?

14일

  1. LoC가 50,000라인, 개발자 10명, 월평균 250라인을 개발한다면 Man Month는 얼마인가?

50,000 / 250 = 200