分享

【ASPICE4.0】实例讲解软件架构设计

 ZHAOHUI 2024-12-31 发布于上海
图片

上篇文章解析了软件架构设计的理论方面知识《【ASPICE4.0】--SWE.2软件架构设计解析》,可能有些抽象。

本文通过一个实例,来一起看看软件架构设计的主要内容有哪些,要怎么来设计与编写的。

废话不多说,开搞。

1、软件架构设计实例解析

假设系统需求如下:

1) SYSReq_001:ECU需要采集外部设备A输入的电压信息

2) SYSReq_002:当电压持续超过16V时(持续时间1000ms),判断为过压。

3) SYSReq_003:当发生过压情况时,切断电源;

假设系统架构设计图如下:

图片

假设软件需求如下:

1) SWReq_001:软件间隔10ms,从MCU的哪个PIN脚,进行电压ADC采样;

2) SWReq_002:当电压持续超过16V时(持续时间1000ms),判断为过压。

3) SWReq_003:当发生过压情况时,通过MCU有哪个PIN脚,切断外部ECU2的电源供电;

本文主要讲解软件架构设计的这些要素:静态架构图、动态行为图、接口、资源等几个部分。下面一个个示例展开描述:

1.1、静态架构图
图片

下面是我对软件静态架构图的理解:

1) 上图即为软件架构静态图,里面深蓝色的框框,即为上篇软件架构设计文档说的“软件组件”

2) 上图浅蓝色部分,属于软件组件内部的设计,在软件架构设计可以不用展开详细分析在软件详细设计再展开详细设计即可

3) 上图红色的箭头为模块间的接口,需要软件架构设计文档中展开详细描述。

4) 上图黑色的箭头为模块内的接口,不需要软件架构设计文档中展开详细描述,在软件详细设计展开即可。

需要给每个组件做好编号,并详细解释每个组件的相关意义。具体可参考下表:

1.2、软件组件

如下表,软件架构设计书需对所有的软件组件展开详细描述。具体参考如下:

图片

关于资源相关的使用评估,最好附上相关说明,比如“沿用”哪个项目,故参考该项目,XX模块占用XX空间。

1.3、组件间接口

如下表,所有组件之间相互的接口都需要罗列出来,不能有遗漏。具体参考如下:

图片

1.4、动态设计图

若由多个组件共同实现某项软件需求,则需编写动态行为图以进行功能的设计说明。具体参考下图:

图片

1.5、RAM/Flash资源消耗分析

针对Code Flash, Data Flash, RAM等存储类资源的分析,可按照静态架构图中的组件来分析,分别列出各组件的资源消耗

图片

1.6、CPU负载分析 

针对CPU负载,动态设计以及软件所有任务列表,可以协助用支持此部分设计。

这个CPU负载,分为两大部分,一部分是任务的CPU负载,一部分是中断的CPU负载,两部分都要进行统计。

图片

1.7、其他

另外,软件架构中还需要说明相关的软件控制策略,例如:

1)需罗列出所有使用的软件任务,分析每个任务的用途、执行时间,调用周期,等相关信息。

2)需罗列出所有的软件中断,分析每个中断的用途、执行时间,调用周期,等相关信息。

3)需对初始化流程进行分析。

4)需对共享资源进行控制与分析。

5)需对看门狗使用策略进行分析

此部分就先不展开详细描述了,后面有需要再补充吧。

2、总结

本过程域的前3个BP,可以梳理为下图:

图片

软件架构设计文档中,要包含如下内容:

1) 静态图

a) 包含哪些软件组件

b) 这些组件的职责描述,组件是如何实现的(如:自研/购买/开源等)、组件占用资源等。

2) 动态图

a) 软件组件间的交互和行为表现;

b) 体现形式要求采用UML等方式,如上文的UML时序图

3) 需要对所有组件之间交互的接口展开详细描述

4) 需要对RAM/Flash等存储性资源进行评估,一般按软件组件来进行评估分析

5) 需要对CPU负载进行评估,一般需对所有的任务、中断进行分析,通过分析其运行周期,执行时间来分析其占用的CPU负载

6) 软件架构中还需要说明相关的软件控制策略,例如:所有使用的软件任务,所有的软件中断, 对初始化流程进行分析,对共享资源进行分析、看门狗策略等

7) 一定要包含设计的结论和设计的理由。

若有需要ASPICE4.0相关标准学习文档的朋友,可以扫码如下微信二维码,然后发送“ASPICE”。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多