软件文档写作软件生命周期、过程模型和CASEPPT课件_第1页
软件文档写作软件生命周期、过程模型和CASEPPT课件_第2页
软件文档写作软件生命周期、过程模型和CASEPPT课件_第3页
软件文档写作软件生命周期、过程模型和CASEPPT课件_第4页
软件文档写作软件生命周期、过程模型和CASEPPT课件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

软件文档和标准SoftwareDocumentandStandards 2 软件工程的基本原理 用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性 B Woehm1983 知识回顾 3 1软件生命周期 softwarelifecycle 人的生命周期 婴儿 幼儿 儿童 少年 青年 中年 老年 死亡 软件的生命周期 软件尽管是一个逻辑产品 但它与其它事物一样 也有一个孕育 诞生 成长 成熟 衰亡的生存过程 一般称其为软件的生命 存 周期 生命周期实际上就是使用寿命 4 软件生命周期 定义 软件产品从形成概念开始 经过开发 使用和维护 直到最后退役的全过程成为软件生命周期 软件定义 软件开发 软件支持 问题定义 可行性研究 需求分析 概要设计 详细设计 实现 组装测试 确认测试 软件运行 维护或退役 5 软件定义阶段 问题定义 首先要根据用户所提出的书面材料 设计要求或招标文件 研究用户的基本要求是什么 需要解决什么样的问题 通过对问题的研究应该得到关于软件的问题性质 工程目标与基本规模等 6 软件定义阶段 可行性分析 经济可行性 最重要的 成本 效益技术可行性法律可行性选择方案完成可行性研究报告提交管理部门审查 7 软件定义阶段 需求分析 对用户提出的要求进行分析并给出详细的定义 确认需求 编写软件需求规格说明 SRS 或系统功能说明书及初步的系统用户手册提交管理机构评审 8 软件开发阶段 概要设计 把各项需求转换成软件的体系结构 结构中每一组成部分都是意义明确的模块 每个模块都和某些需求相对应 要求 高内聚 低耦合 编写概要设计说明书 提交评审 通常软件系统的设计采用层次结构 并用结构图表示 9 软件开发阶段 详细设计 对每个模块要完成的工作进行具体的描述 为源程序编写打下基础 编写详细设计说明书 提交评审 如果使用结构化分析方法 则设计需使用结构化设计方法 如果使用面向对象的分析方法 则使用面向对象的设计方法 10 软件开发阶段 实现 把软件设计转换成计算机可以接受的程序代码 即写成以某一种特定程序设计语言表示的 源程序清单 写出的程序应当是结构良好 清晰易读的 且与设计相一致的 采用的编程技术应与分析设计方法一致 11 软件开发阶段 测试 单元测试 查找各模块在功能和结构上存在的问题并加以纠正 组装测试 将已测试过的模块按一定顺序组装起来 对模块间连接的正确性进行测试 确认测试 测试系统是否满足要求 按规定的各项需求 逐项进行有效性测试 决定已开发的软件是否合格 能否交付用户使用 写测试报告 提交评审 12 软件支持 使用 维护和退役 改正性维护运行中发现了软件中的错误需要修正适应性维护为了适应变化了的软件工作环境 需做适当变更完善性维护为了增强软件的功能需做变更 13 软件为了解决什么问题 如何实现这个软件 采用何种解决方案 如何去构造这个软件 采用什么方法去发现并纠正该软件在设计过程中的产生的错误 当用户的需求发生变化时 如何去保证满足这些变化 问题提出 做什么 怎么做 软件如何适应变化 定义阶段 开发阶段 支持阶段 14 2软件开发模型 软件开发过程概括 是软件工程思想的具体化 它是跨越整个软件生存周期的各个阶段所需要的全部工作与任务的结构框架 瀑布模型 waterfallmodel 快速原型模型 rapidprototypemodel 增量模型 incrementalmodel 螺旋模型 spiralmodel 面向对象开发模型 OO 喷泉模型 fountainmodel 智能模型 intelligentmodel 15 2 1瀑布模型 问题定义 编码 需求分析 设计 可行性研究 运行与维护 测试 开发阶段 支持阶段 定义阶段 目标与范围说明书 可行性论证论告 维护报告 测试报告 程序 设计文档 需求说明书 退役 16 瀑布模型的特点 阶段间具有顺序性和依赖性每个阶段必须完成规定的文档 每个阶段结束前完成文档审查 及早改正错误 但 开发过程一般不能逆转 否则代价太大 实际的项目开发很难严格按该模型进行 客户往往很难清楚地给出所有的需求 而该模型却要求如此 软件的实际情况必须到项目开发的后期客户才能看到 这要求客户有足够的耐心 17 瀑布模型的应用范围 用户的需求非常清楚全面 且在开发过程中没有或很少变化开发人员对软件的应用领域很熟悉 用户的使用环境非常稳定 开发工作对用户参与的要求很低 18 2 2快速原型模型 用户测试运行原型 建造 修改原型 听取用户意见 19 原型模型的特点 可以得到比较良好的需求定义 容易适应需求的变化 有利于开发与培训的同步 开发费用低 开发周期短且对用户更友好 可是 客户与开发者对原型理解不同准确的原型设计比较困难不利于开发人员的创新 20 原型模型的应用范围 对所开发的领域比较熟悉而且有快速的原型开发工具 项目招投标时 可以以原型模型作为软件的开发模型 进行产品移植或升级时 或对已有产品原型进行客户化工作时 原型模型是非常适合的 21 增量模型 2 3增量模型 22 增量模型是一种非整体开发的模型 该模型具有较大的灵活性 适合于软件需求不明确 设计方案有一定风险的软件项目 增量模型和瀑布模型之间的本质区别是 瀑布模型属于整体开发模型 它规定在开始下一个阶段的工作之前 必须完成前一阶段的所有细节 而增量模型属于非整体开发模型 它推迟某些阶段或所有阶段中的细节 从而较早地产生工作软件 增量模型 23 增量模型特点 采用增量模型的优点是人员分配灵活 刚开始不用投入大量人力资源 如果核心产品很受欢迎 则可增加人力实现下一个增量 可先发布部分功能给客户 对客户起到镇静剂的作用 并行开发构件有可能遇到不能集成的风险 软件必须具备开放式的体系结构 增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型 但也很容易退化为边做边改模型 从而是软件过程的控制失去整体性 24 2 4螺旋模型将瀑布模型和快速原型模型结合起来 并加入了风险分析 它最初从一个概念项目开始第一个螺旋 开发过程分为几个螺旋周期 每个螺旋周期可分为4个工作步骤 1 制定计划 2 风险分析 3 实施工程 4 客户评估 25 螺旋模型特点 设计上的灵活性 可以在项目的各个阶段进行变更 以小的分段来构建大型系统 使成本计算变得简单容易 客户始终参与每个阶段的开发 保证了项目不偏离正确方向以及项目的可控性 随着项目推进 客户始终掌握项目的最新信息 从而他或她能够和管理层有效地交互 采用螺旋模型需要具有相当丰富的风险评估经验和专门知识 在风险较大的项目开发中 如果未能够及时标识风险 势必造成重大损失 过多的迭代次数会增加开发成本 延迟提交时间 26 软考试题 原型化方法是一种动态定义需求的方法 不具有原型化方法的特征 A 简化项目管理B 尽快建立初步需求C 加强用户参与和决策D 提供严格定义的文档 27 软考试题 03年 软件开发的螺旋模型综合了瀑布模型和演化模型的优点 还增加了 27 采用螺旋模型时 软件开发沿着螺线自内向外旋转 每转一圈都要对 28 进行识别和分析 并采取相应的对策 螺旋线第一圈的开始点可能是一个 从第二圈开始 一个新产品开发项目开始了 新产品的演化沿着螺旋线进行若干次迭代 一直运转到软件生命期结束 27 A 版本管理B 可行性分析C 风险分析D 系统集成 28 A 系统B 计划C 风险D 工程 29 A 原型项目B 概念项目C 改进项目风险项目 28 2 4喷泉模型 该模型是由B H Sollers和J M Edwards于1990年提出的一种新的开发模型 主要支持面向对象技术的软件开发方法 克服了瀑布模型不支持软件重用和多项开发活动集成的局限性 喷泉模型使开发过程具有迭代性和无间隙性 29 喷泉模型特点 各阶段相互重叠 它反映了软件过程并行性的特点 以分析为基础 资源消耗成塔型 强调增量开发 整个过程是一个迭代的逐步提炼的过程 30 2 5智能模型 也称为基于知识的软件开发模型 是知识工程与软件工程相结合的软件开发模型 其主要特点是必须建立知识库 并将模型本身 软件工程知识 特定领域知识放入知识库 具体描述可以使用形式功能规约 也可以使用知识处理语言描述等 31 智能模型 32 2 6软件开发模型的比较 33 例 假设你被任命为一家软件公司的项目负责人 你的工作是管理该公司已被广泛应用的字处理软件的新版本开发 由于市场竞争激烈 公司规定了严格的完成期限并且已对外公布 你打算采用哪种软件生命周期模型 为什么 34 对这个项目的一个重要要求是 严格按照已对外公布了的日期完成产品开发工作 因此 选择生命周期模型时 应该着重考虑哪种模型有助于加快产品开发的进度 使用增量模型开发软件时可以并行完成开发工作 因此能够加快开发进度 这个项目是开发该公司已被广泛应用的字处理软件的新版本 从上述事实至少可以得出3点结论 第一 旧版本相当于一个原型 通过收集用户对旧版本的反映 较容易确定对新版本的需求 没必要再专门建立一个原型系统来分析用户的需求 第二 该公司的软件工程师对字处理软件很熟悉 有开发字处理软件的丰富经验 具有采用增量模型开发新版字处理软件所需要的技术水平 第三 该软件受到广大用户的喜爱 今后很可能还要开发更新的版本 因此 应该把该软件的体系结构设计成开放式的 以利于今后的改进和扩充 35 软件工程三要素 方法 完成软件开发各项任务的技术方法 how 工具 为方法的运用提供自动或者半自动的支撑环境 过程 为开发高质量软件所规定的各项任务的工作步骤 知识回顾 36 3CASE工具及其作用 计算机辅助软件工程 CASE 作用 认识与描述系统需求 保存与管理开发过程中的信息 代码的生成 文档的编制与生成 软件项目的管理 37 CASE工具的分类 按功能划分 项目管理工具 支撑工具 分析和设计工具 分程序设计工具 测试工具 原型建造工具 维护工具 事务系统规划工具 框架工具 38 IBMRational工具 Rational公司是专门从事CASE工具研制与开发的软件公司 2003年被IBM公司收购 该公司所研发的Rational系列软件是完整的CASE集成工具 贯穿从需求分析到软件维护的整个软件生存周期 需求分析与设计工具 产品主要构成 测试工具 软件配置管理工具 Rose PurifyPlusRo

温馨提示

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

评论

0/150

提交评论