信息工程方法ppt课件.ppt_第1页
信息工程方法ppt课件.ppt_第2页
信息工程方法ppt课件.ppt_第3页
信息工程方法ppt课件.ppt_第4页
信息工程方法ppt课件.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

信息工程方法 软件工程应用实践教程 第1章软件工程概述 1 1软件和软件危机1 2软件的分类1 3软件工程概念1 4软件工程的7条基本原理1 5软件开发过程模型1 6软件过程1 7软件开发方法简述1 8软件工程的最新发展动向1 9软件工程相关的技术规范和标准1 10国外软件开发模式介绍1 11RationalSuite产品简介 1 1软件和软件危机 软件是程序 支持程序运行的数据以及与程序相关的文档资料的完整集合 软件的特点软件是一种逻辑实体 具有抽象性软件在使用过程中没有磨损 老化问题软件一旦研制开发成功 其生产过程就变成了复制过程软件对硬件和环境有不同程度的依赖性软件开发采用手工方式为应用 量身订做 软件涉及人类社会的各行各业 涉及其他领域的专门知识软件不仅是一种在市场上推销的工业产品 而且是与文学艺术作品相似的精神作品 1 1软件和软件危机 软件危机的具体表现对软件开发成本的估计不准确 造成开发成本超出预算 开发进度不能保证 交付时间拖延 已完成的软件不能满足用户的需求 软件产品的质量没有保证 运算结果出错 操作死机等现象屡屡出现 软件通常没有适当的文档资料或文档与最终交付的软件产品不符 软件的可维护程度非常低 软件开发生产率的提高赶不上硬件的发展和人们需求的增长 软件的特点是导致软件危机的客观因素 而软件开发和维护过程中使用的不正确方法是主观因素 软件开发过程不成熟忽视软件开发前期的调研和分析工作 没有统一的 规范的方法论指导 文档资料不齐全 忽视人与人的交流 忽视测试阶段的工作 轻视软件的维护 1 2软件的分类 1 2 1按软件功能划分系统软件通常是与计算机硬件密切相关的那些比较底层的支持软件 支撑软件是支持软件开发和运行的工具性软件 应用软件是为特定应用目的而开发 提供某些特定服务的软件 1 2 2按软件规模划分表1 1软件的规模软件规模投入人数开发时间源程序行数特征微型11 4周500不必有严格的设计和测试文档小型1 21 6月2000通常没有与其他程序的接口中型3 51 2年0 5 5万需要有严格的文档和设计规范大型5 202 3年5 10万需要按照软件工程方法进行管理超大型100 10004 5年100万必须按照软件工程开发 有严格的质量管理措施巨型2000 50005 10年1000万同上 1 3软件工程概念 软件工程是采用工程的概念 原理 技术和方法来开发与维护软件 把经过时间考验而证明正确的管理方法和最先进的软件开发技术结合起来 应用到软件开发和维护过程中 来解决软件危机问题 IEEE定义 软件工程是将系统化的 规范的 可度量的方法应用于软件的开发 运行和维护过程 即将工程化应用于软件中的方法的研究 软件工程是一种层次化技术软件工程的最底层是质量保证层过程层与技术层结合在一起 它定义了一组关键过程域框架 目的是保证软件工程技术被有效地应用 使得软件能够被及时地 高质量和合理地开发出来 方法层提供了软件开发的各种方法 包括软件需求分析和设计 如何测试和维护等方法工具层为软件工程方法和过程提供了自动或半自动的支撑环境 1 3软件工程概念 软件工程规范化和文档化规范化的目的是使开发者遵守相同的规范 使软件生产摆脱个人生产方式 进入标准化 工程化的生产方式 文档化是将软件的设计思想 设计过程和实现过程完整地记录下来 便于后人的使用和维护 开发过程中各类相关的人员借助文档进行交流和沟通 各类文档使得软件的生产过程由不可见变为可见 便于管理者对生产进度和过程进行管理 用户最终验收时 可以通过对提交的文档进行技术审查和管理审查 1 4软件工程的7条基本原理 软件工程的7条原理 它们是相互独立 缺一不可的最小集合 同时 它们又是完备的 原理1 用分阶段的生命周期计划严格管理原理2 坚持进行阶段评审原理3 实行严格的产品控制在软件开发过程中不应随意改变需求 因为改变一项需求往往需要付出较高的代价 原理4 采用现代程序设计技术原理5 结果应能清楚地审查据软件开发的总目标及完成期限 尽量明确地规定开发小组的责任和产品标准 从而使所得到的标准能清楚地审查 原理6 开发小组的人员应该少而精原理7 承认不断改进软件工程实践的必要性 1 5软件开发过程模型 软件开发过程模型 从软件需求定义到软件交付使用后报废为止 整个生命期中的系统开发 运行 维护所实施的全部策略 1 5 1瀑布模型瀑布模型规定了软件生命周期的各项活动 问题定义需求分析软件设计编码测试运行和维护各项活动自顶向下 相互衔接如同瀑布一样 一个活动结束 进入下一个活动 很难再回到前一个活动中去 也就是工作的不可逆转性 应付需求变化的能力非常弱 1 5软件开发过程模型 1 5 2原型模型原型模型的基本思想 在与用户进行需求分析的同时 以比较小的代价建立一个能够反映用户主要需求的原型系统 用户在原型上提出改进意见 分析人员根据用户的意见 补充完善原型 然后再由用户评价 提出建议 如此往复 直到开发的原型系统满足了用户的需求为止 原型模型包括抛弃型和演化型两种 抛弃型 通常是针对系统的某些特殊功能进行实际验证为目的 方法本质上仍然属于瀑布模型 只是以原型作为一种辅助的验证手段 演化型的实现过程 首先进行需求调研和分析 然后快速开发出一个原型 用户经过试用提出修改建议 开发人员修改原型 再返回到用户进行试用 经过多次反复 直至最终使用户满意为止 1 5软件开发过程模型 1 5 2螺旋模型螺旋模型是一种特殊的原型方法 适用于规模较大的复杂系统 螺旋模型一般被划分为2 6个框架活动 沿着顺时针旋转确定要求选择方案 设定约束条件 制定计划定义资源 进度等其他相关任务 风险分析评价方案 识别风险 制定控制风险的措施 构造原型有些难以确定的因素 可以通过构造原型最终确定下来 实施工程如果风险都能够排除 则可以确定这个过程实际上是一个瀑布模型而实施软件开发 发布安装和提供用户支持 客户评估评估开发工作 提出修正建议 1 5软件开发过程模型 1 5 4构件组装模型面向对象 强调将数据与操作该数据的算法封装在一个类中 构件 一个或多个相关类的组合称为一个构件 1 5 5统一过程模型RUP用例 Use case 驱动的软件开发过程 以体系结构 Architecture 为中心的过程 迭代 Iterative 开发与增量 Incremental 开发相结合的过程 软件体系结构 如同建筑物的结构对于建筑物的作用一样 在软件开发的初期 软件的体系结构只是一个比较粗糙的 大纲形式的框架 在分析人员建立用例模型之后 再由软件构建师来逐步完善和更新体系结构 统一软件开发过程将整个软件的开发项目划分为多个可迭代的子项目 在一次迭代过程中只识别和描述相关的用例 根据选定的体系结构进行设计 1 6软件过程 软件过程是生产软件的途径 是为了获得软件产品而需要完成的一系列有关软件工程的活动 1 6软件过程 主要过程 获取由需方定义需求 委托供方或双方一起进行需求分析 需方应该准备招标书 合同以及验收条款 供应由供方向需方提供系统 软件产品或软件服务的活动 供方要对需求进行评审 准备投标 中标后签订合同 制定项目计划 实施计划 开展评审 交付产品 开发开发者定义并且开发软件产品的活动 运行供方协助需方制定运行计划并进行运行测试 最终运行系统 维护维护者提供系统维护服务的活动 1 6软件过程 支持过程 文档编制制定文档标准 确认文档信息的来源和适宜性 进行文档的评审及编辑 批准文档发布 文档的生产 提交 存储和控制 文档维护 配置管理实施配置管理过程 包括配置标识 配置控制 记录配置状态 评价配置 发行管理 质量保证为确保软件产品和软件过程符合规定的需求并能按计划工作所需的活动 验证为证明一个产品符合要求所进行的工作 包括合同 过程 需求 设计 编码 集成和文档的验证 确认为确保最终产品满足预期使用要求的活动 包括对测试结果 软件产品用途的确认 测试软件产品的适用性 联合评审实施项目管理评审 包括项目计划 进度 标准 指南等的评价 技术评审 包括评价软件产品的完整性 是否符合标准等 审核检验项目是否符合需求 计划 合同 规格说明和标准 问题解决分析和解决开发 运行 维护或其他过程中出现的问题 1 6软件过程 组织过程 管理制定计划 监控计划的实施 评价计划实施情况 包括产品管理 项目管理和任务管理等内容 基础设施开发 运行和维护等过程所需的硬件 软件 工具 技术 标准 建立基础设施 并提供维护服务 改进对整个软件生存期过程进行评估 度量 控制和改进 培训对人员进行相关培训所需的活动 包括制订培训计划 编写培训资料 培训计划的实施 1 7软件开发方法简述 1 7 1Parnas方法1972年 信息隐蔽技术和错误预防措施 信息隐蔽技术的主要内容是 在概要设计时列出可能会发生变化的因素 并在模块划分时将这些因素放到个别模块的内部 一旦由于这些因素变化需要修改软件时 只需修改相应的个别模块 其他模块不受影响 错误预防的主要内容 在每个可能产生的错误之前 增加一些判断 防止软件出现不可预料的结果 例如 在分配和使用设备前 应该查看设备状态 检查设备是否可用 如果可用再进行分配 模块之间加强错误隔离措施 防止错误蔓延 1 7软件开发方法简述 1 7 2Yourdon方法1978年提出 即SA SD方法 也可称为结构化方法或面向功能的软件开发方法 或面向数据流的方法 1979年 TomDeMarco对此方法作了进一步的完善 Yourdon方法首先用结构化分析技术对软件进行需求分析 然后用结构化设计技术进行总体设计和详细设计 最后是结构化编程 自顶向下 逐步求精 将功能逐步分解 主要问题以功能分解的软件系统不够稳定 用户的功能经常变换 导致系统的框架结构不稳定 从数据流程图到软件结构图之间的过渡有明显的断层 导致设计回溯到需求有困难 1 7软件开发方法简述 1 7 3面向数据结构的方法开发方法有两种 一种是Warnier方法 另一种是Jackson方法 基本思想 从目标系统的输入 输出数据结构入手 导出程序框架结构 再补充其他细节 得到完整的程序结构图 两种方法的差别 使用的图形工具不同 分别使用Warnier图和Jackson图 使用的伪码不同 构造程序框架时 Wamier方法仅考虑输入数据结构 而Jackson方法不仅考虑输入数据结构 还考虑输出数据结构 特点Jackson方法适合对中小型软件进行详细设计 因为Jackson方法无法构架软件系统的整体框架结构 所以不适合进行概要设计 面向数据结构的方法可以看成是结构化方法与面向对象方法之间的一种方法 它是以数据结构为研究的起始点 针对不同的数据结构分配相应的处理 只是处理上没有将数据结构与处理算法封装在一起 1 7软件开发方法简述 1 7 4问题分析法PAM基本思想由输入 输出数据结构指导系统的分解 然后站在整个系统的角度再逐步综合 步骤 从输入 输出数据结构导出基本处理框 分析这些处理框之间的先后关系 按先后关系逐步综合处理框 直到画出整个系统的PAD图 PAD图是一种二维树形结构图 1 7软件开发方法简述 1 7 5面向对象的方法用对象模拟实际问题域中的实体 以对象间的关系刻画实体间的联系 面向对象的方法从问题模型开始 然后是识别对象 不断细化的过程 它从本质上讲是迭代和渐增的 整个开发过程就是一次次的迭代反复过程 随着迭代的范围扩大 系统不断完善 面向对象方法的本质是主张从客观世界固有的事物出发来构造系统 提倡用人类在现实生活中常用的思维方法来认识 理解和描述客观事物 强调最终建立的系统能够映射问题域 即系统中的对象以及对象之间的关系能够如实地反映问题域中的固有事物及其关系 在面向对象方法中 子类不仅可以继承父类的属性和行为 而且也可以重载父类的某个行为 利用这一特点 我们可以方便地进行功能修改 继承某父类 对要修改的一些行为进行重载 也就是对它们重新定义 由于不再在原来的程序模块中引入修改 所以阻止了错误蔓延 大大提高了软件的可靠性和健壮性 1 7软件开发方法简述 1 7 6可视化开发图形用户界面的开发工作微软公司的Windows操作系统提供了应用程序编程接口 ApplicationProgrammingInterface API 它包含了600多个函数 但是这批函数中包含了大量的参数 使得基于WindowsAPI的开发变得相当困难 BorlandC 推出了ObjectWindows编程 它将API的各部分用对象类进行封装 提供了大量预定义的类 并为这些类定义了许多成员函数 开发人员利用子类对父类的继承性 以及实例对类的方法的引用 可以省却或减少对这些类和成员函数的定义 但是这些预定义的类数量很多 对非专业人员来说仍然是一个沉重的负担 可视化开发方法就是在可视化开发工具提供的图形用户界面上 直接使用界面元素 诸如菜单 按钮 对话框 编辑框 单选框 复选框 列表框和滚动条等 SYBASE的PowerDesigner 以图形化的方式建立数据库模式 并可以将结果导入到不同的数据库中去 Rational公司推出的系列产品 1 7 7ICASE ICASE IntegratedComputerAidedSoftwareEngineering 集成化的计算机辅助软件工程提供数据集成控制集成 实现工具间的调用 供了一组用户界面管理设施和一大批工具 如垂直工具集 支持软件生存期各阶段 保证生成信息的完备性和一致性 水平工具集 用于不同的软件开发方法 以及开放工具槽 ICASE的进一步发展是与其他软件开发方法和技术的结合 如与面向对象技术 软件复用技术结合 数据库领域 MSE公司的Magic系统 只要求软件开发人员填写一系列表格 相当于要求软件实现的各种功能 系统就会自动生成应用软件 1 8软件工程的最新发展动向 软件工程研究的最新方向 软件形式语言的研究研究 形式化描述语言的应用 以及不同形式化语言之间的转换 构件技术CORBA DCOM JavaBean等标准的出现给软件危机的缓和带来了希望 由于构件的使用可以渗透到符合构件标准规范的所有系统中 不必耗费巨资从头开发自己的系统 质量管理软件开发过程中的 不可见性 大大增加了过程管理的难度 因此软件工程管理的指导思想就是使这些过程变为 可见的 以及事后可以检查的记录 从一开始就在软件开发过程中严格贯彻质量管理 软件产品的质量才有保证 否则 开发工作一旦进行到后期 无论怎样测试和补漏洞都无济于事 1 9软件工程相关的技术规范和标准 1 CMM规范SW CMM 软件能力成熟度模型 SoftwareCapabilityMaturityModel 描述了不断改进软件过程的科学方法 SW CMM是帮助软件开发组织自我分析 找出提高软件过程能力的方法2 ISO9000 3国际标准化组织ISO已经颁布了IS09000 3 它是在软件产业贯彻ISO9000族标准的指南 全称是 质量管理和质量保证标准第三部分 在软件开发 供应和维护中的使用指南 3 ISO IEC12207标准ISO提出的软件生命周期过程标准 被广泛应用于美国国防部的软件开发中 4 PSP规范PSP 个体软件过程 PersonalSoftwareProcess 给出了一种可用于控制 管理和改进个人软件开发工作方式的自我改善过程 包括软件开发表格 指南和规程 这些内容为个体和小型群体软件开发过程的优化提供了具体的方法 1 9软件工程相关的技术规范和标准 5 TSP规范TSP 小组软件过程 TeamSoftwareProcess 是小组软件开发过程的控制 管理和改进方法 包括以小组为开发单位的软件开发表格 指南和规程 这些内容为以小组为单位的中型和大型软件开发过程的优化提供了具体的途径 6 IEEE软件工程系列标准国际电气和电子工程师协会 IEEE 制定的软件工程系列标准 详细规定了软件工程的用语 过程和实施细节 7 软件配置管理系列标准软件开发过程中的变更是不可避免的 控制变更对软件开发 软件质量的影响至关重要 为此 许多机构都规定了控制变更的措施和标准 8 Java规范9 C 规范10 Unicode标准全球统一字符编码标准 Java支持的首选编码标准 1 10国外软件开发模式介绍 微软开发管理方法原则1 将大项目分成若干里程碑式的重要阶段 各阶段之间有缓冲时间

温馨提示

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

评论

0/150

提交评论