[정보처리기사] 1과목 요구사항 확인

Haribo·2022년 9월 10일
0

정보처리기사

목록 보기
8/10
post-thumbnail

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

01. 소프트웨어 생명주기 모델의 종류 이해

1. SDLC(SW Development Life Cycle)

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

  • SDLC의 프로세스
    요구사항 분석단계 → 설계 → 구현 → 테스트 → 유지보수
    Brocoders/SDLC

2. 생명주기 모델

2-1. 폭포수 모델(Waterfall Model)

소프트웨어 개발 시, 각 단계를 확실히 마무리 지은 후 다음 단계로 넘어가는 모델
비트고기의 IT Note/폭포수모델.png
폭포수 모델의 특징

  • 가장 오래된 모델
  • 선형 순차적 모형(고전적 생명주기 모형 / 한 번 정해지면 변경이 어려움)
  • 오래된 모형이기에 성공 사례 많음
  • 단계별 정의와 산출물 명확
  • 요구사항 변경 어려움

2-2. 프로토타이핑 모델(Prototyping Model)

고객이 요구한 주요 기능을 프로토타입(시제품)으로 구현하여 고객의 피드백을 반영하여 만들어가는 모델프로토타이핑 모델
프로토타이핑 모델의 특징

  • 개발자와 사용자 공동 참조로 만들어지기 때문에 개발자와 사용자 모두 이해할 수 있음

2-3. 나선형 모델(Sprial Model)

시스템 개발 시, 위험을 최소화 하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델
나선형모델
나선형 모델의 특징(계위개고)
계획 및 정의 → 위험 분석 → 개발 → 고객 평가

2-4. 반복적 모델 개념(Iteration Model)

구축 대상을 나누어 병렬적으로 개발한 후에 통합하는 방식으로 반복 개발을 통해 점증적으로 완성시키는 SDLC 모델

인력을 분산하여 효율적으로 개발할 수 있다는 특징 존재

02. 소프트웨어 개발방법론 종류 이해

2-1.구조적 방법론 개념(Structured Development)

  • 전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 분할과 정복 접근 방식의 방법론
  • 프로세스 중심의 하향식 방법론
  • 구조적 프로그래밍 표현을 위하여 시각적으로 명확히 식별할 수 있는 나씨 - 슈나이더만 차트를 활용

2-2.정보공학 방법론 개념(Information Engineering Development)

  • 정보시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론
  • 개발주기를 이용해 대형 프로젝트를 수행하는 체계적 방법
  • 보통 은행권같은 곳에서 많이 활용
  • 구조적 방법론과는 다르게 DB를 활용함

2-3.객체지향 방법론 개념(Object-Oriented Development)

  • '객체'라는 기본 단위로 시스템을 분석 및 설계하는 방법
  • 사람이 이해하는 방식으로 시스템에 적용

2-4.컴포넌트 기반 방법론(CBD)

  • 소프트웨어를 구성하는 컴포넌트를 조립하여 하나의 새로운 응용 프로그램을 작성하는 방법론
  • 개발 기간 단축으로 인한 생산성 향상
  • 새로운 기능 추가 쉬움(확장성)
  • 소프트웨어 재사용성 가능

★2-5. 애자일 방법론 개념(Agile)★

  • '사람' 중심으로 변화에 유연하고 신속하게 적응하며 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론
  • 전통적인 개발방법론의 단점을 극복하기 위해 모색한 방법론
    애자일(agile)방법론/Velog

2-5-1. 애자일 방법론 특징

  • 프로젝트의 요구사항은 기능 중심
  • 절차와 도구보다는 개인과 소통을 중요
  • 작업 계획을 짧게 세워 요구 변화에 유연하고 신속하게 대응할 수 있음
  • 고객의 피드백이 중요

2-5-2. 애자일 방법론 유형(XP / 스크럼 / 린)

1️⃣ XP

  • 의사소통 개선과 즉각적 피드백으로 스프트웨어 품질을 높이기 위한 방법론
  • 1~3주의 반복 개발 주기
  • 5가지 가치와 12개의 실천 항목 존재
    • 5가지 가치 : 용기, 단순성, 의사소통, 피드백, 존중
    • 12개의 실천 기본 원리 (하단 표 참조)
순서이름설명
1짝프로그래밍개발자 둘이서 짝으로 코딩하는 원리
2공동 코드 소유시스템에 있는 코드는 누구든지 언제라도 수정 가능하다는 원리
3지속적 통합(CI)매일 여러 번 씩 소프트웨어를 통합하고 빌드해야한다는 원리
4계획세우기고객이 요구하는 비즈니스 가치를 정의하고, 개발자가 필요한 것은 무엇이며 어떤 부분에서 지연될 수 있는지를 알려주어야 한다는 원리
5작은 릴리즈작은 시스템을 먼저 돌리고, 짧은 단위로 업데이트
6메타포어공통적인 이름 체계와 시스템 서술서를 통해 고객과 개발자 간의 의사소통을 원할
7간단한 디자인현재의 요구사항에 적합한 가장 단순한 시스템을 설계
8테스트 기반 개발(TDD)작성해야하는 프로그램에 대한 테스트틀 먼저 수행하고, 이 테스트를 통과할 수 있도록 실제 프로그램의 코드를 작성
9리팩토링프로그램의 기능을 변경하지 않고, 단순화, 중복제거 등을 위한 시스템 재구성
1040시간 작업개발자의 피곤으로 인해 실수하지 않도록 40시간 이상 일하지 말아야한다는 원리
11고객 상주실제 고객이 상주하며 즉각 피드백을 받는다는 원리
12코드 표준효과적인 공동 작업을 위해서 모든 코드에 대한 코딩 표준 정의

2️⃣ 스크럼
매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론

3️⃣ 린
도요타의 린 시스템 품질기법을 소프트웨어 개발 프로세스에 적용해서 낭비 요소를 제거하여 품질 향상시킨 방법론

2-6. 제품 계열 방법론 개념

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

03. 비용산정 및 일정관리 모형

3-1. 비용산정

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

산정방법특징종류
하향식경험 많은 전문가에게 비용 산정을 의뢰하거나 여러 전문가와 조정자를 통해 산정하는 방식전문가 판단 / 델파이 기법
상향식세부적인 요구사항과 기능에 따라 필요한 비용을 계산하는 방식코드 라인 수(LOC) / Man Month / COCOMO모형 / Putnam 모형 / FP(Function Point) 모형
상향식 산정방법의 종류 및 특징
  1. LOC★(이를 계산하는 내용은 나오지 않고 보통 문제에 주어짐)
    소프트웨어 각 기능의 원시 코드 라인 수의 낙관치, 중간치, 비관치를 측정하여 예측치를 구하고 이를 이용하여 비용 산정

  2. Man Month(계산식을 활용한 단답 문제로 기출)★
    한 사람이 1개월 동안 할 수 있는 일의 양을 기준으로 프로젝트 비용을 산정하는 기법

  • 계산방법
    Man Month = LOC / 프로그래머의 월간 생산성
    프로젝트 기간 = Man Month / 프로젝트 인력
  1. COCOMO 모형
  • 보헴이 제안한 모형으로 프로그램규모에 따라 비용 산정
  • 규모에 따라 유형이 조직형, 반분리형, 임베디드형 으로 나뉨
  1. 푸트남 모형
  • 각 단계별로 요구할 인력의 분포를 가정
  • 시간에 따른 함수로 표현되는 Rayleigh -Norden 곡선의 노력 분포도를 기초로 함
  1. 기능(FP) 점수 모형
  • 요구 기능을 증가시키는 인자별로 가중치를 부여하고, 요인별 가중치를 합산하여 총 기능의 점수를 계산하여 비용을 산정하는 방식
  • 기능점수(FP) = 총 기능점수 X [0.65 + (0.1 X 총 영향도)]
  • 경험을 바탕으로 단순, 보통, 복잡한 정도에 따라 가중치를 부여

3-2. 일정관리 모형

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

일정관리 모형의 종류 및 특징

3-2-1. 주 공정법(CPM)

  • 여러 작업의 수행 순서가 얽혀 있는 프로젝트의 일정을 계산하는 기법
  • 노드와 노드 간 연결을 통해 공정을 계산하기 위한 액티비티 표기법

3-2-2. PERT

  • 일의 순서를 계획적으로 정리하기 위한 수렴 기법으로 LOC의 3점 추정방식을 통해 일정을 관리하는 기법

3-2-3. 중요 연쇄 프로젝트 관리(CCPM)
주 공정 연쇄법으로 자원제약사항을 고려하여 일정을 작성하는 기법

profile
개발 기록 남기는 중..

0개의 댓글