嵌入式软件开发过程探讨.docx

上传人:b****6 文档编号:6463873 上传时间:2023-01-06 格式:DOCX 页数:15 大小:80.15KB
下载 相关 举报
嵌入式软件开发过程探讨.docx_第1页
第1页 / 共15页
嵌入式软件开发过程探讨.docx_第2页
第2页 / 共15页
嵌入式软件开发过程探讨.docx_第3页
第3页 / 共15页
嵌入式软件开发过程探讨.docx_第4页
第4页 / 共15页
嵌入式软件开发过程探讨.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

嵌入式软件开发过程探讨.docx

《嵌入式软件开发过程探讨.docx》由会员分享,可在线阅读,更多相关《嵌入式软件开发过程探讨.docx(15页珍藏版)》请在冰豆网上搜索。

嵌入式软件开发过程探讨.docx

嵌入式软件开发过程探讨

嵌入式应用软件开发过程标准化管理探讨

上海美多通信设备有限公司程卫红

嵌入式软件广泛应用于国防、工控、家用、商用、办公、医疗等领域,嵌入式计算机系统存在着专用性强、可靠性高、实时性强、软硬件结合紧密等特点,嵌入式软件是嵌入式计算机应用系统的核心与灵魂,它在军用电子装备中有着广泛的应用,其中一些中小型军用电子装备研发企业的嵌入式软件研发团队一般仅有数人至十几人,且存在人员流动,缺乏对其开发过程的有效技术及质量的监管控制,造成一些软件嵌入式更改频繁、开发效率低,质量无法保证。

而通用软件开发中广泛使用的CMM/CMMI模型是以大企业为对象制定的,在这些企业中实施有困难。

规范其开发过程存在一定难度,这成为这些企业控制装备质量、提高研发效率的瓶颈。

本文依据软件工程化思想、CMM/CMMI模型和GJB9001B质量管理体系的思想原则,结合嵌入式软件开发的自身特点,针对中小型软件研发企业的具体情况提出了嵌入式软件开发过程的标准化管理及质量控制的一些思路,以飨读者。

1嵌入式软件开发过程的标准化分析

1.1嵌入式软件与嵌入式系统

嵌入式系统(EmbeddedSystem)是指用于执行独立功能的专用计算机系统。

它以应用为中心,以计算机技术为基础,软硬件可裁减,能适应实际应用系统中对功能、性能、可靠性、成本、体积、功耗、电磁兼容等严格要求的专用计算机系统[1]。

嵌入式软件与嵌入式系统是密不可分的,嵌入式软件是基于嵌入式系统而专门设计的软件。

嵌入式软件是针对特定应用领域,基于某一固定的嵌入式硬件平台系统而专门设计,用来达到用户预定目标的计算机软件。

嵌入式系统中软件与硬件紧密配合/协调工作,强调硬件/软件的协同性与整合性。

开发时着重软硬件协同设计方法,即使用统一的方法和工具协同设计目标系统的软硬件体系结构,以最大限度地挖掘目标应用系统软硬件能力,获得高可靠、高性价比的系统优化设计方案[2]。

与通用计算机系统相比,它具有以下特点。

(a)系统的专用性

嵌入式软件系统为特定的用户设计,面向特定的应用领域,这种强针对性决定了嵌入式系统在硬件/软件系统设计方面都必须量体裁衣(体积/功耗/成本),以满足应用系统的特定应用要求。

(b)硬件的依赖性

在嵌入式系统中,软件与硬件结合非常紧密。

软件的运行离不开特定的硬件平台,当硬件平台发生改变时,其中的嵌入式软件要根据硬件的变化进行修改和系统的移植。

此外,嵌入式系统中有限的硬件资源制约着软件的开发,决定着软件的质量和效率,因此,在嵌入式系统的设计、开发、测试等过程中,要充分考虑到硬件资源的约束、管理及使用。

(c)高可靠性、稳定性

软件可靠性是指在规定的条件和规定的时间内,软件运行不发生故障的能力。

采用嵌入式系统的装备,一般都有较高的可靠性的要求,因而对嵌入式软件也提出了高可靠性、高稳定性的要求。

(d)多任务的抢占性与实时性

在一些强实时应用的嵌入式软件系统中,各任务的优先级不同,同级任务具有抢占的特点,而且每个任务的响应时间均有明确而严格的要求和限制,否则可能产生灾难性的问题或引发系统崩溃。

(e)目标软件调试环境复杂

嵌入式软件的目标系统多为特殊的专用系统,通常采用宿主机/目标机的联合开发环境,借助通用计算机作为目标机的宿主开发调试环境,利用交叉调试器、通过通讯/或JTAG接口对目标机进行相关的开发调试,调试环境相对复杂、干扰因素较多。

由于嵌入式软件具有以上特点,其设计、实现与测试均与普通应用软件研发不同,我们有必要采用软件工程化的原理,对其开发过程进行分析研究,优化其开发过程,提高它的可视性、可测性、可维性、可控性,从而提高嵌入式应用软件的开发质量。

1.2一般嵌入式软件开发过程的标准化分析

a)明确开发过程节点,使软件开发过程的管理有序受控

将产品质量控制原则贯穿于嵌入式软件开发全过程,规定嵌入式软件开发过程主要节点设置里程碑标志,进行必要的评审,使嵌入式软件产品开发过程的技术与质量管理有序受控。

嵌入式软件研制过程一般采用瀑布式模型,其开发工程过程一般划分为:

1)系统设计;2)需求分析;3)软件概要设计;4)软件详细设计;5)编程;6)软硬件联合调试;7)软件测试。

嵌入式软件开发的技术与质量管理通常结合硬件开发同步进行,一般划分为以下几个阶段:

1)方案论证阶段;2)初样阶段;3)正样阶段;4)设计定型;5)生产定型。

b)嵌入式软件软件文档的标准化

嵌入式软件的文档资料与嵌入式软件本身是软件产品质量控制的主体,依据GJB438A一1997《武器系统软件开发文档》,建立和完善软件文档库(包括文档模板),通过对开发过程的监督,控制文档与软件的质量,从根本上保证产品质量。

c)降低人为因素对软件质量的影响

整个嵌入式软件开发质量是由每个项目成员的工作质量所决定的,明确嵌入式软件开发人员具体岗位、任务分配及工作规范,尽量降低影响软件质量的人为因素,避免非标准化的多个岗位重叠造成软件产品的质量失控。

d)注重嵌入式软件开发关键环节质量控制

在开发的过程中,严格需求分析、总体设计、边界设计、概要设计等环节的质量控制是解决软件产品质量的关键环节。

强化用户和需求分析人员的边界意识。

在有限的时间内,明确相关的目标边界、功能边界和数据边界。

总体设计时,选择合适的微处理器和相关外围设备、嵌入式操作系统,进行软硬件的合理分割,确定软件开发、调试环境,确保研发成功。

e)对嵌入式软件开发成果进行考核

设置重大节点进行软件评审,每一小阶段的完成以该阶段参与人员的输出完成为标志,通过下一阶段参与者直接对上一阶段输出进行考核,使嵌入式软件开发全过程处于受控。

f)规范嵌入式软件配置项管理

软件的配置管理不是选用一个软件配置管理工具软件就可以了,软件的配置管理就是软件技术状态的管理,包括制定和实施软件配置管理计划,进行配置标识、配置控制、配置状况纪实。

通过软件的配置管理确保软件配置项的完备、清晰、一致和可追溯性。

尽可能实现版本向前兼容,合并多版本、多分支的产品或部件。

g)嵌入式软件的正确性及可靠性测试

软件功能及质量测试是发现软件错误的最有效途径,是保证软件质量的重要手段,也为评价软件技术质量提供了可靠的依据。

测试与开发是相辅相成的,软件测试工作应贯穿整个软件开发过程。

保证测试质量首先是选择合适的测试人员,他需熟悉软件测试的意义、技术和方法,并善于与软件开发人员交流和协调;其次需制定测试计划,再就是在开发过程中对软件进行严格有效的测试。

针对嵌入式软件特点,不只进行软件的白盒测试及黑盒测试,对测软件进行实时性、多任务并发性、中断处理以及软硬件接口等方面的进行有针对性的测试。

2嵌入式软件开发过程的标准化实施

2.1嵌入式软件项目开发流程的标准化设计

嵌入式系统开发的特点是满足应用的多样化需求。

嵌入式软件是嵌入式系统的核心部分,我们有必要规范嵌入式软件在多样化的软硬件平台下开发流程,只有这样也能使其开发过程受控,产品质量得到保证。

本文提出的一般规模嵌入式软件标准化开发流程,流程中设置了软硬件联合调试,及结合硬件进行相关评审的节点,详见图1。

 

 

图1嵌入式软件标准化开发流程图

2.2嵌入式软件开发岗位和任务分配的标准化

2.2.1具体岗位设置

首先,规范技术部门组织结构,设置标准化的组织机构,主要的组织有:

项目管理委员会、项目技术管理委员会、项目组、测试组等。

其次,规范开发的具体岗位。

不少企业为降成本,强调“复合型人才”,有相当多的人既做设计又做编码还做测试,这不仅使项目的运行效率低、出错率高,也使项目的人力成本提高、人员还不满意。

正确的是根据工作内容的不同,进行专业分工,通过有效的项目团队组织机制将各类人员集成起来。

嵌入式软件开发团队的具体岗位设置可分为:

项目负责人、系统分析师、需求分析师、系统设计师、界面设计师、软件设计师、程序员、测试工程师、质量工程师、配置管理员、生产支持工程师(工艺师)、培训工程师、技术服务工程师等。

根据不同岗位界定其不同的等级和小时工资。

详见表1。

表1具体岗位设置

序号

角色

职责

1

项目负责人

开发计划;日常管理;组织完成测试、参与系统验收;协助需求分析师完成需求分析

2

系统分析师

总体设计;概要设计;系统的功能框架

3

需求分析师

在系统分析师的指导下完成需求分析;对需求及边界进行确认;完成人机界面(用户界面)确认

4

系统设计师

完成概要设计、详细设计;配合完成各项评审、验收

5

界面设计师

在系统设计师的指导下完成人机界面设计、人机界面确认等

6

程序员

编码实现、单元调试

7

测试工程师

进行单元测试、系统测试

8

配置管理员

创建和维护配置库

9

质量工程师

开发过程质量分析

10

生产支持工程师

编写工艺文件、生产指导

11

培训工程师

制定培训计划、编写培训教案、对公司内有关人员及用户培训

12

技术支持工程师

用户现场技术支持

2.2.2任务划分和分配的规范化、标准化

根据项目开发标准化流程,细分开发过程的各项任务,明确负责完成任务的岗位和参与完成任务的岗位,明确任务的输入和输出,对输出内容(主要为工作文档)质量进行审查,下一阶段任务执行者对上一阶段任务完成者进行考核,上一阶段输出没有完成,不能转入下一阶段工作。

详见表2。

表2开发过程任务分配表

任务编号

项目阶段

任务名称

(输出)

负责岗位

参与岗位

前置任务

(输入)

001

项目立项

项目可行性报告

系统分析师

用户意向

002

总体方案(初稿)

系统分析师

研制要求

合同

003

风险评估报告

系统分析师

001

004

项目开发计划(需评审)

项目负责人

全体

研制要求

合同

005

项目开发周报、

项目开发月报

项目负责人

全体

004

006

项目边界设计

系统设计师

系统分析师

002

007

项目边界确认

项目负责人

需求分析师

006

008

配置管理计划、创建和维护配置库

配置管理员

项目负责人

004

009

需求分析

需求调研报告

需求分析师

系统分析师

002、006

010

需求规格说明

需求分析师

系统分析师

002、006

011

基本数据说明

需求分析师

系统分析师

002、009

012

需求/边界确认

用户需求确认书

需求分析师

010、011

013

总体设计

总体设计方案

系统分析师

002、009、010、011

014

软件质量保证计划

项目负责人

系统分析师

104、013

015

概要设计

概要设计说明、开发环境说明、接口设计文档

系统设计师

系统分析师

需求分析师

010、012、011、013

016

系统人机界面

系统人机界面设计说明

界面设计师

系统设计师

109、110、111

017

系统人机界面确认

人机界面用户确认报告

需求分析师

系统设计师

115

018

详细设计

详细设计说明

系统设计师

015、016

019

测试设计

软件测试计划

软件测试说明(测试用例)

测试工程师

系统分析师

质量工程师

012、014、017

020

编码

源程序(代码、代码注释)

程序员

系统设计师

016、018

021

用户手册

程序员

系统设计师

016、018

022

单元测试

缺陷记录、单元测试报告

测试工程师

质量工程师

018

023

软硬件联合调试

联合调试记录

系统设计师

程序员

010

024

系统测试

系统测试报告、问题报告、问题处理报告

测试工程师

质量工程师

019、020

025

设计定型

程序员手册

固件保障手册

资源综合保障文件

程序员

系统工程师

021

026

产品规范(可结合硬件一起编写)

系统分析师

全体

021、025

027

工艺文件编制

首件鉴定

生产支持工程师

021、025、026

028

配置状态报告、版本说明文档

配置管理员

008

029

用户试用报告

技术支持工程师

030

培训

培训计划、培训环境准备

培训教案等

培训工程师

技术支持工程师

120、123

031

各项评审、

定型审查

审查申请、各项评审报告

项目负责人

021、025、028

032

阶段总结报告

项目负责人

系统分析师

033

现场试验报告

技术支持工程师

质量工程师

034

质量分析报告

质量工程师

测试工程师

024

035

各阶段评审报告

项目负责人

系统分析师

2.3嵌入式软件文档标准化要求

依据GJB438A一1997《武器系统软件开发文档》[4],建立软件文档标准化模板,根据模板编制软件文档,具体要求本文不再一一说明。

对于嵌入式软件文档的编制时需注意以下几点。

a)在编制软件概要设计说明、详细设计说明时,如果存在一下情况,应加以说明。

1)上电复位、掉电、关机、正常工作时的时序状态情况说明,包括软件的加载(引导)方式说明、DSP系统的初始化内容及流程说明和系统中断向量表的配置说明。

2)多CPU系统或主从系统设计的考虑(如果存在)

−DSP与上级系统内CPU协调工作的通信方式说明

−DSP与上级系统内CPU的通信协议的说明

−DSP与上级系统内CPU的交换信息的命令字格式定义说明。

3)程序的框架结构及系统资源需求

−程序的功能划分和规划,包括DSP内部硬件资源分配情况注明。

−实时多任务系统,其中应包括前、后台模块的功能划分和时限要求。

−功能模块间粗拓扑框图。

−模块中中断处理的方式、类型和级别。

4)防流水线冲突的说明。

(如有)

5)对存储器有特殊要求的指令字的使用注明。

b)文档化源程序文件要求

源程序文件要求文件中包括源程序及其注释内容,注释的意义必须与程序一致,应规定注释行数,一般不少于源程序总行数的35%。

−标识符:

包括模块名、变量名、常量名、标号名、子程序名、数据名和缓冲区名等;

−序言性注释:

置于每个程序模块的开头,给出程序的整体说明;

−功能性注释:

嵌在源程序体中,必须正确的描述其后的语句或程序的功能或执行的效果;

−数据说明:

常量说明→简单变量类型说明→数组说明→公用数据块说明→所有文件说明

−整形量说明→实型量说明→字符量说明→逻辑量说明

−VHDL语言文档化

3某嵌入式软件标准化开发过程举例

上海美多通信设备有限公司开发的通信终端采用ARM嵌入式系统[5],软件包括初始化模块、核心处理模块、显示模块、键盘模块、数据处理模块、通信模块以及与外设通信模块等。

该软件开发过程以本文提出的开发过程为标准过程,在其基础上进行裁减,形成项目软件开发过程。

通信终端软件开发过程分方案论证阶段、初样阶段、正样阶段、设计定型四个阶段,在里程碑节点处结合硬件进行了公司级以上的评审,具体有方案审查、软件需求分析评审、初样软件评审、正样软件评审、设计定型审查等。

通信终端软件开发过程确定了软件开发的具体岗位、任务分配、输入和输出及完成时间,通过评审和考核使全过程受控,见表3通信终端软件输出考核表。

该项目的成功实施,并取得较好的产品质量,验证了本文提出的开发过程的有效性。

表3通信终端软件输出考核表

序号

具体岗位

承担人员

输出

考核情况

1

项目负责人

冯xx

……(略)

合格

通信终端项目边界确认书

合格

通信终端软件质量保证计划

合格

4

系统分析师

冯xx

通信终端项目可行性报告

合格

通信终端软件总体设计方案

合格

通信终端软件风险评估报告

合格

7

需求分析师

刘xx

终端软件需求调研报告

合格

终端软件需求规格说明

合格

终端软件基本数据说明

合格

终端软件人机界面确认书

合格

终端软件用户需求确认书

合格

12

系统设计师

周xx

终端软件概要设计说明

合格

终端软件详细设计说明

合格

终端软件联合调试记录

合格

15

界面设计师

汤xx

终端软件人机界面设计说明

合格

16

程序员

孙xx

汤xx

初始化模块源程序(代码、代码注释)

核心处理模块源程序(代码、代码注释)、

显示模块源程序(代码、代码注释)、

键盘模块源程序(代码、代码注释)、

数据处理模块源程序(代码、代码注释)、

通信模块源程序(代码、代码注释)

与外设通信模块源程序(代码、代码注释)

合格

各模块调试记录

合格

终端软件用户手册

合格

19

测试工程师

周xx等

终端软件测试计划

合格

终端软件测试说明(测试用例)

合格

终端软件单元测试报告、缺陷记录

合格

22

配置管理员

李xx

终端软件配置管理计划

合格

终端软件配置状态报告

合格

终端软件版本说明文档

合格

25

质量工程师

徐xx

终端软件质量分析报告

合格

26

生产支持工程师

许xx

……(略)

合格

27

培训工程师

张xx

……(略)

合格

28

技术支持工程师

华xx

……(略)

合格

通信终端的嵌入式软件开发采用了本文设计的标准化开发过程,通过软件工程化管理,使全过程受控,取得了较好的产品质量和开发效率。

4结束语

软件工程化管理要求[3]是GJB9001B—2009《质量管理体系要求》所要求的,采用适宜的软件开发过程是实现项目软件工程化的基础。

嵌入式软件专用性强、与硬件结合紧密,本文结合其特点设计标准化的开发过程,使嵌入式软件的开发可视、可测、可维、可控,通过对项目成本、人员、进度、质量、风险等的管理,保证嵌入式软件开发项目能够按照预定的成本、进度、质量顺利完成。

软件开发工程化已成为大家共识,嵌入式软件项目成功与否与项目规划、软件规模、软硬件技术方案选择、进展控制、需求变化、边界控制和风险管理等诸多因素有关,进一步开展嵌入式软件工程标准化,如建立、完善模块设计规范、软件可靠性设计规范、编码规范、标准构件库等,将有利于提高其产品质量和劳动生产率。

随着技术的进步,嵌入式软件开发经验的积累,一系列标准的完善,嵌入式软件开发工程化将日趋成熟。

参考文献

[1]马中梅,李善平等.ARM&Linux嵌入式系统教程.北京:

北京航空航天出版社,2004

[2]程克非嵌入式系统设计.北京:

机械工业出版社2010

[3]王黎明、刘益新等GJB9001B—2009质量管理体系要求,2009

[4]王安生、陈瑜等GJB438A—1997武器系统软件开发文档

[5]熊茂华、杨振伦.《ARM9嵌入式系统设计与开发应用》.清华大学出版社.2009

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1