智能仪器.ppt_第1页
智能仪器.ppt_第2页
智能仪器.ppt_第3页
智能仪器.ppt_第4页
智能仪器.ppt_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1 5 1 2软件工程概述 2 软件是计算机系统中与硬件相互依存的另一部分 它是包括程序 数据及其相关文档的完整集合程序是按事先设计的功能和性能要求执行的指令序列数据是使程序能正常操纵信息的数据结构文档是与程序开发 维护和使用有关的图文材料 3 软件的分类 按软件的功能进行划分 系统软件 支撑软件 应用软件系统软件操作系统数据库管理系统设备驱动程序通信处理程序等 4 支撑软件文本编辑程序文件格式化程序程序库系统支持需求分析 设计 实现 测试和支持管理的软件 5 应用软件商业数据处理软件工程与科学计算软件计算机辅助设计 制造软件系统仿真软件智能产品嵌入软件医疗 制药软件事务管理 办公自动化软件计算机辅助教学软件 6 软件发展阶段 程序设计阶段 50至60年代程序系统阶段 60至80年代 这一时期主要围绕软件项目 开展了开发模型 支持工具以及开发方法的研究 如 瀑布模型 结构化方法 自顶向下 结构化语言 Pascal C语言 管理方法 费用估算 文档复审 支持工具 计划 配置管理工具等 软件工程阶段 80年代以后开展了有关软件生产技术 软件复用技术 软件生产管理的研究和实践 提出具有广泛应用前景的面向对象方法和相关的语言 C VisualC 近年来 软件工程的研究从过程转向产品更加注重程序的开发范型和软件生产 高智能 自动化CASE成为软件工程技术研究的热点 7 软件工程的定义 Boehm 运用现代科学技术知识来设计并构造计算机程序及为开发 运行和维护这些程序所必需的相关文件资料FritzBauer 建立并使用完善的工程化原则 以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法IEEE 软件工程是开发 运行 维护和修复软件的系统方法但主要思想是强调在软件开发过程中需要应用工程化原则的重要性 8 软件工程三要素 方法 工具和过程 软件工程方法为软件开发提供了 如何做 的技术软件工程工具为软件工程方法提供了自动的或半自动的软件支撑环境软件工程过程定义了 方法使用的顺序要求交付的文档资料为保证质量和适应变化所需要的管理软件开发各个阶段完成的里程碑 9 软件工程项目的基本目标 付出较低的开发成本达到要求的软件功能取得较好的软件性能开发的软件易于移植需要较低的维护费用能按时完成开发工作 及时交付使用 10 软件生存期 软件有一个孕育 诞生 成长 成熟 衰亡的生存过程 这个过程即为计算机软件的生存期软件生存期六个步骤 问题定义和可行性研究 制定计划 需求分析 设计 总体设计和详细设计 程序编码 测试及运行维护 11 制定计划 确定要开发软件系统的总目标给出功能 性能 可靠性以及接口等方面的要求完成该软件任务的可行性研究估计可利用的资源 计算机硬件 软件 人力等 成本 效益 开发进度制定出完成开发任务的实施计划 连同可行性研究报告 提交管理部门审查 12 需求分析 对待开发软件提出的需求进行分析并给出详细的定义编写软件需求说明书或系统功能说明书及初步的系统用户手册提交管理机构评审 13 软件设计 概要设计 把各项需求转换成软件的体系结构 结构中每一组成部分都是意义明确的模块 每个模块都和某些需求相对应详细设计 对每个模块要完成的工作进行具体的描述 为源程序编写打下基础编写设计说明书 提交评审 14 程序编写 把软件设计转换成计算机可以接受的程序代码 即写成以某一种特定程序设计语言表示的 源程序清单 写出的程序应当是结构良好 清晰易读的 且与设计相一致的 15 软件测试 单元测试 查找各模块在功能和结构上存在的问题并加以纠正组装测试 将已测试过的模块按一定顺序组装起来按规定的各项需求 逐项进行有效性测试 决定已开发的软件是否合格 能否交付用户使用 16 运行 维护 改正性维护运行中发现了软件中的错误需要修正适应性维护为了适应变化了的软件工作环境 需做适当变更完善性维护为了增强软件的功能需做变更 17 软件生存期 开发 模型 软件生存期模型直观地表达软件开发全部过程 明确规定要完成的主要活动和任务 瀑布模型 演化模型 螺旋模型 18 瀑布模型的特点 从上一阶段接受本阶段工作的对象作为输入本阶段的工作成果作为输出传入下一阶段评估各阶段 若本阶段工作得到确认 继续 否则返回前一阶段可以增加反馈线来表示具有反馈回路的瀑布模型 19 瀑布模型 20 由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰 用户只能给出系统的核心 并根据实现的核心系统有效地提出反馈 来支持系统的最终设计和实现 第一次只是试验开发核心系统 其目标只是在于探索可行性 弄清软件需求第二次则在此基础上提出精化系统 获得较为满意的软件产品 演化模型的特点 21 核心系统开发 演化模型 22 螺旋模型沿着螺线旋转 在四个象限上分别表达了四个方面的活动制定计划 确定软件目标 选定实施方案 弄清项目开发的限制条件风险分析 分析所选方案 考虑如何识别和消除风险实施工程 实施软件开发客户评估 评价开发工作 提出修正建议 螺旋模型的特点 23 螺旋模型 24 嵌入式系统的设计过程 25 如图A所示 首先从系统需求开始 然后是规格说明 在这一步对想要做的工作进行更加细致地描述 但是规格说明只对系统如何工作 工作过程 进行了描述 这些描述并不涉及它的组成 系统内部的详细构造要在开发系统的体系结构时才能展现出来 这一阶段以大的构件为单位给出了系统的结构 一旦知道了需要的构件 就可以设计这些构件 包括软件模块和任何所需要的专用硬件模块 在这些构件的基础上 可以构造出所需要的完整的系统 26 1 系统需求分析确定设计任务和设计目标 并提炼出设计规格说明书 作为正式设计指导和验收的标准 系统的需求一般分功能性需求和非功能性需求两方面 功能性需求是系统的基本功能 如输入输出信号 操作方式等 非功能性需求包括系统性能 成本 功耗 体积 重量等因素 2 体系结构设计描述系统如何实现所述的功能和非功能需求 包括对硬件 软件和执行装置的功能划分以及系统的软件 硬件选型等 一个好的体系结构是设计成功与否的关键 27 3 硬件 软件设计基于体系结构 对系统的软件 硬件进行详细设计 为了缩短产品开发周期 软硬件设计往往并行的 4 系统集成把系统的软件 硬件和执行装置集成在一起 进行调试 发现并改进单元设计过程中的错误 5 系统测试对设计好的系统进行测试 看其是否满足规格说明书中给定的功能要求 28 需求分析 在设计一个系统之前 必须清楚在设计什么 在设计的最初阶段 截取这些信息 以此来设计系统的体系结构和构件 这一阶段的任务通常通过两种过程来实现 首先 从客户那里收集系统的非形式描述 这叫做需求 然后 对需求进行提炼 得到系统的规格说明 这些规格说明里包含了进行系统体系结构设计所需要的足够信息 29 1 需求与规格说明 区分需求和规格说明是必要的 因为在客户关于所需系统的描述和体系结构系统设计师所需的信息之间存在极大的距离 嵌入式系统的客户通常不是嵌入式系统的设计人员 甚至也不是最终产品的设计人员 他们对嵌入式系统的理解是建立在他们想象的与系统之间的交互的基础上的 对系统可能有一些不切实际的期望 或者是使用他们自己的话而不是专业术语来表达其需求 将客户的描述转化为系统设计者的描述的结构化方法就是从客户的需求中获取一组一致性的需求 然后从中整理成正式的规格说明 30 通常 需求包括功能部分和非功能部分 当然 我们必须从中获取系统的基本功能 但是 只有功能的描述是不够的 非功能需求包括 1 性能系统的处理速度通常是该系统的实用性和最终成本的主要决定因素 正如我们已经注意到的 性能是软件性能度量 如执行一个用户级函数的大致时间和必须完成的一个特定操作的硬时限 的组合 31 2 价格产品最终的成本或者销售价格也是一个主要的考虑因素 产品的成本包含两个主要部分 生产成本 包括购买构件以及组装它们的花费 不可再生的工程成本 NRE 包括人力成本以及设计系统的其他花费 3 系统的尺寸和重量最终产品的物理特性会因为使用的领域不同而大不相同 一台控制装配线的工业控制系统通常装配在一个标准尺寸的柜子里 它对重量没有什么约束 但是手持设备对系统的尺寸和重量就有很严格的限制 32 4 功耗对于那些靠电池来供电的系统以及其他一些电器来说 电源是十分重要的 电源问题在需求阶段以电池寿命的方式提出 因为顾客通常不能够以瓦为单位描述允许的功率 33 2 确认需求 确认需求不仅需要理解什么是用户需要的 而且需要理解他们是如何表达这些需求的 精炼系统需求的好方法 至少是精炼用户界面部分 方法是建立一个模型 这个模型可以使用已存数据来模拟功能 并且可以在个人电脑或工作站上运行 它应该让用户了解系统是如何使用的 以及用户如何和它进行交互 通常 设备的非功能模型可以让用户了解系统的特性 比如系统的尺寸和重量 34 3 简单的需求表格 对一个大系统进行需求分析是一项复杂而费时的工作 但是 取得相对少量的格式清晰 简单的信息是理解系统需求的一个好的开始 表A展示了一个需求表格的样本 这个表格在某项工程的开始时填写 在考虑系统基本特征时可以将这个表格作为检查表 表格内容包括 35 1 名称这一项十分简单 但却十分有用 给该项工程取一个名字不仅在和别人讨论这个工程时更加方便 也可以使设计的目的更加明确 2 目的这一项可以是简单的一到两行的关于系统将要满足的需求的描述 如果你不能用一两句话来描述你所设计的系统的主要特性的话 说明你还不是十分了解它 36 3 输入和输出这两项内容比较复杂 对系统的输入和输出包含了大量细节 数据类型 模拟电信号 数字数据 机械输入 数据特性 周期性到达的数据 比如数字音频信号 或者是用户的输入 每个数据元素多少位 输入 输出设备的类型 按键 模 数转换器 视频显示器 37 4 功能这一项是关于系统所做的工作的更加详细的描述 从输入到输出进行分析是提出功能的一种好方法 当系统接收到输入时 它执行哪些动作 用户通过界面输入的数据如何对该功能产生影响 不同功能之间是如何相互作用的 38 5 性能许多嵌入式系统都要花费一定的时间来控制物理设备 或是处理从外界输入的数据 在大部分情况下 这些计算必须在一定的时间内处理完 对性能的要求必须尽早地明确 因为这些要求在执行过程中得认真加以考虑 以便随时检查我们的系统是否达到了这些要求 39 6 生产成本这中间主要包含了硬件构件的花费 如果你不能确定将要花费在硬件构件上的费用的确切数目 那么你起码得对最终产品的价格有一个粗略的了解 因为价格最终影响了系统的体系结构 一台将要以100元出售的设备的内部结构和一台打算以1000元出售的机器的内部结构肯定是不同的 40 7 功耗对系统的功耗你可能只有一个粗略的了解 但是 没有关于这方面的信息是不行的 通常 决定系统是靠电池供电还是通过墙上的插座供电是系统设计过程中的一个重大决定 靠电池供电的系统必须认真地对功耗问题进行考虑 8 物理尺寸和重量对系统的物理尺寸和重量有一定的了解有助于对系统体系结构的设计 一台台式机在对构件的选择上比那些佩带式录音机要宽松得多 41 4 需求的内部一致性 在写完需求分析以后 你应该对它们的内部一致性进行检查 是否忘记了给某个功能指定输入或输出 是否考虑了系统运行的所有方式 是否把一些不切实际的要求放到了一个电池供电 低成本的机器中了 42 示例AGPS移动地图的需求分析移动地图是一种手持设备 该设备为用户显示他当前所处位置周围的地形的一张地图 地图的内容随着用户以及该设备所处的位置的改变而改变 移动地图从GPS上得到其位置信息 GPS是一个卫星导航系统 移动地图的显示如图B所示 43 针对GPS移动地图我们有什么需求 下面是一些最初的清单 功能性本系统主要针对高速公路上开车的用户或类似用户 系统应展示可在标准地形图数据库中得到的主要道路和其他陆地标志 用户界面屏幕至少应该有400 600像素分辨率 该设备的控制按钮不应多于三个 按下按钮时菜单系统应在屏幕上弹出 允许用户系统控制做出选择 性能地图应该平滑滚动 加电后 显示在1秒钟内出现 系统应可以核查其位置并在15秒内显示当前地图 44 4 成本单个设备售价 零售价 不高于4000元 5 设备物理尺寸和重量应非常适于放在手掌中 6 功耗四节5号电池至少可以连续运行8小时 注意 上述许多需求并不是按工程单位规定的 例如 物理尺寸是相对于手而不是用厘米标出的 虽然这些需求必须最终转换成可以被设计者使用的某种东西 但是保持某种顾客想要的记录将有助于解决设计期间后期出现的有关规格说明的问题 45 基于上述讨论 让我们为移动地图系统编写一份需求表格 如表B 46 表B加上了设计人员所要使用的某些用工程术语表述的需求 它提供了设备的实际尺寸 生产成本与销售价格有关 通过使用简单的经验法则可以得到 销售价4 5倍于所售商品的成本 所有构件的成本之和 47 规格说明 规格说明更精确一些 它起到客户和生产者之间的合同的作用 正因为如此 规格说明必须小心编写 以便精确地反映客户的需求并且作为设计时必须明确遵循的要求 48 规格说明应该足够明晰 以便别人可以验证它是否符合系统需求并且完全满足客户的期望 它亦不能有歧义 设计者应知道什么是他们需要构造的 设计者可能碰到各种不同类型的由于不明确的规格说明而导致的问题 如果在某个特定的状况下的某些特性的行为在规格说明中不明确 那么设计者可能实现错误的功能 如果规格说明的全局特征是错的或者是不完整的 那么由该规格说明建造的整个系统体系结构可能就不符合实现的要求 49 GPS系统的规格说明包括下列构件 从GPS卫星接收数据 查询地图数据库 刷新用户界面 必须执行的满足客户需求的操作 保持系统运行所需的后备动作 如操纵GPS接收机 50 体系结构设计 规格说明不讲系统如何做 而只是讲系统做什么 描述系统如何实现那些功能是体系结构的目的 体系结构是系统整体结构的一个计划 而后用于设计搭建整个体系结构的构件 51 图C以框图形式展示了样例系统体系结构 这些框图展示了它的主要操作和其间的数据流 框图仍很抽象 还没有规定运行在CPU上的软件执行什么操作 专用硬件完成什么等等 不过 为描述如何实现在规格说明中规定的功能框图还要做许多事情 例如 可以清楚地看到需要搜索地形图数据库 绘制显示的结果 52 只有在设计了一个并未注重太多实现细节的初始体系结构之后 才可能把系统框图细分成硬件和软件两大部分 如图D所示 硬件框图展示了有一个CPU 周围有存储器和I O设备 存储器有两种 一种是针对像素显示的帧缓冲器 另一种是CPU使用的通用程序 数据存储器 软件框图基本上与系统框图一致 但是增加了一个计时器 控制何时读取用户界面上的按钮 并在屏幕上绘制数据 为了得到一个真正完整的体系结构描述 我们需要更多细节 比如软件框图中的单元在硬件框图的什么地方执行 何时操作准时执行等 53 体系结构描述必须同时满足功能上和非功能上的需求 不仅所需求的功能要体现 而且必须符合成本 速度 功率和其他非功能上的约束 先从系统体系结构开始 逐步把这一结构细化为硬件和软件体系结构是确保系统符合所有规格说明的一种好方法 首先集中考虑系统框图中的功能元素 然后在建造硬件和软件体系结构时考虑非功能约束 54 设计硬件构件和软件构件 体系结构描述告诉我们需要什么样的构件 构件设计使得构件与体系结构和规格说明一致 构件通常既包括硬件 现场可编程门阵列 FPGA 电路板等等 还包括软件模块 一些构件是现成的 如CPU 存储器芯片 在移动地图中 GPS接收器是预先设计的标准构件 利用标准软件模块 访问标准地形数据库 这些数据库的数据不仅使用预定义的格式 而且被高度地压缩以节省存储空间 在这些访问函数中使用标准软件不仅节约设计时间 也较快地实现像数据解压缩这样的专用函数 55 有些构件 即使使用标准集成电路 也必须自己设计连接它们的印刷线路板 同时 很有可能要做大量定制编程 当然 建立嵌入式软件模块时 必须确保系统实时性良好并且在允许的范围内不占用更多的存储空间 移动地图软件例子中的电能消耗特别重要 可能要非常小心地读写存储器以减小功耗 例如 由于存储器访问是主要的功耗来源 存储器事务必须精心安排以避免多次读取同样的数据 56 系统集成 只有建立构件后才能将它们合并得到一个能运转的系统 在系统集成中通常可以发现错误 而好的计划能快速找到这些错误 按阶段架构系统并且正确运行选好的测试 经常能更容易地找到这些错误 如果每次只对一部分模块排错 很可能更容易发现和识别简单的错误 只有在早期修正这些简单的错误 才能发现那些只有在系统高负荷时才能确定的 比较复杂或是含混的错误 57 必须确保在体系结构和各构件设计阶段尽可能容易地按阶段组装系统和相对独立地测试系统功能 因为嵌入式系统使用的调试工具比在桌面系统中可找到的工具有限得多 因此 要在系统集成时发现问题 需要详细地观察系统以准确确定错误 58 系统测试 对设计好的系统进行测试 看其是否满足规格说明书中给定的功能要求 针

温馨提示

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

评论

0/150

提交评论