[정보처리기사 실기] 1.요구사항 확인(1)

Sua An·2021년 10월 1일
0
post-thumbnail

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

📌 소프트웨어 생명주기 모델

✅ 소프트웨어 생명주기 (SLDC)

: 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차.

✅ 소프트웨어 생명주기 모델 프로세스

: 요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수

✅ 소프트웨어 생명주기 모델 종류

  • 폭포수 모델
    • 개발 시 각 단계를 확실히 마무리 지은 후 다음단계로 넘어감 (순차적)
    • 가장 오래된 모델
    • 모형의 적용 경험과 성공 사례가 많음
    • 단계별 정의와 산출물이 명확
    • 요구사항 변경 어려움
    • 절차 : 요구사항 분석 -> 설계 -> 구현 -> 테스트
  • 프로토타이핑 모델
    • 주요 기능 프로토타입으로 구현, 고객의 피드백 반영
    • 공동의 참조모델 제공
    • 프로토타입은 구현 단계의 구현 골격
  • 나선형 모델
    • 위험을 최소화 하기 위해 점진적으로 완벽한 시스템으로 개발해 나감.
    • 절차 : 계획 및 정의 -> 위험분석 -> 개발 -> 고객평가
  • 반복적 모델
    • 구축대상 나누어 병렬적 개발 후 통합하거나 반복적으로 개발하여 점증 완성
    • 병행 개발

📌 소프트웨어 개발방법론

: 소프트웨어 개발 전 과정에 지속적으로 적용 가능한 방법, 절차, 기법

✅ 소프트웨어 개발방법론 종류

  • 구조적 방법론

    • 전체 시스템을 기능에 따라 나누어 개발, 이를 통합하는 분할과 정복 접근 방식
    • 프로세스 중심의 하향식 방법론
    • 나씨-슈나이더만 차트 사용
      - 논리의 기술에 중점을 둔 도형식 표현방법
      - 제어 논리 구조로 표현
      - 조건이 복합되어 있는 곳의 처리를 시각적으로 명확히 식별하는데 적합
  • 정보공학 방법론

    • 정보시스템 개발에 필요한 관리 절차와 작업 기법 체계화한 방법론
  • 객체지향 방법론

    • 복잡한 현실 세계를 사람이 이해하는 방식으로 시스템에 적용하는 방법론
    • 객체, 클래스, 메세지 사용
  • 컴포넌트 기반 방법론

    • 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론
    • 생산성, 확장성, 재사용
  • 애자일 방법론

    • 절차보다는 사람중심
    • 변화에 유연하고 신속하게 적응
    • 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발 방법론
  • 제품 계열 방법론

    • 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론
    • 임베디드 소프트웨어 작성시 유용
    • 영역 공학과 응용 공학으로 구분

✅ 애자일 방법론( ↔ 폭포수 모형)

  • 등장배경 : 소프트웨어 개발 환경의 변화 & 기존 개발방법론의 한계

  • 유형

    • XP
      • 5가지 가치 : 용기, 단순성, 의사소통, 피드백, 존중
      • 12개의 실천항목
        - 짝프로그래밍 : 개발자 둘이서 짝코딩
        - 공동 코드 소유 : 누구든 언제라도 수정 가능
        - 지속적인 통합 : 매일 여러 번씩 소프트웨어를 통합하고 빌드
        - 작은 릴리즈 : 작은 시스템을 먼저 만들고 짧은 단위로 업데이트
        - 메타포어 : 공통적인 이름 체계와 시스템 서술서를 통해 고객과 개발자간 의사소통 원활히 함
        - 리팩토링 : 프로그램의 기능을 바꾸지 않으면서 중복제거, 단순화 등을 위해 시스템 재구성
        - 계획 세우기
        - 간단한 디자인
        - 테스트 기반 개발
        - 40시간 작업
        - 고객 상주
        - 코드 표준

    • SCRUM
      : 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론
      - 백로그 : 요구사항
      - 스프린트 : 2~4주의 짧은 개발 기간으로 반복적 수행을 통해 개발품질 향상
      - 스크럼 미팅 : 매일 15분 정도 미팅 (= 데일리 미팅)
      - 스크럼 마스터 : 프로젝트 리더
      - 스프린트 회고
      - 번다운 차트

    • LEAN
      : 낭비 요소를 제거하여 품질 향상
      - 7가지 원칙 : 낭비제거, 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화

  • 애자일과 전통적 방법론 비교

    비교대상애자일 방법론전통적 방법론
    계획수립유동적확정적
    업무수행팀 중심개인 단위
    개발/검증반복 주기 단위분설구테 순차적으로 수행
    팀관리팀평가경쟁, 개별평가
    문서화문서보다 코드강조상세한 문서화 강조
    성공요소고객 가치 전달계획/일정 준수
    유형XP,SCRUM,LEAN폭포수, 프로토타입, 나선형

📌 비용산정 모형

: 소프트웨어 규모파악을 통한 투입자원, 소요시간 파악하여 실행 가능한 계획을 수립하기 위해 비용을 산정하는 방식

✅ 비용산정 분류

  • 상향식
    - 전문가에게 비용산정 의뢰
    - 종류 : 전문가 판단, 델파이 기법

  • 하향식
    - 세부적인 요구사항과 기능에 따라 필요한 비용 계산
    - 종류 : LoC, Man Month, COCOMO, 푸트남, 기능점수

✅ 비용산정 종류

  • LoC 모형
    : 각 기능의 원시 코드 라인 수의 낙관치, 중간치, 비관치를 측정하여 예측치를 구하여 비용산정

    • 예측치 = o+4m+p6\frac{o+4m+p}{6}
    • 비관치 : 가장 많이 측정된 코드 라인 수
    • 중간치 : 측정된 모든 코드 라인 수의 평균
    • 낙관치 : 가장 적게 측정된 코드 라인 수

  • Man Month 모형
    : 한 사람이 1개월 동안 할 수 있는 일의 양을 기준으로 프로젝트 비용 산정

    • Man Month = LoC / 프로그래머의 월간 생산성
    • 프로젝트 기간 = Man Month / 프로젝트 인력

  • COCOMO 모형
    : 보헴이 제안한 모영, 프로그램 규모에 따라 비용 산정

    • 개발 유형

      • 조직형 (Organic)
        - 중소규모의 소프트웨어
        - 일괄 자료 처리나 과학 기술 계산용, 비즈니스 자료 처리 개발에 적용
        - 5만 라인 이하

      • 반분리형 (Semi-Detatched)
        - 단순형과 임베디드형의 중간형
        - 트랜잭션 처리 시스템이나 DBMS, 컴파일러, 인터프리터와 같은 유틸 개발에 적용
        - 30만 라인 이하

      • 임베디드형 (Embedded)
        - 초대형 규모의 트랜잭션 처리 시스템이나 운영체제, 실시간 처리 시스템 등 시스템 프로그램 개발에 적용
        • 30만 라인 이상

  • 푸트남 모형

    • 개발주기의 단계별로 요구할 인력의 분포 가정
    • 생명주기 예측 모형
    • Rayleigh-Norden 곡선의 노력 분포도를 기초로 함
  • 기능점수 모형

    • 요구 기능을 증가시키는 인자별로 가중치 부여

📌 일정관리 모델

✅ 일정관리 모델 종류

  • 주 공정법(CPM)
    • 여러 작업의 순서가 얽혀 있는 프로젝트의 일정 계산
    • 제약사항 배제한 상태로 노드와 노드 간의 연결을 통한 액티비티 표기법
    • 프로젝트 시작~종료 가장 긴 시간이 걸리는 경로 계산
  • PERT
    • 일의 순서를 계획적으로 정리하기 위한 수렴 기법
    • 비관치, 중간치 , 낙관치의 추정방식으로 일정관리
  • 중요 연쇄 프로젝트 관리(CCPM)
    • 자원제약사항 고려

0개의 댓글