• 소프트웨어 개발 방법론
    • 소프트웨어 개발 방법론의 개념
      • 소프트웨어 개발 과정들을 정의하고 표준화하여 형상화 한 것으로 지속적으로 적용할 수 있는 방법, 절차, 기법을 설정하는 것
      • 프로그래밍 개발과정에서 일관성을 유지하고 프로그램들 간의 효과적인 협업이 이루어질 수 있도록 돕기 위한 방법론으로 소프트웨어의 생산성과 품질 향상을 목적으로 등장
    • 소프트웨어 개발 방법론의 종류
      • 구조적 방법론
        • 1970년대까지 가장 많이 적용된 구조화 프로그래밍 방법
        • 개발 순서: 타당성 검토 -> 계획 -> 요구사항 -> 설계 -> 구현 -> 테스트 -> 운용 및 유지보수
        • 쉽게 이해할 수 있고 검증 가능한 프로그램 코드를 생성
      • 정보공학 방법론
        • 정보 시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론
        • 개발순서: 정보 전략 계획 수립 -> 업무 영역 분석 -> 업무 시스템 설계 -> 기술 설계 -> 업무 시스템 구축 -> 업무 시스템 실행
        • 정보공학 방법론은 자료 (Data) 중심의 방법론으로 업무 활동들을 상호 연관성 있게 통합하고 적용
      • 객체지향 방법론
        • 소프트웨어를 개발할 때 기계의 부품을 조립하듯이 객체 형태로 만들어진, 객체들을 조립해서 필요한 소프트웨어를 구현하는 방법론
        • 개발 순서: 요구 분석 -> 설계 -> 구현 -> 테스트 -> 인수
        • 구조적 기법의 문제점으로 인한 소프트웨어 위기의 해결책으로 채택
      • 컴포넌트 기반 (CBD) 개발 방법론
        • 기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론
        • 개발 순서: 개발 준비(팀 구성) -> 분석(요구 사항) -> 설계(아키텍처) -> 구현(개발) -> 테스트 및 검증 -> 전개(리허설) -> 인수
        • 컴포넌트의 재상용이 가능하여 시간과 노력을 절감, 유지 보수비용을 최소화하고 생산성 및 품질을 향상
      • 애자일(Agile) 방법론
        • 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 방법론
        • 개발 순서: 전략수립 단계 (유저 스토리) -> 스파이크 솔루션 반복 (주기 계획 -> 주기 개발 -> 승인 테스트)
        • 스프린트(Sprint)라는 짧은 개발 주기를 반복하며 고객의 평가와 요구 사항을 수용
        • 스크럼 (Scrum)
          • 매일 정해진 시간에 정해진 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심의 방법론
          • 스크럼 개발 프로세스 제품 백로그 (Product Backlog) -> 스프린트 계획 회의 (Sprint Backlog) -> 스프린트 수행 -> 일일 스크럼 회의 -> 스프린트 검토 회의 -> 스프린트 회고
        • XP (eXtreme Programming)
          • 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법
          • XP 개발 프로세스 사용자 스토리 -> 릴리즈 계획 수립 -> 스파이크 -> 이터레이션 -> 승인 검사 -> 소규모 릴리즈
    • 소프트웨어 개발 방법론 선정
      • 소프트웨어 개발 방법론의 개념
        • 소프트웨어를 개발하는 데 투입 자원, 비용, 시간, 위험 관리 등을 확인하고 어떤 개발 방법론을 선택하여 개발할 것인가를 결정하는 것
      • 소프트웨어 개발 방법론의 특징
        • 프로젝트 관리
          • 일정 관리, 비용 관리, 인력 관리, 위험 관리, 품질 관리
        • 소프트웨어 개발 방법론 선정 절차
          • 반영, 수립비용 관리, 매뉴얼 작성
  • 소프트웨어 비용 산정
    • 소프트웨어 비용 산정의 개념
      • 소프트웨어 개발에 필요한 개발 규모를 기반으로 개발에 필요한 비용을 예측하는 것
      • 소프트웨어 비용은 개발하는 소프트웨어 크기, 소프트웨어 개발에 투입되는 자원, 소프트웨어 생산성에 따라 결정
    • 소프트웨어 비용 결정 요소
      • 프로젝트 요소: 제품 복잡도, 시스템 크기, 요구되는 신뢰도
      • 자원 요소: 인적 자원, 하드웨어 자원, 소프트웨어 자원
      • 생산성 요소: 개발자 능력, 개발 기간
  • 하향식 비용 산정 기법
    • 하향식 비용 산정 기법의 개념
      • 전문 지식이 많은 개발자들이 과거의 유사한 경험을 바탕으로 회의를 통해 비용을 산정하는 방법
    • 하향식 비용 산정 기법의 종류
      • 전문가 판단 기법: 조직 내에 경험이 많은 두 명 이상의 전문가에게 비용 산정을 의뢰하는 기법
      • 델파이 기법: 전문가 판단 기법의 단점을 보완하기 위한 것으로 한명의 조정자와 다수 전문가를 두는 방법
  • 상향식 비용 산정 기법
    • 상향식 비용 산정 기법의 개념
      • 개발하려는 프로젝트의 세부 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정하는 방법
    • 상향식 비용 산정 기법의 종류
      • 원시코드 라인 수(LOC) 기법: 소프트웨어 각 기능별 원시 코드 라인 수의 예측치를 이용하여 생산성, 노력, 개발 기간 등의 비용을 산정하는 기법
      • 개발 단계별 인 월수(Effort Per Task) 기법: 각 기능을 구현시키는 데 필요한 개발 노력 (인 / 월수)을 생명 주기의 각 단계별로 산정
  • 수학적 산정 기법
    • 수학적 산정 기법의 개념
      • 경험적 추정 모형 또는 실험적 추정 모형이라고 하는 상향식 비용 산정 기법
    • COCOMO 모형
      • COCOMO 모형(COnstructive COst MOdel): 시스템의 비용을 산정하기 위해 시스템을 구성하고 있는 모듈과 서브시스템의 각 유형에 대한 총 인원 수와 개발 기간을 계산하는 방식
      • COCOMO 모형의 프로젝트 유형: 조직형, 반분리형, 임베디드형
      • COCOMO 모형의 종류: 기본형 COCOMO, 중간형 COCOMO, 발전형 COCOMO
  • 소프트웨어 개발 표준
    • 소프트웨어 개발 표준의 개념
      • 사용자의 요구를 소프트웨어 제품으로 만드는데 사용되는 국제 표준
    • 소프트웨어 개발 표준의 종류
      • ISO/IEC 12207 표준: 소프트웨어 개발을 수행하기 위한 절차, 활동, 획득, 설정에 대한 소프트웨어 생명주기 단계별로 필요한 프로세스와 각 프로세서에서 나오는 산출물까지 포함
      • CMMI: 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하기 위한 모델
      • CMMI 의 역량 성숙도 5단계: 초기 단계, 관리 단계, 정의 단계, 정량적 관리 단계, 최적화 단계
      • SPICE: 소프트웨어 처리 개선 및 능력 평가 기준
  • 소프트웨어 개발 방법론 테일러링
    • 소프트웨어 개발 방법론 테일러링의 개념
      • 시스템 개발에서 프로젝트 진행 상황 및 특성에 맞는 방법론과 산출물을 찾아 수정 및 보완하여 최적화된 결과를 얻어내는 작업
    • 소프트웨어 개발 방법론 테일러링 수행 절차
      • 프로젝트 특징 정의 -> 표준 프로세스 선정 및 검증 -> 상위 수준의 커스터마이징 -> 세부 커스터마이징 -> 테일러링 문서화
    • 테일러링의 고려 사항
      • 목표 환경, 요구사항, 프로젝트 규모 보유기술 (내부적 요건)
    • 테일러링 기법
      • 규모와 복잡도에 따른 테일러링, 구성원에 따른 테일러링, 팀내 방법론 지원에 따른 테일러링, 자동화에 따른 테일러링
  • 소프트웨어 개발 프레임워크
    • 소프트웨어 개발 프레임워크의 개념
      • 비슷한 유형의 소프트웨어 개발에 있어 공통적인 부분에 해당하는 설계와 구현을 손쉽게 할 수 있도록 제공하는 소프트웨어 시스템
    • 소프트웨어 개발 프레임워크의 종류
      • 스프링 프레임워크: 자바 엔터프라이즈 애플리케이션 (Java Enterprise Application) 개발에 사용되는 프레임워크이며 대한민국 전자정부 표준 프레임워크의 기반 기술
      • 전자정부 프레임워크: 우리나라 공공부문의 정보화 사업 부분에서 효율적인 정보 시스템의 구축을 지원하기 위해 필요한 기능 및 아키텍처를 제공하는 프레임워크
      • 닷넷 프레임워크: 윈도우 프로그램의 개발 및 실행 환경에서 제공하는 프레임워크

WRITTEN BY
ppdha82

,