[자격증][정처기] 5과목 정보시스템 구축 관리 - 1

7 minute read

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

157 소프트웨어 개발 방법론

  • 소프트웨어 개발, 유지보수를 위한 수행 방법/기법을 표준화 한 것
  • 목적 : 생산성과 품질 향상
  • 방법론 종류
    • 구조적 방법론
      • 정형화된 분석 절차에 따라 사용자 요구사항을 파악해서 문서화하는 처리Process 중심의 방법론
      • 목적 : 쉬운 이해 및 검증이 가능한 프로그램 개발
      • 분할과 정복 원리를 적용
      • 타당성 검토 - 계획 - 요구사항 - 설계 - 구현 - 시험 - 운용/유지보수
    • 정보공학 방법론
      • 정보 시스템의 개발을 위해 계획,분석,설계 구축에 정형화된 기법들을 상호 연관성있게 통합하는 자료Data 중심의 방법론
      • 대규모 정보 시스템을 구축하는데 적함
      • 정보 전략 계획 수립 - 업무 영역 분석 - 업무 시스템 설계 - 업무 시스템 구축
    • 객체지향 방법론
      • Entity를 Object로 만들어 객체들을 조립해서 소프트웨어를 구현하는 방법론
      • 구조적 기법의 문제점으로 인한 소프트웨어 위기의 해결책으로 채택
      • 구성요소 : Entity, Object, Message 등
      • 기본원칙 : 캡슐화(데이터와 데이터를 처리하는 함수를 하나로 묶음), 정보 은닉, 추상화(중요한 부분을 중심으로 개략화), 상속성, 다형성(하나의 메세지에 대해 각 객체가 가지고 있는 고유한 방법으로 응답) 등
      • 요구 분석 - 설계 - 구현 - 테스트 및 검증 - 인도
    • 컴포넌트 기반 방법론
      • 기존 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 앱을 만드는 방법론
      • 컴포넌트의 재사용이 가능
      • 유지 보수 비용 최소화. 생산성 및 품질 향상
      • 개발 준비 - 분석 - 설계 - 구현 - 테스트 - 전개 - 인도
    • 애자일 방법론
      • 애자일 : 민첩한, 기민한
      • 고객의 요구사항 변환에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발 과정을 진행하는 방법론
      • 소규모 프로젝트, 고도로 숙달된 개발자, 급변하는 요구사항
      • 종류 : 익스트림 프로그래밍XP, 스크럼, 칸반, 크리스탈
      • 사용자 스토리 -> 반복주기(계획 - 개발 - 승인 테스트)
    • 제품 계열 방법론
      • 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론
      • 임베디드 소프트웨어를 개발하는데 적합
      • 구분
        • 영역공학 : 영역 분석, 영역 설계, 핵심 자산 구현
        • 응용공학 : 제품 요구사항 분석, 제품 설계, 제품 구현
      • 영역공학과 응용공학의 연계를 위한 제품의 요구사항, 아키텍쳐, 조립 생산이 필요하다.

158 비용 산정 기법

  • 소프트웨어의 개발 규모를 소요되는 인원, 자원, 기간 등으로 확인하여 실행 가능한 계획을 수립하기 위해 필요한 비용을 산정
  • 너무 높게 설정 : 예산 낭비, 일의 효율성 저하
  • 너무 낮게 설정 : 개발자 부담 증가, 품질 문제
  • 비용 결정 요소 3가지 이름
    • 프로젝트 요소 3가지 이름
      • 제품 복잡도 : 문제점 난이도
      • 시스템 크기 : 일정 기간 내 주어진 조건에서 기능을 수행하는 정도
      • 요구되는 신뢰도
    • 자원 요소 3가지 이름
      • 인적 자원
      • 하드웨어 자원
      • 소프트웨어 자원
    • 생산성 요소 2가지 이름 구분
      • 개발자 능력
      • 개발 기간

159 비용 산정 기법 - 하향식

  • 과거의 유사한 경험을 바탕으로 전문 지식이 많은 개발자들이 참여한 회의를 통해 비용 산정하는 비과학적인 방법
  • 프로젝트 전체 비용을 산정한 후 각 작업별로 비용을 세분화한다.
  • 종류
    • 전문가 감정 기법
      • 경험이 많은 두 명 이상의 전문자에게 비용 산정을 의뢰
      • 편리, 신속, 의뢰자로부터 믿음을 얻을 수 있다.
      • 새로운 프로젝트에는 과거의 프로젝트와 다른 요소들이 있다는 것을 간과할 수 있음
      • 새로운 프로젝트와 유사한 프로젝트에 대한 경험이 없을 수 있다.
      • 개인적이고 주관적일 수 있다.
    • 델파이 기법
      • 주관적인 편견을 보완하기 위해 많은 전문가의 의견을 종합하여 산정하는 기법
      • 한 명의 조정자와 여러 전문가로 구성
      • 비용 산정 순서
        1. 조정자는 각 비용 산정 요원에게 시스템 정의서와 산정한 비용 내역을 기록할 서식 제공
        2. 산정 요원들은 정의서를 분석하여 익명으로 그들 나름대로의 비용을 산정
        3. 조정자는 산정 요원들의 반응을 요약, 배포
        4. 산정 요원들은 이전에 산정한 결고를 이용항 다시 익명으로 산정
        5. 요원들 간의 의견이 거의 일치할 때까지 이 과정을 반복

160 비용 산정 기법 - 상향식

  • 프로젝트의 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정하는 방법
  • 종류
    • LOC(원시 코드 라인 수, Line Of Code) 기법
      • 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하는 방법
      • 예측지 = (비관치 + 4*낙관치 + 기대치) / 6
      • 산정 공식
        • 노력(인원man month) = 개발 기간 x 투입 인원 = LOC / 1인당 월평균 생산 코드 라인 수
        • 개발 비용 = 노력 x 단위 비용(1인당 월평균 인건비)
        • 개발 기간 = 노력 / 투입 인원
        • 생산성 = LOC / 노력
    • 개발 단계별 인월수(Effort Per Taks) 기법
      • LOC를 보완하기 위한 기법으로, 각 기능을 구현시키는 데 필요한 노력을 생명 주기의 각 단계 별로 산정
      • LOC 보다 더 정확하다.
    • 수학적 산정 기법

161 수학 산정 기법

  • 상향식 비용 산정 기법 중 하나
  • = 경험적 추정 모형 = 실험적 추정 모형
  • 목표 : 개발 비용 산정의 자동화
  • 공식은 과거 유사한 프로젝트를 기반으로하여 경험적으로 유도된 것
  • 종류
    • COCOMO 모형
      • COnstructive COst MOdel 모형
      • LOC에 의한 비용 산정 기법
      • LOC를 예측한 후 소프트웨어 종류에 따라 다르게 책정되는 비용 산정 방정식에 대입하여 비용 산정
      • 비용 견적의 강도 분석 및 비용 견적의 유연성이 높아 널리 통용
      • 같은 규모의 프로그램이더라도 그 성격에 따라 비용이 다르게 산정된다.
      • 비용 산정 결과는 프로젝트를 완성하는데 필요한 Man-Month로 나타난다.
      • Boeham이 고안한 개발비 산정 모델로 프로젝트의 예쌍되는 크기와 유형에 관한 정보가 주로 사용된다.
      • 프로젝트 특성을 15개로 나누고 각각에 대한 승수값을 제시하였다.
      • 개발 유형Project Mode
        • 조직형Organic Mode
          • 기관 내부에서 개발된 중,소 규모의 소프트웨어로 일괄 자료 처리, 비즈니스 자료 처리용으로 5만라인 이하의 SW 개발 유형
          • 노력 = 2.4 X KDSI^{1.05}
          • 개발기간 = 2.5 X MM^{0.38}
        • 반분리형Semi-Detached Mode
          • 조직형과 내장형의 중간형.
          • 트랜잭션 처리 시스템이나 운영체제, 데이터베이스 관리 시스템 등 30만 라인 이하의 SW 개발 유형
          • 노력 = 3.0 X KDSI^{1.12}
          • 개발기간 = 2.5 X MM^{0.35}
        • 내장형Embedded Mode
          • 최대형 규모의 트랜잭션 처리 시스템이나 운영체제 등의 30만라인 이상의 SW 개발 유형
          • 신호기 제어 시스템, 미사일 유도 시스템, 실시간 처리 시스템 등의 시스템 프로그램 개발에 적합
          • 노력 = 3.6 X KDSI^{1.20}
          • 개발기간 = 2.5 X MM^{0.32}
      • 모형 종류
        • 기본형Basic COCOMO
          • 소프트웨어 크기LOC와 개발 유형만을 이용하여 비용 산정
        • 중간형Intermediate COCOMO
          • 기본형 COCOMO 공식 사용
          • 4가지 특성의 15가지 요인에 의해 비용 산정
            • 제품의 특성
              • 요구되는 신뢰도/DB 크기/제품의 복잡도
            • 컴퓨터의 특성
              • 수행 시간의 제한/기억 장소의 제한/가상 기계의 안정성/Turn Around Time
            • 개발 요원의 특성
              • 분석가의 능력/개발 분야의 경험/가상 기계의 경험/프로그래머 능력/프로그래밍 언어의 경험
            • 프로젝트 특성
              • 소프트웨어 도구의 이용/프로제그 개발 일정/최신 프로그래밍 기법의 이요
        • 발전형Detailed COCOMO
          • 중간형 COCOMO를 보완하여 만들어진 방법
          • 개발 공정별로 자세한 노력을 산출해 비용 산정
          • 소프트웨어 환경과 구성 요소가 사전에 정의되어 있어야 하며, 개발 과정의 후반부에 주로 적용한다.
          • 중간형 COCOMO 산정 공식 그대로 사용
          • 노력 승수 = 개발 공정별 노력 승수 x 개발 공정별 가중치
    • Putnam 모형
      • 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 가정
      • = 생명주기 예측 무형
      • 설계 및 코딩/테스트 및 확인/확장/유지.보수/수정/관리 등의 생명 주기가 있다.
      • 대형 프로젝트의 노력 분포 산정에 이용되는 기법
      • 개발 기간이 늘어날 수록 프로젝트 적용 인원의 노력이 감소한다.
    • 기능 점수 모형
      • SW 기능을 증대시키는 요인별 가중치를 부여하고, 요인별 가중치를 합산하여 총 기능 점수를 산출하여 총 기능 점수와 영향도를 통해 비용 산출
      • 소프트웨어 기능 증대 요인 가중치 단순 가중치 보통 가중치 복잡
      • 자료 입력(입력 양식) 3 4 6

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

  • 프로젝트 고나리와 재사용 현황을 소프트웨어 개발 방법론에 반영하고, 확정된 소프트웨어 생명 주기와 개발 방법론에 맞추어 소프트웨어 개발 단계, 활동, 작업, 절차 등을 정의하는 것이다.
  • 프로젝트 관리 = 일정/비용/인력/위험/품질 관리
  • 결정 절차
    1. 프로젝트 관리와 재사용 현황을 소프트웨어 개발 방법론에 반영한다.
    2. 개발 단계별 자격 및 절치를 소프트웨어 생명 주기에 맞춰 수립한다.
      • 생명주기는 기본/지원/조직 생명주기로 나뉜다.
      • 개발 프로세스/개발 생명 주기/ 프로세스 모형을 정리
    3. 결정된 방법론의 개발 단계별 활동 목적, 작업 내용 산출물에 대한 매뉴얼을 작성한다.

163 소프트웨어 개발 표준

  • 개발 단계에서 수행하는 품질 관리에 사용되는 국제 표준
  • ISO/IEC 12207
    • ISO,International Organization for Standardization, 국제 표준화 기구 에서 만든 포준 소프트웨어 생명 주기 프로세스.
    • 소프트웨어 개발,운영, 유지보수 등을 체계적으로 관리하기 위한 소프트웨어 생명 주기 표준 제공
      • 기본 생명 주기 프로세스 : 획득,공급,개발,운영,유지보수 프로세스
      • 지원 생명 주기 프로세스 : 품질 보증, 검증,확인,활동 검토,감사,문서화,형상 간리,문제 해결프로세스
      • 조직 생명 주기 프로세스 : 관리,기반 구조, 훈련, 개선 프로세스
  • CMMI(Capability Maturity Model Integration)
    • 능력 성숙도 통합 모델
    • 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델
    • 미국 카네기멜론 대학교의 소프트웨어 공학 연구소에서 개발
    • 소프트웨어 프로세스 성숙도초기/관리/정의/정량적 관리/최적화 5단계로 구분한다.
      • 초기 : 작업자 능력에 따라 성공 여부 결정
      • 관리 : 특정한 프로젝트 내의 프로세스 정의 및 수행
      • 정의 : 조직의 표준 프로세스를 활용하여 업무 수행
      • 정량적 관리 : 프로젝트를 정량적으로 관리 및 통제
      • 최적화 : 프로세스 역량 향상을 위해 지속적인니 프로세스 개선
  • SPICE(Software Process Improvement and Capabilit dEtermination)
    • 프로세스 범위 구분
      • 고객 공급자Customer-Supplier 프로세스 : 소프트웨어를 개발하여 고객에게 전달하는 것을 지원. 운용, 사용을 위한 프로세스로 구성
      • 공학Engineering 프로세스 : 제품의 명시화, 구현, 유지 보수하는데 사용되는 프로세스로 구성
      • 지원Support 프로세스 : 생명주기에서 다른 프로세스에 의해 이용되는 프로세스로 구성
      • 관리Manaement 프로세스 : 프로젝트 관리자에 의해 사용되는 프로세스로 구성
      • 조직Organization 프로세스 : 조직의 업무 목적 수립과 조직의 업무 목표 달성을 위한 프로세스로 구성
    • 프로세스 수행 능력 단계 구분
      • 불완전 : 프로세스가 구현되지 않았거나 목적을 달성하지 못한 단계
      • 수행 : 프로세스가 수행되고 목적이 달성된 단계
      • 관리 : 정의된 자원의 한도 내에서 그 프로세스가 작업 산출물을 인도하는 단계
      • 확립 : 소프트웨어 공학 원칙에 기반하여 정의된 프로세스가 수행되는 단계
      • 예측 : 프로세스가 목적 달성을 위해 통제되고, 양적인 측정을 통해서 일관되게 수행되는 단계
      • 최적화 : 프로세스 수행을 최적화하고 지속적인 개선을 통해 업무 목적을 만족시키는 단계

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

  • 방법론의 절차, 사용 기법 등을 수정 및 보완하는 작업
  • 수행 절차 : 프로젝트 특징 정의 - 표준 프로세스 선정 및 검증 - 상위 수준의 커스터마이징 - 세부 커스터마이징 - 테일러이 문서화
  • 내부적 요건
    • 목표 환경
    • 요구 사항
    • 프로젝트 규모
    • 보유 기술
  • 외부적 요건
    • 법적 제약사항
    • 표준 품질 기준
  • 테일러링 기법 : 규모와 복잡도에 따라/구성원에 따라/팀내 방법론 지원에 따라/자동화에 따라

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

  • 스프링 프레임워크
    • 자바 플랫폼을 위한 오픈소스 경량형 앱 프래임워크
    • 동적인 웹 사이트 개발을 위한 다양한 서비스 제공
    • 전자 정부 표준 프레임워크의 기반 기술
  • 전자정부 프레임워크
    • 공공부문 정보화 사업 시 효율적인 정보 시스템의 구축을 지원하기 위해 필요한 기능 및 아키텍쳐를 제공하는 프레임워크
    • 개발 프레임워크의 표준 정립으로 응용 소프트웨어의 표준화, 품질 및 재사용성의 향상을 목적으로 한다.
    • 오픈 소스 기반의 범요화가 되고 공개된 기술을 활용 -> 특정 업체의 종속성을 배제하고 사업별 공통 컴포넌트의 중복 개발을 방지
  • 닷넷 프레임워크
    • Windows 프로그램의 개발 및 실행 환경을 제공하는 프레임워크. MS의 통합 인터넷 전략에 의해 개발
    • 코드 실행을 관리하는 CLR(Common Language Runtime)이라는 이름의 가상머신에서 작동한다.
    • 메모리 관리, 메모리 안전성, 보안 네트워크 작업 등 여러 가지 서비스를 제공한다.

Tags:

Categories:

Updated: