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