ISO 26262安全的软件开发流程(软件安全开发指南)

· 软件开发启动

根据ISO 26262-6 5.4.6中建议,在软件开发的启动阶段,对于启动软件级产品开发,首先需要制定关于整个软件级开发的活动和方法的计划,对于软件开发的每个子阶段,应该根据应用规范来选择对应的方法和相应的工具。

根据标准,SmartSAR Studio在选择建模语言时考虑到了:对于建模语言需要有清晰的定义,我们采用EMF、GMF两种建模语言搭建给一个建模环境提供给用户;建模语言支持模块化,抽象和结构化的构造,根据标准中对于建模和编码规范中需要包含的问题,我们的工具支持的建模和编码规范,如下表所示:

ISO 26262安全的软件开发流程(软件安全开发指南)

Studio的建模方法非常简单,每个模型的图元也不复杂,符合嵌入式领域软件开发人员的常识,同时我们参照了多个领域软件开发语言,定义了一套通用的建模语言。本建模语言使用强类型,每个模型有自己特定的类型,需要声明后才能使用,每个模型在建模工具中都有唯一清晰确定的图形表示,同时对于默认的模型名称有符合意义的命名方式,并且符合C语言命名规范。由于Studio是属于基于模型驱动的开发方法,同时也是一个多层的开发架构,不应该由于上层或者外部的输入错误而导致本层次被破坏,这也是将可能出现的错误造成的影响控制在最小的范围内。因此,不仅在编码构建本工具的过程中,我们采用防御式编程方法,同时在建模环境中对用户的模型也提供最大可能的防御措施,包括各种验证提示,在代码级最大可能容忍恢复用户的建模错误,将各种可能的错误风险提到最上层等。

ISO 26262安全的软件开发流程(软件安全开发指南)

· 需求分析阶段

需求分析阶段是软件工程领域中软件开发最开始的阶段,它主要是完成对系统整个的定义,确定系统的各种需求,帮助开发测试人员理解整个系统的功能,为后续的工作打下基础。

在ISO 26262-4中给出了技术安全需求规格,用来规范技术安全需求,细化功能安全概念,同时考虑到功能概念和初级的架构假设级别上。在开发周期内,技术安全规范是用来实现功能安全概念的必须技术需求。系统的初级架构假设和系统性质,包括:外部接口如通信和用户接口,系统限制条件如环境和功能限制,系统配置需求。

在技术安全需求规范中应该有的安全机制包括:

1)系统自身的错误检查、通知和控制相关的措施,这些包含系统的自我监控或者对于随机硬件错误的检查,也包含对通信通道(如数据接口,通信总线,无线连接)的失败模式检查和监控措施。

2)在和系统交互的外部设备中,对错误的检查、通知和控制相关的措施。其中,外部设备包括:其它电子控制单元,电力提供或者通信设备等。

3)使能系统到达或者维护一个安全状态的措施,包括优化安全机制冲突和仲裁逻辑。

4)细化和实现报警及降级概念。

5)防止潜在错误的措施。

· 设计阶段

在软件开发过程中,设计阶段是继需求之后的一个重要阶段,在了解系统的需求后,设计阶段是决定系统整体质量的重要保证,在系统设计阶段,主要关心的是系统的架构设计,基本的输入输出流程,外部交互,组织结构,模块分配,功能划分,数据结构设计和出错设计等,为软件的详细设计提供基石。

在ISO 26262-4和ISO 26262-6中都有涉及到到设计阶段安全的开发。ISO 26262-4主要关注于系统级的设计和安全方面的概念。系统设计应给予功能概念,基础架构假设以及技术安全需求,保证各个阶段的基础架构假设保持一致。

考虑到技术安全需求的实现问题,系统设计应该考虑一下这些问题:

1) 验证系统设计的能力。

2) 在系统集成期间测试的可执行能力。

3) 系统和子系统架构应该在对应的ASIL等级上符合技术安全需求。

4) 每个元素应从它实现的技术安全需求中继承最高的ASIL等级。

5) 对于安全相关的元素,应该定义其内部和外部的接口,这是为了避免其它元素影响它们的安全性。

在系统设计阶段中, ISO 26262-4的7.4.3.7中规定了为了避免高复杂性引起的失败,架构设计应该满足模块化,足够的颗粒度和简单的原则。其中模块化的系统设计应该满足的属性如下表所示。

ISO 26262安全的软件开发流程(软件安全开发指南)

在Studio中,RTE运行时环境层根据架构层软件组件的架构设计,定义了软件组件间通信接口,有明确的通信接口生成规定,同时也避免了不必要的接口复杂度,减少了依赖关系。系统映射根据架构层定义的软件组件架构和ECU拓扑结构,完成软件和硬件的映射关系,避免了软硬件的耦合关系,减少了交互的不必要的复杂度,同时也是避免了软硬件交互的接口复杂度,减少了依赖关系。

在ISO 26262-6中规定了软件级设计和安全相关的概念。软件架构设计代表了所有的软件组件和它们在层次化结构中的交互关系。软件架构设计提供了可以实现软件安全需求的方法以及处理软件开发的复杂性。

为了保证软件架构设计获得的信息足够让后续的开发流程正确有效的执行,软件架构设计应该用下表中列出的表示法描述合适的抽象等级。

ISO 26262安全的软件开发流程(软件安全开发指南)

为了避免因高复杂度导致的错误,软件架构设计应该满足模块化,封装性和简单这三个基本的属性,下表中给出了软件架构设计的原则。

ISO 26262安全的软件开发流程(软件安全开发指南)

在Studio的层次结构中,支持软件组件的层次化结构,每个软件组件通过内部行为表示其软件组件具体完成的功能,满足高内聚性和低耦合性。

架构层的设计保证了软件架构设计开发到合理的程度使得所有的软件单元能够区别开。软件架构设计包含了静态设计和动态设计两部分,其中静态设计部分,架构层完成了分级层次的软件结构,软件组件的端口实现了标准中规定的软件组件的外部接口。根据标准7.4.9中指出,软件安全需求应该分配到软件组件上,每个软件组件应该根据分配给它的最高等级的ASIL来开发。

· 开发实现阶段

开发实现阶段是软件工程中定义的系统开发的最中心的工作,它是完成系统实现的主要工作,因此在开发实现阶段的安全保证也是Studio非常重要的工作。软件的开发实现包括源码的生成和转化为目标代码。

在ISO 26262-6的8.4.4中给出了软件单元设计和在源码级实现的属性,包括:软件单元的子程序和功能能够正确执行相关步骤;软件单元间保持接口一致;简单性;可读性和易理解性;鲁棒性;易于修改和可测试性。如下表给出了我们工具符合标准的一些设计原则。

ISO 26262安全的软件开发流程(软件安全开发指南)

由于Studio的最终目标是生成安全可靠的代码,包括软件组件的内部算法,软件组件间相互通信代码,ECU配置等代码,因此也需要符合标准中对于编码的一些规范。

· 集成和测试阶段

集成和测试阶段是软件开发的最后阶段,它是正确高效运行软件的必要保证。集成是按照系统设计的要求将各个模块组装成子系统或者是系统,测试验证软件开发是否正确的完成了需求。

根据ISO 26262-4中的规定,集成和测试阶段包含三个阶段和两个目标。第一个阶段是项目包含的每个元素的软硬件集成;第二个阶段是项目的所有元素集成一个完整的系统;第三个阶段是本系统和其它系统的集成。第一个目标是根据需求和ASIL等级来测试系统对安全需求的符合性;第二个目标是验证系统设计的功能需求和安全需求是否都完成。

深圳都市微生活科技以数字技术赋能商业,让您的项目不仅仅只是一套互联网系统。从商业模式的顶层设计、到软、硬件技术的最优呈现、到配合市场的营销落地、到整个大数据化管理全程的赋能体系。

我们提供拼购系统、微商管理系统、商城分销系统、各模式系统,小程序开发、互联网技术孵化,多语言商城开发,多语言微商管理系统,多语言代理商管理系统,多语言订单系统,跨境电商商城开发等。帮助和孵化出数十家收入亿元企业,实现合作共赢。

主营业务涵盖涉及app开发,小程序开发定制,互联网 新零售,微商模式系统,渠道管理系统开发,拼团社交系统开发,直播带货系统开发,分销分红系统开发,代理云仓系统开发,招商加盟系统开发,社交新零售系统开发,推广引流,平台拉新,起盘策划等等!

如果您有APP开发和其他方面的系统定制需求,可以搜索“深圳都市微生活”与我们联系!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月19日 下午5:49
下一篇 2024年5月19日 下午6:01

相关推荐

  • 国内第一个巴文化专题博物馆罗家坝遗址博物馆已完成总建设工程量85%

    封面新闻记者 罗轩 虽至寒冬,但在位于四川达州宣汉县普光镇的罗家坝遗址博物馆建设现场,仍是一片热火朝天的建设场面。据了解,该博物馆是国内第一个巴文化专题博物馆,也是达州市保护和传承…

    科研百科 2024年4月21日
    98
  • 关于科研项目获奖的报道

    科研项目获奖报道 近日,一项名为“智能交通管理系统”的科研项目荣获了国家级科学技术进步奖二等奖。这是该领域的一次重要突破,也是我国科技创新的一个例子。 “智能交通管理系统”是一种新…

    科研百科 2025年3月31日
    0
  • 省委组织部人才工作处级别

    省委组织部人才工作处在招聘人才方面发挥着重要作用。作为组织部门,我们一直致力于吸引和培养优秀的人才,为他们提供更好的发展机会和平台。 近年来,我们采取了一系列措施,加强对人才招聘工…

    科研百科 2024年10月18日
    2
  • 档案管理系统的功能是

    档案管理系统的功能 档案管理系统是一种用于管理文件和文件系统的工具,可以帮助人们轻松地存储、检索和共享文件。在现代企业中,档案管理系统已经成为一种必不可少的工具,用于支持文件管理、…

    科研百科 2024年5月28日
    63
  • .NET项目酒店客房管理系统

    .NET项目酒店客房管理系统 随着信息技术的不断发展,.NET已经成为一种非常流行的开发框架,用于构建各种类型的应用程序,包括酒店客房管理系统。.NET提供了许多强大的功能和工具,…

    科研百科 2025年1月23日
    0
  • 什么是项目计量管理系统

    什么是项目计量管理系统? 项目计量管理系统是一种用于跟踪和管理项目进度、成本、质量和风险的软件系统。它是为了帮助组织更好地理解和控制项目进度、质量和成本而设计的。 项目计量管理系统…

    科研百科 2024年12月30日
    2
  • 两模式探索涉众性资金监管

    近年来预付费行业“跑路”事件频发,受新冠肺炎疫情或其他因素影响,教育培训、百货餐饮等与民生相关领域的部分商家因经营困难导致停业倒闭,如2022年1月16日,蛋糕界曾经的宠儿“宜芝多…

    2022年8月24日
    250
  • 统御项目管理软件

    统御项目管理软件: 项目管理的未来 随着信息技术的飞速发展,项目管理软件已经成为项目管理中不可或缺的工具。今天,我们来描述统御项目管理软件,它将成为未来项目管理的重要趋势。 统御项…

    科研百科 2024年7月22日
    33
  • 项目管理软技能

    软技能是项目管理中不可或缺的一部分,指的是那些非技术方面的技能和知识,如沟通、团队协作、风险管理、决策制定等。这些软技能不仅可以提高项目的成功率,还可以减少项目风险和项目变更。本文…

    科研百科 2024年8月18日
    48
  • 科研项目查询官方网站

    科研项目查询官方网站:探索科学未知领域的秘密武器 随着科技的不断进步,科研项目查询官方网站已经成为了人们探索科学未知领域的秘密武器。在官方网站上,我们可以方便地查询各种科研项目的信…

    科研百科 2025年5月15日
    0