0530-3433334

网站建设 APP开发 小程序

知识

分享你我感悟

您当前位置>首页 >> 知识 >> 软件开发

软件详细设计与单元构建的实施系统需求分析与实施

发表时间:2023-12-02 11:02:50

文章来源:炫佑科技

浏览次数:119

菏泽炫佑科技

软件详细设计与单元构建的实施系统需求分析与实施

电池工匠——电池行业报道、技术、资讯的专业平台! 点击“电车制造商”关注我们!

加入群组 | 加入“专业电池社区”-钠电池群、固态电池群、复合集流体、动力电池安全与热管理群等,请添加微信并备注电池

为了保证软件(应用层和底层)开发的质量和效率,目前成熟的ECU软件开发都会采用V流程形式。

所有的工程过程(即系统工程和软件工程)都是按照“V”模型原则组织的:左边的每个过程与右边的过程完全对应。 因此,过程SWE.3“软件详细设计和单元构造”和SWE.4“软件单元验证”是分开的。

V流程来自于软件开发过程中一种称为快速应用程序开发的模型。 由于该模型的构成酷似字母V,因此俗称V模型。 V模型是软件开发和测试中*重要的模型。 大致可以分为几个不同的阶段,即功能需求、功能开发、软件开发、软件集成测试、功能集成测试、整车集成测试(系统资格测试),如上图所示。 左边是需求分析和设计开发的过程,右边是左边的测试和验证的过程。

从系统需求到软件需求再到软件发布,都需要工具来管理,实现可追溯、可记录。 目前市场上主流的工具有Door、GIT、SDOM等,也有公司自己开发的。 一些处理工具。 这些工具的操作遵循需求、开发和测试的V流程。

在架构设计过程中,需要使用EA架构设计工具和其他配置工具。

在软件实现过程中,需要使用其他模型开发工具。

软件组件集成过程中需要用到编译工具。

软件组件测试时需要用到Tessy等测试工具。

1.软件开发流程的实施

系统需求分析

这部分是系统要求。 需要系统工程师来完成。

根据项目总体需求和软硬件总体定义,整体定义系统逻辑架构。 这部分工作包括:硬件功能定义、控制器与其他控制器之间的通信定义以及简要的软件功能定义。 该流程没有定义具体的技术实现。

系统要求通常使用诸如 Doors 之类的流程软件来定义。

2.软件需求分析

这部分是软件需求,需要系统工程师来完成。

系统工程师根据系统利益相关者需求规格、软硬件接口文档、变更通知和其他输入,整理和定义软件开发需求规格,包括操作系统需求、电源管理策略、传感器读取、执行器控制、信号特征要求和存储服务。 、通信服务、网络管理、故障诊断、标定、程序升级等功能需求和非功能需求。

根据项目规划制定软件开发计划。

软件需求分析建立需求跟踪矩阵,将软件需求映射到系统需求,以确保覆盖软件要实现的所有系统需求。 为了完成这个功能,我们通常使用Doors等流程软件来完成。

成功实施该流程的结果如下:

1) 定义分配给系统中的软件元素及其接口的软件需求;

2)对软件需求进行分类并分析其正确性和可验证性;

3)分析软件需求对运行环境的影响;

4)定义软件需求实施的优先级;

5) 根据需要更新软件需求;

6) 系统需求与软件需求、系统架构设计与软件需求之间建立一致性和双向可追溯性;

7) 从成本、进度和技术影响方面评估软件需求;

8) 就软件需求达成一致并将其传达给所有受影响的各方。

3、软件架构设计

这部分是软件架构,需要架构工程师来完成。

为了建立清晰、结构化的软件设计,需要统一分配软件需求,然后完成软件架构设计。 根据系统相关需求、软硬件接口表以及软件需求,确定软件架构。 将各个软件需求合理分配到软件模块,定义各个软件模块的输入输出接口、动态行为、资源消耗目标等,评估多种软件架构的优缺点。

架构工程师需要使用EA等架构软件来绘制整个控制器软件所有模块的输入输出接口以及内部动态行为。

如果项目是基于开发的,则需要架构工程师配置应用层的所有组件,并输出每个组件的ARXML描述文件。

一般来说,架构工程师也需要输出架构文档。

成功实施该流程的结果如下:

1)定义识别软件元素的软件架构设计;

2) 将软件需求分配给软件元素

3)定义各个软件元素的接口

4)定义软件元素的动态行为和资源消耗目标

5) 建立软件需求和软件架构设计之间的一致性和双向可追溯性

6) 软件架构设计已达成一致并传达给所有受影响的各方。

4、软件单元设计及软件实现

这部分是软件单元设计,需要由软件开发工程师完成。

这个阶段需要对各个组件内部的算法逻辑进行详细的内部设计。 组件功能的详细设计需要与软件需求建立有效的对应关系。

如果是算法逻辑编码,建议使用模型开发。 如果是接近底层的复杂驱动,一般采用手写代码。

如果项目使用架构,使用模型时需要导入arxml生成的模型框架进行开发。 使用手写代码进行开发时,需要使用工具生成的组件代码框架进行开发。

在将*终版本上传到代码库之前,需要对代码进行多次审查和优化,以实现*佳的可靠性和性能。

成功实施该流程的结果如下:

1)开发描述软件单元的详细设计;

2)定义各软件单元的接口;

3)定义软件单元的动态行为;

4)建立软件需求与软件单元之间的一致性和双向可追溯性; 建立软件架构设计和软件详细设计之间的一致性和双向可追溯性; 建立了软件详细设计与软件单元之间的一致性和双向追溯关系;

5)就软件的详细设计以及设计与软件架构设计之间的关系达成一致,并与所有受影响的人进行沟通

沟通;

6) 生成详细软件设计定义的软件单元。

6.软件单元测试

当单元测试通过后,软件将编译成ECU可执行文件,例如Hex格式文件,并烧录到ECU进行集成测试(或HIL测试)。 如果只是测试底层软件,那么一般只需要额外的硬件负载箱支持,比如用负载箱来模拟一些传感器信号输入,或者在一些执行器中制造短路和开路故障; 如果测试包括应用层软件,那么还需要物理模型支持,比如电机。 控制需要电机的物理模型,变速箱控制可能需要整个动力系统的模型。

这部分是组件单元测试,一般需要软件开发工程师完成,但也可以由测试工程师完成。

单元测试对应于软件单元设计。

单元测试是基于软件单元设计在代码级别进行的测试。

单元测试一般可以通过Tessy、Tessy等工具进行。

成功实施该流程的结果如下:

1)制定软件单元验证策略,包括回归策略来验证软件单元;

2)根据软件单元验证策略,制定软件单元验证标准,为软件单元符合详细软件设计和非功能软件需求提供证据;

3)根据软件单元验证策略和软件单元验证准则,对软件单元进行验证并记录结果;

4) 建立软件单元、验证标准和验证结果之间的双向可追溯性和一致性;

5) 汇总单位验证结果并将其传达给所有受影响的各方。

7、软件集成测试

这部分是集成测试,需要测试工程师完成。

集成测试符合软件需求。

集成测试将各种组件集成到软件系统中,*终进行软件集成测试。 根据定义的需求,测试相应的功能是否满足软件需求。

成功实施该流程的结果如下:

1)制定与项目计划、发布计划和软件架构设计相一致的软件集成策略软件开发,以集成软件项目;

2)制定软件集成测试策略软件详细设计与单元构建的实施系统需求分析与实施,包括软件回归测试策略,测试软件单元和软件项之间的交互;

3)根据软件集成测试策略,制定软件集成测试规范,以适合提供集成的软件项目符合软件架构设计(包括软件单元与软件项目之间的接口)的证据;

4) 根据集成策略对软件单元和软件项进行集成,直至完成集成软件;

5)根据软件集成测试策略和发布计划,选择软件集成测试规范中的测试用例;

6) 使用选定的测试用例测试集成的软件项目并记录测试结果;

7) 建立软件架构设计元素与软件集成测试规范中的测试用例之间的一致性和双向可追溯性,以及测试用例和测试结果之间的一致性和双向可追溯性;

8) 总结软件集成测试结果并传达给所有受影响的各方。

8、软件系统测试

这部分是系统测试,需要测试工程师完成。

系统测试符合系统要求。

由于软件为各个ECU提供了相应的功能,因此在集成测试时,需要将软件烧录到硬件中。 然后,ECU 与其他电子系统组件集成,例如传感器和执行器。 在接下来的系统集成测试中,评估所有系统设备的交互响应。

成功实施该流程的结果如下:

1) 制定与项目计划和发布计划相一致的软件资格测试策略,包括回归测试策略,以测试集成软件;

2)根据软件鉴定测试策略,制定集成软件的软件鉴定测试规范,以适合提供符合软件需求的证据;

3)根据软件资格测试策略和发布计划,选择软件资格测试规范中的测试用例;

4) 使用选定的测试用例对集成软件进行测试,并记录软件鉴定测试结果;

5)建立软件鉴定测试规范中软件需求与测试用例之间的一致性和双向可追溯性,以及测试用例与测试结果之间的一致性和双向可追溯性;

6) 总结软件资格测试结果并将其传达给所有受影响的各方。

2. 软件开发中的术语

下图描述了工程过程中一致使用的元素、组件、软件单元和项目之间的关系。

架构由架构“元素”组成,这些架构“元素”可以在适当的级别进一步分解为架构子“元素”。 软件“组件”是定义*终详细设计的软件架构的*低级别“元素”。 软件“组件”可以包含一个或多个软件“单元”。

V模型右侧的“项”对应于左侧的“元素”(例如:软件“项”可以是目标文件、库或可执行形式)。 这可以是 1:1 或 m:n 关系,例如,一项可以代表多个架构“元素”。

3. 软件开发的可追溯性和一致性

SPICE 3.1 PAM 通过两个单独的基本实践解决了可追溯性和一致性问题。 可追溯性是指工作产品之间是否存在引用或链接,可以进一步支持覆盖范围、影响分析、需求实现状态跟踪等。相比之下,一致性则侧重于内容和语义。

此外,可以在测试用例和测试结果之间以及变更请求和受这些变更请求影响的工作产品之间明确定义双向可追溯性。 下图显示了双向可追溯性和一致性的概述。

炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等

相关案例查看更多