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

下载本文档

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

文档简介

1 嵌入式应用软件开发过程标准化管理探讨 上海美多通信设备有限公司 程卫红 嵌入式软件广泛应用于国防 工控 家用 商用 办公 医疗等领域 嵌入式计算机 系统存在着专用性强 可靠性高 实时性强 软硬件结合紧密等特点 嵌入式软件是嵌入 式计算机应用系统的核心与灵魂 它在军用电子装备中有着广泛的应用 其中一些中小型 军用电子装备研发企业的嵌入式软件研发团队一般仅有数人至十几人 且存在人员流动 缺乏对其开发过程的有效技术及质量的监管控制 造成一些软件嵌入式更改频繁 开发效 率低 质量无法保证 而通用软件开发中广泛使用的 CMM CMMI 模型是以大企业为对 象制定的 在这些企业中实施有困难 规范其开发过程存在一定难度 这成为这些企业控 制装备质量 提高研发效率的瓶颈 本文依据软件工程化思想 CMM CMMI 模型和 GJB9001B 质量管理体系的思想原则 结合嵌入式软件开发的自身特点 针对中小型软件研发企业的具体情况提出了嵌入式软件 开发过程的标准化管理及质量控制的一些思路 以飨读者 1 嵌入式软件开发过程的标准化分析 1 1 嵌入式软件与嵌入式系统 嵌入式系统 Embedded System 是指用于执行独立功能的专用计算机系统 它以应用 为中心 以计算机技术为基础 软硬件可裁减 能适应实际应用系统中对功能 性能 可 靠性 成本 体积 功耗 电磁兼容等严格要求的专用计算机系统 1 嵌入式软件与嵌入 式系统是密不可分的 嵌入式软件是基于嵌入式系统而专门设计的软件 嵌入式软件是针 对特定应用领域 基于某一固定的嵌入式硬件平台系统而专门设计 用来达到用户预定目 标的计算机软件 嵌入式系统中软件与硬件紧密配合 协调工作 强调硬件 软件的协同性与 整合性 开发时着重软硬件协同设计方法 即使用统一的方法和工具协同设计目标系统的 软硬件体系结构 以最大限度地挖掘目标应用系统软硬件能力 获得高可靠 高性价比的 系统优化设计方案 2 与通用计算机系统相比 它具有以下特点 a 系统的专用性 嵌入式软件系统为特定的用户设计 面向特定的应用领域 这种强针对性决定了嵌入 式系统在硬件 软件系统设计方面都必须量体裁衣 体积 功耗 成本 以满足应用系统的特定 应用要求 b 硬件的依赖性 在嵌入式系统中 软件与硬件结合非常紧密 软件的运行离不开特定的硬件平台 当 硬件平台发生改变时 其中的嵌入式软件要根据硬件的变化进行修改和系统的移植 此外 嵌入式系统中有限的硬件资源制约着软件的开发 决定着软件的质量和效率 因此 在嵌 入式系统的设计 开发 测试等过程中 要充分考虑到硬件资源的约束 管理及使用 c 高可靠性 稳定性 软件可靠性是指在规定的条件和规定的时间内 软件运行不发生故障的能力 采用嵌 入式系统的装备 一般都有较高的可靠性的要求 因而对嵌入式软件也提出了高可靠性 高稳定性的要求 d 多任务的抢占性与实时性 在一些强实时应用的嵌入式软件系统中 各任务的优先级不同 同级任务具有抢占的 特点 而且每个任务的响应时间均有明确而严格的要求和限制 否则可能产生灾难性的问 题或引发系统崩溃 2 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 嵌入式软件的正确性及可靠性测试 软件功能及质量测试是发现软件错误的最有效途径 是保证软件质量的重要手段 也 为评价软件技术质量提供了可靠的依据 测试与开发是相辅相成的 软件测试工作应贯穿整个软件开发过程 3 保证测试质量首先是选择合适的测试人员 他需熟悉软件测试的意义 技术和方法 并善于与软件开发人员交流和协调 其次需制定测试计划 再就是在开发过程中对软件进 行严格有效的测试 针对嵌入式软件特点 不只进行软件的白盒测试及黑盒测试 对测软件进行实时性 多任务并发性 中断处理以及软硬件接口等方面的进行有针对性的测试 2 嵌入式软件开发过程的标准化实施 2 1 嵌入式软件项目开发流程的标准化设计 嵌入式系统开发的特点是满足应用的多样化需求 嵌入式软件是嵌入式系统的核心部 分 我们有必要规范嵌入式软件在多样化的软硬件平台下开发流程 只有这样也能使其开 发过程受控 产品质量得到保证 本文提出的一般规模嵌入式软件标准化开发流程 流程中设置了软硬件联合调试 及 结合硬件进行相关评审的节点 详见图 1 4 方 案 阶 段 初 样 阶 段 正 样 阶 段 设 计 定 型 生 产 定 型 项目立项 需求分析 需求 边界确认 总体设计 人机界面 人机界面确认 编码 详细设计 概要设计 单元测试 系统测试 设计定型 正样研制 生产 培训 现场支持 项目 项目结束 立项评审 建立研发团 队 调研 与用户沟通 注意需求边界 与用户达成一致 资源余量考虑 软硬件合理分割 上电 掉电等时序说明 如存在 先行设计 确认 测试设计 充分的代码注释 具体过程参照初样阶段 设计更改受控 各项设计文件完善 完成公司内有关人员及用 户进行培训 整套设计文件归档 现场技术支持 单元测试报告 项目 配置 管理 项 目 组 内 考 核 部 门 对 项 目 组 考 核 考评 方案审查 通过 不通过 调试 软硬件 联合调试 软件评审 通过 不通过 软件灌装 复制 工艺文件编制 首件鉴定 结合硬件 生产定型 用户试用用户试用报告 邀请专家 用户等参加 现场试验 软件评审 通过 不通过 实时性 多任务并发 中断处理 软硬件接口 测试 系统测试报告 严格版本控制 图 1 嵌入式软件标准化开发流程图 5 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 项目立项 项目开发计划 需评审 项目负责人全体研制要求 合同 6 005 项目开发周报 项目开发月报 项目负责人全体 004 006 项目边界设计系统设计师系统分析师 002 007 项目边界确认项目负责人需求分析师 006 008 配置管理计划 创建和维护配 置库 配置管理员项目负责人 004 009 需求调研报告需求分析师系统分析师002 006 010 需求规格说明需求分析师系统分析师002 006 011 需求分析 基本数据说明需求分析师系统分析师002 009 012 需求 边界确 认 用户需求确认书需求分析师010 011 013 总体设计方案系统分析师002 009 010 01 1 014 总体设计 软件质量保证计划项目负责人系统分析师104 013 015 概要设计概要设计说明 开发环境说明 接口设计文档 系统设计师系统分析师 需求分析师 010 012 011 01 3 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 7 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 软件包括初始化 模块 核心处理模块 显示模块 键盘模块 数据处理模块 通信模块以及与外设通信模 块等 该软件开发过程以本文提出的开发过程为标准过程 在其基础上进行裁减 形成项 8 目软件开发过程 通信终端软件开发过程分方案论证阶段 初样阶段 正样阶段 设计定 型四个阶段 在里程碑节点处结合硬件进行了公司级以上的评审 具体有方案审查 软件 需求分析评审 初样软件评审 正样软件评审 设计定型审查等 通信终端软件开发过程确定了软件开发的具体岗位 任务分配 输入和输出及完成时 间 通过评审和考核使全过程受控 见表 3 通信终端软件输出考核表 该项目的成功实施 并取得较好的产品质量 验证了本文提出的开发过程的有效性 表 3 通信终端软件输出考核表 序号具体岗位承担人员输出考核情况 略 合格 通信终端项目边界确认书合格 1 项目负责人冯 xx 通信终端软件质量保证计划合格 通信终端项目可行性报告合格 通信终端软件总体设计方案合格 2 系统分析师冯 xx 通信终端软件风险评估报告合格 终端软件需求调研报告合格 终端软件需求规格说明合格 终端软件基本数据说明合格 终端软件人机界面确认书合格 3 需求分析师刘 xx 终端软件用户需求确认书合格 终端软件概要设计说明合格 终端软件详细设计说明合格 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

提交评论