[정보처리기사 실기] 1장 요구사항 확인 - 소프트웨어 개발 방법론

2022. 4. 4. 17:42정보처리기사/실기

728x90
반응형

소프트웨어 개발 방법론


소프트웨어 생명 주기 모델 ( Software Development Life Cycle : SDLC)

 

(1) 개념

시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차 -> 작업 프로세스 모델화

 

(2) 모델 프로세스

요구사항 분석 요구사항 고려 후 제품에 부합하는 요구와 조건을 결정
기능과 제약 조건, 목표 등을 사용자와 명확히 정의
기능 요구사항
비기능 요구사항
설계 수행 방법을 논리적으로 결정하는 단계 시스템 구조설계
프로그램 설계
사용자 인터페이스 설계
구현 특정 언어를 사용해 프로그램 개발
언어, 기법, 스타일, 순서 등 결정
인터페이스 개발
자료 구조 개발
오류 처리
테스트 예상과 실제 결과를 검사하고 평가하는 단계 단위, 통합, 시스템, 인수
테스트
유지보수 설치된 후 일어나는 모든 활동 예방, 완전, 교정
적응, 유지보수

 

(3) 모델 종류

 

  • 폭포수 모델
    • 단계를 확실히 마무리 지은 후 다음 단계로 넘어감
    • 가장 오래된 모델
    • 선형 순차 모형, 고전적 생명주기
    • 적용과 성공 사례가 많다
    • 정의와 산출물이 명확
    • 요구사항 변경 어려움
    • 검토 -> 계획 -> 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수
  • 프로토파이핑 모델
    • 주요 기능을 프로토타입으로 구형, 피드백을 반영해 만드는 모델
    • 공동의 참조 모델 제공
    • 구현 단계의 구현 골격
  • 나선형 모델
    • 점진적으로 완벽한 시스템
    • 계회 및 정의 -> 위험 분석 -> 개발 -> 고객 평가
  • 반복적 모델
    • 병렬적으로 개발 후 통합, 반복적으로 개발해 점증적 완성
    • 요구 사항 일부 혹은 제품의 일부를 반복적 개발해 완성

소프트웨어 개발 방법론

 

(1) 소프트웨어 개발 방법론

개발 전 과정에 지속적으로 적용할 방법

 

(2) 종류

 

  • 구조적 방법론 
    • 기능에 따라 나누어 개발, 이를 통합하는 분할과 정복
    • 프로세스 중심 하향식 방법론
    • Nassi-Shneiderman 차트 사용
      • 도형식 표현법, 제어 논리구조 표현, 시각적으로 명확히 식별
  • 정보 공학 방법론
    • 관리절차와 작업 기법을 체계화한 방법론
    • 대형 프로젝트를 수행하는 체계적인 방법론
  • 객체 지향 방법론
    • 객체라는 기본 단위로 시스템 분석 및 설계
    • 복잡한 현실 세계를 시스템에 적용하는 방법론
    • 객체, 클래스, 메시지 사용
  • 컴포넌트 기반 방법론
    • SW 구성하는 컴포넌트를 조립해 하나의 새 응용 프로그램 작성
    • 개발 기간 단축으로 생산성 향상
    • 확장성
    • 재 사용성
  • 애자일 방법론
    • 사람이 중심, 유연하고 신속하게, 신속 적응적 경량 개발 방법론
    • 개발 과정의 어려움을 극복하기 위해 적극적 모색 방법론
  • 제품 계열 방법론
    • 제품에 적용하고 싶은 공통 기능을 정의 개발
    • 임베디드 소프트웨어 작성에 유용
    • 종류
      • 영역 공학 : 영역 분석, 설계 자산을 구현하는 영영
      • 응욕 공학 : 제품 요구분석, 설계, 제품을 구현하는 영역

(3) 애자일

절차보다는 사람이 중심, 유연하고 신속하게 적응 효육적으로 개발 -> 신속 적응적 경량 개발 방법론

 

개발 기간 짧고 신속, 폭포수와 대비되는 방법 즉시 피드백 받아 유동적 개발

 

기존 개발 방법론의 한계를 극복하기 위해 등장

 

(3) - 1 등장 배경

 

  • 소프트위에 개발 환경 변화 : 트렌드가 모바일로 변경, 시장 적시성과 잦은 배포의 중요성 부각
  • 기존 개발 방법론의 한계 : 문서와 절차 방식은 대응이 어렵다, 빠르게 효육적 개발해야 한다.

 

(3) - 2 애자일 유형

 

  • XP : 의사소통 개선과 즉각 피드백 -> SW 품질 향상, 1 ~ 3주 반복 개발 주기
    • 5 가치
      • 용기, 단순성, 의사소통, 피드백, 존중
    • 12 기본 원리
      • 짝 프로그래밍, 공동 코드 소유, 지속적인 통합, 계획 세우기, 작은 릴리즈, 메타포어, 간단한 디자인, 테스트 기반 개발, 리팩토링, 40시간 작업, 고객 상주, 코드 표준
  • SCRUM : 매일 짧은 시간의 팀을 위한 프로젝트 관리 중심 방법론
    • 개념
      • 백로그 : 제품과 프로젝트 요구사항
      • 스프린트 : 반복 수행으로 개발질 향상
      • 스크럼 미팅 : 매일 15분 정도 미팅, 데일리 미팅
      • 스크럼 마스터 : 프로젝트 리더, 문제 인지 및 해결하는 사람
      • 스프린트 회고 : 되돌아보며 규칙 준수, 개선점 확인 및 기록
      • 번 다운 차트 : 백로드 개비 시간을 그래픽적으로 표현, 백로그는 수직 시간은 수평

객체 지향 분석 방법론

 

(1) 객체 지향 분석

요구사항을 분석해 요구된 문제와 관련된 모든 클래스, 속성과 연산, 관계 정의 모델링

 

(2) 종류

 

  • OOSE : Jacobson : 유스케이스를 모든 모델의 근간으로 활용, 분석 설계 구현 단계로 구성, 기능적 요구사항 중심
  • OMT : Rumbaugh : 그래픽 표기법 이용 모델링, 객체 -> 동적 -> 기능 -> 객동기
    • 객체 모델링 : 정보 모델링, 요구하는 객체 찾고 관계 정의 ER 다이어그램으로 만드는 과정까지 모델링, 객체 다이어그램
    • 동적 모델링 : 제어 흐름, 동작 순서 등 동적인 행위 표현, 상태 다이어그램
    • 기능 모델링 : 자료 흐름을 중심으로 처리 과정 표현, 자료 흐름도(DFD)
  • OOD : Booch : 문서화 강조, 분석과 설계의 분리 X, 객체 모델의 설계 시 적용

비용산정, 일정관리 모형


비용산정 모형

 

(1) 비용산정 모형

규모파악을 통해 자원 소요 시간 파악 -> 계획 수립을 위한 비용 산정

 

(2) 분류

 

  • 하향식 선정 방법 : 전문가에게 비용 산정 & 여러 전문가와 조정자 통해 산정
    • 전문가 판단, 델파이 기법
  • 상향식 선정 방법 : 세부 요구 사항과 기능에 따라 비용 계산
    • 코드 라인 수(LOC), Man Month, COCOM, 푸트남 모형, 기능점수(FP) 모형

 

(3) 종류

 

  • LoC 모형 : 원시 코드 라인 수의 낙관치, 중간치, 비관치로 예측, 측정이 쉽고 이해가기 쉽다.
    • 예측치 = ( 낙관치 + 4 * 중간치 + 비관치) / 6
    • 낙관치 : 가장 적게 측정된 코드
    • 중간치 : 측정된 모든 코드 라인의 평균
    • 비관치 : 가장 많이 측정된 코드
  • Man Month : 한 사람이 1개월 간 하는 양
    • Man Month = LoC / 월간 생산량
    • 프로젝트 기간 = Man Month / 인원
  • COCOMO : 보헴이 제안 프로그램 규모에 따라 산정, 노력으로 산정, 강도 분석 및 비용 견적의 유연성이 높아 개발비 견적 널리 통용
    • 유형
      • 조직형 (Organic) : 소규모 일괄 처리나 과학 기술, 비즈니스 자료 처리 개발
        • 5만 라인 이하의 개발
      • 반 분리형 (Semi-Detached) : 단순형과 임베디드의 중간형, 트랜잭션 처리나 DB 관리 인터프리터
        • 30만 라인 이하의 개발
      • 임베디드형 (Embedded) : 초대형 규모 트랜잭션 처리나 운영체제, 실시간 처리 시스템
        • 30만 라인 이상의 개발
  • PUTNAM : 단계별 인력의 분로를 가정, 생명주기 예측 모형
    • 시간에 따른 함수로 표현 Rayleigh-Norden 곡선의 노력 분포 기초
  • 기능점수 (FP) : 인자별로 가중치를 부여하고, 요인별 가중치를 합상
    • 기능점수 = 총 기능점수 * [ 0.65 + (0.1 * 총 영향도)]

일정관리 모델

 

(1) 일정관리 모델

프로젝트가 일정 기한 내에 적절하게 완료될 수 있게 관리

 

(2) 종류

 

  • 주 공정법 (CPM) : 순서가 얽혀 있는 프로젝트의 일정 계산, 모든 제약사항을 배제 시작과 끝을 나타내는 노드와 노드 간을 연결 통해 공정 계산 -> 액티비티 표기법
  • PERT : 비관치, 중간치, 낙관치 3점 추정 방식을 통해 일정 관리
  • 중요 연쇄 프로젝트 관리 (CCPM) : 주 공정 연쇄법으로 자원 제약 사항 고려해 일정 작성
728x90
반응형