图8.7-2 几个开发阶段
软件开发需要有目标地进行。典型的软件开发可分几个阶段(图8.7-2)。在每个阶段需要获得为下面几个阶段要使用的中间结果。下面就这几个阶段作一简略说明。
这里需要注意,在所有情况下软件开发就是软件开发的任务分配。除在早期阶段主要负责软件开发任务的汽车生产厂家外,供货企业负责软件设计和实施,也常负责组件(部件)的部分集成。作为总软件系统集成到汽车上通常由汽车生产厂家完成。这种分工特别需要系统性的确定要求和软件结构,因为汽车生产厂家与供货企业相互配合是软件集成的关键。
因为软件功能与汽车上各个系统功能紧密相关,并反映出软件的性能和特征,所以软件开发与汽车整个系统的开发不能分开。从这点上说,“软件工程”也就是集成的“系统工程”。
特别重要的是在明确要求时要注重这种关联。在系统工程中可以体现汽车功能。以此为基础,要详细说明以软件为基础的各种功能,但要注意没有别的技术提供像软件那样多的自由度,即功能受到一定限制。
在汽车上开发以软件为基础的系统流程,如图8.7-3所示,是由确定要求和功能(使用层面)、经逻辑结构和集群层面,直至逻辑部件综合成软件系统,之后植入到电控单元中成为平台层面。平台层面包括带使用寿命环境的硬件结构,如操作系统、总线驱动器和电控单元驱动器。
2.要求分析和要求详细说明
图8.7-3 软件开发过程中的各个概念层面
很多新功能和按重要性分配开发软件就是对软件的要求阶段,而且对软件的开发常常估计不足。首先,在对软件要求分析阶段分析要解决的各项任务。在分析的基础上详细说明对系统的要求。这时主要解决两个难点。在很多竞争性的目标(目标冲突)设定中要查明,对目标系统哪些是功能要求,哪些是非功能要求。功能要求影响软件系统性能,非功能要求关系到实现软件的属性或开发过程的软件属性。此外,要说明这些要求不会引起歧义,这样,在下一步开发中就可将这些要求作为有约束力的设定。
确定要求要比在第一时间听到的要求简单少许,因为为确定软件系统性能,允许有大的决策空间。还要考虑在到要求说明书的时间点的所有结果中不容易理解所建的软件系统的性能。此外,没有歧义的、精确的说明不是过分的要求。特别重要的是在制订要求说明书时要考虑各种观点和不同的利益集团(共同体)。
这时确定软件系统要求和以后实现软件系统无关。一般而言,要求提高不考虑以后发生的硬件和软件的分配问题,以便适时确定设计决策。
3.软件系统设计和结构
在软件系统结构中要确定它的子系统或“软件部件”。软件系统结构对开发软件系统十分重要。为此,在确定软件系统结构时要特别仔细。这里使用的是顶层向下(Top-Down)设计方法。在该方法中,软件系统从使用角度逐步分解为各个子系统,并与底层向上(Bottom—Up)设计方法相结合,这时由已有的软件部件逐步建立总软件系统。使用模块(见8.7.3小节)可产生特别要求的效果。利用模块的边界(接口)可以没有歧义地说明软件部件的工作原理。系统结构可分为硬件系统结构和软件系统结构。这时,可以将原来的应用软件分为系统软件和特别的操作系统(图8.7-4)。操作系统植入到电控单元(CPU)中。
硬件结构包括硬件部件,如处理器(电控单元、CPU)、传感器、执行器以及与它们相连的网络。软件系统结构通常由操作系统部分、系统服务和支持它们的应用程序组成。它们可能以层形式构建而成。(www.xing528.com)
4.软件实现和软件模块检测
图8.7-4 软件系统结构
在软件实现中,通过程序将各个软件部件组合起来,这就是我们说的编码。可以利用编码器手工编码,或利用工具自动生成。利用工具自动生成编码的前提是在软件模块中检测的性能要精确到能由此自动生成编码。
编码的主要组成部分是通过验证措施的质量安全部分,如编码检验和软件模块测试。只有软件模块没有缺陷,才能进行软件系统集成。
5.软件系统集成
通常可以把软件系统分成各个软件模块(或软件部件)。在集成时逐步组合成一个软件系统(或软件大部件)。
最后将软件系统在硬件的工程环境下植入目标硬件中。此外,由已形成的软件系统以步进方式(增量)组成总软件系统。集成的关键是保证各软件系统正确地相互配合。为保证这一点,需要大量的测试。在不好的情况下,直到集成这个时间点才会发现在软件系统结构设计中或在实现模块中的缺陷。
6.有效性和验证
检验目标的有效性是,表达的要求是否符合实际要求(要开发正确的软件系统)。
验证就是证明开发的人工产品(软件系统)之间的兼容安全性(软件系统是按说明书的要求开发的)。软件有效性和验证这两方面是质量安全的主要内容。
软件实现和集成需要严格的质量安全保证。其目标是证明实现的软件系统是满足安全要求的。为此采用考核、检验、测试、用仪器检测软件模块或逻辑验证等方式判定软件的质量安全。
需要注意的是通过有效性和验证可以及早发现在软件的各个开发阶段出现的不可避免的缺陷,并予以排除。未及时排除的缺陷会埋下很大的风险,会在以后的开发阶段和实际使用场合造成更多的费用支出并耽误时间。
7.产品和维护
在汽车产品中将软件植入汽车的硬件中。在汽车上使用的过程中会出现改进的软件最新版(“Update”)和功能扩大的软件升级版(“Upgrad”),并再植入汽车硬件中。
特别重要的是汽车上的软件维护,因为新的软件版本植入汽车硬件中是兼容的。这要求在配置软件和版本结构方面要认真进行逻辑思考。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。