관리 메뉴

SW

[2020 정보처리기사 필기] 소프트웨어 개발 방법론 활용 (2) 본문

대학교/자격증

[2020 정보처리기사 필기] 소프트웨어 개발 방법론 활용 (2)

SWKo 2020. 8. 15. 02:16

162. 소프트웨어 개발 방법론 결정

1. 소프트웨어 개발 방법론 결정의 개요

- 소프트웨어 개발 방법론의 결정은 프로젝트 관리와 재사용 현황을 소프트웨어 개발 방법론에 반영하고, 확정된 소프트웨어 생명 주기와 개발 방법론에 맞춰 소프트웨어 개발 단계, 활동 작업, 절차 등을 정의하는 것이다.

- 프로젝트 관리 유형 : 일정 관리, 비용 관리, 인력 관리, 위험 관리, 품질 관리 (비품위일인)

 

2. 소프트웨어 개발 방법론 결정 절차

1) 프로젝트 관리와 재사용 현황소프트웨어 개발 방법론에 반영 한다.

- 소프트웨어 개발 방법론에 프로젝트 관리와 재사용 현황을 반영하는 방법을 프로젝트 관련자들에게 설명한다.

- 소프트웨어 개발 방법론에 프로젝트 관리와 재사용 현황을 반영하고 그 결과를 프로젝트 관련자들에게 설명한 후 결정한다.

2) 개발 단계별 작업 및 절차소프트웨어 생명 주기에 맞춰 수립한다.

- 소프트웨어의 기본 생명 주기, 지원 생명 주기, 조직 생명 주기별로 주요 프로세스를 확인한다.

- 소프트웨어의 개발 프로세스, 개발 생명 주기 프로세스 모형을 정리한다.

3) 결정된 소프트웨어 개발 방법론의 개발 단계별 활동 목적, 작업 내용, 산출물에 대한 매뉴얼을 작성한다.

 

핵심

- 프로젝트 관리 유형 : 일정 관리, 품질 관리, 위험 관리, 인력 관리, 비용 관리

- 소프트웨어 생명 주기는 기본, 지워느 조직 생명 주기로 구분한다.


163. 소프트웨어 개발 표준

1. 소프트웨어 개발 표준의 개요

- 소프트웨어 개발 표준은 소프트웨어 개발 단계에서 수행하는 품질 관리에 사용되는 국제 표준을 의미한다.

- 대표적인 소프트웨어 개발 표준에는 ISO/IEC 12207, CMMI, SPICE 등이 있다.

 

2. ISO/IEC 12207

- ISO/IEC 12207ISO에서 만든 표준 소프트웨어 생명 주기 프로세스로, 소프트웨어의 개발, 운영, 유지보수 등을 체계적으로 관리하기 위한 소프트웨어 생명 주기 표준을 제공한다.

- 기본 생명 주기 프로세스 : 획득, 공급, 개발, 운영, 유지보수 프로세스

- 지원 생명 주기 프로세스 : 품질 보증, 검증, 확인, 활동 검토, 문제 해결 프로세스

- 조직 생명 주기 프로세스 : 관리, 기반 구조, 훈련, 개선 프로세스

 

3. CMMI(Capability Maturity Model Integration)

- CMMI(능력 성숙도 통합 모델)는 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델로, 미국의 소프트웨어 공학연구소(SEI)에서 개발하였다.

- CMMI의 소프트웨어 프로세스 성숙도는 초기, 관리, 정의, 정량적 관리, 최적화의 5단계로 관리한다.

단계 프로세스 특징
초기(Initial) 정의된 프로세스 없음 작업자 능력에 따라 성공 여부 결정
관리(Managed) 규칙화된 프로세스 특정한 프로젝트 내의 프로세스 정의 및 수행
정의(Defined) 표준화된 프로세스 조직의 표준 프로세스를 활용하여 업무 수행
정량적 관리(Quantitatively Managed) 예측 가능한 프로세스 프로젝트를 정량적으로 관리 및 통제
최적화(Optimizing) 지속적 개선 프로세스 프로세스 역량 향상을 위해 지속적인 프로세스 개선

 

4. SPICE(Software Process Improvement and Capability dEtermination)

- SPICE(소프트웨어 처리 개선 및 능력 평가 기준)는 정보 시스템 분야에서 소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준으로, 공식 명칭은 ISO/IEC 15504이다.

- SPICE의 목적

       - 프로세스 개선을 위해 개발 기관이 스스로 평가하는 것

       - 기관에서 지정한 요구조건의 만족여부를 개발 조직이 스스로 평가하는 것

       - 계약 체결을 위해 수탁 기관의 프로세스를 평가하는 것

- SPICE는 5개의 프로세스 범주와 40개의 세부 프로세스로 구성된다.

- 고객-공급자(Customer-Supplier) 프로세스

       - 소프트웨어를 개발하여 고객에게 전달하는 것을 지원하고, 소프트웨어의 정확한 운용 및 사용을 위한 프로세스로 구성된다.

- 공학(Engineering) 프로세스

       - 시스템과 소프트웨어 제품의 명세화, 구현, 유지보수를 하는데 사용되는 프로세스로 구성된다.

- 지원(Support) 프로세스

       - 소프트웨어 생명 주기에서 다른 프로세스에 의해 이용되는 프로세스로 구성된다.

- 관리(Management) 프로세스

       - 소프트에어 생명 주기에서 프로젝트 관리자에 의해 사용되는 프로세스로 구성된다.

- 조직(Organization) 프로세스

       - 조직의 업무 목적 수립과 조직의 업무 목표 달성을 위한 프로세스로 구성된다.

 

- SPICE는 프로세스 수행 능력 단계를 불완전, 수행, 관리, 확립, 예측, 최적화의 6단계로 구분한다.

- 불완전(Incomplete) : 프로세스가 구현되지 않았거나 목적을 달성하지 못한 단계

- 수행(Performed) : 프로세스가 수행되고 목적이 달성된 단계

- 관리(Managed) : 정의된 자원의 한도 내에서 그 프로세스가 작업 산출물을 인도하는 단계

- 확립(Established) : 소프트웨어 공학 원칙에 기반하여 정의된 프로세스가 수행되는 단계

- 예측(Predictable) : 프로세스가 목적 달성을 위해 통제되고, 양적인 측정을 통해서 일관되게 수행되는 단계

- 최적화(Optimizing) : 프로세스 수행을 최적화하고, 지속적인 개선을 통해 업무 목적을 만족시키는 단계

 

핵심

- ISO/IEC 12207 : ISO에서 만든 표준 소프트웨어 생명 주기 프로세스(기본, 지원, 조직)

- CMMI : 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델

- SPICE의 5개의 프로세스 범주 & 수행 능력 6단계 


164. 소프트웨어 개발 방법론 테일러링

1. 소프트웨어 개발 방법론 테일러링의 개요

- 소프트웨어 개발 방법론 테일러링은 프로젝트 상황 및 특성에 맞도록 정의된 소프트웨어 개발 방법론의 절차, 사용기법 등을 수정 및 보완하는 작업

- 절차 : 프로젝트 특징 정의 -> 표준 프로세스 선정 및 검증 -> 상위 수준의 커스터마이징 -> 세부 커스터마이징 -> 테일러링 문서화

 

2. 소프트웨어 개발 방법론 테일러링 고려사항

- 소프트웨어 개발 방법론 테일러링 작업 시 고려해야 할 사항에는 내부적 요건과 외부적 요건이 있다.

- 내부적 요건

       - 목표 환경 : 시스템의 개발 환경과 유형이 서로 다른 경우 테일러링이 필요하다.

       - 요구 사항 : 프로젝트의 생명 주기 활동에서 개발, 운영, 유지보수 등 프로젝트에서 우선적으로 고려할 요구사항이 서로 다른 경우 테일러링이 필요하다.

       - 프로젝트 규모 : 비용, 인력, 기간 등 프로젝트위 규모가 서로 다른 경우 테일러링이 필요하다.

       - 보유 기술 : 프로세스, 개발 방법론, 산출물 등이 서로 다른 경우 테일러링이 필요하다.

 

- 외부적 요건

       - 법적 제약사항 : 프로젝트별로 적용될 IT Compliance(법적 규제)가 서로 다른 경우 테일러링이 필요하다.

       - 표준 품질 기준 : 금융, 제도 등 분야별 표준 품질 기준이 서로 다른 경우 테일러링이 필요하다.

 

3. 소프트웨어 개발 방법론 테일러링 기법

- 프로젝트 규모와 복잡도에 따른 테일러링 기법 : 가장 일반적인 기법으로, 프로젝트 규모를 대중소로 구분하고, 업무의 난이도에 따라 복잡도를 상중하로 구분하는 기법

- 프로젝트 구성원에 따른 테일러링 기법 : 참여 구성원들의 기술적 숙련도를 확인하여 테일러링 수준을 결정하는 기법

- 팀내 방법론 지원에 따른 테일러링 기법 : 프로젝트 수행 시 각 팀별로 방법론 담당 인력을 배정하여 팀의 방법론 교육 을 담당하도록 인력을 구성하는 기법

- 자동화에 따른 테일러링 기법 : 프로젝트 수행 시 작업 부하를 줄이기 위해 중간 단계에서의 산출물을 자동화 도구를 사용하여 산출할 수 있도록 지원하는 기법

 

핵심

- 테일러링 고려사항 : 내부적 요건(목표 환경, 요구사항, 프로젝트 규모, 보유 기술), 외부적 요건(법적 제약사항, 표준 품질 기준)

- 소프트웨어 개발 방법론 테일러링 기법 : 프로젝트의 규모와 복잡도, 프로젝트 구성원, 팀내 방법론 지원, 자동화


165. 소프트웨어 개발 프레임워크

1. 소프트웨어 개발 프레임워크의 개요

- 프레임워크(Framework)는 소프트웨어 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 손쉽게 구현할 수 있도록 여러 가지 기능들을 제공해주는 반제품 형태의 소프트웨어 시스템이다.

- 프레임워크의 주요 기능에는 예외 처리, 트랜잭션 처리, 메모리 공유, 데이터 소스관리, 서비스 관리, 쿼리 서비스, 로깅 서비스, 사용자 인증 서비스 등이 있다.

- 프레임워크의 종류에는 스프링 프레임워크, 전자정부 프레임워크, 닷넷 프레임워크 등이 있다.

 

2. 스프링 프레임워크(Spring Framework)

- 스프링 프레임워크 자바 플랫폼을 위한 오픈 소스 경량형 애플리케이션 프레임워크이다.

- 동적인 웹 사이트의 개발을 위해 다양한 서비스를 제공한다.

- 전자정부 표준 프레임워크의 기반 기술로 사용되고 있다.

 

3. 전자정부 프레임워크

- 전자정부 프레임워크우리나라의 공공부문 정보화 사업 시 효율적인 정보 시스템의 구축을 지원하기 위해 필요한 기능 및 아키텍처를 제공하는 프레임워크이다.

- 전자정부 프레임워크는 개발 프레임워크의 표준 정립으로 응용 소프트웨어의 표준화, 품질 및 재사용성의 향상을 목적으로 한다.

- 오픈소스 기반의 범용화가 되고 공개된 기술을 활용함으로써 특정 업체의 종속성을 배제하고 사업별 공통 컴포넌트의 중복 개발을 방지한다.

 

4. 닷넷 프레임워크(.NET Framework)

- 닷넷 프레임워크Windows 프로그램의 개발 및 실행 환경을 제공하는 프레임워크로, Microsoft 사에서 통합 인터넷 전략을 위해 개발하였다.

- 닷넷 프레임워크는 코드 실행을 관리하는 CLR(Command Language Runtime, 공용 언어 런타임)이라는 이름의 가상머신 상에서 작동한다.

- 메모리 관리, 유형 및 메모리 안전성, 보안, 네트워크 작업 등 여러 가지 서비스를 제공한다.

 

핵심

- 스프링 프레임워크 : 자바 플랫폼을 위한 오픈 소스 경량형 애플리케이션 프레임워크

- 전자정부 프레임워크 : 공공부문 정보화 사업 시 사용하는 플랫폼별 표준화된 개발 프레임워크

- 닷넷 프레임워크 : Windows 프로그램 개발 및 실행 환경 제공하는 프레임워크

Comments