| 编辑推荐: |
本文主要介绍了ASPICEV4.0系统要素与软件要素相关内容。希望对您的学习有所帮助。
本文来自于微信公众号耐思时刻 ,由火龙果软件Alice编辑、推荐。
|
|
一、系统要素:
先来看下ASPICE4.0原文对系统要素的定义:
System elements can be:
• Logical and structural objects at the architectural
and design level. System elements can be further decomposed
into more fine-grained system elements of the architecture
or design across appropriate hierarchical levels.
• Physical representations of these objects, or
a combination, e.g., peripherals, sensors, actuators,
mechanical parts, software executables.
系统要素可以是:
• 是架构和设计层面的逻辑和结构对象。系统元素可以在适当的层级上进一步分解为架构或设计层面更细粒度的系统元素。
• 也可以是这些对象的物理表现形式,或者其组合,例如:外围设备、传感器、执行器、机械部件、软件可执行文件。
是不是和我一样,感觉好像懂了,又好像没懂,哈。
下面以我的个人理解来实例梳理一下。
1、先来理解前半句话:“系统要素是架构和设计层面的逻辑和结构对象”
是架构和设计层面的?
即,系统要素主要是针对系统架构设计层面来展开的一个概念,所以可以理解为,它是构成系统架构设计的的基本单元。
逻辑与结构对象?:
即,系统要素可以是设计层级的逻辑对象,如:功能模块A,功能模块B等。
或,系统要素也可以是设计层面的结构对象,即相关物理实体,如传感器、ECU、机械部件等。
2、再来理解后半句话:系统要素可以在适当的层级上进一步分解为架构或设计层面更细粒度的系统要素。
这句话比较好理解,就是系统要素可以继续往下拆分更细的“子系统要素”
3、再来理解第二句话:可以是这些对象的物理表现形式,或者其组合。例如:外围设备、传感器、执行器、机械部件、软件可执行文件。
这句话,也比较好理解,就是外围设备、传感器、执行器、机械部件、软件可执行文件等都可以单独称为一个系统要素,也可以比如把传感器A和执行器A组合在一起称为某个系统要素。
感觉好像还有点模糊哦,再来个实例解析下:
在数字钥匙系统中,可能包含主模块、从模块、钥匙模块等等独立的硬件产品模块。
在该系统中,每个产品模块可以当做一个系统要素。
即主模块是一个系统要素,从模块是一个系统要素,钥匙模块也是一系统要素。
同时,每个系统要素,又可以继续在架构或设计层面继续分解。 如主模块,可以继续分解为:结构、硬件、软件等子系统要素。
主模块的软件/硬件部分又可以继续分解为子系统要素: 如:
- BLE核心控制模块
- UWB测距模块
- CAN通信接口电路
- IO输入输出控制模块
- 电源管理模块
把上面的描述缩略成下图示例。即,下图系统架构中的每一个框,都可以认为是一个系统要素,是不同级别的系统要素。
简单总结下: 系统要素是实现独立功能的物理或逻辑单元,其核心特征包括:
1.功能完整性:每个系统要素承担明确的系统级任务(如环境感知、决策控制)。
示例:在防抱死制动系统(ABS)中,轮速传感器、制动压力控制器、ECU主控制器均为独立系统要素,分别负责“采集轮速”“调节液压”“决策控制策略”。
2.跨领域性:可包含硬件、软件、机械的任意组合。
示例:雷达系统要素 = 天线(硬件) + 信号处理算法(软件) + 散热壳体(机械结构)。
3.接口明确性:通过标准化接口与其他要素交互(如CAN总线、电气插接件)。
二、软件要素
一样,先来看下ASPICE4.0对软件要素的定义:
Software element: Refers to software component or
software unitSoftware component:
1.Software component in design and implementation-oriented
processes: The software architecture decomposes the
software into software components across appropriate
hierarchical levels down to the lowest-level software
components in a conceptual model.
2.Software component in verification-oriented processes:
The implementation of a SW component under verification
is represented e.g., as source code, object files,
library file, executable, or executable model.
软件组件:
1.在设计和实现导向的流程中所涉及的软件组件:在概念模型中,软件架构会将软件分解为不同层次的软件组件,直至最低级别的软件组件。
2.在验证导向的流程中所涉及的软件组件:在验证环境下实现的软件组件通常以源代码、对象文件、库文件、可执行文件或可执行模型的形式呈现。
Software unit:
1.Software unit in design and implementation-oriented
processes: As a result of the decomposition of a software
component, the software is decomposed into software
units which are a representation of a software element,
which is decided not to be further subdivided and
that is a part of a software component at the lowest
level, in a conceptual model.
2.Software unit in verification-oriented processes:
An implemented SW unit under verification is represented
e.g., as source code files, or an object file.
软件单元:
1.面向设计与实现过程的软件单元:由于软件组件的分解,软件被分解为软件单元,这些软件单元是软件元素的体现,这些元素不会进一步细分,并且是概念模型中最低层级的软件组件的一部分。
2.面向验证过程的软件单元:在验证过程中的已实现软件单元例如可表示为源代码文件或对象文件。
看上面ASPICE4.0标准里的描述,还是挺拗口的。
但整体可以理解为软件组件,软件单元,都是软件要素。
那什么是软件组件,软件单元呢?有啥关系呢?
下图是以前文章《【ASPICE4.0】实例讲解软件详细设计》中的一张图,应该看起来还比较清晰。
可以理解为下图软件架构中的每一个框,都是软件要素,是不同级别的软件要素。
大概关系如下:
1.由1 个或多个软件组件共同形成某个软件需求。
2.用1个或多个软件单元共同形成某个软件组件 。
3.用1个或多个函数共同形成某个软件单元。
三、系统要素&软件要素联系总结
那系统要素与软件要素有啥关系?
系统架构会拆分为多个系统要素,某些系统要素不包含软件开发,则与软件要素无关。
某些系统要素包含软件开发,则与软件要素存在关联关系。
我觉得,可以理解为系统要素是容器,软件要素是其内部实现细节。
比如,上面的软件相关组件1,是指KW45硬件设计相关的系统要素。
而软件要素,是针对此KW45芯片软件内部实现细节的展开设计。
一层层嵌套如下:
1.软件相关组件1 KW45控制模块,这个系统要素包含了“BLE通信”,“UWB测距”,“CAN通信”等软件组件。
2.CAN通信的软件组件中,又包含CAN驱动、CAN 信号层、CAN交互层,CAN应用层交互等多个软件单元。
3.CAN驱动这个软件单元中,又包含多个函数。
V模型上下关系链:
1.自上而下 (分解与设计):
a.SYS.1涉众需求 -> SYS.2 系统需求 -> SYS.3 系统架构设计 (定义系统要素及其接口)。
b.系统需求 (分配给软件的部分) -> SWE.1 软件需求 -> SWE.2 软件架构设计
(定义软件组件及其组件接口) -> SWE.3 软件详细设计(定义软件单元及其单元接口) ->
SWE.4 软件单元实现。
2.自下而上 (集成与测试):
a.SWE.4 软件单元测试 -> SWE.5 软件集成测试 (集成软件要素(单元或组件)) ->
SWE.6 软件合格性测试 (验证软件满足软件需求)。
b.合格的软件输出物(如软件可执行文件,HEX烧录文件等),作为系统要素交付给系统集成。
c.SYS.5 系统集成测试 (集成系统要素,包括集成了软件的硬件) -> 系统测试 (验证整个系统满足系统需求/利益相关者需求)。
四、系统要素&软件要素对比总结
-
系统要素 是宏观的、跨领域的构建块,关注如何将不同的技术领域(硬件、软件、机械)组合起来实现整体功能。
--下图系统架构中的每一个框,都可以认为是一个系统要素,是不同级别的系统要素。
- 软件要素 是微观的、纯软件的实现单元,关注如何设计、实现和测试软件内部的模块来实现分配给软件的具体需求。
--下图软件架构中的每一个框,都是软件要素,是不同级别的软件要素。
- ASPICE 通过 SYS 过程组管理系统要素的生命周期,通过 SWE 过程组管理软件要素的生命周期。
- 系统要素 关注的是 “车上的黑盒子(ECU、传感器模块)以及它们之间如何连线对话” 来实现整车功能(如解锁车门)。
- 软件要素 关注的是 “黑盒子(某个含软件开发的系统要素)里面运行的软件程序是由哪些软件组件/单元组成的,这些组件/单元之间如何配合”
,来实现该黑盒子被分配的功能(如计算手机位置、判断是否解锁)。
|