본문 바로가기

정보처리기사/필기

과목5 - 소프트웨어 개발 방법론

  • 소프트웨어 생명주기(SDLC) : 소프트웨어 개발을 어떻게 할것인가?
    • 주요단계
      • 요설구테배유
      • 요구사항분석 -> 설계 -> 구현 -> 테스트 -> 배포 -> 유지보수
        • 단게별 산출물 
          • 요구사항 분석 단계 -> 요구사항 정의서
            • SADT - Soft Tech사가 개발한 것으로, 블록다이어그램을 통해서 요구사항을 분석하고 표현하는 자동화 도구
          • 시스템 설계 단계 -> 시스템 아키텍처(구조) 문서, 컴포넌트 문서
          • 구현 단계 -> 컴포넌트 코드, 통합 시스템 코드
          • 테스트 단계 -> 단위 테스트, 통합 테스트
          • 배포 및 유지보수 단계 -> 운영메뉴얼, 유지보수 로그
    • 생명주기 모델 종류
      • 폭포수
        • 변경 불가능 - 개발 중간에 고객의 피드백 반영이 어렵다.
        • 고전적으로 가장 오래된 모델
        • 계획 중심
      • 원형 모델(프로트타입핑)
        • 오류를 빨리 수정할 수 있다.
        • 시제품
        • 단점 : 시간과 비용이 많이 듬
      • 나선형 모델(Spiral Model)
        • 위험 분석
        • 계획 -> 위험 분석 -> 개발 -> 고객평가
        • 위험 분석과 평가로 인해 비용이 많이듬
      • V모델
        • 확인과 검증
          • 검증 : 개발자가 요구사항과 명세서 기반으로 잘 만들어 졌는지? 검증
          • 확인 : 사용자가 직접 프로그램을 사용하면서 제대로 작동하는지? 확인
        • 폭포수 변형된 모델이다.
  • 소프트웨어 개발 방법론
    • 소프트웨어의 전 과정에 방법, 기법 등을 적용해서 소프트웨어의 품질을 향상 시키는 것이 목적이다.
  • 소프트웨어 개발 방법론의 역사
    • 1970년대
      • 구조적 방법론 - 기능적
        • 폭포수가 가장 대표적임 
        • 구조적 방법론에 사용되는 도구
          • NS차트
          • 흐름도
          • HIPO
            • 하향식 소프트웨어 설계위한 문서화 도구
            • 용어나 부호를 사용자가 아니더라도 쉽게 알아 볼 수 있도록함
    • 1980년대
      • 정보공학 방법론
    • 1990년대
      • 객체지향 방법론
    • 2000년대
      • 컴포넌트 기반(CBD)
        • 상향식 방법론
        • 재사용
    • 2000년대
      • 애자일 방법론
        • 빠른 변화에 대응
  • 소프트웨어 개발 방법론에서 비용 산정 방법론
    • 하향식 방법
      • 예산을 산정 후, 상 -> 하 세부항목으로 내려가면서 할당하는 방식
      • 하양식 비용 산정 모델
        • 전문가 감정에 의한 방법
        • 델파이 방법
          • 심도있게 반복적으로 피드백 과정을 거침
    • 상향식 방법
      • 하 -> 상
      • 작은 단위부터 산정하여 모두 합산
      • 상향식 비용 산정 모델
        • 원시 코드 라인 수(LOC) 기법
          • 비관치(W), 낙관치(B), 기대치(M)를 측정하여 예측치를 추정함
            • 코드 라인이 100줄 된다. 그래서 비용이 얼마이며 공수는 5명정도 든다.
            • 개발 소요 기간 : 총 라인수 50000/(월 평균 생산성 200 * 프로그래머 10명)
        • 개별 단계별 노력기법
          • 프로젝트에 개발단게에서 
    • 수학적 방법
      • COCOMO 모형
        • 보햄(Boehm)이라는 사람이 만듬 - 프로젝트 규모에 따라 코드 줄이 길어짐
          • Organic - 50,000 라인 이하
          • Semi-Detached - 300,000 라인 이하
          • Embedded - 300,000 초과
    • 생명주기 예측 모형(=푸드남(Putnam) 모형)
      • 프로젝트가 커질 수록 일정이 길어지고, 더 많은 노력이 필요하게 되며 개발 기간이 늘어 날 수록 프로젝트에 투입되는 인원의 노력이 감소한다. = Rayleigh-Norden 곡선 : 시간에 따른 노력을 분포시킨다.
    • 펑션 포인트(FP) 모형
      • 기능(Functional)에 따라 가중치를 두어 비용을 산정
  • 자동화 추정 도구의 정의
    • SLIM : Raylegh-Norden 곡선과 Putnam
    • ESTMACS : FP모형
  • 소프트웨어 방법론에서 일정 관리 모델
    • 간트 차트
      • CPM 네트워크로 만드는 것이 가능하다.
    • PERT/CPM
      • 작업간을 도식화하여 크리티컬 패스(Critical Path) : 프로젝트 최장(가장 긴) 경로를 찾는 것
        • 크리티컬 패스를 알아야하는 경우 : 어느 정도 경과하는지 인지하고 프로젝트를 시작하는 것
      • PERT : 프로젝트에서 불확실한 경우, 정확한 일정을 아는데 사용함
      • CPM : 불확실성 없는 확실하게 작업이 결정된 경우, 더욱 최적화 시킴