TRACK 1 무기체계 SW 설계및프로세스 SW 신뢰성데이터통합구축자동화방안 MDS 테크놀로지이은주차장
Contents I. SW 신뢰성데이터확보 II. SW 신뢰성데이터통합자동화 III. SW 신뢰성데이터통합자동화 Use Case IV. SW 신뢰성데이터통합자동화의효과
SW 신뢰성데이터란?» 무기체계소프트웨어개발및관리실무지침서 ( 방위사업청발간, 2016.7.13) 제 2장무기체계소프트웨어개발지원활동 11. 시험평가 부록 7. 소프트웨어신뢰성시험평가 코딩규칙검출 (QAC/QAC++) 코딩규칙및품질 Metric 을검사하여 SW 의품질측정및개선 실행시간오류검출 (CodeSonar) SW 실행시간오류를제거하여잠재적결함을최소화하고강건성을향상 코드실행률확인 (VectorCAST) 요구사항에명시된기능 / 비기능에대한 SW 완성도를검사 3
SW 신뢰성데이터확보절차 코딩규칙검출 (QAC/QAC++) 실행시간오류검출 (CodeSonar) 4
SW 신뢰성데이터확보절차 코드실행률확인 (VectorCAST) 5
SW 신뢰성데이터확보절차 Coding Build/ 통합 Test1 Test2 요구사항관리 형상관리 이슈관리 Test3 6
라이선스사용량 SW 신뢰성데이터확보비용» SW 테스팅비용증가 - 방위사업청품질지침요구사항만족을위한테스팅비용증가» 비효율적인프로세스로인한비용 - 비효율적인개발, 통합, 검증의업무프로세스로인한비용증가» 자원관리실패에따른비용증가 - HW 장비, SW License 리소스의비효율적사용으로인한비용추가 검증기간 1 차 SW 릴리즈 2 차 SW 릴리즈 개발시간 효율적인라이선스사용량 비효율적인라이선스사용량
Contents I. SW 신뢰성데이터확보 II. SW 신뢰성데이터통합자동화 III. SW 신뢰성데이터통합자동화 Use Case IV. SW 신뢰성데이터통합자동화의효과
SW 신뢰성데이터통합자동화» 프로세스모델화로자동화, 다양한도구지원, 품질요구사항에따라자동설정 개발, 품질, 관리 Web Dashboard 정책설정자동화설계 Build Check / Preflight Build Test Deploy Release Trigger Trigger Trigger Trigger ElectricFlow Agent Agent Agent Agent Virtual Physical Cloud SCM 9
SW 신뢰성데이터통합자동화고려사항 1. 다양한 Tool infrastructure 지원 A 개발 B 개발 C System Download Download Download 해외연구소 Download ElectricFlow 병렬수행 Download [ 프로젝트관리 ] 팀빌드시스템 [ 자동화업무병렬수행 ] Host (Work Agent) 현재의 Tool Chain 뿐아니라향후대응가능해야함 10
SW 신뢰성데이터통합구축고려사항 2. SW 신뢰성품질기준만족 - OEM 요구사항에만족하는코딩규칙, 코드실행률, 실행시간오류등의자동분석 - 각단계별산출물은자동으로저장되며추적성확보 - 품질부서에서는최종산출물을실시간으로확인가능 3. 통합된 Test Framework 를개발자에게서비스 - 별도의도구설치없이코드 Commit 후수 ( 십 ) 분이내에웹으로검증결과확인가능 - 코딩규칙검증, 런타임오류검증, 코드실행률의결과를웹페이지를통해확인및검토 - 테스팅도구등의사용으로인한업무비용감소 4. 업무효율 - 회사내모든프로젝트를실시간으로모니터링하여프로젝트의진행상황예측가능 - 개발프로세스의자동화 ( 검토, 승인, 배포, 등의업무를클릭으로자동화 ) - ALM 프로세스도구와연동하여업무연계 11
ElectricFlow 시스템구성도 Build Check / Preflight Code 변경및추가 1 [ 개발자 ] 외부시스템 ALM 2 테스트결과 Review Commit 형상관리시스템 Dash Board 실행정책 [Trigger] 3 ElectricFlow Commit» 프로젝트자동화시스템구조도 [Continuous Testing] 4 아키텍처검증 개별제품 App or Web 개별제품 Server App or Web 개별제품 Server App or Web 개별제품 Server App or Web Server 6 업무승인요청 코딩규칙검사 Test Agent 실행시간오류검사 코드실행률 Pass/Fail Pass/Fail Pass/Fail Pass/Fail 8 5 [ 품질 ] Pass/Fail Simulator [Work product] [Continuous Delivery] 9 배포 [ 관리자 ] 프로젝트관리및통제 정책설정 - SW 품질기준 - 승인및배포절차 - 프로세스자동화 7 Model 검증 코딩룰검사 실행시간오류검사 단위시험 ALM 12
Contents I. SW 신뢰성데이터확보 II. SW 신뢰성데이터통합자동화 III. SW 신뢰성데이터통합자동화 Use Case IV. SW 신뢰성데이터통합자동화의효과
SW 신뢰성데이터통합자동화 Use Case 1 개발 IDE 에서 preflight build 로사전점검 Email Success 형상관리시스템 Fail (Auto Trigger) Exit Criteria Auto Manual 14
SW 신뢰성데이터통합자동화 Use Case 2» 신뢰성시험을여러대의 agent 에분산하여동시에수행함으로써빠른결과얻을수있음 Fail 개발 IDE 에서 preflight build 로사전점검 Success 형상관리시스템 (Auto Trigger) 동시수행 Simulator Target
ALM, 이슈관리시스템등타시스템연결관리» 요구사항이력추적, 이슈관리추적을통한효과적인시스템통합가능 16
Artifact 기능제공으로신뢰성데이터통합관리» 산출물 (Artifact) 관리를통해신뢰성데이터를하나의저장소에통합관리 17
Dashboard : 프로젝트실시간관리및시각화» 전체프로젝트의빌드 - 테스트 - 승인진행현황을하나의화면에서확인가능 18
ElectricFlow 국내적용사례 A 사» Continuous Integration > Continuous Delivery 단계별로 Plan requirement Develop Define, Code Build Compile, Package Static Test Provision, Configure, Deploy, Test Deploy Provision, Configure, Deploy Unit Test System Test Monitor, Service Deploy, Unit/System Test Project(All), Human Error 개선 2017 년 2018 년 Project(24 개 ), Human Error 2015~2016 년 Pilot Project 2014 년 19
ElectricFlow 국내적용사례 A 사» 프로젝트개발 / 테스트환경 적용프로젝트형상관리컴파일러 Test Tool 2014년 : 1개 2015년 : +13개 2016년 : +10개 2017년 : All Integrity Git Synergy Subversion Repo File TASKING 2.X TASKING 3.X gcc java CodeWarrior Freescale Greenhills QAC/QAF CodeSonar VectorCAST Findbugs 자체개발 CLI 20
빌드자동화시스템공통프로시저표준화 / 공용화» 형상관리및 ALM (Integrity, Synergy, Git, Repo, SVN, Polarion, Perforce, ClearCase 등 ) 21
빌드자동화시스템공통프로시저표준화 / 공용화» 빌드 (TASKING, CodeWarrior, GreenHills, Freescale, Ant, Make, MSBuild 등 ) 22
빌드자동화시스템공통프로시저표준화 / 공용화» 신뢰성평가 (QAC, CodeSonar, VectorCAST, FindBug 등 ) 23
지속적인통합 (Continuous Integration)» 표준화한모듈기반으로프로시저생성및실행 24
업무승인 / 통제프로세스» Trigger, Event 등으로각업무를자동으로수행할수있도록지원» Decision 다이어그램을사용하여프로세스의승인및업무 Feedback 을자동화 Test workflow Deploy to test environment Run tests Aggregate test results Update test status Test Dashboard Auto Run Tests in Parallel With a simple click in process definition Auto manage differing required resources Act on consolidated results data 25
Pipeline/Release Module» 전체프로젝트의빌드 - 테스트 - 승인진행현황을하나의화면에서확인가능 26
CI Sentry Schedule 연동하여 build trigger flow 기존모니터링기준 모니터링하는 Checkpoint 기준으로, 그안에서변경사항이발생한경우 triggering Baseline 생성시자동빌드기능 Integrity : 신규 checkpoint가생성되는경우 triggering Git : 신규 Tagging 추가시 triggering Synergy : 신규 Baseline 생성시 triggering 연동되는형상관리도구 (Integrity, Git, Synergy) 및요구사항에따라 plug-in 추가개발 CI Sentry Schedule Dynamic Procedure Dynamic Build New CI 등록 변경사항모니터링 (Plug-in 수정 / 추가 ) 프로시저 Template 작성 Clone/modify 빌드수행 프로시저기반 Sentry Schedule 생성 신규프로시저동적생성 27
빌드요청시형상관리 Revision 목록반영 CI Sentry Schedule Revision 목록추가 Build 변경사항모니터링 (Plug-in 수정 ) 신규 Revision 프로시저파라메터추가 Dropbox Revision 선택 Revision 에따라 CreateSandbox 28
테스팅도구 license 체크및 retry 기능요구 License check count/sleep(min) 입력 동적으로 license check count 만큼정적테스트분석 step 생성 정적테스트분석이완료되면다음 step 생략 License check count / sleep(min) 입력 동적으로 license check count 수만큼 Polyspace 분석 step 생성 29
빌드유효성검사» 빌드옵션및설정값유효성검사 ( 휴먼에러방지 ) 1_System_OS property 에입력된특정 File 에서 abc_12345 찾기성공 F_VR_NAND property 에입력된값이 20141118_E0469 test 와불일치하여 false 30
엑셀사양서기반 Makefile 생성» Makefile 생성시발생하는휴먼에러방지 31
ElectricFlow 적용사례 Aerospace / Defense Automotive Semiconductor ISV, Internet & Gaming Financial Services Networking Medical Devices Mobile Devices Heavy Industry Other Systems 32
Contents I. SW 신뢰성데이터확보 II. SW 신뢰성데이터통합자동화 III. SW 신뢰성데이터통합자동화 Use Case IV. SW 신뢰성데이터통합자동화의효과
SW 신뢰성데이터통합자동화의효과업무효율 테스팅도구등의사용으로인한업무비용감소예 ) 교육비용 : 500명 X 8시간 X 3개TOOL = 12,000 시간 코딩룰검증, 런타임오류검증, 단위시험의결과를별도의도구설치없이웹페이지를통해확인및검토 기존의프로세스상 Airgap( 검증요청, 승인, 배포등 ) 으로인한업무지연제로화 프로젝트관점 사내모든프로젝트를실시간으로모니터링하여프로젝트의진행상황예측가능 프로젝트자동화로개발자, 소프트웨어품질, 관리자에게실시간피드백제공 프로젝트모든이해관계자에게실시간 (24시간무정지 ) 으로자동화서비스제공 품질관점 SW 증가에대한종합적인대응가능 실시간통합검증자동화서비스로코드내버그잔존율의제로화 공동프로젝트에도동일한프로젝트테스트전략적용가능 34
Q & A
Thank you MDS 테크놀로지 www.mdstec.com SES 사업 3 팀이은주차장 031-627-3132 / 010-8286-0479 eunju@mdstec.com 본사 13493 경기도성남시분당구대왕판교로 644 번길 49 한컴타워 3 층 031-627-3000 연구소 13487 경기도성남시분당구판교로 228 번길 17 판교 7 벤처밸리 2 단지 1 동 9 층 031-600-5000