技术文章和通讯

ISO 26262프로젝트에仿真万博1manbetx软件를활용하는방법

作者:Tom Erkkinen, MathWorks


자율주행자동차혹은기존의안전관련임베디드시스템을개발하는자동차엔지니어들은승용차개발기능안전표준인ISO 26262[1]의까다로운프로세스요건을효율적으로달성할방법을모색하고있습니다。

모든미디어가이에주목하는만큼최신코딩방식또는버그제거툴등안전시스템구현에대한많은조언들이있습니다。하지만,업계전문가들이오래전에깨달은바에따르면안전은소프트웨어및그코딩방식보다는시스템및그요구사항의올바른구현에좌우됩니다[2]。

연속및불연속시간시뮬레이션을근간으로하는仿真软件万博1manbetx®의모델기반설계(基于模型的设计)를통해전체시스템을설계하고일찍부터다양한주행조건및오류시나리오하에테스트한다음주행시험로에서시험을실시하거나舰队测试를진행할수있습니다。이방식은툴검증을포함하여ISO 26262에명시된프로세스활동도지원합니다。IEC认证工具包에서이러한지원을자세히다루며국제인증기구TUV SUD의툴인증서및보고서도제공합니다。

이글에서는TUV SUD에서승인한워크플로우에따라ISO 26262프로젝트에仿真软件를사용하万博1manbetx는방법을소개합니다。ISO 26262및모델기반설계를소개하고다음작업을살펴봅니다。

  • 요구사항개발
  • 설계모델링
  • 코드생성
  • 설계검증
  • 코드검증
  • 툴검증

ISO 26262와모델기반설계

ISO 26262는수동설계및코드뿐아니라모델기반설계에대한지침을포함하고있습니다。또한모델기반설계의몇가지이점에대해서도설명합니다。[3]

프로세스전과정에걸쳐모델을활용하면매우일관성있고효율적인개발이가능합니다。

이표준에서는수학모델링이”광범위하게사용“되는가운데모델링툴이소프트웨어개발에”준정형적(半正式)그래픽방식”을사용한다고설명합니다。이표준에따르면모델링은필요한기능(임베디드소프트웨어)을구현할뿐아니라전체시스템모델을만들기위한실제물리적시스템(차량모델및환경모델)의시뮬레이션도지원합니다。

그러면매우복잡한자동차시스템도상당한세부수준및우수한계산속도로모델링하여실제와가깝게동작을시뮬레이션하는것이가능합니다。차량/환경모델은개발과정에서점진적으로실제시스템및실제환경으로대체되지만,그기능모델은코드를생성하여제어장치의임베디드소프트웨어를구현하는데청사진의역할을할수있습니다.[3]

은그림1일반적인仿真软万博1manbetx件폐루프시스템모델입니다。컨트롤러,플랜트,신호처리기로구성됩니다。ISO 26262에따르면시스템설계사양이소프트웨어개발의입력이되지만,근본적으로안전은시스템문제이므로훨씬더중요한의미를갖습니다[2]。

그림1。万博1manbetx仿真软件시스템설계모델。

시스템설계가점점정교해지면서프로덕션코드를작성할만한세부수준의소프트웨어청사진이됩니다。ISO 26262에서는이모델이정교해지는과정을”모델진화(模型进化)“라고부릅니다[2]。

현실적으로기능모델은초기사양모델에서설계모델을거쳐구현모델로진화하고최종단계에서코드로자동변환됩니다(모델진화)。

ISO 26262는다양한ASIL(汽车安全完整性级别)기반활동을위한방식을제안합니다。본가이드를참조하여활용사례에적합한워크플로우를마련할수있습니다。ISO 26262프로세스의개요를그림2에서확인할수있습니다。실선화살표는개발활동을,점선화살표는검증및확인활동을나타냅니다。ISO 26262에서말하는”모델진”화는줄임표(…)로표시됩니다。

그림2。万博1manbetx仿真软件를사용하는ISO 26262소프트웨어개발및검증프로세스。

요구사항개발

안전관련개발프로세스의시작은기능및안정요구사항을작성하는것입니다。ISO 26262에서는”소프트웨어아키텍처설계와소프트웨어안전요구사항간의양방향추적기능”을활용하여소프트웨어아키텍처설계를검증하는것을권장합니다。이를위해仿真万博1manbetx软件需求™를사용하여모델,테스트,코드의요구사항을작성하고추적할수있습니다。万博1manbetx仿真软件需求는微软®®,微软Excel®, IBM®理性的®®등다른툴에대한양방향추적을지원합니다。요구사항의구현및검증상태는仿真软件需求万博1manbetx에서모니터링하고관리합니다。생성된코드에요구사항링크가나타날수있습니다(그림3)。

그림3。万博1manbetx仿真软件의요구사항사양。

설계모델링

“ISO 26262와모델기반설계”섹션에서언급한것처럼ISO 26262에서는기능모델이하이레벨실행사양에서프로덕션코드생성이가능한세부설계로진화하는과정을설명합니다。일반적으로다음과같은수정및개선이이루어집니다。

  • 万博1manbetx仿真软件控制设计™이산툴을사용하여연속시간(S도메인)의블록을불연속시간(Z도메인)으로변환
  • 定点设计师™를사용하여배정밀도(双精度)데이터를단정밀도(单精度)또는고정소수점(定点)으로변환
  • Stateflow®를사용하여진단,모델로직,상태기계,스케줄링추가

ISO 26262는ASIL B ~ D에서모델링지침(风格指南)을사용할것을강력히권장하며,이를위해MAAB风格指南[4]및高完整性准则ISO 26262(仿真软件에제공됨)를사용할수있습니다。万博1manbetx万博1manbetx模型检查™는두지침의검사를자동화합니다。편집단계에서기준에부합하지않는블록의삽입과같은문제에플래그를표시할수있습니다。직접지침및검사를포함시킬수도있습니다。

코드생성

ISO 26262에따르면”소프트웨어유닛의구현에는소스코드를생성하고객체코드로변환하는것이포함”됩니다。이를위해嵌入式编码器®를사용하여仿真万博1manbetx软件모델에서C, c++, AUTOSAR코드를생성할수있습니다。이코드는MISRA - C®: 2012자동코드지침[5]에부합할수있습니다。ISO 26262에서는모델기반설계에대한코드지침과수동코드에대한지침이다를수있음을지적하면서그예로MISRA®를듭니다。

IEC认证工具包은C, c++, AUTOSAR용嵌入式编码器(ASIL模拟포함)를위해툴검증을지원합니다。그TUV SUD인증보고서에서는이렇게설명합니다。

嵌入式编码器는ISO 26262의툴지원및자동화요구사항을충족합니다。

嵌入式编码器일반적으로는다음3가지활용사례중하나에적용됩니다。

  1. 프로덕션코드생성에쓰이는모델을위한C코드생성
  2. 프로덕션코드생성에쓰이는모델을위한AUTOSAR응용프로그램소프트웨어구성요소의C코드및설명파일생성
  3. 프로덕션코드생성에쓰이는모델을위한c++코드생성

嵌入式编码器는메모리및속도를위해코드를최적화하는옵션을제공합니다。또한SIMD®的手臂®,英特尔®등하드웨어액셀러레이터를활용하는프로세서별최적화를생성할수도있습니다。ISO 26262에기술된대로모델——코드公益诉讼(processor-in-the-loop)테스트를사용하여최적화코드가규정된허용오차범위에서시뮬레이션결과와일치하는지확인할수있습니다。

생성된소스코드에서컴파일러및링커를사용하여실행객체코드를만듭니다。IEC认证工具包의워크플로우에서는코더,컴파일러,프로세서의최적화가가능합니다。이는公益诉讼테스트가실행객체코드의검증에쓰이는경우대규모프로덕션ECU에필수적입니다。

설계검증

ISO 26262는유닛및통합레벨활동을포함하여소프트웨어설계및구현을검증하는여러정적/동적방식을권장합니다。모델기반설계에대해서는”소프트웨어개발프로세스에따라테스트객체가이모델에서파생된코드이거나모델자체가될수있다”고기술합니다。

万博1manbetx仿真软件测试™는仿真软件내에서ISO 26262확인및검증활동을위한프레임워크를제공합니다。모델및모델로부터생성된코드를위한시스템차원의시뮬레이션기반테스트를개발,관리,실행하는데이를활용할수있습니다。4는그림테스트시퀀스및평가블록의예입니다。

그림4:복잡한테스트시나리오를모델링하고작성하는시仿真软件测试万博1manbetx퀀스및평가블록。

IEC认证工具包의TUV SUD보고서용(ISO 26262)에서는확인및검증자동화에서의仿真软件测试역할을명확하게정의합니다。万博1manbetx

(万博1manbetx仿真软件测试에서)模型모델및생성된코드를확인하고검증하는핵심활동을자동화할수있습니다。다음활용사례는功能安全标准ISO 26262에따른소프트웨어개발프로세스에필요한활동을보여줍니다。

  • 万博1manbetx仿真软件모델테스트개발및실행
  • 모델과코어간연속(背靠背)테스트를위한테스트개발및실행
  • 테스트결과평가
  • 테스트보고서생성
  • 요구사항및테스트케이스간추적가능성확인

ISO 26262에서는구조범위분석을통해테스트가완전한지확인하고의도하지않은기능을찾아낼것을권장합니다。3엄밀성을높이는가지방법을제시하는데,마지막2가지가ASIL-D에강력히권장됩니다。

  • 구문범위(语句覆盖率)
  • 분기범위(分支覆盖)
  • MC / DC범위(MC / DC报道)

이표준에따르면,모델기반설계의경우“모델레벨에서구조범위분석을수행할수있는데,모델에대해유사구조범위(类似结构覆盖率)메트릭을사용하면됩니다。”또한구조범위로충분하지않을경우“추가테스트케이스를지정하거나근거를제시해야”합니다。

万博1manbetx仿真软件覆盖™는모델및생성된코드에대해구조범위를제공하며,仿真软件测试를통한테스트실행을위해손쉽게활성화할수있습니다。모델범위로충분하지않을경우仿真软件设万博1manbetx计校验™를사용하여MC / DC를포함한필수범위를다룰추가테스트케이스를자동생성할수있습니다또한仿真软件检查는복잡성을줄이기위해모델을재작성합니다。메트릭대시보드가있어프로젝트품질을평가하고ISO 26262의“소프트웨어구성요소및인터페이스의낮은복잡도및제한된크기적용”요건을충족할수있습니다(그림5)。

그림5。모델지침준수여부를보여주는메트릭대시보드。

IEC认证工具包은仿真软件检查,仿真软件覆盖(万博1manbetx모델및코드범위포함),仿真软件设计验证器,仿真软件测试를위한TUV SUD인증서및보고서를제공하면서툴검증을지원합니다。

코드검증

ISO 26262는소프트웨어설계및구현을검증할수있도록몇가지옵션을제공합니다。IEC认证工具包에서설명하는한가지방법을따르면,제한된추적검토를통해생성된코드에서의도하지않은기능(예:블록또는신호가추적되지않는코드)을찾아낼수있습니다。이킷은이용도의추적행렬(跟踪矩阵)을자동으로생성합니다。또는SIL (software-in-the-loop)테스트과정에서模型覆万博1manbetx盖를사용하여모델범위와코드범위를비교하거나仿真软件代码检查员™를사용할수있습니다。

마지막으로,Polyspace错误发现者™를사용하여MISRA준수여부를확인할수있습니다。MISRA검사및코드범위분석은프로젝트에생성된코드및수작업코드소프트웨어가혼합된경우특히유용합니다。더엄밀하게Polyspace代码验证™를사용하여0으로나누기와같은런타임오류가없는지확인할수있습니다。

IEC认证工具包은Polyspace®제품에대한TUV SUD인증서및보고서로툴검증을지원합니다。

실행코드를컴파일하고생성한다음公益诉讼테스트를활용하여타깃프로세서에서실행중인코드에대해모델테스트를재사용할수있습니다(그림6)。

그림6。임베디드프로세서에대한公益诉讼예시。

ISO 26262에서는ASIL C및D에대한연속(背靠背)테스트를강력히권장합니다。이표준에따르면대표성있는타깃하드웨어환경에서테스트하는것이중요하며테스트환경과하드웨어환경의차이점을인식해야합니다。

테스트환경과타깃환경의차이점은소스코드또는객체코드에서비롯될수있습니다。이를테면프로세서의데이터단어(数据字)및주소단어(地址)의비트폭(宽度)가다를수있습니다。

그러나모든컴퓨터과학자가알고있는것처럼[6]여러플랫폼사이에서특히부동소수점데이터의경우여러가지이유로수치차이가발생할수있습니다。사소하게시작했지만축적되어커질수도있는데,특히피드백제어시스템에서그렇습니다。따라서ISO 26262는다양한루프내(循环中的)연속(背靠背)테스트방식을제안합니다。

소프트웨어유닛테스트는다음과같은다양한환경에서실행할수있습니다。

俗称“(model-in-the-loop)테스트
银(software-in-the-loop)테스트
公益诉讼(processor-in-the-loop)테스트
边境(半)테스트

万博1manbetx仿真软件测试嵌入式程序员로는SIL과公益诉讼을,仿真软件实时™으로边境을자동화하는등여러루프내테스트를자동화합니다。또한模万博1manbetx型覆盖에서범위메트릭을사용하여합격/불합격보고서를제공합니다。

툴검증

ISO 26262 - 8에서는버전관리,구성관리,문서화등추가프로세스를설명합니다。이프로세스는仿真万博1manbetx软件项目,仿真软件모델차별화및병합,仿真软件报告生成器™에서각각지원합니다。

이표준에서는툴검증에대한지침도제공합니다。툴공급업체가각자의툴을검증하는것은허용하지않으며,사용자가해당프로젝트에맞게툴을검증해야합니다。IEC认证工具包은일반활용사례,참조워크플로우,툴분류분석,소프트웨어툴기술문서,툴검증보고서,검증테스트를제공하면서효과적으로툴을사전검증합니다。

德国莱茵SUD에서MathWorks툴개발및품질프로세스뿐아니라버그보고기능까지검토하고감사하며각제품릴리스의결과를인증합니다。IEC认证工具包에이러한TUV SUD인증서및보고서가포함되어있으며,적합한확인및검증워크플로우를따를필요성을전제로합니다。이킷은이글에서살펴본것과같은일반적인활용사례를기반으로한참조워크플로우를제공합니다。

ISO 26262목표를仿真万博1manbetx软件에서지원하는기능과연결하는등더세부적인정보도제공합니다(그림7)。

그림7。IEC认证工具包의ISO 26262 -模型연결내용발췌。万博1manbetx

2018년12월에출시한ISO 26262의두번째에디션을통해仿真软件와Sta万博1manbetxteflow가소프트웨어아키텍처,소프트웨어단위설계분야그리고자동코드생성의기초에적합하다는것을알수있습니다(그림8)。

그림8。26262 - 6:2018에서발췌한내용으로서적합한소프트웨어설계분야를선보입니다。

검증된툴을사용하더라도해당소프트웨어또는시스템의안전이보장되는것은아닙니다。

ISO 26262

ISO 26262는승용차를위한국제기능안전표준입니다[1]。안전관련전기/전자(E / E)시스템의오작동으로인해발생할수있는위험을다룹니다。ASIL(汽车安全完整性级别)을위험분류단계(A ~ D)로사용하며,ASIL D가최고무결성단계입니다。이표준은9개의규범파트가있으며10번째파트에지침이수록되어있습니다。각파트는별도의문서로제공됩니다。ISO 26262는목표를기반으로하고규범의성격을띠지않지만,수백페이지의지침을포함하고있습니다。파트4 6 8은시스템(ISO 26262 - 4)소프트웨어(ISO 26262 - 6],툴검증(ISO 26262 - 8)을각각다룹니다。

ISO 26262초판은2011년에발표되었습니다。2 2018년에제판이나올예정입니다(ISO 26262:2018)。2제판은오토바이트,럭,버스등다른차량유형을지원합니다。또한반도체에대한새로운지침이수록될것입니다。

발행2018