嵌入式软件开发过程探讨0204_第1页
嵌入式软件开发过程探讨0204_第2页
嵌入式软件开发过程探讨0204_第3页
嵌入式软件开发过程探讨0204_第4页
嵌入式软件开发过程探讨0204_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE5嵌入式应用软件开发过程标准化管理探讨上海美多通信设备有限公司程卫红嵌入式软件广泛应用于国防、工控、家用、商用、办公、医疗等领域,嵌入式计算机系统存在着专用性强、可靠性高、实时性强、软硬件结合紧密等特点,嵌入式软件是嵌入式计算机应用系统的核心与灵魂,它在军用电子装备中有着广泛的应用,其中一些中小型军用电子装备研发企业的嵌入式软件研发团队一般仅有数人至十几人,且存在人员流动,缺乏对其开发过程的有效技术及质量的监管控制,造成一些软件嵌入式更改频繁、开发效率低,质量无法保证。而通用软件开发中广泛使用的CMM/CMMI模型是以大企业为对象制定的,在这些企业中实施有困难。规范其开发过程存在一定难度,这成为这些企业控制装备质量、提高研发效率的瓶颈。本文依据软件工程化思想、CMM/CMMI模型和GJB9001B质量管理体系的思想原则,结合嵌入式软件开发的自身特点,针对中小型软件研发企业的具体情况提出了嵌入式软件开发过程的标准化管理及质量控制的一些思路,以飨读者。1嵌入式软件开发过程的标准化分析1.1嵌入式软件与嵌入式系统嵌入式系统(EmbeddedSystem)是指用于执行独立功能的专用计算机系统。它以应用为中心,以计算机技术为基础,软硬件可裁减,能适应实际应用系统中对功能、性能、可靠性、成本、体积、功耗、电磁兼容等严格要求的专用计算机系统[1]。嵌入式软件与嵌入式系统是密不可分的,嵌入式软件是基于嵌入式系统而专门设计的软件。嵌入式软件是针对特定应用领域,基于某一固定的嵌入式硬件平台系统而专门设计,用来达到用户预定目标的计算机软件。嵌入式系统中软件与硬件紧密配合/协调工作,强调硬件/软件的协同性与整合性。开发时着重软硬件协同设计方法,即使用统一的方法和工具协同设计目标系统的软硬件体系结构,以最大限度地挖掘目标应用系统软硬件能力,获得高可靠、高性价比的系统优化设计方案[2]。与通用计算机系统相比,它具有以下特点。系统的专用性嵌入式软件系统为特定的用户设计,面向特定的应用领域,这种强针对性决定了嵌入式系统在硬件/软件系统设计方面都必须量体裁衣(体积/功耗/成本),以满足应用系统的特定应用要求。硬件的依赖性在嵌入式系统中,软件与硬件结合非常紧密。软件的运行离不开特定的硬件平台,当硬件平台发生改变时,其中的嵌入式软件要根据硬件的变化进行修改和系统的移植。此外,嵌入式系统中有限的硬件资源制约着软件的开发,决定着软件的质量和效率,因此,在嵌入式系统的设计、开发、测试等过程中,要充分考虑到硬件资源的约束、管理及使用。高可靠性、稳定性软件可靠性是指在规定的条件和规定的时间内,软件运行不发生故障的能力。采用嵌入式系统的装备,一般都有较高的可靠性的要求,因而对嵌入式软件也提出了高可靠性、高稳定性的要求。多任务的抢占性与实时性在一些强实时应用的嵌入式软件系统中,各任务的优先级不同,同级任务具有抢占的特点,而且每个任务的响应时间均有明确而严格的要求和限制,否则可能产生灾难性的问题或引发系统崩溃。目标软件调试环境复杂嵌入式软件的目标系统多为特殊的专用系统,通常采用宿主机/目标机的联合开发环境,借助通用计算机作为目标机的宿主开发调试环境,利用交叉调试器、通过通讯/或JTAG接口对目标机进行相关的开发调试,调试环境相对复杂、干扰因素较多。由于嵌入式软件具有以上特点,其设计、实现与测试均与普通应用软件研发不同,我们有必要采用软件工程化的原理,对其开发过程进行分析研究,优化其开发过程,提高它的可视性、可测性、可维性、可控性,从而提高嵌入式应用软件的开发质量。1.2一般嵌入式软件开发过程的标准化分析明确开发过程节点,使软件开发过程的管理有序受控将产品质量控制原则贯穿于嵌入式软件开发全过程,规定嵌入式软件开发过程主要节点设置里程碑标志,进行必要的评审,使嵌入式软件产品开发过程的技术与质量管理有序受控。嵌入式软件研制过程一般采用瀑布式模型,其开发工程过程一般划分为:1)系统设计;2)需求分析;3)软件概要设计;4)软件详细设计;5)编程;6)软硬件联合调试;7)软件测试。嵌入式软件开发的技术与质量管理通常结合硬件开发同步进行,一般划分为以下几个阶段:1)方案论证阶段;2)初样阶段;3)正样阶段;4)设计定型;5)生产定型。嵌入式软件软件文档的标准化嵌入式软件的文档资料与嵌入式软件本身是软件产品质量控制的主体,依据GJB438A一1997《武器系统软件开发文档》,建立和完善软件文档库(包括文档模板),通过对开发过程的监督,控制文档与软件的质量,从根本上保证产品质量。降低人为因素对软件质量的影响整个嵌入式软件开发质量是由每个项目成员的工作质量所决定的,明确嵌入式软件开发人员具体岗位、任务分配及工作规范,尽量降低影响软件质量的人为因素,避免非标准化的多个岗位重叠造成软件产品的质量失控。注重嵌入式软件开发关键环节质量控制在开发的过程中,严格需求分析、总体设计、边界设计、概要设计等环节的质量控制是解决软件产品质量的关键环节。强化用户和需求分析人员的边界意识。在有限的时间内,明确相关的目标边界、功能边界和数据边界。总体设计时,选择合适的微处理器和相关外围设备、嵌入式操作系统,进行软硬件的合理分割,确定软件开发、调试环境,确保研发成功。对嵌入式软件开发成果进行考核设置重大节点进行软件评审,每一小阶段的完成以该阶段参与人员的输出完成为标志,通过下一阶段参与者直接对上一阶段输出进行考核,使嵌入式软件开发全过程处于受控。规范嵌入式软件配置项管理软件的配置管理不是选用一个软件配置管理工具软件就可以了,软件的配置管理就是软件技术状态的管理,包括制定和实施软件配置管理计划,进行配置标识、配置控制、配置状况纪实。通过软件的配置管理确保软件配置项的完备、清晰、一致和可追溯性。尽可能实现版本向前兼容,合并多版本、多分支的产品或部件。嵌入式软件的正确性及可靠性测试软件功能及质量测试是发现软件错误的最有效途径,是保证软件质量的重要手段,也为评价软件技术质量提供了可靠的依据。测试与开发是相辅相成的,软件测试工作应贯穿整个软件开发过程。保证测试质量首先是选择合适的测试人员,他需熟悉软件测试的意义、技术和方法,并项目边界设计系统设计师系统分析师002项目边界确认项目负责人需求分析师006配置管理计划、创建和维护配置库配置管理员项目负责人004需求分析需求调研报告需求分析师系统分析师002、006需求规格说明需求分析师系统分析师002、006基本数据说明需求分析师系统分析师002、009需求/边界确认用户需求确认书需求分析师010、011总体设计总体设计方案系统分析师002、009、010、011软件质量保证计划项目负责人系统分析师104、013概要设计概要设计说明、开发环境说明、接口设计文档系统设计师系统分析师需求分析师010、012、011、013系统人机界面系统人机界面设计说明界面设计师系统设计师109、110、111系统人机界面确认人机界面用户确认报告需求分析师系统设计师115详细设计详细设计说明系统设计师015、016测试设计软件测试计划软件测试说明(测试用例)测试工程师系统分析师质量工程师012、014、017编码源程序(代码、代码注释)程序员系统设计师016、018用户手册程序员系统设计师016、018单元测试缺陷记录、单元测试报告测试工程师质量工程师018软硬件联合调试联合调试记录系统设计师程序员010系统测试系统测试报告、问题报告、问题处理报告测试工程师质量工程师019、020设计定型程序员手册固件保障手册资源综合保障文件程序员系统工程师021产品规范(可结合硬件一起编写)系统分析师全体021、025工艺文件编制首件鉴定生产支持工程师021、025、026配置状态报告、版本说明文档配置管理员008用户试用报告技术支持工程师培训培训计划、培训环境准备培训教案等培训工程师技术支持工程师120、123各项评审、定型审查审查申请、各项评审报告项目负责人021、025、028阶段总结报告项目负责人系统分析师现场试验报告技术支持工程师质量工程师质量分析报告质量工程师测试工程师024各阶段评审报告项目负责人系统分析师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通信终端软件输出考核表序号具体岗位承担人员输出考核情况项目负责人冯xx……(略)合格通信终端项目边界确认书合格通信终端软件质量保证计划合格系统分析师冯xx通信终端项目可行性报告合格通信终端软件总体设计方案合格通信终端软件风险评估报告合格需求分析师刘xx终端软件需求调研报告合格终端软件需求规格说明合格终端软件基本数据说明合格终端软件人机界面确认书合格终端软件用户需求确认书合格系统设计师周xx终端软件概要设计说明合格终端软件详细设计说明合格终端软件联合调试记录合格界面设计师汤xx终端软件人机界面设计说明合格程序员孙xx汤xx初始化模块源程序(代码、代码注释)核心处理模块源程序(代码、代码注释)、显示模块源程序(代码、代码注释)、键盘模块源程序(代码、代码注释)、数据处理模块源程序(代码、代码注释)、通信模块源程序(代码、代码注释)与外设通信模块源程序(代码、代码注释)合格各模块调试记录合格终端软件用户手册合格测试工程师周xx等终端软件测试计划合格终端软件测试说明(测试用例)合格终端软件单元测试报告、缺陷记录合格配置管理员李xx终端软件配置管理计划合格终端软件配置状态报告合格终端软件版本说明文档合格质量工程师徐xx终端软件质量分析报告合格生产支持工程师许xx……(略)合格培训工程师张xx……(略)合格技术支持工程师华xx……(略)合格通信终端的嵌入式软件开发采用了本文设计的标准化开发过程,通过软件工程化管理,使全过程受控,取得了较好的产品质量和开发效率。4结束语软件工程化管理要求[3]是GJB9001B—2009《质量管理体系要求》所要求的,采用适宜的软件开发过程是实现项目软件工程化的基础。嵌入式软件专用性强、与硬件结合紧密,本文结合其特点设计标准化的开发过程,使嵌入式软件的开发可视、可测、可维、可控,通过对项目成本、人员、进度、质量、风险等的管理,保证嵌入式软件开发项目能够按照预定的成本、进度、质量顺利完成。软件开发工程化已成为大家共识,嵌入式软件项目成功与否与项目规划、软件规模、软硬件技术方案选择、进展控制、需求变化、边界控制和风险管理等诸多因素有关,进一步开展嵌入式软件工程标准化,如建立、完善模块设计规范、软件可靠性设计规范、编码规范、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论