5과목. 정보시스템 구축관리 1장. 소프트웨어 개발 방법론 활용
03. 소프트웨어 개발 표준 1. 소프트웨어 개발 품질 개선 및 평가 – 체계적으로 소프트웨어 라이프사이클 공정에서 표준을 제공하고 소프트웨어 개발 및 유지보수에 있어 프로세스 관리 방법 및 품질 개선을 위한 방법을 제공한다.- 소프트웨어 품질평가 및 개선모델로는 ISO/IEC 12207, CMMI, SPICE 모델 등이 있다.2. 소프트웨어 개발 품질 개선 및 평가 모델
1) ISO/IEC 12207 소프트웨어의 체계적인 획득, 공급, 개발, 운영 및 유지보수에서 소프트웨어 라이프사이클 공정 표준을 제공함으로써 실무자가 동일 언어로 의사소통을 할 수 있는 기본 틀을 제공하기 위한 국제적인 프로세스 표준이다.<ISO/IEC 12207 표준 소프트웨어 라이프사이클 프로세스>
프로세스 상세 프로세스 기본 라이프 사이클 프로세스 획득 프로세스, 공급 프로세스, 개발 프로세스, 운영 프로세스, 유지보수 프로세스 지원 라이프 사이클 프로세스 문서화, 품질보증, 형상관리, 검증, 확인, 문제해결, 활동검토, 감사 프로세스 조직 라이프 사이클 프로세스 기반 구조 프로세스, 관리 프로세스, 개선 프로세스, 훈련 프로세스
2)CMMI(Capability Maturity Model Integration프로세스 능력 성숙도 모델 체계 공학적 적용 능력)-CMMI는 기존의 능력 성숙도 모델(CMM)을 발전시키고 소프트웨어 품질 보증 기준으로 사용되었던 SM-CMM와 시스템 엔지니어링 분야의 품질 보증 기준으로 사용되었던 SE-CMM를 통합 개발한 후속 평가 모델이다.-CMMI을 통해서 소프트웨어 개발 조직의 업무 능력과 조직의 성숙도를 평가한다.-CMMI는 ISO/IEC에서 CMM이 아니라 유럽 SPICE을 국제 표준으로 제정함으로써 이에 대응하고 미국 카네기 멜론 대학 소프트웨어 공학 연구소(SEI)에서 개발한 모델이다.<CMMI 2.0>CMMI 2.0은 2018년에 발표됐다.① 조직의 성과 효율성 입증 초점 ② Agile, 보안, 안전 등 트렌드 반영 ③ View를 도입하여 유저 프렌들리 모델로 활용 가능(1)CMMI의 2가지 표현 모델구분 단계적 표현(Staged Representation) 연속적 표현(Continous Representation) 개념-가장 기초적인 관리 절차부터 상위 레벨로 향상하기 위해 필요한 실무까지 수행되어야 할 프로세스를 단계별로 제시한다.- 조직 간의 비기입을 가능하게 하는 단일 등급 체계를 제공한다.- 조직의 비즈니스 목적을 충족하고 리스크 요소를 완화하는 데 중요한 개선 사항의 순서를 정하여 적용시킬 수 있다.- 역량 레벨(Capability Level)을 이용하여 프로세스 영역(PA)별 성숙도를 평가한다.개념도레벨 성숙도 레벨(Maturity Level) 역량 레벨(Capability Level) 예제 모델 SW-CMMSE-CMM(2) CMMI 역량 성숙도 단계Level 단계 설명 Level0 불완전(Incomplete) 활동이 수행되지 않는 Level1 초기(Initial) 정의된 프로세스가 없으며 작업자의 능력에 따라 성과가 좌우되는 Level2 관리(Managed) 특정 프로젝트 내 프로세스 정의 및 실행 Level3 정의(Defined) 조직 내 프로세스 표준화 정의 및 실행 Level4 정량적 관리(Quantitative Management) 지속적인 프로세스 개선CMMI는 SW-CMM, SE-CMM 등을 통합해 발전시킨 것이고 CMMI 레벨은 여러 CMM 레벨을 통합한 것이다.3) SPICE(Software Process Improvement and Capability d Etermination, 소프트웨어 처리 개선 및 능력 평가 기준) – 소프트웨어 프로세스 전반을 심사하고 조직의 소프트웨어 개발 프로세스를 개선하여 개발자의 능력을 향상시키고 개발 리스크를 제어하는 소프트웨어 품질 평가 표준이다.- 소프트웨어 개발 표준 중 소프트웨어 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준이다. (1) SPICE 프로세스프로세스 그룹 설명 기초 과정 고객-공급자 소프트웨어를 개발하여 고객에게 전달하도록 지원하고 소프트웨어의 정확한 사용과 운용을 실시하는 프로세스 공학-시스템과 소프트웨어 제품의 명세화, 실장, 수리를 실시하기 위해서 사용되는 프로세스-개발 및 관리 수행 지원 프로세스 지원 소프트웨어 라이프 사이클에 있어서 다른 프로세스에 의해서 이용되는 프로세스-문서화, 형상 관리, 품질 보증 감사 수행 조직 공정 관리-소프트웨어 라이프 사이클에 있어서 프로젝트 관리자에 의해서 사용되는 프로세스-프로젝트 관리, 품질 관리 리스크 관리 수행 조직의 업무 목적의 확립과 조직의 업무 목표 달성을 위한 위한 위한 위한 위한 위한 프로세스-조직의 배치(2) SPICE 수행 능력Level 단계 설명 Lev.0 불완전(Incomplete) 목적의 미달성 Lev.1 수행(Performed) 프로세스 수행 목적 달성 Lev.2 관리(Managed) 프로세스 수행 계획 및 관리 Lev.3 확립(Established) 표준 프로세스 사용 Lev.4 예측(Predicted) 프로세스 정량적 이해 및 통계 Lev.5 최적화(Optimizing) 프로세스 지속적 개선04.소프트웨어 개발 프레임워크1. 소프트웨어 개발 프레임워크의 개념 정보 시스템 개발에 필요한 기능 및 아키텍처를 재사용 가능한 라이브러리 및 클래스에 미리 만들어 제공하고, 이를 통해 효율적인 애플리케이션 구축을 지원하는 반제품 형태의 소프트웨어 집합이다.2. 소프트웨어 개발 프레임워크 유형프레임워크 설명 스프링 프레임워크-EJB*베이스의 복잡성과 무게를 극복하고 개발 생산성 향상과 고품질의 시스템 개발을 위한 JavA플랫폼 상의 경량화된 오픈 소스 웹 애플리케이션 프레임워크이다.-전자 정부 체제의 기반 기술로서 사용된다.전자 정부 체제-공공 사업에 적용되는 개발 프레임워크의 표준을 제공하고 응용 소프트웨어의 표준화, 품질 및 재이용성 향상을 목표로 한다.-JAVA기반의 개발, 운영, 표준 환경을 제공한다.-전자 정부 서비스의 품질 향상 및 정보화 투자 효율성 향상을 달성하는 대기업, 중소 기업이 같은 개발 기반 위에서 공정 경쟁이 가능하도록 기반을 제공한다.닷넷 프레임워크-마이크로 소프트 사에서 개발한 윈도 프로그램 개발 및 실행 환경을 제공한다.-네트워크 작업, 인터페이스 등의 많은 작업을 캡슐화하고, 공통 언어 런타임(CLR:Common Language Runtime)라는 런타임 환경을 제공하고 코드 실행 및 개발 과정을 쉽게 하는 서비스를 제공한다.* EJB(Enterprise Java Beans, 엔터프라이즈 자바빈스) : 기업 환경의 시스템을 실현하기 위한 서버측 컴포넌트 모델 → 업무 로직을 처리 3. 소프트웨어 개발 프레임워크의 단계와 활동단계활동개발준비팀 구성, 테일러링 및 개발사전준비분석-요구사항분석, 업무, 데이터분석, 아키텍처분석-분석단계 테스트계획 수립, 분석단계 점검수행설계-아키텍처와 애플리케이션설계, DB설계 및 데이터전환설계-설계단계 테스트계획 수립, 설계단계 점검수행 구현준비, 개발단위테스트, 구현단계 점검수행시험테스트, 시험단계 점검수행 전개작업 수행인도작업과 인계 및 교육 수행단계활동개발준비팀 구성, 테일러링 및 개발사전준비분석-요구사항분석, 업무, 데이터분석, 아키텍처분석-분석단계 테스트계획 수립, 분석단계 점검수행설계-아키텍처와 애플리케이션설계, DB설계 및 데이터전환설계-설계단계 테스트계획 수립, 설계단계 점검수행 구현준비, 개발단위테스트, 구현단계 점검수행시험테스트, 시험단계 점검수행 전개작업 수행인도작업과 인계 및 교육 수행4. 소프트웨어 개발 프레임워크 적용 효과적용효과설명 개발생산성 증대와 품질향상효과 – 공통적으로 필요한 기능을 사전에 제공하여 개발공수 최소화 등 생산성 증대 및 교환손실 비용절감효과 – 개발자 개인별 능력, 성향에 따른 품질편차를 최소화하고, 그에 따라 애플리케이션 품질향상 재사용성 및 상호운용성 극대화 – 개발된 컴포넌트 재사용가능 – 컴포넌트 공유 및 연계가 용이하고 상호운용성 극대화 정보화 서비스 표준화율 향상 템플릿 기반의 정형화된 개발패턴과 방법을 표준으로 제시한다.05. 소프트웨어 개발 방법론 테일러링(Tailoring) 1. 테일러링의 개념 소프트웨어 개발 방법론 테일러링은 소프트웨어 개발 프로젝트의 특성이나 상황 등을 고려하여 기존의 소프트웨어 개발 방법론의 절차, 기법, 단계별 산출물 등에 대해 현장에서 보다 적합하도록 수정하는 기법이다.2. 테일러링의 순서 테일러링 프로세스는 크게 5단계로 나누어 상세한 활동을 수행한다.▲ 테일러링 절차프로세스 상세 순서 설명 프로젝트 특징 정의 프로젝트 프로파일 파악 사업 목표, 프로젝트 이해, RFP*, 제안된 프로젝트 특징 파악 PM*인터뷰, 요구 사항 이해, 인터뷰 결과 표준 프로세스 선정 및 검증 표준 프로세스 선정 의사 결정 트리(Decision Tree)활용 표준 프로세스 검증 과정별 특징과 개발 프로세스 적합성 비교 테이블 활용 상위 레벨의 커스터마이즈 프로젝트 라이프 사이클 정의 비즈니스 Needs에 의한 라이프 사이클 정의 프로젝트 단계 조정 단계로 스텝의 조정 세부 커스터마이즈 상세 WBS*적용 테일러 링 매트릭스 활용 Activity조정 단계별 생산물 선정, 기타 구성 요소 수정 계획., 예상 공정 수 등 테ー라 링 문서화 결정 사항 문서화 작업 결과 작성 WBS테일러 링 근거 검토 승인-검토회회의 실시, 변경 사항 수정-PM승인* RFP(Request For Proposal): 제안요청서*PM(Project Manager): 프로젝트 매니저, 작업관리자*WBS(Work Breakdown Structure): 작업분할구조도, 작업명세구조, 계층구조 매트릭스*MS Project: 프로젝트관리 소프트웨어▲ MS Project(Microsoft Project): 프로젝트 관리 소프트웨어3. 테일러링 기준기준 항목 설명 내부적 기준 목표 환경 시스템 개발 유형 및 환경 이상 요구 사항 프로젝트의 라이프 사이클 활동으로 개발, 운영, 관리 등 프로젝트에서 우선적으로 고려해야 하는 요구 사항이 다른 경우, 프로젝트 특성 사업비, 참여 인력, 기간 등 프로젝트의 특성이 다르다.보유 기술 프로세스, 산출물, 방법론, 인재의 숙련도가 다른 외부적 기준 법적 규제 프로젝트 도메인에 의한 컴 플리언스가 다른 경우 ex. 개인 정보 보호 법, 정보 통신망 법, GDPR등 품질 기준 프로젝트 도메인에 의한 산출물 품질 기준이 다른 ex. 대규모/소규모 프로젝트와 공공/민간 프로젝트 기준기준항목 설명 내부적 기준목표 환경시스템 개발유형 및 환경이상요구사항 프로젝트의 라이프사이클 활동에서 개발, 운영, 유지보수 등 프로젝트에서 우선적으로 고려해야 할 요구사항이 다를 경우 프로젝트 특성사업비, 참여인력, 기간 등 프로젝트 특성이 다르다.보유 기술 프로세스, 산출물, 방법론, 인력 숙련도가 다른 외부적 기준 법적 규제 프로젝트 도메인에 따른 컴플라이언스가 다른 경우 ex. 개인정보보호법, 정보통신망법, GDPR 등 품질기준 프로젝트 도메인에 따른 산출물 품질기준이 다른 ex. 대규모/소규모 프로젝트와 공공/민간 프로젝트 기준기준항목 설명 내부적 기준목표 환경시스템 개발유형 및 환경이상요구사항 프로젝트의 라이프사이클 활동에서 개발, 운영, 유지보수 등 프로젝트에서 우선적으로 고려해야 할 요구사항이 다를 경우 프로젝트 특성사업비, 참여인력, 기간 등 프로젝트 특성이 다르다.보유 기술 프로세스, 산출물, 방법론, 인력 숙련도가 다른 외부적 기준 법적 규제 프로젝트 도메인에 따른 컴플라이언스가 다른 경우 ex. 개인정보보호법, 정보통신망법, GDPR 등 품질기준 프로젝트 도메인에 따른 산출물 품질기준이 다른 ex. 대규모/소규모 프로젝트와 공공/민간 프로젝트 기준4. 테일러링 유형별 기법유형별 기법설명 규모와 복잡도에 따른 테일러링 프로젝트 기간, 규모, 복잡도, 참여인원 프로젝트 구성원에 의한 테일러링 구성원의 기술적 성숙도와 방법론 이해수준 팀내 방법론 지원을 통한 테일러링 각 팀별 방법론 및 지원인력 선정 기법 자동화에 따른 테일러링 중간 산출물 자동화 도구를 사용하여 작업량 감소유형별 기법설명 규모와 복잡도에 따른 테일러링 프로젝트 기간, 규모, 복잡도, 참여인원 프로젝트 구성원에 의한 테일러링 구성원의 기술적 성숙도와 방법론 이해수준 팀내 방법론 지원을 통한 테일러링 각 팀별 방법론 및 지원인력 선정 기법 자동화에 따른 테일러링 중간 산출물 자동화 도구를 사용하여 작업량 감소