已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程导论软件工程导论(5)(5) 软件工程方法软件工程方法 卢军 方法的作用 /Kerryzhu 虽然没有银弹 本章内容 v5.1 软件方法论 v5.2 用户需求的获取方法 v5.3 软件工程的分析方法 v5.4 软件工程的设计方法 v5.5 软件测试方法 /Kerryzhu 本章内容 v5.1 软件方法论 v5.2 用户需求的获取方法 v5.3 软件工程的分析方法 v5.4 软件工程的设计方法 v5.5 软件测试方法 /Kerryzhu 什么是工程的方法? /Kerryzhu 5.1 软件方法论 /Kerryzhu 5.1.1 系统工程方法论 5.1.2 软系统方法论 5.1.3 软件工程方法体系 系统工程方法论 v 系统工程方法论是针对复杂多变和不确定性的特点, 综合应用运筹学、系统动力学、控制论、信息论等有 关学科的理论和方法,将数理统计、概率论、线性代 数、模糊数学等作为定性分析和定量分析的有效工具 ,深入地分析问题,寻求问题解决的最优策略 v 动态系统理论、自动机理论 、霍尔三维结构、系统分 析法、成本效益分析、计划协调技术、关键路线法等 /Kerryzhu 问题定义确定目标系统综合系统分析系统评价系统创建 系统实施 软系统方法论 /Kerryzhu v 是一项运用系统思维方法解决非系 统问题的定性研究的技术,目的是 解决那些包含有大量社会的、政治 的以及人为因素的问题 软系统方法的逻辑 /Kerryzhu 丰富图的一个示例 /Kerryzhu 软件工程方法体系 /Kerryzhu v 抽象原则给出软件工程问题求解全过程的最基 本原则 v 体系规范原则是规范整体解题思路及解决方案 的验证 v 局部规范原则是规范解决模块、组件等局部问 题的原则 发现现实问题 抽象 模型 解决问题 方法 /Kerryzhu v 结构化程序设计方法 v 面向对象方法 v 面向构件方法 v 面向服务方法 v 基于净室思想的方法 v 基于敏捷思想的方法 v 自适应开发方法 v 动态系统开发方法 v 测试驱动方法 v 示例 本章内容 v5.1 软件方法论 v5.2 用户需求的获取方法 v5.3 软件工程的分析方法 v5.4 软件工程的设计方法 v5.5 软件测试方法 /Kerryzhu 需求访谈 哪些人将会使用这个软件系统? 他们希望该软件系统达到什么样的效果? 以前使用过其它类似的软件系统吗? /Kerryzhu 从一组语境无关的问题开始 然后,站在用户的角度展开要询问的问题,寻求更多 的需求信息,挖掘用户潜在的功能需求 便利的应用规约技术 /Kerryzhu v 在中立的地点举行会议 v 建立筹备和参与会议的规则 v 建议一个议程,能够覆盖需求范围所有的要点,但不 鼓励思维的任意流动 v 一个“协调者控制会议 v 使用一种“定义机制” v 目标是标识问题、提出解决方案的元素、评估不同的 方法以及刻画初步解决方案的需求集合 鼓励建立客户和开发者的联合团队,一起工作以标识问题 、提出解决方案的元素、刻画初步解决方案的需求集合 本章内容 v5.1 软件方法论 v5.2 用户需求的获取方法 v5.3 软件工程的分析方法 v5.4 软件工程的设计方法 v5.5 软件测试方法 /Kerryzhu 如何分析问题? /Kerryzhu 5.3 软件工程的分析方法 5.3.1 系统分析方法 5.3.2 问题分析方法 5.3.3 根本原因分析 5.3.4 决策分析 系统分析方法 v 整体分析 v 结构分析 v 层次分析 v 相关分析 /Kerryzhu 问题分析方法 /Kerryzhu v 问题说明阶段: 提出目标,确定评价指标和约束条件 v 分析研究阶段: 提出各种备选方案并预计一旦实施后可能 产生的结果 v 评估结果 :将各方案的评价比较结果提供给决策者,作为 判断抉择的依据 根本原因分析 /Kerryzhu v 在开发周期的每个阶段实施根本原因分析,为有效开 展缺陷预防活动提供依据 v 应用在解决各个方面的问题的过程中 v 得到提倡,形成一种文化或一种机制,而对每个人应 形成一种处理问题的习惯 问题 根本原因 解决方案 决策分析 v 选择决策技术和结构层次,制订决策分析与决定的计 划 v 建立作为决策基础的评价准则。 v 建立并运用决策分析指导原则,确定推荐的候选方案 。 v 依据评价准则进行综合分析、讨论和审查,然后选择 相应的评价方法,依据准则来评价候选方案。 v 最终选择的候选方案应附有所选择的技术、准则和作 出选择的依据 /Kerryzhu 本章内容 v5.1 软件方法论 v5.2 用户需求的获取方法 v5.3 软件工程的分析方法 v5.4 软件工程的设计方法 v5.5 软件测试方法 /Kerryzhu 设计中最关键的问题? /Kerryzhu 软件危机 v 5.4.1 原型设计方法 v 5.4.2 结构化方法 v 5.4.3 面向对象方法 v 5.4.4 面向构件设计方法 v 5.4.5 面向服务方法 v 5.4.6 可视化方法 /Kerryzhu 原型设计方法 v 在获取基本的需求定义后,利用可视化的开发环境或 工具,快速地建立一个目标系统的粗线条版本 v 基于可视化原型,用户更能清楚地表达自己的需求, 提供反馈意见 v 原型分为抛弃式原型和演化式原型 抛弃式原型不作为最终产品,具有探索和实验目的,或 只是作为需求确认的工具 演化式原型,最终软件系统是在原型的基础上逐步形成 、修改、完善和完成的 /Kerryzhu 原型设计方法的实现过程 /Kerryzhu 结构化方法 /Kerryzhu v 面向数据结构的软件设计方法 v 问题分析法 v 系统关联图 v 信息隐蔽方法 采用自顶向下、逐步求精设计过程,将系统分解为若干功 能模块,然后逐个实现每一个具体的功能模块 问题分析法 /Kerryzhu 先分解再合成,根据输入、输出数据结构指导系统的分解, 在系统分析指导下再逐步合成系统 系统关联图 /Kerryzhu v 用于定义系统与系统外部实体间的界限和接口的简单模 型,可以明确外部实体和系统之间通过接口传递的数据 流和信息流 面向对象方法 /Kerryzhu v 面向对象方法从所处理的数据入手,以数据为中心来描 述系统 v 充分挖掘了“关系”的表达方式,可以尽可能的将事物之间 复杂的关系予以体现 v 软件的开发可以视为“类”的抽象及其关联的建模过程 v 软件的运行是对象的实例化及其状态的演变过程,对象 与对象之间通过发送消息相互联系 对象与类 /Kerryzhu v 对象的行为通过操作展示,外界不可以直接访问其内 部属性(封装性),操作的实现对用户透明 v 类是对具有相同内部状态和外部行为对象结构的描述 ,它定义了表示对象状态的实例变量集和表示对象行 为的方法集。子类可以继承父类的实例变量和方法、 重载父类的某个行为(虚函数),同时还可以定义新 的变量和方法 v 消息传递是对象间惟一的交互方式 示例 /Kerryzhu 面向对象分析 /Kerryzhu v 分析是提取和整理用户需求,并建立问题域精确 模型的过程 v 面向对象分析一般需要建立3个模型(功能模型、 对象模型和动态模型)并定义相应的服务 面向对象设计 /Kerryzhu v 开-闭原则 v 单一职责原则 v 里氏代换原则 v 依赖倒转原则 v 接口隔离原则 v 合成/聚合复用原则 v 迪米特法则 把分析阶段得到的需求转变成符合成本和质量要求 的、抽象的系统实现方案的过程 面向构件设计方法 v 就是用“构件”取代“代码”,构件成为软件产品或系 统的基本结构单元 v 构件可以完成一个或多个功能的特定服务,并为用 户提供标准接口 v 系统构件可以分为业务构件、服务构件、展现构件 、逻辑构件、运算构件等 v 从传统的关注点分离到构件组装 v 业务构件是软件过程的主线索,并基于业务构件来 识别出服务构件 ,然后就是业务构件的实现、验 证和部署 /Kerryzhu 构件的层次 /Kerryzhu 基于构件的网状结构 /Kerryzhu 面向服务方法 /Kerryzhu SOA 架构模式 /Kerryzhu v SOA模式在三个主要参与者“服务提供者、服 务消费者和服务代理”之间定义了交互模型 SOA 系统架构的层次 /Kerryzhu SOA 系统服务层实现 /Kerryzhu SOD的建模和架构方法 /Kerryzhu 可视化方法 /Kerryzhu v 借助可视开发工具,直接在图形用户界面上来完成绝大部 分的软件设计和编程工作,可以自定义、修改和拖拽各项 操作界面元素 v 可视开发工具能实现程序代码的自动生成 示例 /Kerryzhu 可视化IDE /Kerryzhu 本章内容 v5.1 软件方法论 v5.2 用户需求的获取方法 v5.3 软件工程的分析方法 v5.4 软件工程的设计方法 v5.5 软件测试方法 /Kerryzhu 为什么要进行软件测试? /Kerryzhu v 5.5.1 白盒和黑盒的测试方法 v 5.5.2 静态和动态的测试方法 v 5.5.3 ALAC测试和随机测试 v 5.5.4 自动化测试方法 v5.5 软件测试方法 黑盒方法和白盒方法 v黑盒测试方法(Blake-box Testing),是把程序看作一 个不能打开的黑盒子,不考虑程序内部结构和内部特性, 而是考察数据的输入、条件限制和数据输出,完成测试 v白盒测试方法(White-box Testing),也称结构测试或 逻辑驱动测试。白盒测试方法是根据模块内部结构了解, 基于内部逻辑结构,针对程序语句、路径、变量状态等来 进行测试,检验程序中的各个分支条件是否得到满足、每 条执行路径是否按预定要求正确的工作。 黑盒测试 vs. 白盒 测试 功能测试 数据驱动(Data-driven)测试 结构测试 逻辑驱动(Logic-driven)测试 需求 事件驱动驱动 输输入 输输出 方法 黑盒测试方法白盒测试方法 等价类划分 边界值分析 因果图 错误推测法 决策表方法 正交试验法 语句覆盖 分支覆盖 条件覆盖 条件组合覆盖 循环覆盖 基本路径测试 静态测试 和 动态测试 v静态测试就是静态分析,对模块的源代码进行研 读,查找错误或收集一些度量数据,并不需要对代 码进行编译和仿真运行。静态测试采用人工检测和 计算机辅助静态分析手段进行检测 v动态测试是通过观察代码运行时的动作,来提供 执行跟踪、时间分析,以及测试覆盖度方面的信息 。动态测试通过真正运行程序发现错误。通过有效 的测试用例,对应的输入/输出关系来分析被测程序 的运行情况 /Kerryzhu 静态测试 vs. 动态测试 主持 人 作者 记录员 列席会议 内审员 技术专家 用户代表 非正式正式 同行评审 走查 评审会议 运行程序 ALAC测试 ALAC( Act-like-a-customer,象客户 那样做 )测试是基于客户使用产品的知 识而进行测试 其出发点是著名的Pareto 80/20规律 随机测试 可以作为熟悉新开发产品的功能特性,完善软 件测试用例,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川电影电视学院《大学生创新创业教育》2021-2022学年第一学期期末试卷
- 石河子大学《智能检测与计算机控制技术》2021-2022学年期末试卷
- 正念减压治疗与肿瘤康复
- 石河子大学《外科学二见习》2021-2022学年第一学期期末试卷
- 石河子大学《软件测试技术》2022-2023学年期末试卷
- 石河子大学《化工原理实验二》2023-2024学年第一学期期末试卷
- 沈阳理工大学《智能产品交互设计》2023-2024学年第一学期期末试卷
- 沈阳理工大学《现代控制理论》2022-2023学年期末试卷
- 沈阳理工大学《计算机图形学》2023-2024学年第一学期期末试卷
- 沈阳理工大学《工业机器人》2023-2024学年第一学期期末试卷
- 充电桩整体解决方案PPT幻灯片(PPT 27页)
- 物业服务集团全员品质督导策划方案
- 建筑设计基础(ppt)课件
- 半导体芯片项目商业计划书范文参考
- 邯郸市政府采购办事指南
- 城市初期雨水污染治理
- 在护林员培训班上的讲话护林员会议讲话稿.doc
- 材料科学基础-第7章-三元相图
- (完整word版)高频变压器的设计
- 公路工程2018各项费用的计算程序及计算方式
- 户外急救知识(必备)
评论
0/150
提交评论