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

下载本文档

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

文档简介

1、嵌入式应用软件开发过程标准化管理探讨上海美多通信设备有限公司 程卫红嵌入式软件广泛应用于国防、工控、家用、商用、办公、医疗等领域,嵌入式计算机系 统存在着专用性强、可靠性高、实时性强、软硬件结合紧密等特点,嵌入式软件是嵌入式计 算机应用系统的核心与灵魂, 它在军用电子装备中有着广泛的应用, 其中一些中小型军用电 子装备研发企业的嵌入式软件研发团队一般仅有数人至十几人, 且存在人员流动, 缺乏对其 开发过程的有效技术及质量的监管控制, 造成一些软件嵌入式更改频繁、 开发效率低, 质量 无法保证。而通用软件开发中广泛使用的CMMk CMMI模型是以大企业为对象制定的,在这些企业中实施有困难。 规范

2、其开发过程存在一定难度, 这成为这些企业控制装备质量、 提 高研发效率的瓶颈。本文依据软件工程化思想、CMMk CMMI模型和 GJB900质量管理体系的思想原则,结合嵌入式软件开发的自身特点,针对中小型软件研发企业的具体情况提出了嵌入式软件开发过程的标准化管理及质量控制的一些思路,以飨读者。1嵌入式软件开发过程的标准化分析1.1 嵌入式软件与 嵌入式系统嵌入式系统(EmbeddedSyste是指用于执行独立功能的专用计算机系统。它以应用为中心, 以计算机技术为基础, 软硬件可裁减, 能适应实际应用系统中对功能、性能、 可靠性、成本、体积、功耗、电磁兼容等严格要求的专用计算机系统1。嵌入式软件

3、与嵌入式系统是密不可分的, 嵌入式软件是基于嵌入式系统而专门设计的软件。嵌入式软件是针对特定应用领域, 基于某一固定的嵌入式硬件平台系统而专门设计,用来达到用户预定目标的计算机软件。嵌入式系统中软件与硬件紧密配合/协调工作,强调硬件/软件的协同性与整合性。开发时着重软硬件协同设计方法, 即使用统一的方法和工具协同设计目标系统的软硬件体系结 构,以最大限度地挖掘目标应用系统软硬件能力,获得高可靠、 高性价比的系统优化设计方案2 。与通用计算机系统相比,它具有以下特点。(a) 系统的专用性 嵌入式软件系统为特定的用户设计,面向特定的应用领域, 这种强针对性决定了嵌入式系统在硬件 /软件系统设计方面

4、都必须量体裁衣 用要求。(体积/功耗/成本 ),以满足应用系统的特定应(b) 硬件的依赖性在嵌入式系统中, 软件与硬件结合非常紧密。 软件的运行离不开特定的硬件平台,当硬件平台发生改变时, 其中的嵌入式软件要根据硬件的变化进行修改和系统的移植。此外, 嵌入式系统中有限的硬件资源制约着软件的开发,决定着软件的质量和效率, 因此, 在嵌入式系统的设计、开发、测试等过程中,要充分考虑到硬件资源的约束、管理及使用。(c) 高可靠性、稳定性软件可靠性是指在规定的条件和规定的时间内, 式系统的装备, 一般都有较高的可靠性的要求, 定性的要求。软件运行不发生故障的能力。采用嵌入因而对嵌入式软件也提出了高可靠

5、性、高稳(d) 多任务的抢占性与实时性 在一些强实时应用的嵌入式软件系统中,各任务的优先级不同, 同级任务具有抢占的特点,而且每个任务的响应时间均有明确而严格的要求和限制,否则可能产生灾难性的问题或 引发系统崩溃(e) 目标软件调试环境复杂 嵌入式软件的目标系统多为特殊的专用系统, 通常采用宿主机 /目标机的联合开发环境, 借助通用计算机作为目标机的宿主开发调试环境,利用交叉调试器、通过通讯/或 JTAG接口对目标机进行相关的开发调试,调试环境相对复杂、干扰因素较多。由于嵌入式软件具有以上特点,其设计、实现与测试均与普通应用软件研发不同,我们 有必要采用软件工程化的原理,对其开发过程进行分析研

6、究,优化其开发过程, 提高它的可视性、可测性、可维性、可控性,从而提高嵌入式应用软件的开发质量。1.2 一般嵌入式软件开发过程的标准化分析a) 明确开发过程节点,使软件开发过程的管理有序受控将产品质量控制原则贯穿于嵌入式软件开发全过程,规定嵌入式软件开发过程主要节点设置里程碑标志, 进行必要的评审, 使嵌入式软件产品开发过程的技术与质量管理有序受控。嵌入式软件研制过程一般采用瀑布式模型,其开发工程过程一般划分为: 1) 系统设计;2) 需求分析; 3) 软件概要设计; 4) 软件详细设计; 5) 编程; 6)软硬件联合调试;7)软件测试。嵌入式软件开发的 技术与质量管理通常结合硬件开发同步进行

7、,一般划分为以下几个阶段: 1) 方案论证阶段; 2) 初样阶段; 3) 正样阶段; 4) 设计定型; 5)生产定型。b) 嵌入式软件软件文档的标准化嵌入式软件的文档资料与嵌入式软件本身是软件产品质量控制的主体,依据 GJB438A一 1997 武器系统软件开发文档,建 立 和 完 善 软件文 档库( 包 括 文 档 模 板 ),通过对开发过程的监督,控制文档与软件的质量,从根本上保证产品质量。c) 降低人为因素对软件质量的影响整个嵌入式软件开发质量是由每个项目成员的工作质量所决定的,明确嵌入式软件开发人员具体岗位、 任务分配及工作规范, 尽量降低影响软件质量的人为因素,避免非标准化的多个岗位

8、重叠造成软件产品的质量失控。d) 注重嵌入式软件开发关键环节质量控制 在开发的过程中,严格需求分析、总体设计、边界设计、概要设计等环节的质量控制是解决软件产品质量的关键环节。强化用户和需求分析人员的边界意识。在有限的时间内, 明确相关的目标边界、 功能边界和数据边界。总体设计时, 选择合适的微处理器和相关外围设备、嵌入式操作系统, 进行软硬件的合理分割,确定软件开发、调试环境,确保研发成功。e) 对嵌入式软件开发成果进行考核 设置重大节点进行软件评审,每一小阶段的完成以该阶段参与人员的输出完成为标志,通过下一阶段参与者直接对上一阶段输出进行考核,使嵌入式软件开发全过程处于受控。f) 规范嵌入式

9、软件配置项管理软件的配置管理不是选用一个软件配置管理工具软件就可以了,软件的配置管理就是软件技术状态的管理,包括制定和实施软件配置管理计划,进行配置标识、配置控制、配置状 况纪实。通过软件的配置管理确保软件配置项的完备、清晰、一致和可追溯性。尽可能实现版本向前兼容,合并多版本、多分支的产品或部件。g) 嵌入式软件的正确性及可靠性测试 软件功能及质量测试是发现软件错误的最有效途径,是保证软件质量的重要手段, 也为评价软件技术质量提供了可靠的依据。测试与开发是相辅相成的,软件测试工作应贯穿整个软件开发过程。 保证测试质量首先是选择合适的测试人员,他需熟悉软件测试的意义、 技术和方法, 并 善于与软

10、件开发人员交流和协调; 其次需制定测试计划, 再就是在开发过程中对软件进行严 格有效的测试。针对嵌入式软件特点, 不只进行软件的白盒测试及黑盒测试, 对测软件进行实时性、 多 任务并发性、中断处理以及软硬件接口等方面的进行有针对性的测试。2 嵌入式软件开发过程的标准化 实施2.1 嵌入式软件项目开发流程的标准化设计 嵌入式系统开发的特点是满足应用的多样化需求。嵌入式软件是嵌入式系统的核心部 分,我们有必要规范嵌入式软件在多样化的软硬件平台下开发流程, 只有这样也能使其开发 过程受控,产品质量得到保证。本文提出的一般规模嵌入式软件标准化开发流程, 流程中设置了软硬件联合调试, 及结 合硬件进行相

11、关评审的节点,详见图1。项目正样阶段方案阶 段项目配置项目立项管理上电/掉电等时序说明考评如存在,先行设计确认初样阶段充分的代码注释单元测试报告测试立项评审,建立研发团队需求分析需求/边界确认总体设计方案审查通过人机界面生产疋型调研、与用尸沟通注意需求边界与用户达成一致资源余量考虑,软硬件合理分割邀请专家、用户等参加项 目 组 内 考 核>11Mill 11III1详细衣计测试设计不通过软件评审通过不通过I I-1软硬件1联合调试实时性、多任务并发、中断处理、软硬件接口测试系统测试报告、一亠通过现场试验现场试验软件灌装、复制用户试用设计定型生产、培训结合硬件具体过程参照初样阶段具体过程参

12、照初样阶段士设计更改受控士设计更改受控各项设计文件完善工艺文件编制、首件鉴定用户试用报告整套设计文件归档完成公司内有关人员及用 户进行培训部门对项目组考生产定型严格版本控制项目结束图 1 嵌入式软件标准化开发流程图2.2嵌入式软件开发岗位和任务分配的标准化具体岗位设置首先,规范技术部门组织结构,设置标准化的组织机构,主要的组织有:项目管理委员会、项目技术管理委员会、项目组、测试组等。其次,规范开发的具体岗位。不少企业为降成本,强调“复合型人才”,有相当多的人既做设计又做编码还做测试,这不仅使项目的运行效率低、出错率高, 也使项目的人力成本提高、人员还不满意。正确的是根据工作内容的不同,进行专业

13、分工,通过有效的项目团队 组织机制将各类人员集成起来。嵌入式软件开发团队的具体岗位设置可分为:项目负责人、 系统分析师、需求分析师、系统设计师、界面设计师、软件设计师、程序员、测试工程师、质量工程师、配置管理员、生产支持工程师(工艺师)、培训工程师、技术服务工程师等。根据不同岗位界定其不同的等级和小时工资。详见表1。表1具体岗位设置序号角色职责1项目负责人开发计划;日常管理;组织完成测试、参与系统验收;协助需 求分析师完成需求分析2系统分析师总体设计;概要设计;系统的功能框架3需求分析师在系统分析师的指导下完成需求分析;对需求及边界进行确 认;完成人机界面(用户界面)确认4系统设计师完成概要设

14、计、详细设计;配合完成各项评审、验收5界面设计师在系统设计师的指导下完成人机界面设计、人机界面确认等6程序员编码实现、单兀调试7测试工程师进行单元测试、系统测试8配置管理员创建和维护配置库9质量工程师开发过程质量分析10生产支持工程师编写工艺文件、生产指导11培训工程师制定培训计划、编写培训教案、对公司内有关人员及用户培训12技术支持工程师用户现场技术支持任务划分和分配的规范化、标准化根据项目开发标准化流程,细分开发过程的各项任务,明确负责完成任务的岗位和参与完成任务的岗位,明确任务的输入和输出,对输出内容(主要为工作文档)质量进行审查,下一阶段任务执行者对上一阶段任务完成者进行考核,上一阶段

15、输出没有完成,不能转入下一阶段工作。详见表2。表2开发过程任务分配表任务项目阶段任务名称负责冈位参与岗位前置任务编号项目立项(输出(输入ItTr 1、1 i < i001项目可行性报告'系统分析师用户意向002总体方案(初稿)系统分析师研制要求同003风险评估报告系统分析帅001004项目开发计划(需评审)项目负责人:全体研制要求r合同I1丄一_-_丄_丄005项目开发周报、项目负责人全体004项目幵发月报006项目边界设计系统设计师系统分析师002007项目边界确认项目负责人:需求分析帅006008配置管理计划、创建和维护配置库配置管理员:页目负责人004009需求分析需求调研

16、报告需求分析师系统分析师002 006010需求规格说明需求分析师系统分析师002 006011基本数据说明需求分析师系统分析师002 009012需求/边界确用认冃户需求确认书:需求分析师010 011013总体设计总体设计方案系统分析师002 009010 011014软件质量保证计划项目负责人|a系统分析师104 013015概要设计概要设计说明、 幵发环境说明、接设计文档系统设计师系统分析师需求分析帅010 012011013016系统人机界面接口设计丨文档系统人机界面设计说明界面设计师1需求丿J析帅1系统设计师109 110111017系统人机界,面确认人机界面用户确认报告需求分析师

17、系统设计师1 1 1115nd q.面确认人¥厶叶1几4丰I斗¥厶九RBC” f-C" C018019详细设计测试设计详细设计说明软件测试计划系统设计1少师测试工程师系统分析师U 1 2 U 1 O012 014软件测试说明(测试用例)质量工程师017020编码源程序(代码、代码注释)程序员系统设计师016 018021用户手册程序员系统设计师016 018022CC C单元测试缺陷记录、单兀测试报告Tf乂 人、E、4、一t =测试工程师,K /亠 > rr > .i质量工程师:口宀 口018八丄八023024软硬件联合 调试 系统测试联合调试记录系统

18、测试报告、问题报告、问系统设计帅丿测试工程师.呈序员质量工程师010019 020025设计定型题处理报告程序员手册固件保障手册程序员,系统工程师021026资源综合保障文件产品规范(可结合硬件 起编系统分析师;全体021 025027写)工艺文件编制021 025生产支持工程028首件鉴定配置状态报告、版本说明文档W配置管理员026008029用户试用报告技术支持工程师030培训培训计划、培训环境准备培训教案等一培训工程师技术支持工程师120 123031各项评审、审杳申请、各项评审报告项目负责人021 025032阶段总结报告项目负责人系统分析师定型审查028033现场试验报告技术支持工程

19、师质量工程师034质量分析报告质量工稈师:测试工稈师024035各阶段评审报告项冃负责人1系统分析师2.3嵌入式软件文档标准化要求依据GJB438一 199武器系统软件开发文档模板编制软件文档,具体要求本文不再说明。几点。4,建立软件文档标准化模板,根据 对于嵌入式软件文档的编制时需注意以下a)在编制软件概要设计说明、详细设计说明时,如果存在一下情况,应加以说明1) 上电复位、掉电、关机、正常工作时的时序状态情况说明,包括软件的加载(引导)方式说明、DS系统的初始化内容及流程说明和系统中断向量表的配置说明2) 多CPI系统或主从系统设计的考虑(如果存在)DS与上级系统内DS与上级系统内DS与上

20、级系统内CPU、调工作的通信方式说明CPU勺通信协议的说明CP啲交换信息的命令字格式定义说明3) 程序的框架结构及系统资源需求_ 程序的功能划分和规划,包括DS内部硬件资源分配情况注明。实时多任务系统,其中应包括前、后台模块的功能划分和时限要求。 功能模块间粗拓扑框图。模块中中断处理的方式、类型和级别。4) 防流水线冲突的说明。(如有)5) 对存储器有特殊要求的指令字的使用注明。b) 文档化源程序文件要求源程序文件要求文件中包括源程序及其注释内容,注释的意义必须与程序一致,应规定注释行数,一般不少于源程序总行数的35%标识符:包括模块名、变量名、常量名、标号名、子程序名、数据名和缓冲区 名等;

21、序言性注释:置于每个程序模块的开头,给出程序的整体说明;功能性注释:嵌在源程序体中,必须正确的描述其后的语句或程序的功能或执行的效果;数据说明:常量说明 -简单变量类型说明-数组说明公用数据块说明-所有 文件说明整形量说明-实型量说明-字符量说明-逻辑量说明VHD语言文档化3某嵌入式软件标准化开发过程举例上海美多通信设备有限公司开发的通信终端采用ARR嵌入式系统5,软件包括初始化模块、核心处理模块、显示模块、键盘模块、数据处理模块、通信模块以及与外设通信模块 等。该软件开发过程以本文提出的开发过程为标准过程,在其基础上进行裁减, 形成项目软件开发过程。通信终端软件开发过程分方案论证阶段、初样阶

22、段、正样阶段、设计定型四个 阶段,在里程碑节点处结合硬件进行了公司级以上的评审,具体有方案审查、软件需求分析评审、初样软件评审、正样软件评审、设计定型审查等。任务分配、输入和输出及完成时间,通信终端软件开发过程确定了软件开发的具体岗位、通过评审和考核使全过程受控,见表3通信终端软件输出考核表。该项目的成功实施,并取得较好的产品质量,验证了本文提出的开发过程的有效性。表3通信终端软件输出考核表序号具体岗位承担人员输出考核情况1-项目负责人冯XX,(略)合格通信终端项目边界确认书合格通信终端软件质量保证计划合格2系统分析师冯XX通信终端项目可行性报告合格通信终端软件总体设计方案'合格通信终

23、端软件风险评估报告合格3需求分析师刘XX终端软件需求调研报告合格终端软件需求规格说明合格终端软件基本数据说明合格终端软件人机界面确认书合格终端软件用户需求确认书r合格4系统设计师周XX终端软件概要设计说明合格终端软件详细设计说明合格终端软件联合调试记录合格5界面设计师汤XX终端软件人机界面设计说明合格6程序员孙XX初始化模块源程序(代码、代码注释)合格汤XX核心处理模块源程序(代码、代码注释)、显示模块源程序(代码、代码注释)、键盘模块源程序(代码、代码注释)、数据处理模块源程序(代码、代码注释)、通信模块源程序(代码、代码注释)与外设通信模块源程序(代码、代码注释)各模块调试记录合格终端软件用户手册合格7测试工程师周XX等终端软件测试计划合格终端软件测试说明(测试用例

温馨提示

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

最新文档

评论

0/150

提交评论