본문 바로가기

정보처리기사

[정보처리기사] 실기 노트 - 요구사항 3

  1. 소프트웨어 개발 방법론
    1. 소프트웨어 개발 방법론의 개요
      1. 소프트웨어 개발 방법론: 소프트웨어 개발, 유지보수 등에 필요한 여러 가지 일들의 수행 방법과 이러한 일들을 효율적으로 수행하려는 과정에서 필요한 각종 기법 및 도구를 체계적으로 정리하여 표준화한 것
      2. 주요 소프트웨어 개발 방법론
        1. 구조적 방법론
        2. 정보공학 방법론
        3. 객체 지향 방법론
        4. 컴포넌트 기반 (CBD) 방법론
        5. 제품 계열 방법론
        6. 애자일 방법론
    2. 각 소프트웨어 개발 방법론의 특징
      1. 구조적 방법론: 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리 (Process) 중심의 방법론
      2. 정보공학 방법론: 정보 시스템의 개발을 위해 계획, 분석, 설계, 구축에 정형화된 기법들을 상호 연관성 있게  통합 및 적용하는 자료 (Data) 중심의 방법론
      3. 객체지향 방법론: 현실 세계의 개체 (Entity)를 기계의 부품처럼 하나의 객체 (Object)로 만들어, 소프트웨어를 개발할 때 기계의 부품을 조립하듯이 객체들을 조립해서 필요한 소프트웨어를 구현하는 방법론
        1. 객체 지향 방법론의 기본 원칙: 캡슐화, 정보 은닉, 추상화, 상속성, 다형성 등
      4. 컴포넌트 기반 (CBD; Component Based Design) 방법론: 기존의 시스템이나 소프트웨어를 구성하는 컴포넌트 (Component)를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론
      5. 제품 계열 방법론
        1. 제품 계열 방법론: 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론
        2. 임베디드 소프트웨어 (Embedded Software)를 만드는데 적합
    3. S/W공학의 발전적 추세
      1. 소프트웨어 재사용
        1. 소프트웨어 재사용의 개념
          1. 소프트웨어 재사용: 이미 개발되어 인정받은 소프트웨어를 다른 소프트웨어 개발이나 유지에 사용하는 것
        2. 소프트웨어 재사용의 장단점
          1. 장점
            1. 소프트웨어 품질 향상
            2. 소프트웨어 개발의 생산성 향상
            3. 구축 방법에 대한 지식의 공유
            4. 개발 시간과 비용 단축
            5. 프로젝트 실패 위험 감소
          2. 단점
            1. 기존 프로그래밍 언어에 종속적
            2. 프로그램의 표준화 부족
            3. 재사용 소프트웨어 추가의 어려움
            4. 개발 시간과 비용 단축
            5. 새로운 개발 방법론 도입의 어려움
      2. 소프트웨어 재공학 (Software Reengineering)
        1. 소프트웨어 재공학의 개념
          1. 소프트웨어 재공학: 새로운 요구에 맞도록 기존 시스템을 이용하여 보다 나은 시스템을 구축하고, 새로운 기능을 추가하여 소프트웨어 성능을 향상시키는 것
        2. 소프트웨어 재공학의이점
          1. 소프트웨어의 품질 향상
          2. 소프트웨어의 생산성 증가
          3. 소프트웨어의 수명 연장
          4. 소프트웨어의 오류 감소
      3. CASE (Computer Aided Software Engineering)
        1. CASE의 개념
          1. CASE: 소프트웨어 개발 과정에서 사용되는 요구 분석, 설계, 구현, 검사 및 디버깅 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것
        2. CASE의 주요 기능
          1. 소프트웨어 생명 주기 전 단계의 연결
          2. 다양한 소프트웨어 개발 모형 지원
          3. 그래픽 지원
      4. 소프트웨어 개발 방법론 결정
        1. 소프트웨어 개발 방법론 결정의 개념
          1. 소프트웨어 개발 방법론을 결정하는 것은 프로젝트 관리와 재사용 현황을 소프트웨어 개발 방법론에 반영하고, 확정된 소프트웨어 생명 주기와 개발 방법론에 맞춰 소프트웨어 개발 단계, 활동, 작업, 절차 등을 정의하는 것
        2. 소프트웨어 개발 방법론 결정 절차
          1. 프로젝트 관리 (Project Management)
            1. 프로젝트 관리: 주어진 기간 내에 최소의 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 전반적인 활동
            2. 프로젝트 관리 유형: 일정 관리, 비용 관리, 인력 관리, 위험 관리, 품질 관리
      5. 소프트웨어 개발 표준
        1. 소프트웨어 개발 표준의 개념
          1. 소프트웨어 개발 표준: 소프트웨어 개발 단계에서 수행하는 품질 관리에 사용되는 국제 표준을 의미
        2. ISO/IEC 12207: 소프트웨어의 개발, 운영, 유지보수 등을 체계적으로 관리하기 위한 소프트웨어 생명 주기  표준을 제공
        3. CMMI: 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델
        4. SPICE: 정보 시스템 분야에서 소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준
      6. 소프트웨어 개발 방법론 테일러링
        1. 소프트웨어 개발 방법론 테일러링의 개념
          1. 소프트웨어 개발 방법론 테일러링: 프로젝트 상황 및 특성에 맞도록 정의된 소프트웨어 개발 방법론의 절차, 사용기법 등을 수정 및 보완하는 작업
        2. 소프트웨어 개발 방법론 테일러링 고려사항
          1. 내부적 기준: 목표 환경, 요구사상, 프로젝트 규모, 보유기술
          2. 외부적 기준: 법적 제약사항, 표준 품질 기준
      7. 소프트웨어 개발 프레임워크의 개요
        1. 소프트웨어 개발 프레임워크의 개념
          1. 소프트웨어 개발 프레임워크 (Framework): 소프트웨어 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 손쉽게 구현할 수 있도록 여러 가지 기능들을 제공해주는 반제품 형태의 소프트웨어 시스템
        2. 소프트웨어 개발 프레임워크의 주요 기능
          1. 예외 처리
          2. 트랜잭션 처리
          3. 메모리 공유
          4. 데이터 소스 관리
          5. 서비스 관리
          6. 쿼리 서비스
          7. 로깅 서비스
          8. 사용자 인증 서비스
        3. 소프트웨어 개발 프레임워크의 주요기능
          1. 스프링 프레임워크 (Spring Framework)
          2. 전자정부 프레임워크
          3. 닷넷 프레임워크
        4. 소프트웨어 개발 프레임워크의 특성: 모듈화 (Modularity), 재사용성 (Reusability), 확장성 (Extensibility), 제어의 역흐름 (Inversion of Control)
    4. 프로젝트 일정 계획
      1. 프로젝트 일정 계획의 개념
        1. 프로젝트 일정 계획: 프로젝트의 프로세스를 이루는 소작업을 파악하고 예측된 노력을 각 소작업에 분배하여 소작업의 순서와 일정을 정하는 것
      2. 프로젝트 일정 계획에 사용되는 기능
        1. WBS (Work Breakdown Structure, 업무 분류 구조)
        2. PERT (Program Evaluation and Review Technique, 프로그램 평가 및 검토 기술)
        3. CPM (Critical Path Method, 임계 경로 기법)
        4. 간트 차트 (Gantt chart)
  2. 소프트웨어 비용 산정 기법
    1. 하향식 비용 산정 기법
      1. 하향식 비용 산정 기법: 과거의 유사한 경험을 바탕으로 전문 지식이 많은 개발자들이 참여한 회의를 통해 비용을 산정하는 비과학적인 방법
      2. 하향식 비용 산정 기법의 종류
        1. 전문가 감정 기법
        2. 델파이 기법
    2. 상향식 비용 산정 기법
      1. 상향식 비용 산정 기법의 개념
        1. 상향식 비용 산정 기법: 프로젝트의 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정하는 방법
      2. 상향식 비용 산정 기법의 종류
        1. LOC (원시 코드 라인 수) 기법
        2. 개발 단계별 인월수 (Effort Per Task) 기법
    3. 수학적 산정 기법
      1. 수학적 산정 기법의 개념
        1. 수학적 산정 기법: 상향식 비용 산정 기법으로, 경험적 추정 모형, 실험적 추정 모형이라고도 함
      2. 수학적 산정 기법의 종류
        1. COCOMO (COnstructive COst MOdel) 모형
        2. Putnam 모형
        3. 기능 점수 (FP) 모형
      3. 비용 산정 자동화 추정 도구: SLIM, ESTIMACS