효과 www.soft4soft.com
Contents 소프트웨어및코드인스펙션정의 소프트웨어결함및적용기술 생명주기상결함효과 코드인스펙션 CMM Levels 정의 CMM Level 4 와 SQA CMM Levels 과코드결함수 코드인스펙션도입사례 코드인스펙션도입효과 SW 품질관리및검증효과 2
소프트웨어및코드인스펙션정의 정의 소프트웨어의결함을발견하기위하여개발과정상의결과물을검토하는것 대상 요구사항, 설계등의문서산출물 개발단계의소스코드 요구분석 코드인스펙션 인스펙션 설계 인스펙션 구현 인스펙션 단위테스트통합테스트시스템테스트 개발단계의소스코드를인스펙션하여해당소스코드에내재되어있는직. 간접적인결함, 성능및메모리의문제점을검출 3
소프트웨어결함및적용기술 소프트웨어결함분포 J.E.Heiser, An Overview of Software Testing. IEEE TOSE 1997 SW Lifecycle Requirements Design Coding Documentation Bad Fixes Total Defect Ratios 20% 30% 35% 5% 10% 100% Defects per FP 1.00 1.25 1.75 0.60 0.40 5.00 소프트웨어결함제거기술의효과 Life Cycle Techniques Req. Defect Design Defect Code Defect Documentation Defect Performance Defect Review, Inspection Fair Exc. Exc. Good Fair Prototype Good Fair Fair N/A Good Dynamic Test Poor Poor Good Fair Exc. Program Proof Poor Poor Good Fair Poor 4
100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% 생명주기상결함제거효과 J.E.Heiser, An Overview of Software Testing. IEEE TOSE 1997 5 Requirement Review Top-Level Design Review Detailed Design Review Code Inspection Unit Test Functional Test Integration Test Site/Installation Test 30 Highest 45 40 60 Lowest Median 50 45 35 25
코드인스펙션 코드검사점검활동 CMM 4 수준 Quality Plan : 코드표준정의서 Quality Goal : Zero-Defect 코드품질목표 Quality Measure : 코드품질목표를달성하기위한품질평가 Quality Control : 코드품질을정량적으로관리하여품질목표를달성 Coding Plan Guidelines Code Goal Layout Performance Resource Education Programmer Source Code Development Server Coding Rules Coding Violation Measure Improvement Guide Automatic Code Inspection Tool Status Reporting Code Quality Control & Monitoring < 효과적인프로세스 > PMO, QA Manager 6
코드인스펙션과결함유형 코드인스펙션 Inspection Type Defect Type Inspection Check Coding Standard Violation Coding Style Naming Convention Hard Coding 일관된코딩구조와스타일유지코드의가독성및이해성향상코드의유지관리성향상및비용절감 ( 효과 ) 규격화된우수한코드작성 Powerful Code Inspection Rules Potential error or Actual error Data errors Control errors Input/output errors Interface errors Exception management errors Storage management errors SW 품질향상 - 성능향상 - 메모리누수예방 ( 효과 ) 고급코딩기술과프로그래밍기능사용유도 7
코드인스펙션 : MISRA-C MISRA-C ANSI C MISRA-C (Motor Industry Software Reliability Association) 자동차 ( 우주항공, 통신, 의료, 국방등 ) 제조분야 C 코딩가이드라인제시 ISO/IEC C 표준 9899:1990/1999 기반으로한표준문서 MISRA-C 가이드라인 (www.misra.org.uk) 안전성과관련된고급언어에서프로그램되어야하는코딩을위하여 Safer C 지침을개발한회사들의모임 코딩시적용가능한 141 개의코딩규칙 -121 mandatory, 20 advisory MISRA 운영위원회 AB Automotive Electronics Ltd Ford Motor Company Ltd Jaguar Cars Ltd Lotus Engineering MIRA Ltd Ricardo Tarragon Ltd TRW Automotive Electronics 8
CMM Level 3 ( 정의됨 ) CMM Levels 정의 재품과프로세스가표준화되고잘정의되는단계 ( 관리 / 통제되지않은단계 ) CMM Level 4 ( 관리됨 ) 제품과프로세스가관리되고통제되는단계 제품과프로세스를정량적으로측정 / 평가되어그결과를관리하는단계 수행결과에대한데이터를수집하고분석하여결과를피드백하는단계 Level 5: Optimizing ( 계속적인프로세스개선 ) Level 4: Advanced ( 소프트웨어제품과프로세스에대한자세한측정치 ) Key: SW Quality/Quantity Process Management Level 3: Defined ( 효과적인소프트웨어공학기술적용 ) Level 2: Repeatable ( 기본적인프로젝트관리프로세스 ) Level 1: Initial ( 가장기초적인개발환경 ) 9
Focus CMM Level 4 와 SQA Product and process quality Key Process Areas Quantitative process management Software quality management Software quality management Goal 프로젝트의 SW 품질관리활동을계획한다 SW 산출물품질의평가목표와그우선순위를정의한다 SW 산출물의품질목표를달성하기위한실제진척을평가하고관리한다 SQA (Software Quality Assurance) 의정량적인품질관리 Quality Plan : SW 및코드표준정의서 Quality Goal : 정량적인품질의목표를설정 Quality Measure : SW 품질목표를달성하기위한품질평가 Quality Control : SW 산출물에대한품질을정량적으로관리하여품질목표를달성 SQA 를위한 RESORT 의품질관리도구 SW Quality Tool SW 품질 Code Checker Tool 코드품질 10
CMM Levels 과코드결함수 Level 5 ( 최적화 ) Best -Quality Controlled and Repeatable Results 출처 : CMU SEI TR, Sept. 2003-014 코드인스펙션후, KLOC 당결함수감소 Level 4 ( 정량적관리 / 통제됨 ) Operating with Checks and Balances Level 3 ( 표준화 / 정의됨 ) Coding Standards must be Enforced Level 2 ( 반복 ) An Organization must have a Coding Standards Level 1 ( 초기 ) Results Not Controlled and Non Repeatable Industrial Average: 6-30 Defects/KLOC 휴대폰 SW( 약 5oo만라인 ) 3,000 Defects 우주왕복선 SW( 약 5oo만라인 ) 500 Defects 11
코드인스펙션도입사례 인스펙션도입사례 AT&T HP IBM 회사 Bell-Northern Research 도입효과 텔레커뮤니케이션시스템제품에대해서요구, 디자인, 코드, 테스트계획부분에대해서인스펙션한결과인스펙션은생산성에서 14% 의증가를보였으며, 품질에서 10 배의증가를보였고테스트보다 20 배이상의효율을보였음이보고되었다 어떤제품에대해서코드인스펙션을사용한결과시간당 0.2 개의오류를발견하였으며, 다른테스트에의한것보다 80% 의다른오류를발견하였음이보고되었다 텔레커뮤니케이션시스템제품에대하여코드인스펙션을적용한결과 Man-hour 당 1 개의오류를발견하였으며테스트보다인스펙션은 20 배이상효율적이라는사실이보고되었다 운영체제제품을개발하면서디자인과코드인스펙션을적용한결과코딩생산성이 23% 증가하였으며, 단위테스트후오류검출에서 38% 감소하였으며오류검출당 1.1hour 가소요됨이보고되었다 12
코드인스펙션도입효과 인스펙션도입전. 후효과 ( 출처 : Michael Fagan ) Project Cost Savings Schedule Savings 13
코드인스펙션도입효과 인스펙션도입효과 Benefits 에러예방비용절감도입효과중요성 Inspection versus Testing [IBM Journal, HP Journal] 개발초기에에러예방 테스팅단계로전파되는에러를적어도 60-80% 정도줄임 (82%(IBM), 80%(HP) 제거 ) 인스펙션을한시간동안효과적으로수행하는것은 8~12 시간정도의테스트작업절약 테스팅시에러발견및수정에드는비용 60-80% 정도절약 프로젝트팀간의대화향상 개발및테스트프로세스의품질및생산성향상 비용및개발기간단축 유지보수노력절감 " 하나의좋은인스펙션은 30,000 개의테스트케이스와동등한효과를가져올수있다." - Vern Crandell 14
SW 품질관리및검증효과 Increases -Quality -Productivity -Profitability SW 및프로그램의품질점검자동도구활용으로개발표준화및제품품질향상 CMM/CMMI 와같은 SW 품질의잠재적에러를소프트웨어인증을통한사전에예방함으로써기업의경쟁력향상개발비용및시간절감 Reduces -Cost -Time -Risk SW 개발표준화로 SW 신뢰성증대및유지보수성향상 프로그램검수의자동화를통한코드검증기간단축, 검수인력및비용의절감 15
If you cannot MEASURE it, you cannot IMPROVE it 소프트 4 소프트 대전광역시유성구문지동 103-6 ICU 창업보육센터 T215 호 Tel : 042-866-6632~3 Fax: 042-866-6626 구매및데모문의 : sales@soft4soft.com 기술및일반문의 : info@soft4soft.com www.soft4soft.com 16