[정보처리기사 필기] 5-1. 소프트웨어 개발 방법론 활용
2020 시나공 정보처리기사 필기책 참고
주의! 중요도가 낮은 항목(C)은 일부 제외
1. 소프트웨어 개발 방법론 – A
- 소프트웨어 개발 방법론의 개요
- S/W 개발, 유지보수 등에 필요한 일들의 수행 방법과 일들을 효율적으로 수행하기 위해 필요한 각종 기법 및 도구를 체계적으로 정리하여 표준화한 것
- 목적은 S/W 생산성과 품질 향상
- 구조적 방법론
- 정형화된 분석 잘차에 따라 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론
- 쉬운 이해 및 검증이 가능한 프로그램 코드를 생성하는 것이 목적
- 분할과 정복 원리 적용
- 타당성 검토 -> 계획 -> 요구사항 -> 설계 -> 구현 -> 시험 -> 운용/유지보수
- 정보공학 방법론
- 정보 시스템의 개발을 위해 계획, 분석, 설계, 구축에 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료 중심의 방법론
- 대규모 정보 시스템을 구축하는데 적합
- 정보 전략 계획 수립 -> 업무 영역 분석 -> 업무 시스템 설계 -> 업무 시스템 구축
- 객체지향 방법론
- 개체를 하나의 객체로 만들어 부품을 조립하듯 S/W를 개발하는 방법론
- 구조적 기법의 문제점으로 인한 S/W 위기의 해결책
- 객체, 클래스, 메시지
- 캡슐화, 정보 은닉, 추상화, 상속성, 다형성
- 요구 분석 -> 설계 -> 구현 -> 테스트 및 검증 -> 인도
- 컴포넌트 기반 방법론
- 기존의 시스템이나 S/W를 구성하는 컴포넌트를 조립하여 하나의 새로운 앱을 만드는 방법론
- 컴포넌트의 재사용이 가능하여 시간과 노력을 절감
- 유지 보수 비용을 최소화하고 생산성 및 품질을 향상
- 개발 준비 -> 분석 -> 설계 -> 구현 -> 테스트 -> 전개 -> 인도
- 애자일 방법론
- 고객의 요구사항 변화에 유연하게 대응할 수 있도록 주기를 반복하며 개발하는 방법론
- 소규모 프로젝트, 고도로 숙달된 개발자, 급변하는 요구사항에 적합
- XP, 스크럼, 칸반, 크리스탈 등
- 사용자 스토리 -> 계획 -> 개발 -> 승인
- 제품 계열 방법론
- 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발
- 임베디드 S/W를 만드는데 적합
- 영역공학과 응용공학으로 구분
- 영역공학 : 영역 분석, 영역 설계, 핵심 자산을 구현하는 영역
- 응용공학 : 제품 요구 분석, 제품 설계, 제품을 구현하는 영역
- 제품의 요구사항, 아키텍처, 조립 생산이 필요
2. 비용 산정 기법 – A
- 소프트웨어 비용 산정의 개요
- 개발에 필요한 비용을 산정하는 것
- 비용을 높게 산정할 경우 예산 낭비와 일의 효율성 저하를 초래
- 비용을 낮게 산정할 경우 개발자의 부담이 가중되고 품질문제 발생
- 하향식 비용 산정 기법, 상향식 비용 산정 기법
- 소프트웨어 비용 결정 요소
- 개발하는 S/W, S/W 개발에 투입되는 자원, S/W 생산성에 따라 결정
- 프로젝트 요소
- 제품 복잡도
- 시스템 크기
- 요구되는 신뢰도
- 자원 요소
- 인적 자원
- 하드웨어 자원
- S/W 자원
- 생산성 요소
- 개발자 능력
- 개발 기간
3. 비용 산정 기법 : 하향식 – A
- 하향식 비용 산정 기법의 개요
- 과거의 유사한 경험을 바탕으로 전문 지식이 많은 개발자들이 참여한 회의를 통해 비용을 산정하는 비과학적 방법
- 프로젝트 전체 비용을 산정한 후 각 작업별로 비용을 세분화
- 전문가 감정 기법
- 경험이 많은 두 명 이상의 전문가에게 비용 산정 의뢰
- 편리하고 신속. 의뢰자로부터 신뢰 얻을 수 있음
- 과거의 프로젝트와 다른 요소들이 있다는 것을 간과할 수 있음
- 유사한 프로젝트에 대한 경험이 없을 수 있음
- 개인적, 주관적
- 델파이 기법
- 많은 전문가의 의견을 종합하여 산정하는 기법
- 한 명의 조정자와 여러 전문가로 구성
4. 비용 산정 기법 : 상향식 – A
- 프로젝트의 세부적인 작업 단위별로 비용 산정 후 집계하여 전체 비용 산정
- LOC(원시 코드 라인 수) 기법
- 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구해 비용 산정
- 측정이 용이하고 이해하기 쉬움
- 예측치를 이용하여 생산성, 노력, 개발 기간등의 비용 산정
- 예측치 = (낙관치 + 4 * 기대치(중간치) + 비관치) / 6
- 노력 = 개발 기간 * 투입 인원 = LOC / 1인당 월평균 생산 코드 라인 수
- 개발 비용 = 노력 * 단위 비용
- 개발 기간 = 노력 / 투입 인원
- 생산성 = LOC / 노력
- 개발 단계별 인원수 기법
- 각 기능을 구현하는 데 필요한 노력을 생명 주기의 각 단계별로 산정
- LOC 기법보다 더 정확
5. 수학적 산정 기법 – A
- 수학적 산정 기법의 개요
- 상향식 비용 산정 기법
- 경험적 추정 모형, 실험적 추정 모형이라고도 함
- 개발 비용 산정의 자동화를 목표로 함
- 공식은 과거 유사한 프로젝트를 기반으로하여 경험적으로 유도된 것
- COCOMO 모형 개요
- LOC에 의한 비용 산정 기법
- 규모(LOC)를 예측한 후 비용 산정 방정식에 대입하여 비용 산정
- 유연성이 높아 개발비 견적에 널리 통용
- 성격에 따라 비용이 다르게 산정
- 비용 산정 결과는 노력으로 나타남
- COCOMO의 소프트웨어 개발 유형
@ 조직형(Organic Mode)
- 5만(50KDSI) 라인 이하의 S/W 개발하는 유형
- 일괄 자료 처리, 과학 기술 계산용, 비즈니스 자료 처리용
- 사무 처리용, 업무용, 과학용 응용 S/W 개발에 적합
- 노력(MM) = 2.4 * KDSI^1.05
- 개발 기간(TDEV) = 2.5 * MM^0.38
@ 반분리형(Semi-Detached Mode)
- 30만(300KDSI) 라인 이하의 S/W 개발하는 유형
- 트랜잭션 처리 시스템, 운영체제, DBMS
- 컴파일러, 인터프리터와 같은 유틸리티 개발에 적합
- 노력(MM) = 3.0 * KDSI^1.12
- 개발기간(TDEV) = 2.5 * MM^0.35
@ 내장형(Embedded Mode)
- 30만(300KDSI) 라인 이상의 S/W 개발하는 유형
- 최대형 규모의 트랜잭션 처리 시스템, 운영체제
- 신호기 제어 시스템, 미사일 유도 시스템, 실시간 처리 시스템
- 시스템 프로그램 개발에 적합
- 노력(MM) = 3.6 * KDSI^1.20
- 개발 기간(TDEV) = 2.5 * MM^0.32
- COCOMO 모형의 종류
@ 기본형 COCOMO
- S/W의 크기와 개발 유형만을 이용하여 비용 산정
- 개발 노력(MM) = a * KDSI^b
- 개발 기간(TDEV) = c * MM^d
- 적정 투입 인원(FPS) = MM / TDEV
- 인적 비용(COST) = MM * 1인당 월평균 급여
@ 중간형 COCOMO
- 기본형 COCOMO의 공식을 토대로 사용
- 제품의 특성
- 컴퓨터의 특성
- 개발 요원의 특성
- 프로젝트 특성
- 개발 노력(MM) = 기본 COCOMO의 MM * 요인별 노력 승수
- 개발 기간(TDEV) = c * MM^d
- 적정 투입 인원(FPS) = MM / TDEV
- 인적 비용(COST) = MM * 1인당 월평균 급여
@ 발전형 COCOMO
- 보다 자세하고 정확하게 노력을 산출하여 비용을 산정
- S/W 환경과 구성 요소가 사전에 정의되어 있어야 함
- 개발 과정의 후반부에 주로 적용
- 중간형 COCOMO 산정 공식을 그대로 사용
- 노력 승수 = 개발 공정별 노력 승수 * 개발 공정별 가중치
- Putnam 모형
- S/W 생명 주기의 전 과정 동안에 사용될 노력의 분포를 가정해주는 모형
- 생명 주기 예측 모형이라고도 함
- Rayleigh-Norden 곡선의 노력 분포도를 기초로 함
- 대형 프로젝트의 노력 분포 산정에 이용
- 개발 기간이 늘어날수록 프로젝트 적용 인원의 노력이 감소
- 개발 노력(MM) = 원시코드 라인수^3 / (환경상수^3 * 개발기간^4)
- 기능 점수(FP) 모형
- S/W의 기능을 증대시키는 요인별로 가중치를 부여
- 요인별 가중치를 합산하여 총 기능 점수를 산출
- 총 기능 점수와 영향도를 이용하여 기능 점수를 구하고 이를 이용해서 비용 산정
- 기능 점수(FP) = 총 기능 점수 * (0.65 +(0.1 * 총 영향도))
- 유용성과 간편성으로 비용 산정 기법 가운데 최선의 평가를 받음
- 자동화 추정 도구
- 비용 산정의 자동화를 위해 개발된 도구
- SLIM : Rayleigh-Norden 곡선과 Putnam 예측 모델을 기초로 함
- ESTIMACS : FP 모형을 기초로 함
6. 소프트웨어 개발 표준 – B
- 소프트웨어 개발 표준의 개요
- S/W 개발 단계에서 수행하는 품질 관리에 사용되는 국제 표준
- ISO/IEC 12207
- S/W 개발, 운영, 유지보수 등을 체계적으로 관리하기 위한 S/W 생명 주기 표준 제공
- 기본 생명 주기 프로세스
- 지원 생명 주기 프로세스
- 조직 생명 주기 프로세스
- CMMI(Capability Maturity Model Integration)
- S/W 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델
- 초기 -> 관리 -> 정의 -> 정량적 관리 -> 최적화
- SPICE(Software Process Improvement and Capability dEtermination)
- 정보 시스템 분야에서 S/W 품질 및 생산성 향상을 위하 S/W 프로세스를 평가 및 개선
- 공식 명칭은 ISO/IEC 15504
- 목적
- 프로세스 개선을 위해 개발 기관이 스스로 평가하는 것
- 요구조건의 만족여부를 개발 조직이 스스로 평가하는 것
- 계약 체결을 위해 수탁 기관의 프로세스를 평가하는 것
- 고객-공급자 프로세스
- 공학 프로세스
- 지원 프로세스
- 관리 프로세스
- 조직 프로세스
- 불완전 -> 수행 -> 관리 -> 확립 -> 예측 -> 최적화
7. 소프트웨어 개발 방법론 테일러링 – B
- 소프트웨어 개발 방법론 테일러링의 개요
- 프로젝트 상황 및 특성에 맞도록 정의된 S/W 개발 방법론의 절차, 사용기법 등으 ㄹ수정 및 보완하는 작업
- 프로젝트 특징 정의 -> 표준 프로세스 선정 및 검증 -> 상위 수준의 커스터마이징 -> 세부 커스터마이징 -> 테일러링 문서화
- 소프트웨어 개발 방법론 테일러링 고려사항
- 내부적 요건
- 목표 환경
- 요구사항
- 프로젝트 규모
- 보유 기술
- 외부적 요건
- 법적 제약사항
- 표준 품질 기준
- 소프트웨어 개발 방법론 테일러링 기법
- 프로젝트 규모와 복잡도에 따른 테일러링 기법
- 프로젝트 구성원에 따른 테일러링 기법
- 팀내 방법론 지원에 따른 테일러링 기법
- 자동화에 따른 테일러링 기법
8. 소프트웨어 개발 프레임워크 – B
- 소프트웨어 개발 프레임워크의 개요
- S/W 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 손쉽게 구현할 수 있도록 여러 가지 기능들을 제공해주는 반제품 형태의 S/W 시스템
- 예외 처리, 트랜잭션 처리, 메모리 공유, 데이터 소스 관리, 서비스 관리, 쿼리 서비스, 로깅 서비스, 사용자 인증 서비스 등
- 스프링 프레임워크
- 자바 플랫폼을 위한 오픈 소스 경량형 애플리케이션 프레임워크
- 동적인 웹 사이트의 개발을 위해 다양한 서비스 제공
- 전자정부 표준 프레임워크의 기반 기술
- 전자정부 프레임워크
- 공공부문 정보화 사업 시 효율적인 정보 시스템의 구축을 지원하기 위해 필요한 기능 및 아키텍처를 제공하는 프레임워크
- 응용 S/W의 표준화, 품질 및 재사용성의 향상을 목적으로 함
- 오픈 소스 기반의 범용화와 공개된 기술을 활용하여 특정 업체의 종속성 배제
- 사업별 공통 컴포넌트의 중복 개발 방지
- 닷넷 프레임워크
- Windows 프로그램 개발 및 실행 환경을 제공하는 프레임워크
- 통합 인터넷 전략을 위해 개발
- 코드 실행을 관리하는 CLR이라는 이름의 가상머신 상에서 작동
- 메모리 관리, 유형 및 메모리 안정성, 보안, 네트워크 작업 등 제공
댓글남기기