2022年嵌入式软件开发过程探讨 .pdf

上传人:Che****ry 文档编号:35755883 上传时间:2022-08-23 格式:PDF 页数:9 大小:187.64KB
返回 下载 相关 举报
2022年嵌入式软件开发过程探讨 .pdf_第1页
第1页 / 共9页
2022年嵌入式软件开发过程探讨 .pdf_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《2022年嵌入式软件开发过程探讨 .pdf》由会员分享,可在线阅读,更多相关《2022年嵌入式软件开发过程探讨 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

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

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

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

5、与实时性在一些强实时应用的嵌入式软件系统中,各任务的优先级不同,同级任务具有抢占的特点,而且每个任务的响应时间均有明确而严格的要求和限制,否则可能产生灾难性的问题或引发系统崩溃。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - (e)目标软件调试环境复杂嵌入式软件的目标系统多为特殊的专用系统,通常采用宿主机/ 目标机的联合开发环境,借助通用计算机作为目标机的宿主开发调试环境,利用交叉调试器、 通过通讯 / 或 JTAG接口对目标机

6、进行相关的开发调试,调试环境相对复杂、干扰因素较多。由于嵌入式软件具有以上特点,其设计、实现与测试均与普通应用软件研发不同,我们有必要采用软件工程化的原理,对其开发过程进行分析研究,优化其开发过程,提高它的可视性、可测性、可维性、可控性,从而提高嵌入式应用软件的开发质量。1.2 一般嵌入式软件开发过程的标准化分析a) 明确开发过程节点,使软件开发过程的管理有序受控将产品质量控制原则贯穿于嵌入式软件开发全过程,规定嵌入式软件开发过程主要节点设置里程碑标志, 进行必要的评审, 使嵌入式软件产品开发过程的技术与质量管理有序受控。嵌入式软件研制过程一般采用瀑布式模型,其开发工程过程一般划分为:1) 系

7、统设计;2) 需求分析; 3) 软件概要设计;4) 软件详细设计;5) 编程; 6)软硬件联合调试;7)软件测试。嵌入式软件开发的技术与质量管理通常结合硬件开发同步进行,一般划分为以下几个阶段: 1) 方案论证阶段;2) 初样阶段; 3) 正样阶段; 4) 设计定型; 5) 生产定型。b) 嵌入式软件软件文档的标准化嵌入式软件的文档资料与嵌入式软件本身是软件产品质量控制的主体,依据GJB438A一 1997武器系统软件开发文档,建 立 和 完 善 软件文 档 库( 包 括 文 档 模 板 ) ,通过对开发过程的监督,控制文档与软件的质量,从根本上保证产品质量。c) 降低人为因素对软件质量的影响

8、整个嵌入式软件开发质量是由每个项目成员的工作质量所决定的,明确嵌入式软件开发人员具体岗位、任务分配及工作规范,尽量降低影响软件质量的人为因素,避免非标准化的多个岗位重叠造成软件产品的质量失控。d) 注重嵌入式软件开发关键环节质量控制在开发的过程中,严格需求分析、总体设计、边界设计、概要设计等环节的质量控制是解决软件产品质量的关键环节。强化用户和需求分析人员的边界意识。在有限的时间内,明确相关的目标边界、功能边界和数据边界。总体设计时, 选择合适的微处理器和相关外围设备、嵌入式操作系统,进行软硬件的合理分割,确定软件开发、调试环境,确保研发成功。e) 对嵌入式软件开发成果进行考核设置重大节点进行

9、软件评审,每一小阶段的完成以该阶段参与人员的输出完成为标志,通过下一阶段参与者直接对上一阶段输出进行考核,使嵌入式软件开发全过程处于受控。f)规范嵌入式软件配置项管理软件的配置管理不是选用一个软件配置管理工具软件就可以了,软件的配置管理就是软件技术状态的管理,包括制定和实施软件配置管理计划,进行配置标识、配置控制、配置状况纪实。通过软件的配置管理确保软件配置项的完备、清晰、一致和可追溯性。尽可能实现版本向前兼容,合并多版本、多分支的产品或部件。g) 嵌入式软件的正确性及可靠性测试软件功能及质量测试是发现软件错误的最有效途径,是保证软件质量的重要手段,也为评价软件技术质量提供了可靠的依据。测试与

10、开发是相辅相成的,软件测试工作应贯穿整个软件开发过程。保证测试质量首先是选择合适的测试人员,他需熟悉软件测试的意义、技术和方法, 并名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - 善于与软件开发人员交流和协调;其次需制定测试计划,再就是在开发过程中对软件进行严格有效的测试。针对嵌入式软件特点,不只进行软件的白盒测试及黑盒测试,对测软件进行实时性、多任务并发性、中断处理以及软硬件接口等方面的进行有针对性的测试。2 嵌入式软件开发过

11、程的标准化实施2.1 嵌入式软件项目开发流程的标准化设计嵌入式系统开发的特点是满足应用的多样化需求。嵌入式软件是嵌入式系统的核心部分,我们有必要规范嵌入式软件在多样化的软硬件平台下开发流程,只有这样也能使其开发过程受控,产品质量得到保证。本文提出的一般规模嵌入式软件标准化开发流程,流程中设置了软硬件联合调试,及结合硬件进行相关评审的节点,详见图1。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - 方案阶段初样阶段正样阶段设计定型生

12、产定型项目立项需求分析需求/边界确认总体设计人机界面人机界面确认编码详细设计概要设计单元测试系统测试设计定型正样研制生产、培训现场支持项目项目结束立项评审, 建立研发团队调研、与用户沟通注意需求边界与用户达成一致资源余量考虑,软硬件合理分割上电/掉电等时序说明如存在,先行设计确认测试设计充分的代码注释具体过程参照初样阶段设计更改受控各项设计文件完善完成公司内有关人员及用户进行培训整套设计文件归档现场技术支持单元测试报告项目配置管理项目组内考核部门对项目组考核考评方案审查通过不通过调试软硬件联合调试软件评审通过不通过软件灌装、复制工艺文件编制、首件鉴定结合硬件生产定型用户试用用户试用报告邀请专家

13、、用户等参加现场试验软件评审通过不通过实时性、多任务并发、中断处理、软硬件接口测试系统测试报告严格版本控制图 1 嵌入式软件标准化开发流程图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - 2.2 嵌入式软件开发岗位和任务分配的标准化2.2.1具体岗位设置首先,规范技术部门组织结构,设置标准化的组织机构,主要的组织有:项目管理委员会、项目技术管理委员会、项目组、测试组等。其次,规范开发的具体岗位。不少企业为降成本,强调“复合型人才

14、”,有相当多的人既做设计又做编码还做测试,这不仅使项目的运行效率低、出错率高, 也使项目的人力成本提高、人员还不满意。正确的是根据工作内容的不同,进行专业分工,通过有效的项目团队组织机制将各类人员集成起来。嵌入式软件开发团队的具体岗位设置可分为:项目负责人、系统分析师、需求分析师、系统设计师、界面设计师、软件设计师、程序员、测试工程师、质量工程师、配置管理员、生产支持工程师(工艺师)、培训工程师、技术服务工程师等。根据不同岗位界定其不同的等级和小时工资。详见表1。表 1 具体岗位设置序号角色职责1项目负责人开发计划;日常管理;组织完成测试、参与系统验收;协助需求分析师完成需求分析2系统分析师总

15、体设计;概要设计;系统的功能框架3需求分析师在系统分析师的指导下完成需求分析;对需求及边界进行确认;完成人机界面(用户界面)确认4系统设计师完成概要设计、详细设计;配合完成各项评审、验收5界面设计师在系统设计师的指导下完成人机界面设计、人机界面确认等6程序员编码实现、单元调试7测试工程师进行单元测试、系统测试8配置管理员创建和维护配置库9质量工程师开发过程质量分析10生产支持工程师编写工艺文件、生产指导11培训工程师制定培训计划、编写培训教案、对公司内有关人员及用户培训12技术支持工程师用户现场技术支持2.2.2任务划分和分配的规范化、标准化根据项目开发标准化流程,细分开发过程的各项任务,明确

16、负责完成任务的岗位和参与完成任务的岗位,明确任务的输入和输出,对输出内容(主要为工作文档)质量进行审查,下一阶段任务执行者对上一阶段任务完成者进行考核,上一阶段输出没有完成,不能转入下一阶段工作。详见表2。表 2 开发过程任务分配表任务编号项目阶段任务名称(输出)负责岗位参与岗位前置任务(输入)001项目立项项目可行性报告系统分析师用户意向002总体方案(初稿)系统分析师研制要求合同003风险评估报告系统分析师001004项目开发计划(需评审)项目负责人全体研制要求合同005项目开发周报、项目负责人全体004名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -

17、- - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - 项目开发月报006项目边界设计系统设计师系统分析师002007项目边界确认项目负责人需求分析师006008配置管理计划、创建和维护配置库配置管理员项目负责人004009需求分析需求调研报告需求分析师系统分析师002、006010需求规格说明需求分析师系统分析师002、006011基本数据说明需求分析师系统分析师002、009012需求 / 边界确认用户需求确认书需求分析师010、011013总体设计总体设计方案系统分析师002、009、010、011014软件质量保

18、证计划项目负责人系统分析师104、013015概要设计概要设计说明、 开发环境说明、接口设计文档系统设计师系统分析师需求分析师010、012、011、013016系 统 人 机 界面系统人机界面设计说明界面设计师系统设计师109、110、111017系 统 人 机 界面确认人机界面用户确认报告需求分析师系统设计师115018详细设计详细设计说明系统设计师015、016019测试设计软件测试计划软件测试说明(测试用例)测试工程师系统分析师质量工程师012、014、017020编码源程序(代码、代码注释)程序员系统设计师016、018021用户手册程序员系统设计师016、018022单元测试缺陷记

19、录、单元测试报告测试工程师质量工程师018023软硬件联合调试联合调试记录系统设计师程序员010024系统测试系统测试报告、问题报告、问题处理报告测试工程师质量工程师019、020025设计定型程序员手册固件保障手册资源综合保障文件程序员系统工程师021026产品规范(可结合硬件一起编写)系统分析师全体021、025027工艺文件编制首件鉴定生产支持工程师021、025、026028配置状态报告、版本说明文档配置管理员008029用户试用报告技术支持工程师030培训培训计划、培训环境准备培训教案等培训工程师技 术 支 持 工程师120、123031各项评审、定型审查审查申请、各项评审报告项目负

20、责人021、025、028032阶段总结报告项目负责人系统分析师名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - 033现场试验报告技术支持工程师质量工程师034质量分析报告质量工程师测试工程师024035各阶段评审报告项目负责人系统分析师2.3 嵌入式软件 文档标准化要求依据 GJB438A一 1997武器系统软件开发文档4 ,建立软件文档标准化模板,根据模板编制软件文档,具体要求本文不再一一说明。对于嵌入式软件文档的编制时需注

21、意以下几点。a) 在编制软件概要设计说明、详细设计说明时,如果存在一下情况,应加以说明。1) 上电复位、掉电、关机、正常工作时的时序状态情况说明,包括软件的加载( 引导 )方式说明、 DSP系统的初始化内容及流程说明和系统中断向量表的配置说明。2) 多 CPU系统或主从系统设计的考虑(如果存在)DSP与上级系统内CPU协调工作的通信方式说明DSP与上级系统内CPU的通信协议的说明DSP与上级系统内CPU的交换信息的命令字格式定义说明。3) 程序的框架结构及系统资源需求程序的功能划分和规划,包括DSP内部硬件资源分配情况注明。实时多任务系统,其中应包括前、后台模块的功能划分和时限要求。功能模块间

22、粗拓扑框图。模块中中断处理的方式、类型和级别。4) 防流水线冲突的说明。 (如有)5) 对存储器有特殊要求的指令字的使用注明。b) 文档化源程序文件要求源程序文件要求文件中包括源程序及其注释内容,注释的意义必须与程序一致,应规定注释行数,一般不少于源程序总行数的35% 。标识符:包括模块名、变量名、常量名、标号名、子程序名、数据名和缓冲区名等;序言性注释:置于每个程序模块的开头,给出程序的整体说明;功能性注释: 嵌在源程序体中, 必须正确的描述其后的语句或程序的功能或执行的效果;数据说明:常量说明简单变量类型说明数组说明公用数据块说明所有文件说明整形量说明实型量说明字符量说明逻辑量说明VHDL

23、语言文档化3 某嵌入式软件标准化开发过程举例上海美多通信设备有限公司开发的通信终端采用ARM嵌入式系统 5 ,软件包括初始化模块、核心处理模块、显示模块、键盘模块、数据处理模块、通信模块以及与外设通信模块等。该软件开发过程以本文提出的开发过程为标准过程,在其基础上进行裁减,形成项目软件开发过程。通信终端软件开发过程分方案论证阶段、初样阶段、正样阶段、设计定型四个阶段, 在里程碑节点处结合硬件进行了公司级以上的评审,具体有方案审查、软件需求分析评审、初样软件评审、正样软件评审、设计定型审查等。通信终端软件开发过程确定了软件开发的具体岗位、任务分配、输入和输出及完成时间,名师资料总结 - - -精

24、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - 通过评审和考核使全过程受控,见表 3 通信终端软件输出考核表。该项目的成功实施,并取得较好的产品质量,验证了本文提出的开发过程的有效性。表 3 通信终端软件输出考核表序号具体岗位承担人员输出考核情况1项目负责人冯 xx(略)合格通信终端项目边界确认书合格通信终端软件质量保证计划合格2系统分析师冯 xx通信终端项目可行性报告合格通信终端软件总体设计方案合格通信终端软件风险评估报告合格3需求分析师刘 xx终端软

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

26、软件测试计划合格终端软件测试说明(测试用例)合格终端软件单元测试报告、缺陷记录合格8配置管理员李 xx终端软件配置管理计划合格终端软件配置状态报告合格终端软件版本说明文档合格9质量工程师徐 xx终端软件质量分析报告合格10生 产 支 持 工程师许 xx(略)合格11培训工程师张 xx(略)合格12技 术 支 持 工程师华 xx(略)合格通信终端的嵌入式软件开发采用了本文设计的标准化开发过程,通过软件工程化管理,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - -

27、 - - - - - - - 使全过程受控,取得了较好的产品质量和开发效率。4 结束语软件工程化管理要求3 是 GJB9001B 2009质量管理体系要求所要求的,采用适宜的软件开发过程是实现项目软件工程化的基础。嵌入式软件专用性强、与硬件结合紧密,本文结合其特点设计标准化的开发过程,使嵌入式软件的开发可视、可测、可维、可控,通过对项目成本、人员、进度、质量、风险等的管理,保证嵌入式软件开发项目能够按照预定的成本、进度、质量顺利完成。软件开发工程化已成为大家共识,嵌入式软件项目成功与否与项目规划、软件规模、 软硬件技术方案选择、进展控制、需求变化、边界控制和风险管理等诸多因素有关,进一步开展嵌

28、入式软件工程标准化,如建立、完善模块设计规范、软件可靠性设计规范、编码规范、标准构件库等,将有利于提高其产品质量和劳动生产率。随着技术的进步,嵌入式软件开发经验的积累,一系列标准的完善,嵌入式软件开发工程化将日趋成熟。参 考 文 献1 马中梅,李善平等.ARM&Linux 嵌入式系统教程. 北京 : 北京航空航天出版社,20042 程克非嵌入式系统设计. 北京 : 机械工业出版社 20103 王黎明、刘益新等GJB 9001B 2009 质量管理体系要求,20094 王安生、陈瑜等GJB 438A 1997 武器系统软件开发文档5 熊茂华、杨振伦. ARM9 嵌入式系统设计与开发应用. 清华大学出版社.2009名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁