程序设计软件开发PPT课件_第1页
程序设计软件开发PPT课件_第2页
程序设计软件开发PPT课件_第3页
程序设计软件开发PPT课件_第4页
程序设计软件开发PPT课件_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1 软件开发 第11章 2 11 1软件发展与软件工程 11 3软件开发过程 11 4UML简介 11 2软件开发模型 3 11 1软件发展与软件工程 4 软件危机 软件需求量不断增大 软件开发的复杂度和成本越来越高 软件的开发效率却越来越低 软件的质量越来越难以保证 这种现象称为软件危机 出现软件危机的原因 软件本身所固有的复杂性 软件开发方法和软件开发过程不正确 5 软件工程 采用工程的概念 原理 技术和方法 把经过时间考验并行之有效的管理技术和成熟的软件开发方法结合起来 以指导计算机软件的开发和维护 软件开发过程 需求分析 软件设计 编码实现 测试 运行与维护 6 1 第一代软件工程初步形成了软件工程的基本原理 技术和框架 也称为传统的软件工程 软件工程的发展 2 第二代软件工程面向对象方法成为软件开发主流 也称为对象工程 7 软件工程的发展 4 第四代软件工程基于构件的开发方法 也称为构件工程 3 第三代软件工程软件过程管理 也称为软件过程工程 8 11 2软件开发模型 9 软件开发模型 软件开发过程的各个阶段和任务的总体框架 明确规定了要完成的主要活动和任务 11 2 1瀑布模型 软件生命周期 从用户需求开始 经过开发 交付使用 在使用过程中不断增补修订 直至软件报废的全过程 即软件从提出开发开始到最终灭亡所经历的时期 10 将软件开发过程模仿成阶梯瀑布 软件生存周期由立项 需求分析 策划 概要设计 详细设计 编程 测试 发布 维护 退役等阶段所组成 把每个阶段当作瀑布中的一个台阶 开发人员按照阶段开发 管理人员按照阶段管理 11 2 1瀑布模型 11 问题定义 编码 需求分析 设计 可行性研究 运行与维护 测试 开发时期 运行时期 计划时期 目标与范围说明书 可行性论证论告 维护报告 测试报告 程序 设计文档 需求说明书 瀑布模型 12 问题定义 可行性研究 需求分析 设计 编码 测试 运行与维护 带反馈的瀑布模型 13 以某个软件原型为参照模型的开发方法 叫原型法 在初步需求分析之后 马上向客户展示一个软件产品原型 让客户试用 在试用中收集客户意见 修改原型 再让客户试用 反复循环 直到客户确认为止 特点 原型驱动 因此 开发者必须先有一个原型 至少要有一个原型的核心 11 2 2原型模型 14 15 原型模型的形式 1 废弃型 原型的用途是获取用户的真正需求 当用户对原型认可以后 原型即被废弃 后续的工作仍然按照瀑布模型开发 2 渐进型 原型作为最终产品的一部分 能够满足用户的部分需求 用户使用后 提出对系统的进一步精化要求 开发者根据反馈 进行迭代开发 将系统需要具备的功能逐步添加上去 如此反复 直到用户需求全部满足为止 此时的原型就是最终的软件产品 11 2 2原型模型 16 增量模型将软件产品看作一组增量构件 每次设计 实现 集成 测试和交付一块构件 直到所有构件全部实现为止 要开发一个大的软件系统 先开发其中的一个核心模块 后再开发其他模块 这样一个个模块地增加上去 直至整个系统开发完毕为止 优点 1 将软件划分成多个小模块 可以降低开发风险 以及开发难度 2 可以分阶段提交产品 11 2 3增量模型 17 增量模型 18 瀑布模型和增量模型结合 并增加风险分析螺旋模型沿着螺线旋转 在四个象限上分别表达四个方面的活动 制定计划 确定软件目标 选定实施方案 弄清项目开发的限制条件风险分析 评价所选的方案 识别风险 消除风险工程实施 实施软件开发 验证工作产品客户评估 评价开发工作 提出修正建议 11 2 4螺旋模型 19 20 11 3软件开发过程 21 需求分析 设计 实现 测试 运行及维护 11 3 1需求分析 需求分析的主要任务是确定待开发系统的功能 性能需求和运行环境约束 编写软件需求规格说明书 即需求分析是要明确系统是 做什么 的 软件功能需求 对软件系统应提供的服务 功能 以及系统在特定条件下的行为的描述 软件的性能需求 对软件系统的可用性 可靠性 可移植性 效率和存储等方面的需求 22 结构化分析方法采用自顶向下逐层分解 由粗到细 由复杂到简单的求解方法 1 结构化分析方法 分解 将大问题分解成若干小问题 然后分别解决抽象 抓住问题的主要方面而忽略问题的次要方面 集中精力解决问题的主要方面 23 分层数据流图由顶层 中间层和底层组成 顶层抽象地描述了整个系统 底层具体给出系统的细节部分 中间层完成从抽象到具体的逐步过渡 通过分解 将一个复杂的系统分解成许多简单的基本加工 当数据流过系统时 被系统进行加工变换 结构化分析方法以分层数据流图 加上数据字典和加工说明来构建分析模型 数据流 表示数据的流动方向 加工 表示对数据流进行操作或处理 数据存储 暂存的数据 外部实体 数据流的起点和终点 系统外的实体 24 当客户发出订单时 系统根据图书目录对订单进行验证 验证通过的订单 被保存在订单文件中 系统每天要对订单进行分类汇总 并保存订单存根 然后将汇总订单发往出版社 请为系统画出顶层数据流图 例11 1 图书预定系统的数据流图 25 面向对象分析对问题域和系统责任进行分析和理解 找出描述它们的类和对象 以及类之间的关系 最终获得一个符合用户需求 并能够反映问题域和系统责任的面向对象分析模型 2 面向对象的分析方法 面向对象分析的基本步骤 1 获取用户需求 采用用例图获取用户需求 2 标识类和对象 3 定义类的结构和层次 4 建立对象之间的关系 26 自动售货机为顾客提供24小时服务 顾客通过自动售货机可以买到灌装饮料 每隔一段时间供货人员补充一部分货物 收银员也会定期将售货款取走 请画出自动售货机的用例图 例11 2 自动售货机的用例图 27 主要任务 将需求需求转换为计算机中可实现的系统 完成系统的体系结构设计 以及系统内部结构设计 最终产生软件设计说明书 即解决怎么做的问题 11 3 2设计 概要设计主要完成软件系统的总体结构设计 确定各模块间的关系 全局数据库或数据结构设计 定义各个功能模块的接口 最终产生概要设计说明书 详细设计主要完成各子系统的公用模块设计 专用模块设计 以及模块内部结构设计 最终产生详细设计说明书 28 结构化设计的基本思想是将软件系统设计成由若干个相对独立 功能单一的模块组成的系统 1 结构化设计 概要设计的任务是确定软件系统的结构 进行子系统划分 确定子系统的模块结构 以及每个模块的功能 详细设计对概要设计产生的功能模块进行细化 确定每个模块的内部细节 包括局部数据组织 控制流 每一步的具体加工要求等 29 面向对象方法的分析与设计之间并没有明显的界限 它们之间所采用的概念 原理和方法是一致的 2 面向对象设计 分析与设计的侧重点有所不同 面向对象分析侧重于问题域和系统责任 不考虑实现 面向对象设计侧重于与实现有关的因素 对分析模型进行细化 并添加与实现有关的部分 面向对象设计模型主要包括问题域子系统 人机交互子系统 任务管理子系统和数据管理子系统 30 例11 3 图书预定系统的类图 31 使用人工和自动手段来运行或测试某个系统的过程 其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别 11 3 3测试 软件测试步骤 32 完成每个单元的测试任务 检查每个模块是否完成指定的功能 发现模块是否存在编码或算法错误 1 单元测试 2 集成测试 集成测试是在单元测试的基础上 将所有模块按照设计要求组装在一起 形成一个完整的系统 针对该系统所进行的测试 主要检查软件体系结构问题 33 确认测试用于检查软件的功能与性能是否符合需求规格说明书的要求 3 确认测试 4 系统测试 系统测试是指把已确定的软件与系统其它部分 如硬件 其它支持软件 数据等 集成在一起所进行的测试 34 白盒测试主要检查程序 模块 内部逻辑结构 对逻辑路径 内部控制结构和数据结构进行测试 5 白盒测试 白盒测试方法主要有语句覆盖 判定覆盖 条件覆盖 判定 条件覆盖和条件组合覆盖 1 语句覆盖 使程序中的每个语句至少执行一次 35 if a 1 请使用语句覆盖法进行白盒测试 例11 4 已知程序段 测试用例 a 2 b 0 x 5 36 使被测程序每个判定至少取一次 真 值和一次 假 值 2 判定覆盖 例11 5 对例11 4的程序段执行判定覆盖 测试用例1 a 2 b 0 x 5 测试用例2 a 1 b 0 x 1 37 使被测程序每个判定中的每个条件都至少取值一次 3 条件覆盖 例11 6 对例11 4的程序段执行条件覆盖 测试用例1 a 2 b 0 x 5 测试用例2 a 1 b 1 x 1 38 使被测程序的判定中每个条件的所有可能至少出现一次 且每个判定本身的判定结果也至少出现一次 4 判定 条件覆盖 例11 7 对例11 4中的程序段执行判定 条件覆盖 测试用例1 a 2 b 0 x 5 测试用例2 a 1 b 1 x 1 39 使被测程序每个判定中的条件的各种可能组合都至少出现一次 5 条件组合覆盖 例11 8 对例11 4中的程序段执行条件组合覆盖 测试用例1 a 2 b 0 x 5 测试用例2 a 2 b 1 x 1 测试用例3 a 1 b 1 x 1 测试用例4 a 1 b 0 x 5 40 黑盒测试不考虑程序内部的逻辑结构和处理过程 依据需求规格说明书 测试程序是否满足功能要求 6 黑盒测试 黑盒测试方法主要有等价分类法 边界值分析法 错误推测法和因果图法 41 软件维护是指软件系统交付使用后 为了纠正软件运行中的错误或者满足用户对软件提出的新要求而修改软件的过程 11 3 4维护 软件维护分为 纠错性维护 完善性维护 适应性维护 预防性维护 42 11 4UML简介 43 UML UnifiedModelingLanguage 统一建模语言 是一种国际标准 是一种通用建模语言 具有创建系统的静态结构和动态行为等多种结构模型的能力 11 4 1UML的构成 UML建模语言的描述方式以标准的图形表示为主 由视图 图 模型元素和通用机制构成的层次关系 44 用例图从用户角度描述系统功能 并指出各功能的操作者 11 4 2用例图 45 例11 11 在项目管理系统中 删除项目用例与查找项目用例之间的关系 46 例11 12 改变购书数量与检查信用间的关系 用户在网上订购图书时 系统需要对用户的信用进行检查 检查输入的信用卡号是否正确 信用卡是否有足够的资金支付本次订购 当用户需要改变购书数量时 系统要检查是否真正改变了购书数量 如果确实改变了购书数量 则需要对用户的信用进行检查 如果购书数量不变 则不需要检查信用 请根据需求画出用例图 47 11 4 3类图 48 1 关联关系 2 类之间的关系 关联关系表示类之间具有某种语义联系 49 聚集关系表示类之间的整体与部分关系 2 聚集和组合关系 组合关系是聚合关系中

温馨提示

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

评论

0/150

提交评论