정보처리기사 - 요구사항 확인 #26~30
2023. 8. 19. 11:00ㆍ자격증/정보처리기사
26. 프로젝트 일정 계획
26.1 프로젝트 일정(Scheduling) 계획
프로젝트의 프로세스를 이루는 소작업을 파악하고 예측된 노력을 각 소작업에 분배하여 소작업의 순서와 일정을 정하는 것
26.1.1 프로젝트 일정에 사용되는 기능
- WBS, PERT/CPM, 간트 차트 등
26.1.1.1 WBS(Work Breakdown Structure, 업무 분류 구조)
개발 프로세스를 여러 개의 작은 관리 단위로 분할하여 계층적으로 기술한 업무 구조
26.1.1.2 PERT/CPM
프로젝트의 지연을 방지하고 계획대로 진행되도록 일정을 계획하는 것으로, 대단위 계획의 조직적인 추진을 위해 비용을 적게 사용하면서 최단시간 내 계획 완성을 위한 프로젝트 일정 방법
26.2 PERT(Program Evaluation and Review Technique, 프로그램 평가 및 검토 기술)
프로젝트에 필요한 전체 작업의 상호 관계를 표시하는 네트워크
- 각 작업별로 다음과 같이 단계를 나누어 종료시기를 결정함
- 낙관적인 경우
- 가능성이 있는 경우
- 비관적인 경우
- 개발 경험이 없어 소요 기간 예측이 어려운 프로젝트 일정 계획에 사용
- 노드와 간선으로 구성되며 원 노드에는 작업을, 간선에는 낙관치, 기대치, 비관치를 표시
- 결정 경로, 작업에 대한 경계 시간, 작업 간의 상호 연관성 등을 알 수 있음
- 작업에 대한 경계 시간 : 각 작업 간의 경계 시간을 알 수 있음
- 작업 예측지 계산 공식
- 작업 예측치 = (비관치 + 4 * 기대치 + 낙관치) / 6
- 평방 편차 = [(비관치 - 낙관치) / 6]2
26.3 CPM (Critical Path Methode, 임계 경로 기법)
프로젝트 완성에 필요한 작업을 나열하고 작업에 필요한 소요 기간을 예측하는데 사용되는 기법
- 노드와 간선으로 구성된 네트워크로 노드는 작업을, 간선은 작업 사이의 전후 의존 관계를 나타냄
- 원형 노드는 각각의 작업을 의미하며, 작업 이름과 소요 기간을 표시
- 박스 노드는 이정표를 의미하며, 이정표 이름과 예상 완료 시간을 표시
- 간선을 나타내는 화살표의 흐름에 따라 각 작업이 진행되며, 전 작업이 완료되어야 다음 작업을 진행할 수 있음
- 임계 경로 = 최장 경로
26.4 간트 차트
프로젝트의 각 작업들이 언제 시작하고 언제 종료되는지에 대한 작업 일정을 막대 도표를 이용하여 표시하는 프로젝트 일정표
- 시간선(Time-Line) 차트라고도 함
- 중간 목표 미달성 시 그 이유와 기간을 예측할 수 있게 함
- 사용자와의 문제점이나 예산의 초과 지출 등도 관리할 수 있게 함
- 자원 배치와 인원 계획에 유용하게 사용
- 이정표, 작업 일정, 작업 기간, 산출물로 구성
- 수평 막대의 길이는 각 작업(Task)의 기간을 나타냄
27. 소프트웨어 개발 방법론 결정
27.1 소프트웨어 개발 방법론 결정
소프트웨어 개발 방법론을 결정하는 것은 프로젝트 관리와 재사용 현황을 소프트웨어 개발 방법론에 반영하고, 확정된 소프트웨어 생명 주기와 개발 방법론에 맞춰 소프트웨어 개발 단계, 활동, 작업, 절차 등을 정의하는 것
- 소프트웨어 개발 방법론 결정 절차
- 프로젝트 관리와 재사용 현황을 소프트웨어 개발 방법론에 반영
- 개발 단계별 작업 및 절차를 소프트웨어 생명 주기에 맞춰 수립
- 결정된 소프트웨어 개발 방법론의 개발 단계별 활동 목적, 작업 내용, 산출물에 대한 메뉴얼을 작성
27.2 프로젝트 관리 (Project Management)
주어진 기간 내에 최소의 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 전반적인 활동
- 일정 관리, 비용 관리, 인력 관리, 위험 관리, 품질 관리
관리 유형 | 주요 내용 |
---|---|
일정 관리 | 작업 순서, 작업 기간 산정, 일정 개발, 일정 통제 |
비용 관리 | 비용 산정, 비용 예산 편성, 비용 통제 |
인력 관리 | 프로젝트 팀 편성, 자원 산정, 프로젝트 조직 정의, 프로젝트 팀 개발,자원 통제, 프로젝트 팀 관리 |
위험 관리 | 위험 식별, 위험 평가, 위험 대처, 위험 통제 |
품질 관리 | 품질 계획, 품질 보증 수행, 품질 통제 수행 |
28. 소프트웨어 개발 표준
28.1 소프트웨어 개발 표준
소프트웨어 개발 단계에서 수행하는 품질 관리에 사용되는 국제 표준을 의미
- 주요 소프트웨어 개발 표준
- ISO/IEC 12207
- CMMI(능력 성숙도 통합 모델)
- SPICE(소프트웨어 처리 개선 및 능력 평가 기준)
28.2 ISO/IEC 12207
ISO(국제표준화기구)에서 만든 표준 소프트웨어 생명 주기 프로세스
- 소프트웨어의 개발, 운영, 유지보수 등을 체계적으로 관리하기 위한 소프트웨어 생명 주기 표준을 제공
28.2.1 ISO/IEC 12207 구분
28.2.1.1 기본 생명 주기 프로세스
획득, 공급, 개발, 운영, 유지보수 프로세스
28.2.1.2 지원 생명 주기 프로세스
품질 보증, 검증, 확인, 활동 검토, 감사, 문서화, 형상 관리, 문제 해결 프로세스
28.2.1.3 조직 생명 주기 프로세스
관리, 기반 구조, 훈련, 개선 프로세스
28.3 CMMI (Capability Maturity Model Integration)
소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델
- 미국 카네기멜론 대학교의 소프트웨어 공학연구소(SEI)에서 개발
- CMMI의 소프트웨어 프로세스 성숙도
- 초기, 관리, 정의, 정량적 관리, 최적화 (기관정량화)
단계 | 프로세스 | 특징 |
---|---|---|
초기 (Initial) |
정의된 프로세스 없음 | 작업자 능력에 따라 성공 여부 결정 |
관리 (Managed) |
규칙화된 프로세스 | 특정한 프로젝트 내의 프로세스 정의및 수행 |
정의 (Defined) |
표준화된 프로세스 | 조직의 표준 프로세스를 활용하여 업무 수행 |
정량적 관리 (Quantitatively Managed) |
예측 가능 프로세스 | 프로젝트를 정량적으로 관리 및 통제 |
최적화 (Optimizing) |
지속적 개선 프로세스 | 프로세스 역량 향상을 위해 지속적인프로세스 개선 |
28.4 SPICE(Software Process Improvement and Capability dEtermination)
정보 시스템 분야에서 소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준
- 공식 명칭은 ISO/IEC 15504
28.5 SPICE의 구성
범주 | 특징 |
---|---|
고객-공급자(Customer-Supplier)프로세스 | - 소프트웨어를 개발하여 고객에게 전달하는 것을 지원하고, 소프트웨어의 정확한 운용 및 사용을 위한 프로세스로 구성 - 구성 요소 : 인수, 공급, 요구 도출, 운영 - 프로세스 수 : 10개 |
공학(Engineering)프로세스 | - 시스템과 소프트웨어 제품의 명세화, 구현, 유지보수를 하는데사용되는 프로세스로 구성 - 구성 요소 : 개발, 소프트웨어 유지보수 - 프로세스 수 : 9개 |
지원(Support)프로세스 | - 소프트웨어 생명 주기에서 다른 프로세스에 의해 이용되는 프로세스로 구성 - 구성 요소 : 문서화, 형상, 품질 보증, 검증, 확인, 리뷰, 감사, 품질 문제 해결 - 프로세스 수 : 8개 |
관리(Management)프로세스 | - 소프트웨어 생명 주기에서 프로젝트 관리자에 의해 사용되는프로세스로 구성 - 구성 요소 : 관리, 프로젝트 관리, 품질 및 위험 관리 - 프로세스 수 : 4개 |
조직(Organization)프로세스 | - 조직의 업무 목적 수립과 조직의 업무 목표 달성을 위한 프로세스로 구성 - 구성 요소 : 조직 배치, 개선 활동 프로세스, 인력 관리, 기반 관리, 측정 도구, 재사용 - 프로세스 수 : 9개 |
28.6 SPICE의 프로세스의 수행 능력 단계
단계 | 특징 |
---|---|
불완전 (Incomplete) |
프로세스가 구현되지 않았거나 목적을 달성하지 못한 단계 |
수행 (Performed) |
프로세스가 수행되고 목적이 달성된 단계 |
관리 (Managed) |
정의된 자원의 한도 내에서 그 프로세스가 작업 산출물을인도하는 단계 |
확립 (Estabilished) |
소프트웨어 공학 원칙에 기반하여 정의된 프로세스가 수행되는 단계 |
예측 (Predictable) |
프로세스가 목적 달성을 위해 통제되고, 양적인 측정을 통해서 일관되게 수행하는 단계 |
최적화 (Optimizing) |
프로세스 수행을 최적화하고, 지속적인 개선을 통해 업무목적을 만족시키는 단계 |
29. 소프트웨어 개발 방법론 테일러링
29.1 소프트웨어 개발 방법론 테일러링
프로젝트 상황 및 특성에 맞도록 정의된 소프트웨어 개발 방법론의 절차, 사용기법 등을 수정 및 보완하는 작업
- 테일러링(Tailoring) : 사전적 의미는 '재단, 양복업'으로, 표준을 기반으로 실제 업무에서 여건에 맞게 수정/보완하는 것을 의미
- 소프트웨어 개발 방법론 테일러링 수행 절차
- 프로젝트 특징 정의 → 표준 및 프로세스 선정 및 검증 → 상위 수준의 커스터마이징 → 세부 커스터마이징 → 테일러링 문서화
29.2 소프트웨어 개발 방법론 테일러링 고려사항
기준 | 내용 |
---|---|
내부적 기분 | - 목표 환경 : 시스템의 개발 환경과 유형이 서로 다른 경우 테일러링이 필요 - 요구사항 : 프로젝트의 생명 주기 활동에서 개발, 운영, 유지보수등 프로젝트에서 우선적으로 고려할 요구사항이 서로 다른 경우 테일러링이 필요 - 프로젝트 규모 : 비용, 인력, 기간 등 프로젝트의 규모가 서로 다른 경우 테일러링이 필요 - 보유 기술 : 프로세스, 개발 방법론, 산출물, 구성원의 능력 등이서로 다른 경우 테일러링이 필요 |
외부적 기준 | - 법적 제약사항 : 프로젝트별로 적용될 IT Compliance가 서로 다른 경우 테일러링이 필요 - 표준 품질 기준 : 금융, 제도 등 분야별 표준 품질 기준이 서로 다른 경우 테일러링이 필요 |
- IT Compliance : 기업 운영 시 IT 분야에서 내/외부적으로 반드시 지켜야 하는 법적 규제 사항이나 지침을 의미
30. 소프트웨어 개발 프레임워크
30.1 소프트웨어 개발 프레임워크
소프트웨어 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 손쉽게 구현할 수 있도록 여러 가지 기능들을 제공해주는 반제품 형태의 소프트웨어 시스템
- 프레임워크(Framework) : 사전적 의미는 '뼈대, 골조'로, 소프트웨어에서는 특정 기능을 수행하기 위해 필요한 클래스나 인터페이스 등을 모아둔 집합체를 의미
- 반제품 : 완제품의 재료로 사용되기 위해 원료를 가공하여 만든 중간 제품을 의미
- 선행 사업자의 기술에 의존하지 않는 표준화된 개발 기반으로 인해 사업자 종속성이 해소됨
- 소프트웨어 개발 프레임워크의 주요 기능
- 예외 처리
- 트랜잭션 처리
- 메모리 공유
- 데이터 소스 관리
- 서비스 관리
- 쿼리 서비스
- 로깅 서비스
- 사용자 인증 서비스
- 소프트웨어 개발 프레임워크의 종류
- 스프링 프레임워크
- 전자정부 프레임워크
- 닷넷 프레임워크
30.2 스프링 프레임워크 (Spring Framework)
자바 플랫폼을 위한 오픈 소스 경량형 애플리케이션 프레임워크
- 동적인 웹 사이트의 개발을 위해 다양한 서비스를 제공함
- 전자정부 표준 프레임워크의 기반 기술로 사용되고 있음
30.3 전자정부 프레임워크
대한민국의 공공부분 정보화 사업 시 효율적인 정보 시스템의 구축을 지원하기 위해 필요한 기능 및 아키텍처를 제공하는 프레임워크
- 개발 프레임워크의 표준 정립으로 응용 소프트웨어의 표준화, 품질 및 재사용성의 향상을 목적으로 함
- 오픈소스 기반의 범용화를 이룰 수 있음
- 공개된 기술을 활용함으로써 특정 업체의 종속성을 배제하고 사업별 공통 컴포넌트의 중복 개발을 방지
30.4 닷넷 프레임워크 (.NET Framework)
Windows 프로그램의 개발 및 실행 환경을 제공하는 프레임워크
- Microsoft 사에서 통합 인터넷 전략을 위해 개발
- 코드 실행을 관리하는 CLR(Common Language Runtime, 공용 언어 런타임)이라는 이름의 가상머신 상에서 작동
30.5 소프트웨어 개발 프레임워크의 특성
- 모듈화, 재사용성, 확장성, 제어의 역흐름
특성 | 내용 |
---|---|
모듈화 (Modularity) |
- 프레임워크는 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화함으로써 소프트웨어의 품질을 향상시킴 - 프레임워크는 개발 표준에 의한 모듈화로 인해 유지 보수가 용이 |
재사용성 (Reusability) |
프레임워크는 재사용 가능한 모듈들을 제공함으로써 예산 절감, 생산성 향상, 품질 보증이 가능 |
확장성 (Extensibility) |
프레임워크는 다형성(Polymorphism)을 통한 인터페이스 확장이 가능하여 다양한 형태와 기능을 가진 애플리케이션 개발이 가능 |
제어의 역흐름 (Inversion ofControl) |
개발자가 관리하고 통제해야 하는 객체들의 제어를 프레임워크에 넘김으로써 생산성을 향상시킴 |
- 재사용(Reuse) : 비용과 개발 시간을 절약하기 위해 이미 개발된 기능들을 파악하고 재구성하여 새로운 시스템 또는 기능 개발에 사용하기 적합하도록 최적화하는 과정
- 다형성(Polymorphism) : 메시지에 의해 객체가 연산을 수행하게 될 때 하나의 메시지에 대해 각각의 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력을 의미
'자격증 > 정보처리기사' 카테고리의 다른 글
정보처리기사 - 데이터 입출력 구현 #36~39 (0) | 2023.08.19 |
---|---|
정보처리기사 - 데이터 입출력 구현 #31~35 (0) | 2023.08.19 |
정보처리기사 - 요구사항 확인 #22~25 (0) | 2023.08.19 |
정보처리기사 - 요구사항 확인 #20~21 (0) | 2023.08.19 |
정보처리기사 - 요구사항 확인 #14~19 (0) | 2023.08.19 |