Chimy's Program
정보처리기사 필기 - 정보시스템 구축관리 : 소프트웨어 개발 방법론 활용 본문
정보처리기사 필기 - 정보시스템 구축관리 : 소프트웨어 개발 방법론 활용
소프트웨어 개발 방법론
- 소프트웨어 개발, 유지보수 등에 필요한 수행 방법과 각종 기법 및 도구를 체계적으로 정리하여 표준화
- 생산성, 품질 향상
ⓞ 구조적 방법론
- 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리(Precess) 중심의 방법론
- 타당성 검토 → 계획 → 요구사항 → 설계 → 구현 → 시험 → 운용/유지보수
ⓞ 정보공학 방법론
- 정보 시스템의 개발을 위해 상호 연관성 있게 통합 및 적용하는 자료 중심의 방법론
- 개발 주기를 이용하여 대규모 정보 시스템을 구축하는데 적합
- 정보전략계획 수립 → 업무영역 분석 → 설계 → 구축
ⓞ 객체지향 방법론
- 기계의 부품을 조립하듯이 객체들을 조립해서 필요한 소프트웨어를 구현하는 방법론
- 구성 요소 : 객체, 클래스, 메시지
- 기본 원칙 : 캡슐화, 정보은닉, 추상화, 상속성, 다형성
- 요구분석 → 설계 → 구현 → 테스트/검증 → 인도
ⓞ 컨포넌트 기반(CBD; Component Based Design) 방법론
- 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론
- 재사용 가능, 시간과 노력 감소
- 유지보수비용↓, 생산성/품질↑
- 준비 → 분석 → 설계 → 구현 → 테스트 → 전개 → 인도
ⓞ 애자일(Agile) 방법론
- 일정한 주기를 반복하면서 개발 과정을 진행하는 방법론
- 고객의 요구사항을 빠르게 대응
- 익스트림 프로그래밍(XP), 스크럼, 칸반, 크리스탈
- 반복주기 : 사용자 스토리 → 계획 → 개발 → 승인테스트
ⓞ 제품 계열 방법론
- 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론
비용 산정 기법
ⓞ 소프트웨어 비용 산정의 개요
- 소프트웨어의 개발 규모를 소요하는 인원, 자원, 기간 등으로 확인하여 필요한 비용을 산정
- 비용 산정을 높게 할 경우 예산 낭비, 일의 효율성↓
- 비용 산정을 낮게 할 경우 개발자의 부담 증가, 품질문제
- 하향식 비용 산정 기법, 상향식 비용 산정 기법
ⓞ 소프트웨어 비용 결정 요소
- 프로젝트 요소 : 제품 복잡도, 시스템 크기, 요구되는 신뢰도
- 자원 요소 : 인적 자원, 하드웨어 자원, 소프트웨어 자원
- 생산성 요소 : 개발자 능력, 개발 기간
하향식 비용 산정 기법의 개요
- 과거의 유사한 경험을 바탕으로 전문 지식이 많은 개발자들이 참여한 회의를 통해 비용을 산정
- 전문가 감정기법, 델파이 기법
ⓞ 전문가 감정 기법
- 조직 내에 있는 경험이 많은 두 명 이상의 전문가에게 비용 산정을 의뢰하는 기법
- 가장 편리하고 신속한 기법
- 개인적, 주관적
- 새로운 프로젝트 경험이 없을 수 있음
ⓞ 델파이 기법
- 전문가의 감정 기법의 주관적인 편견을 보완하기 위해 많은 전문가의 의견을 종합하여 산정하는 기법
- 전문가의 의견이 거의 일치할 때까지 수행
- 조정자 필요
비용 산정 기법-상향식
- 프로젝트의 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용 산정
- LOC 기법, 개발단계별 인월수 기법, 수학적 산정 기법
ⓞ LOC(원시 코드 라인 수; Source Line Of Code) 기법
- 소프트웨어 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정한 예측치로 비용 산정
- 비관치 : 가장 많이 측정된 라인수
- 낙관치 : 가장 적게 측정된 라인수
- 기대치 : 평균 라인수
- 예측치 = (비관치+낙관치+기대치*4)/6
ⓞ LOC 산정 공식
- 노력(인원) = 개발 기간 × 투입 인원 = LOC / 1인당 월평균 생산 코드 라인수
- 개발비용 = 노력(월) × 단위비용(1인당,월)
- 개발기간 = 노력(월) / 투입인원
- 생산성 = LOC / 노력(월)
ⓞ 수학적 산정 기법
- COCOCMO 모형, Putnam 모형, 기능 점수(FP) 모형
⑴ COCOMO 모형
- 보헴(Boehm)이 제안
- LOC(원시 코드 라인 수)에 의한 비용 산정
- 소프트웨어의 종류에 따라 다르게 측정
- COCOMO의 소프트웨어 개발 유형
- 조직형(Organic Mode) : 5만 라인 이하의 소프트웨어 개발, 중소규모, 일괄/사무처리
- 반분리형(Semi-Detached Mode) : 30만 라인 이하의 소프트웨어 개발, 운영체제/DBMS
- 내장형(Embedded Mode) : 30만 라인 이상의 소프트웨어 개발, 신호기제어/미사일유도 시스템
- COCOMO 모형의 종류
- 기본(Basic)형 : 소프트웨어 크기와 개발 유형만을 이용하여 비용을 산정
- 중간(Intermediate)형 : 기본형 공식 토대, 4가지 특성의 15가지 요인
- 발전(Detailed)형 COCOMO : 개발 공정별로 보다 자세하고 정확하게 노력을 산출
⑵ Putnam 모형
- 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 가정해 주는 모형
- Rayleigh-Norden 노력 분포도를 기초 : 기간이 늘어나면 프로젝트 인원 노력은 감소
⑶ 기능 점수(FP) 모형
- 총 기능 점수를 산출
- 총 기능 점수와 영향도를 이용하여 기능 점수(FP)를 구한 후 이를 이용해서 비용을 산정
소프트웨어 개발 방법론 결정
ⓞ 소프트웨어 개발 방법론 결정의 개요
- 프로젝트 관리와 재사용 현황을 소프트웨어 개발 방법론에 반영
- 확정된 소프트웨어 생명 주기와 개발 방법론에 맞춰 소프트웨어 개발 단계, 활동, 작업, 절차 등 정의
- 최소의 비용으로 사용자들을 만족시키기 위해 프로젝트 관리
- 프로젝트 관리 유형 : 일정 관리, 비용 관리, 인력 관리, 위험 관리, 품질 관리
ⓞ 소프트웨어 개발 방법론 결정 절차
- 프로젝트 관리와 재사용 현황을 소프트웨어 개발 방법론에 반영
- 개발단계별 작업 및 절차를 소프트웨어 생명 주기에 맞춰 수립
- 소프트웨어 생명 주기 종류 : 기본생명주기, 지원생명주기, 조직생명주기
- 활동목적, 작업내용, 산출물에 대한 매뉴얼을 작성
소프트웨어 개발 표준
- 소프트웨어 개발 단계에서 수행하는 품질 관리에 사용되는 국제 표준
- 종류 : ISO/IEC 12207, CMMI, SPICE
ⓞ ISO/IEC 12207
- ISO(국제표준화기구)에서 만든 표준 소프트웨어 생명 주기 프로세스
- 소프트웨어 개발, 운용, 유지보수를 체계적으로 관리하기 위한 표준 제공
- 기본 생명 주기 프로세스, 지원 생명 주기 프로세스, 조직 생명 주기 프로세스로 구분
⑴ 프로세스 구분
- 기본 생명 주기 프로세스 : 획득, 공급, 개발, 운영, 유지보수 관련 프로세스
- 지원 생명 주기 프로세스 : 검증, 보증, 문서화, 형상관리 관련 프로세스
- 조직 생명 주기 프로세스 : 관리, 기반구조, 훈련, 개선 관련 프로세스
ⓞ CMMI(Capability Maturity Model Integration, 능력 성숙도 통합 모델)
- 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델
- 소프트웨어 프로세스 성숙도는 초기, 관리, 정의, 정량적 관리, 최적화로 구분
⑴ CMMI 성숙도 분류
- 초기 : 작업자의 능력에 따라 성공여부 결정
- 관리 : 규칙화된 프로세스
- 정의 : 표준화된 프로세스
- 정량적 관리 : 예측가능한 프로세스
- 최적화 : 지속적인 개선 프로세스
ⓞ SPICE(Software Process Improvement and Capability Determination)
- 소프트웨어 처리 개선 및 능력 평가 기준
- 소프트웨어 프로세스를 평가 및 개선하는 국제 표준
- 프로세스 범주 5가지(세부 40가지) : 고객-공급자, 공학, 지원, 관리, 조직 프로세스
- SPICE의 프로세스 수행 능력 단계 : 불완전, 수행, 관리, 확립, 예측, 최적화
⑴ SPICE의 프로세스 범주
- 고객-공급자 : 인수, 공급, 요구도출, 운영
- 공학 : 시스템/소프트웨어 제품 명세화/구현/유지보수, 개발, 소프트웨어 유지보수
- 지원 : 다른 프로세스에 의해 이용되는 프로세스, 문서화, 형상, 품질보증
- 관리 : 프로젝트 관리자에 의해 사용되는 프로세스, 관리
- 조직 : 조직업무목적 수립, 목표 달성, 조직배치, 인력관리
⑵ SPICE의 프로세스 수행 능력 단계
- 불완전 : 프로세스 구현x, 해당된 목적 달성x
- 수행 : 목적 달성
- 관리 : 정의된 자원 한도내에서 작업 산출물 인도
- 확립 : 소프트웨어공학 원칙에 기반해서 정의된 프로세스 수행
- 예측 : 목적 달성을 위해 통제, 양적인 측정을 통해 일관되게 수행
- 최적화 : 프로세스 수행 최적화, 지속적인 개선으로 업무목적 만족
소프트웨어 개발 방법론 테일러링
- 프로젝트 상황 및 특성에 맞도록 정의된 소프트웨어 개발 방법론의 절차, 사용기법 등을 수정, 보완
ⓞ 소프트웨어 개발 방법론 테일러링 고려사항
- 내부적 요건 : 목표 환경, 요구사항, 프로젝트 규모, 보유 기술
- 외부적 요건 : 법적 제약사항, 표준 품질 기준
ⓞ 소프트웨어 개발 방법론 테일러링 기법(4가지)
- 프로젝트 규모와 복잡도에 따른 테일러링 기법
- 프로젝트 구성원에 따른 테일러링 기법
- 팀내 방법론 지원에 따른 테일러링 기법
- 자동화에 따른 테일러링 기법
소프트웨어 개발 프레임워크
- 여러 가지 기능들을 제공해주는 반제품 형태의 소프트웨어 시스템
ⓞ 스프링 프레임워크
- 자바 플랫폼을 위한 오픈 소스 경량형 애플리케이션 프레임워크
ⓞ 전자정부 프레임워크
- 우리나라의 공공부문 정보화 사업 시 필요한 기능 및 아키텍퍼를 제공하는 프레임워크
- 응용 소프트웨어의 표준화, 품질 및 재사용성의 향상이 목적
ⓞ 닷넷 프레임워크
- Windows 프로그램의 개발 및 실행 환경을 제공하는 프레임워크
- 코드실행을 관리하는 CLR(가상머신) 상에서 동작
'BASE' 카테고리의 다른 글
정보처리기사 필기 - 정보시스템 구축관리 : IT 프로젝트 정보시스템 구축관리2 (0) | 2020.06.13 |
---|---|
정보처리기사 필기 - 정보시스템 구축관리 : IT 프로젝트 정보시스템 구축관리1 (0) | 2020.06.12 |
정보처리기사 필기 - 프로그래밍 언어 활용 : 응용 SW 기초 기술 활용4 (0) | 2020.06.10 |
정보처리기사 필기 - 프로그래밍 언어 활용 : 응용 SW 기초 기술 활용3 (0) | 2020.06.09 |
정보처리기사 필기 - 프로그래밍 언어 활용 : 응용 SW 기초 기술 활용2 (0) | 2020.06.08 |