본문 바로가기
Data Analysis/정보처리기사

[5과목 정보시스템 구축 관리] 01. 소프트웨어 개발 방법론 활용

by suvii 2024. 4. 20.

[Sec 1. 소프트웨어 개발 방법론 선정]

  • 소프트웨어 공학의 3R
    • 역공학(Reverse Engineering) : 개발 단계를 역순으로 추적
    • 재공학(Re-Engineering) : 유지보수성 향상, 분석→재구성→역공학→이관
    • 재사용(Reuse)
      • 재사용 범위 : 함수와 객체 재사용, 컴포넌트 재사용, 애플리케이션 재사용
      • 재사용 방법 : 합성 중심(끼워 맞추기), 생성 중심(추상화 형태)
  • 소프트웨어 개발 단계 / 소프트웨어 생명주기(SDLC)
    • 계획 → 요구사항 분석 → 소프트웨어 설계 → 구현 → 테스트 → 유지보수
    • 수정 보수(오류 수정), 적응 보수(환경 변화), 향상 보수(개선), 예방 보수(오류 발생 대비)
  • 소프트웨어 개발 방법론
    • 구조적 방법론 : 절차지향적인 소프트웨어 개발 방법론
      • 데이터흐름도(DFD), 자료사전(DD), 상태전이도(STD), 소단위 명세서(Minispec) 사용
      • 폭포수 모델
    • 객체지향 개발 방법론 : 현실 세계의 개체를 속성과 메서드의 형태로 표현하는 방법론
      • 캡슐화, 정보은닉, 상속, 다형성, 추상화
    • 정보공학 방법론 : 기업에서, 데이터 중심의 방법론
    • CBD 분석 방법론 : 재사용 가능한 컴포넌트의 개발이나 상용 컴포넌트의 조합을 통해 애플리케이션 개발
    • 애자일(Agile) 방법론
      • XP(eXtreme Programming) : 의사소통, 피드백, 존중, 용기, 단순성
      • SCRUM : 짧은 개발 주기 & 매일 15분 씩 회의
  • 소프트웨어 개발 모델
    • 폭포수 모델 : 각 단계 순차적 진행, 한 단계 완료 후에야 다음 단계로 이동
    • 프로토타이핑 모델 : 주요 기능을 프로토타입으로 먼저 구현하고 점진적 완성
    • 나선형 모델 : 위험 관리 및 분석 목적의 점증적 개발 모델
      계획 및 요구분석 → 위험 분석 → 개발 → 사용자 평가 → 반복
    • RAD 모델 : 매우 짧은 개발 주기, CASE 도구 이용
    • V 모형 : 폭포수 모델의 기본 구조에 시스템 검증과 테스트 작업을 강조
      단위테스트(동적, 정적) → 통합테스트(상향식, 하향식, 빅뱅, 백본) → 시스템테스트(기능, 비기능) → 인수테스트(알파, 베타)
    • 4세대 기법 : CASE와 같은 자동화 도구를 사용하여 요구사항 명세로부터 원시코드를 자동으로 생성
  • 소프트웨어 개발 비용 계획
    • 비용 산정 기법
      • 하향식 산정 기법
        • 전문가 판단 기법 : 조직 내 전문가
        • 델파이 기법 : 여러 전문가의 의견 종합
      • 상향식 산정 기법
        • 원시 코드 라인 수 기법 : LOC = (낙관치 + 4*중간치 + 비관치) / 6
      • 수학적 산정 기법
        • COCOMO 기법 : 조직형(5만 라인 이하), 반분리형(30만 라인 이하), 내장형(30만 라인 이상)
        • Putnam 기법 : Rayleigh-Norden 곡선
          SLIM : Rayleigh-Norden 곡선과 Putnam 예측 모델 기반의 자동화 추정 도구
        • 기능 점수 기법(FP)
          ESTIMACS : FP 모형을 기반으로 한 자동화 추정 도구
          소프트웨어 기능 분류
          - 데이터 기능 → 내부논리파일(ILF), 외부 연계 파일(EIF)
          - 트랜잭션 기능 → 외부입력(EI), 외부출력(EO), 외부조회(EQ)
  • 소프트웨어 개발 일정 계획
    • WBS : 프로젝트 목표를 달성하기 위한 활동과 업무를 세분화하는 과정
    • Network Chart(PERT/CPM) : 전체 프로젝트의 시간 단축이 목표
      - PERT : 불확실한 상황에서의 시간 관리에 적합
      - CPM : 더 확정적인 상황에서의 시간 관리에 적합
    • 임계경로 : 프로젝트를 끝내기 위해 필요한 최소 소요시간, 경로상 가장 오래 걸리는 시간
    • 간트 차트 : 프로젝트 일정 계획의 시각적 표현, 바 형태, 일정 관리의 최종 산출물

 

[Sec 2. 소프트웨어 개발 방법론 테일러링]

  • 소프트웨어 테일러링
    • 필요성 : 개발환경, 요구사항, 프로젝트 규모, 보유 기술, 법적 제약사항, 표준 품질기준
  • 소프트웨어 개발 표준
    • ISO/IEC 12207 : 기본 생명주기 프로세스, 지원 생명주기 프로세스, 조직 생명주기 프로세스
    • ISO/IEC 15504 (SPICE)
      불안정(0) → 수행(1) → 관리(2) → 확립(3) → 예측(4) → 최적화(5)
    • CMM
      초기(1) → 반복(2) → 정의(3) → 관리(4) → 최적화(5)
    • CMMi
      초기(1) → 관리(2) → 정의(3) → 정량적 관리(4) → 최적화(5)

      ** 3단계는 표준, 4단계는 정량적이라는 단어가 포함되어 있어야 함.
  • 소프트웨어 개발 프레임워크
    • 특징 : 모듈화, 재사용성, 확장성, 제어의 역흐름
    • JAVA 프레임워크 : 전자정부 표준 프레임워크, 스트럿츠, 스프링
    • ORM 프레임워크 : iBatis, myBatis, Hibernate
    • 자바스크립트 프레임워크 : AngularJS, ReactJS, ExtJS
    • 프론트엔드 프레임워크 : Bootstrap, Foundation, MDL