세라공원

[실기] 1.요구사항 확인 (1) 소프트웨어 개발 방법론 본문

정보처리기사/실기

[실기] 1.요구사항 확인 (1) 소프트웨어 개발 방법론

세라박 2022. 10. 9. 18:06

1. 요구사항 확인

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

<< 기출 >> 


애자일 방법론
: 사람 중심, 변화에 유연, 신속하게 적응, 효율적으로 시스템 개발.
개발 기간이 짧고 신속, 워터폴에 대비. 최근 회사에서 각광받는 방법론.

Man Month : Loc / 월간 생산성
프로젝트 기간 : Man Month / 인력 수

럼바우 데이터 모델링 => 객/ 동/ 기
-Functional : 자료 흐름도(DFD) 활용, 프로세스들의 자료 흐름 중심으로 처리 과정 표현
-Dynamic : 동적인 행위 표현. 상태 다이어그램 활용
-Information(=object) : 객체 간 관계 정의. ER 다이어그램 만드는 과정까지의 모델링



-------------------------------------------------------------------------------------------------

소프트웨어 생명주기(SDLC)
:시스템 요구분석 ~ 유지보수 전 공정 체계화 절차

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

설계: 소프트웨어 생명주기 모델 중 시스템 명세 단계에서 정의한 기능 실제 수행하도록 수행 방법 논리적으로 결정하는 단계.

폭포수 모델(waterfall) : 소프트웨어 개발 시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델.

구조적 방법론: 전체 시스템을 기능에 따라 나누어 개발, 이를 통합하는 분할과 정복 접근 방식의 방법론.

TDD(Test Drvien Development)
: 프로그램 테스트를 먼저 수행, 테스트 통과하도록 실제 프로그램의 코드를 작성.

지속적인 통합(CI) : 매일 여러 번 씩 소프트웨어를 통합하고 빌드해야 한다는 원리.

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

델파이 기법(Delphi Method) : 전문가 경험 지식 통해 문제 해결 & 미래예측

기능점수(FP) : 요구 기능 증가시키는 인자별로 가중치 부여, 요인별 가중치 합산하여 총 기능 점수 계산해 비용 산정

PERT : 일의 순서를 계획적으로 정리하기 위한 수렴 기법, 비관치,중간치,낙관치의 3점 추정방식 통해 일정 관리.

임계 경로 : 가장 오랜 기간이 걸리는 경로 찾기.

-------------------------------------------------------------------------------------------------

소프트웨어 생명주기 모델 프로세스
: 요구사항 분석 > 설계 > 구현 > 테스트 > 유지보수

요구사항 분석 : 기능 요구사항, 비기능 요구사항
설계 : 시스템 구조 설계, 프로그램 설계, 사용자 인터페이스 설계
구현 : 인터페이스 개발, 자료 구조 개발, 오류 처리
테스트 : 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트
유지보수 : 예방, 완전, 교정, 적응 유지보수


소프트웨어 생명주기 모델 종류  => 폭/ 프/ 나/ 반 

폭포수 모델 waterfall
: 개발 시 각 단계를 확실히 마무리 지은 후, 다음 단계로 넘어감. 가장 오래됨. 선형 순차적 모형. 고전적 생명주기 모형. 요구사항 변경이 어려움
타당성 검토 > 계획 > 요구사항 분석 > 설계 > 구현 > 테스트 > 유지보수

프로토타이핑 모델 prototyping
: 고객 요구 주요 기능을 프로토타입으로 구현, 고객 피드백 반영. 공동의 참조 모델 제공. 구현 단계의 구현 골격.

나선형 모델 spiral
: 위험 최소화 위해 점진적으로 완벽한 시스템으로 개발.
계획 및 정의 > 위험 분석 > 개발 > 고객 평가 ( => 계/ 위/ 개/ 고 )

반복적 모델 iteration
: 병렬적 개발 후 통합, 반복적 개발해 점증 완정. 요구사항이나 제품 일부분 반복적 개발해 최종 시스템 완성.


애자일 방법론 Agile
: 사람 중심, 변화 유연, 신속하게 적응, 효율적 시스템 개발.

애자일 방법론 유형 => XP, 린(lean), 스크럼(SCRUM)

XP eXtreme Programming : 의사소통 개선, 즉각적 피드백, 1~3주 반복 개발주기.
-XP 5가지 가치 : 용기courage, 단순성simplicity, 의사소통communication, 피드백feedback, 존중respect
-XP 12가지 기본원리
짝 프로그래밍 pair programming : 개발자 2명이서 짝으로 코딩
공동 코드 소유  collective ownership : 시스템 코드는 누구든지 언제라도 수정 가능
지속적인 통합 CI continuous integration : 매일 여러번 소프트웨어 통합, 빌드
계획 세우기 planning process : 고객 요구 비즈니스 가치 정의, 개발자 필요한 것은 무엇인지, 지연될 부분 알려주어야 함
작은 릴리즈 small release : 작은 시스템 먼저 만들기, 짧은 단위로 업데이트
메타포어 metaphor : 공통적인 이름 체계, 시스템 서술서 통해 고객과 개발자 간 의사소통 원활
간단한 디자인 simple design : 현재 요구사항에 적합한 가장 단순한 시스템 설계
테스트 기반 개발 TDD test driven develop : 작성해야 하는 프로그램 테스트 먼저 수행, 테스트 통과하도록 실제 프로그램 코드 작성
리팩토링 refactoring : 프로그램 기능 바꾸지 않으면서 중복제거, 단순화 등 위해 시스템 재구성
40시간 작업 40-hour work : 일주일에 40시간 이상 일하지 말아야 함
고객 상주 on site customer : 개발자 질문에 즉각 대답할 고객 프로젝트에 풀타임으로 상주
코드 표준 coding statement : 모든 코드에 대한 코딩 표준 정의

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

린 LEAN : 도요타 린 시스템 품질기법 적용. 낭비 요소 제거해 품질 향상. JIT(just in time), 칸반(kanban)보드 사용.
-7가지 원칙: 낭비 제거, 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화


객체 지향 분석 방법론 종류 中
OMT object modeling technology - 럼바우 Rumbaugh : 그래픽 표기법 이용해 소프트웨어 구성요소 모델링 => 객/ 동/ 기
객체 모델링(정보 모델링) > 동적 모델링 > 기능 모델링

객체 모델링 object modeling =정보 모델링 information modeling : 객체들 간의 관계 정의, ER다이어그램. 객체 다이어그램 활용
동적 모델링 dynamic modeling : 동적인 행위 표현. 상태 다이어그램 활용
기능 모델링 functional modeling : 자료 흐름 중심 처리 과정 표현. 자료 흐름도(DFD) 활용

비용 산정 모형 분류 
-하향식 산정방법 : 전문가 판단, 델파이 기법(전문가 경험 지식 → 문제 해결 및 미래예측)
-상향식 산정방법 : 코드라인 수(LoC), Man Month, COCOMO, 푸트남(putnam), 기능점수(FP)

LoC Lines of Code  : 각 기능의 원시 코드 라인 수의 낙관치, 중간치, 비관치 측정해 예측치 구함
Man Month : 한 사람이 1개월 동안 할 수 있는 일 기준 프로젝트 비용 산정 = LoC / 월간 생산성
-프로젝트 기간 : Man Month / 인력 수
COCOMO : 보헴Bohem 제안, 프로그램 규모. Man-Month로 비용산정. 
푸트남 putnam  : 소프트웨어 개발주기의 단계별로 요구할 인력 분포 가정. 생명주기 예측 모형.
기능점수(FP) : 인자별로 가중치 부여. 요인별로 가중치 합산.


일정관리 모델 종류
-주 공정법 CPM critical path method : 여러 작업의 수행 순서가 얽혀 있는 프로젝트의 일정 계산. 가장 긴 시간 걸리는 경로 계산 (=임계 경로)
-PERT program evaluation and review technique : 비관치, 중간치, 낙관치의 3점 추정방식
-중요 연쇄 프로젝트 관리 CCPM critical chain project management : 주 공정 연쇄법. 자원제약사항 고려.

Comments