嵌入式软件开发过程探讨[实用]

上传人:x****育 文档编号:157003354 上传时间:2020-12-20 格式:PDF 页数:14 大小:171.32KB
返回 下载 相关 举报
嵌入式软件开发过程探讨[实用]_第1页
第1页 / 共14页
嵌入式软件开发过程探讨[实用]_第2页
第2页 / 共14页
嵌入式软件开发过程探讨[实用]_第3页
第3页 / 共14页
嵌入式软件开发过程探讨[实用]_第4页
第4页 / 共14页
嵌入式软件开发过程探讨[实用]_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《嵌入式软件开发过程探讨[实用]》由会员分享,可在线阅读,更多相关《嵌入式软件开发过程探讨[实用](14页珍藏版)》请在金锄头文库上搜索。

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

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

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

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

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

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

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

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

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

10、试与开发是相辅相成的,软件测试工作应贯穿整个软件开发过程。 保证测试质量首先是选择合适的测试人员,他需熟悉软件测试的意义、技术和方法, 并 善于与软件开发人员交流和协调;其次需制定测试计划,再就是在开发过程中对软件进行严 格有效的测试。 4 / 14 _ 针对嵌入式软件特点,不只进行软件的白盒测试及黑盒测试,对测软件进行实时性、多 任务并发性、中断处理以及软硬件接口等方面的进行有针对性的测试。 2 嵌入式软件开发过程的标准化实施 2.1 嵌入式软件项目开发流程的标准化设计 嵌入式系统开发的特点是满足应用的多样化需求。嵌入式软件是嵌入式系统的核心部 分,我们有必要规范嵌入式软件在多样化的软硬件平

11、台下开发流程,只有这样也能使其开发 过程受控,产品质量得到保证。 本文提出的一般规模嵌入式软件标准化开发流程,流程中设置了软硬件联合调试,及结 合硬件进行相关评审的节点,详见图1。 5 / 14 _ 方 案 阶 段 初 样 阶 段 正 样 阶 段 设 计 定 型 生 产 定 型 项目立项 需求分析 需求/边界确认 总体设计 人机界面 人机界面确认 编码 详细设计 概要设计 单元测试 项目 立项评审, 建立研发团队 调研、与用户沟通 注意需求边界 与用户达成一致 资源余量考虑, 软硬件合理分割 上电/掉电等时序说明 如存在,先行设计 确认 测试设计 充分的代码注释 单元测试报告 项目 配置 管理

12、 项 目 组 内 考 核 部 门 对 项 目 组 考 核 考评 方案审查 通过 不通过 调试 邀请专家、用户等参加 6 / 14 _ 系统测试 设计定型 正样研制 生产、培训 现场支持 项目结束 具体过程参照初样阶段 设计更改受控 各项设计文件完善 完成公司内有关人员及用 户进行培训 整套设计文件归档 现场技术支持 软硬件 联合调试 软件评审 通过 不通过 软件灌装、复制 工艺文件编制、首件鉴定 结合硬件 生产定型 用户试用用户试用报告 现场试验 软件评审 通过 不通过 实时性、多任务并发、中 断处理、软硬件接口测试 系统测试报告 严格版本控制 图 1 嵌入式软件标准化开发流程图 7 / 14

13、 _ 2.2 嵌入式软件开发岗位和任务分配的标准化 2.2.1 具体岗位设置 首先,规范技术部门组织结构,设置标准化的组织机构,主要的组织有:项目管理委员 会、项目技术管理委员会、项目组、测试组等。 其次,规范开发的具体岗位。不少企业为降成本,强调“复合型人才”,有相当多的人 既做设计又做编码还做测试,这不仅使项目的运行效率低、出错率高, 也使项目的人力成本 提高、人员还不满意。正确的是根据工作内容的不同,进行专业分工,通过有效的项目团队 组织机制将各类人员集成起来。嵌入式软件开发团队的具体岗位设置可分为:项目负责人、 系统分析师、需求分析师、系统设计师、界面设计师、软件设计师、程序员、测试工

14、程师、 质量工程师、配置管理员、生产支持工程师(工艺师)、培训工程师、技术服务工程师等。 根据不同岗位界定其不同的等级和小时工资。详见表1。 表 1 具体岗位设置 序号角色职责 1项目负责人开发计划;日常管理;组织完成测试、参与系统验收;协助需 求分析师完成需求分析 2系统分析师总体设计;概要设计;系统的功能框架 3需求分析师在系统分析师的指导下完成需求分析;对需求及边界进行确 认;完成人机界面(用户界面)确认 4系统设计师完成概要设计、详细设计;配合完成各项评审、验收 5界面设计师在系统设计师的指导下完成人机界面设计、人机界面确认等 6程序员编码实现、单元调试 7测试工程师进行单元测试、系统

15、测试 8配置管理员创建和维护配置库 9质量工程师开发过程质量分析 10生产支持工程师编写工艺文件、生产指导 11培训工程师制定培训计划、编写培训教案、对公司内有关人员及用户培训 12技术支持工程师用户现场技术支持 2.2.2 任务划分和分配的规范化、标准化 8 / 14 _ 根据项目开发标准化流程,细分开发过程的各项任务,明确负责完成任务的岗位和参与 完成任务的岗位,明确任务的输入和输出,对输出内容(主要为工作文档)质量进行审查, 下一阶段任务执行者对上一阶段任务完成者进行考核,上一阶段输出没有完成,不能转入下 一阶段工作。详见表2。 表 2 开发过程任务分配表 任务 编号 项目阶段 任务名称

16、 (输出) 负责岗位参与岗位 前置任务 (输入) 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

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 理论文章

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号