随着应用复杂度的提升,项目开发需要在更大范围内协同,即从团队扩展到企业。
以代码验证为例,代码验证的结果已经不仅仅局限于开发或者测试人员访问,其他角色也需要参与协同。如项目经理需要了解质量趋势、问题类别等项目状态;质量人员需要了解是否达到交付标准,甚至参与到问题的解决过程。
一个典型的协同流程如下:
开发人员手写代码或者从模型生成代码并提交到代码库
持续集成工具检查到代码库有更新后触发代码分析验证
代码分析验证结束后将结果上传到服务器并邮件通知相关人员
开发主管初步审查归类代码问题并推送给代码负责人解决
代码负责人(开发人员)修改代码或进行合理性声明后再次提交
项目经理查看各项目状态以把握项目进程及协调内部资源
质量人员监控问题解决过程,把关项目交付标准
图1 协同代码验证流程
以上协同流程对原有的桌面端分析验证+基于文档报告的结果共享模式提出了挑战:
桌面端分析验证难以较好地支持自动化持续集成过程,使用成本随着团队规模的扩大也会大幅增加;基于文档报告的结果共享隐藏了问题细节,无法进行跟踪管理。
为了更好地支持企业级协同流程,Polyspace 在 2019a 进行了改版——
在保留原有桌面端产品的同时,增加了对持续集成流程支持的产品系列:
Polysapce Server 系列可安装于服务器端的代码分析和验证引擎,可以通过持续集成工具触发;
Polysapce Access 系列是基于网页技术的轻量级代码验证结果访问接口,用户无需本地安装即可通过浏览器访问与桌面端工具一样的验证结果细节并加强了项目级信息展示,内部集成 JIRA 的接口便于问题跟踪解决。
图2 网页端的验证结果概要(左)和问题细节(右)
MathWorks 开发了专门的 Jenkins 插件用于 Polyspace 代码验证和结果服务,主要功能包括:启动代码验证、上传验证结果、验证结果过滤和邮件通知等。
图3 Polyspace Jenkins插件
开发工具与管理工具的集成是大势所趋,其目的在于提升自动化程度、降低信息共享门槛,最终能满足企业对于高度协同化的需求。
图4 工具支持下的协同流程
技术资源
《保障嵌入式软件安全可靠的 7 个方法》
学习如何开发安全可靠的关键性嵌入式应用,如自动驾驶,飞控,医疗设备。使用形式化方法的静态分析,您可以证明在所有可能的控制流和数据流下,代码都没有运行时错误。
-
服务器
+关注
关注
12文章
9160浏览量
85415 -
自动化
+关注
关注
29文章
5575浏览量
79272 -
数据流
+关注
关注
0文章
119浏览量
14356
发布评论请先 登录
相关推荐
评论