嵌入式软件开发的工程化方法

上传人:我*** 文档编号:134997742 上传时间:2020-06-10 格式:PPT 页数:42 大小:322KB
返回 下载 相关 举报
嵌入式软件开发的工程化方法_第1页
第1页 / 共42页
嵌入式软件开发的工程化方法_第2页
第2页 / 共42页
嵌入式软件开发的工程化方法_第3页
第3页 / 共42页
嵌入式软件开发的工程化方法_第4页
第4页 / 共42页
嵌入式软件开发的工程化方法_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《嵌入式软件开发的工程化方法》由会员分享,可在线阅读,更多相关《嵌入式软件开发的工程化方法(42页珍藏版)》请在金锄头文库上搜索。

1、嵌入式软件开发的工程化方法段富海博士后教授大连理工大学2010年3月 摘要 简要介绍嵌入式软件的特点和应用状况 重点阐述嵌入式软件开发的工程化方法 包括对软件开发过程的全过程控制和对软件质量的全方位管理 要点 必须牢固树立软件产品的观念 软件产品 软件源代码 软件文档 必须严格遵循嵌入式软件开发的工程化开发方法 1引言 嵌入式计算机软件在各种产品中得到大量的应用 不论在其规模上 还是在其重要性上均呈现急剧上升的趋势 嵌入式计算机软件在航空 航天 船舶 兵器 核工业 电子 通讯 金融 家电 汽车等领域的广泛应用 已逐步形成了一个独立的产业 表1软件在先进战斗机航电系统中的应用情况 飞行控制 机身

2、 起落装置 操作面 作动器 燃油系统 电子设备 液压系统 雷达系统 武器系统 座舱系统 电子系统 总线通信系统 弹射救生系统 操纵杆和油门 推力系统 故障管理系统 飞控计算机 辅助动力系统 复杂庞大的飞机系统 复杂车辆系统 自适应前车灯系统 动力管理 变速箱 发动机 信息系统 操纵系统 仪器设备 车窗 车门 灯光 环控系统 驾驶员辅助设备 导航设备 牵引控制 障碍物检测 ABS 稳定控制 自适应的巡航 语音识别 无线通讯 乘客检测 气囊 防撞系统 航空航天卫星导弹无人驾驶飞机喷气式发动机自动驾驶仪导航与制导振动控制 汽车发动机排量控制安全系统ABS牵引控制车内系统窗体环控自动变速箱混合动力车

3、无所不在的嵌入式软件 工业设备燃料电池机器人技术电机控制 消费类电子产品与办公设备打印机大规模存储设备洗衣机等家用电器 1引言 续 嵌入式实时系统的特点使得其软件受到时间和空间的严格限制 加上运行环境复杂 使得嵌入式系统软件的开发变得异常困难 为设计一个满足功能和性能要求的代码并实现产品化 需要特别了解软件工程化开发方法的人员 也需要在专门的开发平台上使用专门的嵌入式实时操纵系统进行交叉开发 软件的可靠性一般要比硬件低一个数量级 为确保软件质量与可靠性 必须严格遵循嵌入式软件工程化开发方法 嵌入式实时操纵系统及其软件交叉开发环境对开发安全可靠的高性能复杂嵌入式软件起着非常重要的作用 嵌入式软件

4、开发项目完成状况 美国软件开发质量统计 软件项目中途终止的占25 软件产品在交付时通常在产品中还残留15 的缺陷 软件公司花在软件返工 修改 上的资源为30 40 软件的失效往往比硬件失效高一个数量级 原因 2嵌入式系统和嵌入式软件 2 1嵌入式系统 嵌入式计算机 EmbeddedComputer 或者叫嵌入式系统 源于20世纪60年代 是一种不被用户所觉察的专用计算机 嵌入式系统多指深藏于工业系统 武器系统或一些机电仪表设备 消费电子产品内部 完成一种或多种特定功能的计算机系统 是软硬件的紧密结合体 嵌入式系统具有软件代码小 高度自动化 响应速度快等特点 特别适合于实时的和多任务的应用体系

5、这些专用计算机系统是以嵌入式计算机为技术核心 围绕应用系统的功能 可靠性 成本 功耗等严格的要求来开发设计的 嵌入式系统一般由嵌入式微处理器 外围硬件设备 嵌入式操作系统以及特定的应用程序等四个部分组成 或以整机式嵌入 或以部件式嵌入 或以芯片式嵌入 用于实现对其它设备的控制 监视或管理等功能 2 1嵌入式系统 1 嵌入式微处理器为适应各方面的需求 嵌入式微处理器体系结构也经历了一个从CISC到RISC和CompactRISC的过程 位数从4位 8位 16位 32位到64位 寻址空间从64KB到16MB甚至更大 处理速度从0 1MIPS到2000MIPS 常用封装从8个引脚到144个引脚的过程

6、 处理器的功耗也有了明显降低 集成度进一步提高 近闻 美国国家半导体公司又推出了一款高度集成的微处理器SC1400 片上系统System on A Chip 它代表了目前微处理器技术的最高集成度 目前国外许多大处理器生产厂商 Motorola Intel AMD 日立 NEC等 纷纷推出各种嵌入式微处理器 最具有代表性的是 Motorola的PowerPC系列 Intel的x86系列和NationalSemiconductor的StrongArm系列 其中最具有影响力的当数Motorola的PowerPC系列 由于PowerPC系列微处理器种类繁多 而且性能优越 系统集成度高 扩展能力强 可以

7、广泛应用于各类嵌入式系统中 因此 Motorola已成为全球最大的嵌入式微处理器生产商 PowerPC系列微处理器成为当今嵌入式系统应用的主流 2 1嵌入式系统 续1 2 嵌入式实时系统工业控制 舰船武器系统控制 航空航天等领域的多数嵌入式系统有一个共同的特性 对系统的响应时间有严格的要求 这些系统被称为实时系统 实时系统是指那些产生系统输出时间对于系统是至关重要的系统 这通常是因为输入对应于物理世界的某些运动 同时输出也与一些运动相关 从输入到输出的滞后时间必须足够小到一个可以接受的时限 timeline 内 因此实时系统逻辑正确性不仅依赖于计算机结果的正确性 还取决于输出结果的时间 2 1

8、嵌入式系统 续2 3 嵌入式系统特征嵌入式系统具有区别于通用计算机系统的一些特征 专用的嵌入式CPU 专用性和算法的唯一性 多种技术的结合体 硬件和软件的相互依赖性 系统对用户是透明的 嵌入式计算机系统大多数是实时控制系统 系统配置专一 结构紧凑 牢固可靠 一般来说计算机资源 存储容量和速度 有限 许多嵌入式计算机系统采用分布式系统实现 2 2嵌入式软件 嵌入式软件 EmbeddedSoftware 与嵌入式系统密不可分的 嵌入式软件是嵌入式系统的核心 从广义上讲是计算机软件的一种 它也是由程序及其文档组成 软件 软件源代码 软件文档 也可分成系统软件 支撑软件 如数据库 调试软件 网络通讯协

9、议 用户界面系统 和应用软件三类 财务软件 教育软件 杀毒软件 汉字印刷软件 游戏软件 办公自动化软件等均为非嵌入式软件 2 2嵌入式软件 续1 嵌入式系统的广泛应用必然需要良好的嵌入式软件开发环境的支持 由于嵌入式系统的目标机受资源限制 不可能建立庞大 复杂的开发环境 其开发环境和目标运行往往相互分离 因此 嵌入式应用软件的开发方式一般是 在宿主机 Host 上建立开发环境 如Vxworks及其开发环境Tornado 进行应用程序编码和交叉编译 然后宿主机同目标机 Target 建立连接 将应用程序固化到目标机中实际运行 2 2嵌入式软件 续2 嵌入式软件的特点 响应时间快 并且有确定的硬实

10、时性要求 具有处理异步并发事件的能力 具有快速启动 出错处理和自动复位功能 嵌入式系统软件的应用软件与操作系统之间的界线模糊 往往是一体化设计的程序 软件开发困难 要使用交叉开发环境 2 3嵌入式操作系统 RTOS RealTimeOperatingSystem 是计算机专家们多年研究的成果 使用RTOS不仅增加了嵌入式应用系统的可靠性 缩短了产品开发的时间 而且应用程序的维护也会方便许多 作为嵌入式软件的基础和龙头 嵌入式操作系统在产业发展过程中扮演了越来越重要的角色 如今嵌入式操纵系统开始得到蓬勃发展 出现了许多相互竞争的产品 如VxWorks pSOS Neculeus WindowsC

11、E 女娲Hopen和各种嵌入式Linux等 嵌入式操作系统可应用于家电市场 工业市场 商业市场 通讯市场和国防市场 典型的应用 掌上电脑 PDA 机顶盒 手机 数码相机 数字电视 机载计算机 舰载计算机 星载计算机等 3软件开发的工程化方法 用软件工程化方法组织软件开发包含两方面的内容 1 用软件工程化方法开发软件 即软件的工程化开发 2 软件工程化方法管理软件开发 即软件的工程化管理 要保证软件产品的质量 必须一手抓软件的工程化开发 一手抓软件的工程化管理 二者不可或缺 这也是人们通常所说的软件的质量是设计 开发 出来的 也是管理出来的 3 1软件的工程化开发 软件的工程化开发 即将结构化的

12、开发方法贯穿于软件开发的全过程 主要是抓 结构化的需求分析 结构化的设计 结构化的编程 结构化的测试这也是软件开发的四个主要阶段 维护 图2软件开发流程图 3 1软件的工程化开发 1 结构化的需求分析需求分析主要解决的问题是系统 或用户 要软件 做什么 软件需求分析阶段的任务是全面确定被研制软件的运行环境 功能 性能等全部需求 对软件开发 质量保证 配置管理工作进行策划 编制软件需求规格说明和软件开发计划等重要文档 3 1软件的工程化开发 2 结构化的设计 概要和详细 概要设计阶段的任务是根据软件需求规格说明 建立软件的总体结构和功能模块间的关系 定义各功能模块的接口 控制接口 设计全局数据库

13、 数据结构 规定设计限制 编制软件集成测试计划 编写软件概要设计说明 同时开始编写软件系统测试说明 软件详细设计说明应对所有的软件单元进行详细的过程描述 设计其包含的算法和内部数据结构在内的内部细节 为编写程序提供必要的说明 编写软件详细设计说明 3 1软件的工程化开发 3 结构化的编程采用规定的编程语言 对所有软件单元进行代码编制 并对代码进行编译 调试 直到编译无错误通过 之后 对完成编码的模块进行单元测试 任务是检验所有软件单元的设计与实现 内容包括测试模块的接口 局部数据结构 重要的执行途径 出错处理路径 影响前面各点的边界条件等五个基本特性 3 1软件的工程化开发 4 结构化的测试对

14、于可靠性 安全性要求比较高的软件 为更进一步保证软件的高质量 还应在承制方进行完所有的软件单元测试工作后 授权具有权威的 与软件开发交办方和承制方都相对独立的专业测评机构 对软件进行独立的第三方测试 包括软件集成与测试 软件配置项测试和系统集成与测试 a 软件集成与测试 得到经过单元测试的程序后 下一步就要依据概要设计确定的软件结构 按照软件集成测试说明制定的软件集成 工序 把软件单元逐步组装成完整的软件配置项 并不断发现和排除错误 以保证连接 组装的正确性 b 软件配置项测试 任务是根据软件需求规格说明中定义的全部功能 性能 可靠性等需求 测试整个软件配置是否达到要求 c 软件系统测试 系统

15、中包含的计算机系统 含硬件和软件 往往作为大系统中的一个分系统 子系统 设备 部件甚至单元 在这种情况下 被开发的软件是否能与系统中其它的软 硬件正确地对接 是否正确地完成了上级系统分配它执行的功能 性能 必须通过系统测试给予确认 软件系统测试的目的 是在真实的系统工作环境下或仿真测试环境中检验软件是否能与系统正确连接 并确定软件是否与软件开发任务书中提出的软件功能 性能和接口要求一致 3 2软件的工程化管理 软件的工程化管理 主要是抓 1 对软件开发过程的全过程控制 2 对软件质量的全方位管理 3 2 1对软件开发过程的全过程控制对软件开发过程的全过程控制是指软件开发应按软件生存周期分阶段制

16、定并实施计划 并逐个阶段予以确认 亦即对软件生存周期的每个阶段应明确 1 进入条件 2 主要工作 3 方法和工具 4 基本要求 5 本阶段的主要质量控制手段 6 阶段产品 7 完成标志 表1软件开发过程的全过程控制 表1软件开发过程的全过程控制 续 3 2 2对软件质量的全方位管理 为确保软件产品的质量 必须在软件开发过程中 对软件的质量实施全方位管理 对软件质量的全方位管理是把软件质量有关的各方面工作均予以管理 主要包括 对软件开发人员实施 三分开 软件分级管理 软件文档管理 软件评审管理 软件配置管理 软件测试 软件故障报告 分析和纠正措施报告 应特别加强软件文档管理 评审管理 配置管理和强化软件测试 3 2 2对软件质量的全方位管理 1 对软件开发人员实施 三分开 目前在不少软件开发部门 由于软件开发人员普遍不足 软件设计 实现 测试工作由同一开发人员承担 用所谓 三自一包 的方式开发软件 是手工作坊式的开发软件的典型方式 也是引起 软件危机 的主要原因之一 软件开发过程必须从手工作坊式的开发方式转到工业化生产的方式上来 必须遵循需求分析 设计 实现 生产 检验 验收的过程 在软

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

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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