본문 바로가기

IT/정보처리기사

[시나공 토막강의] 26-30강 정리

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) : 개발자가 관리하고 통제해야 하는 객체들의 제어를 프레임워크에 넘김으로써 생산성 향상 가능