반응형
자격증 준비하면서 내가 이해하기 편하게, 다시 보기 좋게 정리하는 정보처리기사의 내용 (자격증 상세 내용은 아래)
http://www.q-net.or.kr/crf005.do?id=crf00505&gSite=Q&gId=
비용 산정 기법 & 소프트웨어 개발 부분을 정리한 내용
소프트웨어 개발 방법론
- 소프트웨어 개발, 유지보수 등에 필요한 수행 방법과 각종 기법 및 도구를 체계적으로 정리하여 표준화한 것
구조적 방법론
- 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론
- 타당성 검토 → 계획 → 요구사항 → 설계 → 구현 → 시험 → 운용/유지보수
정보공학 방법론
- 계획, 분석, 설계, 구축에 정형화된 기법들을 통합 및 적용하는 자료 중심의 방법론
- 정보 전략 계획 수립 → 업무 영역 분석 → 업무 시스템 설계 → 업무 시스템 구축
객체지향 방법론
- 객체들을 조립해서 필요한 소프트 웨어를 구현하는 방법
- 객체지향 방법론의 구성 요소 : 객체, 클래스, 메시지 등
- 객체지향 방법론의 기본 원칙 : 캡슐화, 정보 은닉, 추상화, 상속성, 다형성 등
- 요구 분석 → 설계 → 구현 → 테스트 및 검증 → 인도
컴포넌트 기반
- 컴포넌트를 조합하여 새로운 애플리케이션을 만드는 방법
- 개발 준비 → 분석 → 설계 → 구현 → 테스트 → 전개 → 인도
제품 계열 방법론
- 제품에 적용하고 싶은 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론
- 영역 공학 : 영역 분석, 영역 설계, 핵심 자산을 구현하는 영역
- 응용 공학 : 제품 요구 분석, 제품 설계, 제품을 구현하는 영역
소프트웨어 재사용
- 이미 개발되어 인정받은 소프트웨어를 다른 소프트웨어 개발이나 유지에 사용하는 것
- 합성 중심 : 전자 칩과 같은 소프트웨어 부품, 즉 블록을 만들어서 끼워 맞춰 소프트웨어를 완성시키는 방법
- 생성 중심 : 추상화 형태로 써진 명세를 구체화하여 프로그램을 만드는 방법
소프트웨어 재공학
- 기존 시스템을 이용하여 보다 나은 시스템을 구축하고 새로운 기능을 추가하여 소프트웨어 성능을 향상하는 것
- 장점
- 소프트웨어의 품질 향상
- 소프트웨어의 생산성 증가
- 소프트웨어의 수명 연장
- 소프트웨어의 오류 감소
CASE(computer Aided Software Engineering)
- 소프트웨어 개발 과정에서 사용되는 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것
- 기능
- 소프트웨어 생명 주기 전 단계의 연결
- 다양한 소프트웨어 개발 모형 지원
- 그래픽 지원
소프트웨어 비용 결정 산정
- 프로젝트 요소
- 제품 복잡도 : 소프트웨어의 종류에 따라 발생할 수 있는 문제점들의 난이도
- 시스템 크기 : 소프트웨어의 규모에 따라 개발해야 할 시스템의 크기
- 요구되는 신뢰도 : 일정 기간 내 주어진 조건하에서 프로그램이 필요한 기능을 수행하는 정도
- 지원 요소
- 인적 자원 : 소프트웨어 개발 관련자들이 갖춘 능력 혹은 자질
- 하드웨어 자원 : 소프트웨어 개발 시 필요한 장비와 워드프로세서, 프린터 등의 보조 장비
- 소프트웨어 자원 : 소프트웨어 개발 시 필요한 언어 분석기, 문서화 도구 등의 개발 지원 도구
- 생산성 요소
- 개발자 능력 : 개발자들이 갖춘 전문지식, 경험, 이해도, 책임감, 창의력 등
- 개발 기간 : 소프트웨어를 개발하는 기간
하향식 비용 산정 기법
- 과거의 유사한 경험을 바탕으로 전문 지식이 많은 개발자들이 참여한 회의를 통해 비용을 산정하는 비과학적 방법
- 전문가 감정 기법
- 경험이 많은 두 명 이상의 전문가에게 비용 산정을 의뢰하는 기법
- 가장 편리하고 신속하게 비용산정 가능
- 개인적이고 주관적일 수 있음
- 델파이 기법
- 전문가 감정 기법의 주관적인 편견을 보안하기 위해 많은 전문가의 의견을 종합하여 산정하는 기법
- 한 명의 조정자와 여러 전문가로 구성
상향식 비용 산정 기법
- 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정하는 방법
- LOC(원시 코드 라인 수) 기법
- 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법
- 예측치 = (낙관치 + 4*비관치 + 기대치) / 6
- 노력 = 개발 기간 × 투입인원 = LOC / 1인당 월평균 생산 코드 라인 수
- 개발 비용 = 노력(인월) × 단위 비용(1인당 월평균 인건비)
- 개발 기간 = 노력(인월) / 투입 인원
- 생산성 = LOC / 노력(인월)
COCOMO 모형
- LOC에 의한 비용 산정 기법 (보헴이 제안)
- 조직형
- 기관 내부에서 개발된 중 · 소 규모의 소프트웨어
- 일괄 자료 처리나 과학기술 계산용, 비즈니스 자료 처리용 등의 5만(50 KDSI) 라인 이하의 소프트웨어를 개발하는 유형
- 반분리형
- 조직형과 내장형의 중간형 소프트웨어
- 트랜잭션 처리 시스템이나 운영체제, 데이터베이스 관리 시스템 등의 30만(300 KDSI) 라인 이하의 소프트웨어를 개발하는 유형
- 내장형
- 초대형 규모의 소프트웨어
- 트랜잭션 처리 시스템이나 운영체제 등의 30만(300 KDSI) 라인 이상의 소프트웨어를 개발하는 유형
COCOMO 모형의 종류
- 기본형 COCOMO : 소프트웨어의 크기와 개발 유형만을 이용하여 비용 산정
- 중간형 COCOMO : 기본형 COCOMO의 공식을 토대로 사용하나, 다음 4가지 특성에 의해 비용을 산정
- 발전형 COCOMO : 중간형 COCOMO를 보완하여 만들어진 모형으로 개발 공정별로 보다 자세하고 정확하게 노력을 산출하여 비용 산정
Punam 모형
- 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 예상하는 모형
- Rayleigh-Norden 곡선의 노력 분포도를 기반으로 함
- 개발 기간이 늘어날수록 프로젝트 적용 인원의 노력이 감소
기능 점수 모형
- 소포트웨어의 기능을 증대시키는 요인별 기능 점수(FP)를 구한 후 비용을 산정하는 기법
- SLIM : Rayleigh-Norden 곡선과 putnam 예측 모델을 기초로 하여 개발된 자동화 추정 도구
- ESTIMACS : 다양한 프로젝트와 개인별 요소를 수용하도록 FP 모형을 기초로 하여 개발된 자동화 추정 도구
RERT ( 프로그램 평가 및 검토 기술)
- 전체 작업의 상호 관계를 표시하는 네트워크
- 작업 예측치 = (비관치 + 4 ×기대치 + 낙관치) / 6
- 평방 편차 = ((비관치-낙치)/6) ²
CPM (임계 경로 기법)
- 작업을 나열하고 작업에 필요한 소요 기간을 예측하는 데 사용하는 기법
- 간선을 나타내는 화살표의 흐름에 따라 각 작업이 진행되며, 전 작업이 완료되어야 다음 작업을 진행할 수 있음
간트 차트
- 작업 일정을 막대 도표를 이용하여 표시하는 프로젝트 일정표
- 중간 목표 미달성 시 그 이유와 기간을 예측할 수 있게 함
소프트웨어 개발 방법론
- 프로젝트 관리와 재사용 현황을 소프트웨어 개발 방법론에 반영
- 개발 단계별 작업 및 절차를 소프트웨어 생명 주기에 맞춰 수립
- 결정된 소프트웨어 개발 방법론의 개발 단계별 활동 목적, 작업 내용, 산출물에 대한 매뉴얼을 작성
프로젝트 관리
- 일정 관리 : 작업 순서, 작업 기간 산정, 일정 개발, 일정 통제
- 비용 관리 : 비용 산정, 비용 예산 편성, 비용 통제
- 인력 관리 : 프로젝트 팀 편성, 자원 산정, 프로젝트 조직 저의, 프로젝트 팀 개발, 자원 통제, 프로젝트 팀 관리
- 위험 관리 : 위험 식별, 위험 평가, 위험 대처, 위험 통제
- 품질 관리 : 품질 계획, 품질 보증 수행, 품질 통제 수행
소프트웨어 개발 표준
- 소프트웨어 개발 단계에서 수행하는 품질 관리에 사용되는 국제 표준
- ISO/IEC 12207
- ISO(국제표준화기구)에서 만든 표준 소프트웨어 생명 주기 프로세스
- 기본 생명 주기 프로세스 : 획득, 공급, 개발, 운영, 유지보수 프로세스
- 지원 생명 주기 프로세스 : 품질 보증, 검증, 확인, 활동 검토, 감사, 문서화, 형상 관리, 문제 해결 프로세스
- 조직 생명 주기 프로세스 : 관리, 기반 구조, 훈련, 개선 프로세스
- CMMI
- 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델
- 초기 → 관리 → 정의 → 정량적 관리 → 최적화
- SPICE
- 소프트웨어의 품질 및 생산성 향상을 위한 소프트웨어 프로세스를 평가 및 개선하는 국제 표준
- SPICE 구성
- 고객 - 공급자 : 소프트웨어의 정확한 운용 및 사용을 위한 프로세스로 구성
- 공학 : 시스템과 소프트웨어 제품의 명세화, 구현, 유지보슈를 하는 데 사용되는 프로세스로 구성
- 지원 : 소프트웨어 생명 주기에서 다른 프로세스에 의해 이용되는 프로세스로 구성
- 관리 : 소프트웨어 생명 주기에서 프로젝트 관리자에 의해 사용되는 프로세스로 구성
- 조직 : 조직의 업무 목적 수립과 조직의 업무 목표 달성을 위한 프로세스로 구성
- SPICE 프로세스 수행 능력
- 불완전 : 프로세스가 구현되지 않았거나 목적을 달성하지 못한 단계
- 수행 : 프로세스가 수행되고 목적이 달성된 단계
- 관리 : 정의된 자원의 한도 내에서 그 프로세스가 작업 산출물을 인도하는 단계
- 확립 : 소프트웨어 공학 원칙에 기반하여 정의된 프로세스가 수행되는 단계
- 예측 : 프로세스가 목적 달성을 위해 통제되고, 양적인 측정을 통해서 일관되게 수행되는 단계
- 최적화 : 프로세스 수행을 최적화하고, 지속적인 개선을 통해 업무 목적을 만족시키는 단계
소프트웨어 개발 방법론 테일러링
- 절차, 사용기법 등을 수정 및 보완하는 작업
- 프로젝트 특정 정의 → 표준 프로세스 선정 및 검증 → 상위 수준의 커스터마이징 → 세부 커스터마이징 → 테일러링 문서화
- 고려사항
- 내부적 기준 : 목표 환경, 요구사항, 프로젝트 규모, 보유 기술
- 외부적 기준 : 법적 제약사항, 표준 품질 기준
소프트웨어 개발 프레임워크
- 소프트웨어 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 제공해 주는 반제품 형태의 소프트웨어 시스템
- 주요 기능 : 예외 처리, 트랜젝션 처리, 메모리 공유, 데이터 소스 관리, 서비스 관리, 쿼리 서비스, 로깅 서비스, 사용자 인증 서비스
스프링 프레임워크
- 자바 플랫폼을 위한 오픈 소스 경량형 애플리케이션 프레임워크
- 동적인 웹 사이트의 개발을 위해 다양한 서비스를 제공
전자정보 프레임워크
- 대한민국의 공공부문 정보화 사업 시 효율적인 정보 시스템의 구축을 지원하기 위한 기능 및 아키텍처를 제공하는 프레임워크
- 응용 소프트웨어의 표준화, 품질 및 재사용성의 향상을 목적으로 함
닷넷 프레임워크
Windows 프로그램의 개발 및 실행 환경을 제공하는 프레임워크
소프트웨어 개발 프레임워크의 특성
- 모듈화 : 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화함으로써 소프트웨어의 품질을 향상함
- 재사용성 : 프레임워크는 재사용 가능한 모듈들을 제공함으로써 예산 절감, 생산성 향상, 품질 보증이 가능
- 확장성 : 다형성을 통한 인터페이스 확장이 가능하여 다양한 형태와 기능을 가진 애플리케이션 개발이 가능
- 제어의 역흐름 : 개발자가 관리하고 통제해야 하는 객체들의 제어를 프레임워크에 넘김으로써 생산성을 향상
뒤로 이어지는 내용
https://edder773.tistory.com/175
반응형
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 통합 구현 정리 (0) | 2023.04.16 |
---|---|
[정보처리기사 실기] 자료구조와 정렬 정리 (0) | 2023.04.16 |
[정보처리기사 실기] 정규화 및 데이터베이스 보안 정리 (0) | 2023.04.16 |
[정보처리기사 실기] 데이터베이스와 관계형 데이터베이스의 개요 (0) | 2023.04.14 |
[정보처리기사 실기] 요구사항 및 UML 정리 (0) | 2023.04.11 |
댓글