软件工程方法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为什么要进行软件测试?
zhu.kerry@gmail.com
❖5.5 软件测试方法
❖ 5.5.1 白盒和黑盒的测试方法 ❖ 5.5.2 静态和动态的测试方法 ❖ 5.5.3 ALAC测试和随机测试 ❖ 5.5.4 自动化测试方法
zhu.kerry@gmail.com
黑盒方法和白盒方法
❖黑盒测试方法(Blake-box Testing),是把程序看作一
软件危机
❖ 5.4.1 原型设计方法 ❖ 5.4.2 结构化方法 ❖ 5.4.3 面向对象方法 ❖ 5.4.4 面向构件设计方法 ❖ 5.4.5 面向服务方法 ❖ 5.4.6 可视化方法
zhu.kerry@gmail.com .csdn/Kerryzhu
原型设计方法
❖ 在获取基本的需求定义后,利用可视化的开发环境来自百度文库 工具,快速地建立一个目标系统的粗线条版本
方法
zhu.kerry@gmail.com
示例
zhu.kerry@gmail.com .csdn/Kerryzhu
本章内容
❖5.1 软件方法论 ❖5.2 用户需求的获取方法 ❖5.3 软件工程的分析方法 ❖5.4 软件工程的设计方法 ❖5.5 软件测试方法
zhu.kerry@gmail.com .csdn/Kerryzhu
SOA 架构模式
❖ SOA模式在三个主要参与者——“服务提供者、服 务消费者和服务代理”之间定义了交互模型
zhu.kerry@gmail.com .csdn/Kerryzhu
SOA 系统架构的层次
zhu.kerry@gmail.com .csdn/Kerryzhu
SOA 系统服务层实现
zhu.kerry@gmail.com .csdn/Kerryzhu
面向对象方法
❖ 面向对象方法从所处理的数据入手,以数据为中心来描 述系统
❖ 充分挖掘了“关系”的表达方式,可以尽可能的将事物 之间复杂的关系予以体现
❖ 软件的开发可以视为“类”的抽象及其关联的建模过程
❖ 软件的运行是对象的实例化及其状态的演变过程,对象 与对象之间通过发送消息相互联系
zhu.kerry@gmail.com .csdn/Kerryzhu
zhu.kerry@gmail.com .csdn/Kerryzhu
5.1 软件方法论
5.1.1 系统工程方法论 5.1.2 软系统方法论 5.1.3 软件工程方法体系
zhu.kerry@gmail.com .csdn/Kerryzhu
系统工程方法论
❖ 系统工程方法论是针对复杂多变和不确定性的特点, 综合应用运筹学、系统动力学、控制论、信息论等有 关学科的理论和方法,将数理统计、概率论、线性代 数、模糊数学等作为定性分析和定量分析的有效工具 ,深入地分析问题,寻求问题解决的最优策略
SOD的建模和架构方法
zhu.kerry@gmail.com .csdn/Kerryzhu
可视化方法
❖ 借助可视开发工具,直接在图形用户界面上来完成绝大部 分的软件设计和编程工作,可以自定义、修改和拖拽各项 操作界面元素
❖ 可视开发工具能实现程序代码的自动生成
zhu.kerry@gmail.com .csdn/Kerryzhu
对象与类
❖ 对象的行为通过操作展示,外界不可以直接访问其内 部属性(封装性),操作的实现对用户透明
❖ 类是对具有相同内部状态和外部行为对象结构的描述 ,它定义了表示对象状态的实例变量集和表示对象行 为的方法集。子类可以继承父类的实例变量和方法、 重载父类的某个行为(虚函数),同时还可以定义新 的变量和方法
面向构件设计方法
❖ 就是用“构件”取代“代码”,构件成为软件产品 或系统的基本结构单元
❖ 构件可以完成一个或多个功能的特定服务,并为用 户提供标准接口
❖ 系统构件可以分为业务构件、服务构件、展现构件 、逻辑构件、运算构件等
❖ 从传统的关注点分离到构件组装
❖ 业务构件是软件过程的主线索,并基于业务构件来 识别出服务构件 ,然后就是业务构件的实现、验 证和部署
本章内容
❖5.1 软件方法论 ❖5.2 用户需求的获取方法 ❖5.3 软件工程的分析方法 ❖5.4 软件工程的设计方法 ❖5.5 软件测试方法
zhu.kerry@gmail.com .csdn/Kerryzhu
设计中最关键的问题?
zhu.kerry@gmail.com .csdn/Kerryzhu
个不能打开的黑盒子,不考虑程序内部结构和内部特性, 而是考察数据的输入、条件限制和数据输出,完成测试
问题分析法
先分解再合成,根据输入、输出数据结构指导系统的分解, 在系统分析指导下再逐步合成系统
zhu.kerry@gmail.com .csdn/Kerryzhu
系统关联图
❖ 用于定义系统与系统外部实体间的界限和接口的简单模 型,可以明确外部实体和系统之间通过接口传递的数据 流和信息流
zhu.kerry@gmail.com .csdn/Kerryzhu
❖ 基于可视化原型,用户更能清楚地表达自己的需求, 提供反馈意见
❖ 原型分为抛弃式原型和演化式原型
▪ 抛弃式原型不作为最终产品,具有探索和实验目的,或 只是作为需求确认的工具
▪ 演化式原型,最终软件系统是在原型的基础上逐步形成 、修改、完善和完成的
zhu.kerry@gmail.com .csdn/Kerryzhu
zhu.kerry@gmail.com .csdn/Kerryzhu
构件的层次
zhu.kerry@gmail.com .csdn/Kerryzhu
基于构件的网状结构
zhu.kerry@gmail.com .csdn/Kerryzhu
面向服务方法
zhu.kerry@gmail.com .csdn/Kerryzhu
如何分析问题?
zhu.kerry@gmail.com
5.3 软件工程的分析方法
5.3.1 系统分析方法 5.3.2 问题分析方法 5.3.3 根本原因分析 5.3.4 决策分析
zhu.kerry@gmail.com .csdn/Kerryzhu
❖ 整体分析 ❖ 结构分析 ❖ 层次分析 ❖ 相关分析
方法以及刻画初步解决方案的需求集合
zhu.kerry@gmail.com .csdn/Kerryzhu
本章内容
❖5.1 软件方法论 ❖5.2 用户需求的获取方法 ❖5.3 软件工程的分析方法 ❖5.4 软件工程的设计方法 ❖5.5 软件测试方法
zhu.kerry@gmail.com .csdn/Kerryzhu
zhu.kerry@gmail.com .csdn/Kerryzhu
软系统方法的逻辑
zhu.kerry@gmail.com .csdn/Kerryzhu
丰富图的一个示例
zhu.kerry@gmail.com .csdn/Kerryzhu
软件工程方法体系
发现现实问题 抽象 模型 解决问题
❖ 抽象原则给出软件工程问题求解全过程的最基 本原则
软件工程导论(5)
软件工程方法
卢军
jlucuit.edu uvgelab.cuit.edu
zhu.kerry@gmail.com .csdn/Kerryzhu
方法的作用
虽然没有银弹
zhu.kerry@gmail.com .csdn/Kerryzhu
本章内容
❖5.1 软件方法论 ❖5.2 用户需求的获取方法 ❖5.3 软件工程的分析方法 ❖5.4 软件工程的设计方法 ❖5.5 软件测试方法
zhu.kerry@gmail.com .csdn/Kerryzhu
本章内容
❖5.1 软件方法论 ❖5.2 用户需求的获取方法 ❖5.3 软件工程的分析方法 ❖5.4 软件工程的设计方法 ❖5.5 软件测试方法
zhu.kerry@gmail.com .csdn/Kerryzhu
什么是工程的方法?
❖ 体系规范原则是规范整体解题思路及解决方案 的验证
❖ 局部规范原则是规范解决模块、组件等局部问 题的原则
zhu.kerry@gmail.com .csdn/Kerryzhu
❖ 结构化程序设计方法 ❖ 面向对象方法 ❖ 面向构件方法 ❖ 面向服务方法 ❖ 基于净室思想的方法 ❖ 基于敏捷思想的方法 ❖ 自适应开发方法 ❖ 动态系统开发方法 ❖ 测试驱动方法 ❖ ……
需求访谈
从一组语境无关的问题开始
• 哪些人将会使用这个软件系统? • 他们希望该软件系统达到什么样的效果? • 以前使用过其它类似的软件系统吗?
然后,站在用户的角度展开要询问的问题,寻求更多 的需求信息,挖掘用户潜在的功能需求
zhu.kerry@gmail.com .csdn/Kerryzhu
便利的应用规约技术
❖ 动态系统理论、自动机理论 、霍尔三维结构、系统分 析法、成本效益分析、计划协调技术、关键路线法等
问题定义确定目标系统综合系统分析系统评价系统创建 系统实施
zhu.kerry@gmail.com .csdn/Kerryzhu
软系统方法论
❖ 是一项运用系统思维方法解决非系 统问题的定性研究的技术,目的是 解决那些包含有大量社会的、政治 的以及人为因素的问题
根本原因分析
❖ 在开发周期的每个阶段实施根本原因分析,为有效开 展缺陷预防活动提供依据
❖ 应用在解决各个方面的问题的过程中 ❖ 得到提倡,形成一种文化或一种机制,而对每个人应
形成一种处理问题的习惯
问题 根本原因 解决方案
zhu.kerry@gmail.com .csdn/Kerryzhu
决策分析
zhu.kerry@gmail.com .csdn/Kerryzhu
面向对象设计
把分析阶段得到的需求转变成符合成本和质量要求 的、抽象的系统实现方案的过程
❖ 开-闭原则 ❖ 单一职责原则 ❖ 里氏代换原则 ❖ 依赖倒转原则 ❖ 接口隔离原则 ❖ 合成/聚合复用原则 ❖ 迪米特法则
zhu.kerry@gmail.com .csdn/Kerryzhu
鼓励建立客户和开发者的联合团队,一起工作以标识问题、 提出解决方案的元素、刻画初步解决方案的需求集合
❖ 在中立的地点举行会议 ❖ 建立筹备和参与会议的规则 ❖ 建议一个议程,能够覆盖需求范围所有的要点,但不
鼓励思维的任意流动 ❖ 一个“协调者控制会议 ❖ 使用一种“定义机制” ❖ 目标是标识问题、提出解决方案的元素、评估不同的
原型设计方法的实现过程
zhu.kerry@gmail.com .csdn/Kerryzhu
结构化方法
采用自顶向下、逐步求精设计过程,将系统分解为若干功 能模块,然后逐个实现每一个具体的功能模块
❖ 面向数据结构的软件设计方法 ❖ 问题分析法 ❖ 系统关联图 ❖ 信息隐蔽方法
zhu.kerry@gmail.com .csdn/Kerryzhu
❖ 选择决策技术和结构层次,制订决策分析与决定的计 划
❖ 建立作为决策基础的评价准则。
❖ 建立并运用决策分析指导原则,确定推荐的候选方案 。
❖ 依据评价准则进行综合分析、讨论和审查,然后选择 相应的评价方法,依据准则来评价候选方案。
❖ 最终选择的候选方案应附有所选择的技术、准则和作 出选择的依据
zhu.kerry@gmail.com .csdn/Kerryzhu
示例
zhu.kerry@gmail.com .csdn/Kerryzhu
可视化IDE
zhu.kerry@gmail.com .csdn/Kerryzhu
本章内容
❖5.1 软件方法论 ❖5.2 用户需求的获取方法 ❖5.3 软件工程的分析方法 ❖5.4 软件工程的设计方法 ❖5.5 软件测试方法
zhu.kerry@gmail.com .csdn/Kerryzhu
系统分析方法
zhu.kerry@gmail.com .csdn/Kerryzhu
问题分析方法
❖ 问题说明阶段: 提出目标,确定评价指标和约束条件
❖ 分析研究阶段: 提出各种备选方案并预计一旦实施后可能 产生的结果
❖ 评估结果 :将各方案的评价比较结果提供给决策者,作为 判断抉择的依据
zhu.kerry@gmail.com .csdn/Kerryzhu
❖ 消息传递是对象间惟一的交互方式
zhu.kerry@gmail.com .csdn/Kerryzhu
示例
zhu.kerry@gmail.com .csdn/Kerryzhu
面向对象分析
❖ 分析是提取和整理用户需求,并建立问题域精确 模型的过程
❖ 面向对象分析一般需要建立3个模型(功能模型、 对象模型和动态模型)并定义相应的服务
相关文档
最新文档