软件工程方法课件_第1页
软件工程方法课件_第2页
软件工程方法课件_第3页
软件工程方法课件_第4页
软件工程方法课件_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程方法软件工程方法方法的作用方法的作用 虽然没有银弹软件工程方法本章内容本章内容v 5.1 5.1 软件方法论软件方法论v 5.2 5.2 用户需求的获取方法用户需求的获取方法v 5.3 5.3 软件工程的分析方法软件工程的分析方法v 5.4 5.4 软件工程的设计方法软件工程的设计方法v 5.5 5.5 软件测试方法软件测试方法 软件工程方法本章内容本章内容v 5.1 5.1 软件方法论软件方法论v 5.2 用户需求的获取方法v 5.3 软件工程的分析方法v 5.4 软件工程的设计方法v 5.5 软件测试方法 软件工程方法什么是工程的方法?什么是工程的方法? 软件工程方法5.1 5.1

2、 软件方法论软件方法论 5.1.1 系统工程方法论系统工程方法论5.1.2 软系统方法论软系统方法论5.1.3 软件工程方法体系软件工程方法体系软件工程方法系统工程方法论系统工程方法论v 系统工程方法论是针对复杂多变和不确定性的特点,系统工程方法论是针对复杂多变和不确定性的特点,综合应用运筹学、系统动力学、控制论、信息论等有综合应用运筹学、系统动力学、控制论、信息论等有关学科的理论和方法,将数理统计、概率论、线性代关学科的理论和方法,将数理统计、概率论、线性代数、模糊数学等作为定性分析和定量分析的有效工具数、模糊数学等作为定性分析和定量分析的有效工具,深入地分析问题,寻求问题解决的最优策略,深

3、入地分析问题,寻求问题解决的最优策略v 动态系统理论、自动机理论动态系统理论、自动机理论 、霍尔三维结构、系统、霍尔三维结构、系统分析法、成本效益分析、计划协调技术、关键路线法分析法、成本效益分析、计划协调技术、关键路线法等等 问题定义确定目标系统综合系统分析系统评价系统创建 系统实施软件工程方法软系统方法论软系统方法论 v 是一项运用系统思维方法解决非系统问题的定性研究的技术,目的是解决那些包含有大量社会的、政治的以及人为因素的问题 软件工程方法软系统方法的逻辑软系统方法的逻辑 软件工程方法丰富图的一个示例丰富图的一个示例 软件工程方法软件工程方法体系软件工程方法体系 v 抽象原则给出软件工

4、程问题求解全过程的最基本原则 v 体系规范原则是规范整体解题思路及解决方案的验证v 局部规范原则是规范解决模块、组件等局部问题的原则 发现现实问题发现现实问题 抽象抽象 模型模型 解决问题解决问题 软件工程方法方法方法 v 结构化程序设计方法v 面向对象方法v 面向构件方法v 面向服务方法v 基于净室思想的方法v 基于敏捷思想的方法v 自适应开发方法v 动态系统开发方法v 测试驱动方法v 软件工程方法示例示例软件工程方法本章内容本章内容v 5.1 软件方法论v 5.2 5.2 用户需求的获取方法用户需求的获取方法v 5.3 软件工程的分析方法v 5.4 软件工程的设计方法v 5.5 软件测试方

5、法 软件工程方法需求访谈需求访谈 哪些人将会使用这个软件系统?哪些人将会使用这个软件系统? 他们希望该软件系统达到什么样的效果他们希望该软件系统达到什么样的效果? 以前使用过其它类似的软件系统吗以前使用过其它类似的软件系统吗? 从一组语境无关的问题开始 然后,站在用户的角度展开要询问的问题,寻求更多的需求信息,挖掘用户潜在的功能需求 软件工程方法便利的应用规约技术便利的应用规约技术 v在中立的地点举行会议v建立筹备和参与会议的规则v建议一个议程,能够覆盖需求范围所有的要点,但不鼓励思维的任意流动v一个“协调者控制会议v使用一种“定义机制”v目标是标识问题、提出解决方案的元素、评估不同的方法以及

6、刻画初步解决方案的需求集合鼓励建立客户和开发者的联合团队,一起工作以标识问题、提出解决方案的元素、刻画初步解决方案的需求集合 软件工程方法本章内容本章内容v 5.1 软件方法论v 5.2 用户需求的获取方法v 5.3 5.3 软件工程的分析方法软件工程的分析方法v 5.4 软件工程的设计方法v 5.5 软件测试方法 软件工程方法如何分析问题?如何分析问题? 软件工程方法5.3 5.3 软件工程的分析方法软件工程的分析方法5.3.1 系统分析方法系统分析方法5.3.2 问题分析方法问题分析方法5.3.3 根本原因分析根本原因分析5.3.4 决策分析决策分析软件工程方法系统分析方法系统分析方法v

7、整体分析整体分析 v 结构分析结构分析 v 层次分析层次分析 v 相关分析相关分析 软件工程方法问题分析方法问题分析方法 v 问题说明阶段问题说明阶段: 提出目标,确定评价指标和约束条件 v 分析研究阶段分析研究阶段: 提出各种备选方案并预计一旦实施后可能产生的结果 v 评估结果评估结果 :将各方案的评价比较结果提供给决策者,作为判断抉择的依据 软件工程方法根本原因分析根本原因分析 v 在开发周期的每个阶段实施根本原因分析,为有效开展缺陷预防活动提供依据v 应用在解决各个方面的问题的过程中 v 得到提倡,形成一种文化或一种机制,而对每个人应形成一种处理问题的习惯 问题问题 根本原因根本原因 解

8、决方案解决方案 软件工程方法决策分析决策分析v 选择决策技术和结构层次,制订决策分析与决定的计选择决策技术和结构层次,制订决策分析与决定的计划划v 建立作为决策基础的评价准则。建立作为决策基础的评价准则。v 建立并运用决策分析指导原则,确定推荐的候选方案建立并运用决策分析指导原则,确定推荐的候选方案。v 依据评价准则进行综合分析、讨论和审查,然后选择依据评价准则进行综合分析、讨论和审查,然后选择相应的评价方法,依据准则来评价候选方案。相应的评价方法,依据准则来评价候选方案。v 最终选择的候选方案应附有所选择的技术、准则和作最终选择的候选方案应附有所选择的技术、准则和作出选择的依据出选择的依据

9、软件工程方法本章内容本章内容v 5.1 软件方法论v 5.2 用户需求的获取方法v 5.3 软件工程的分析方法v 5.4 5.4 软件工程的设计方法软件工程的设计方法v 5.5 软件测试方法 软件工程方法设计中最关键的问题?设计中最关键的问题? 软件工程方法软件危机软件危机v 5.4.1 原型设计方法原型设计方法v 5.4.2 结构化方法结构化方法v 5.4.3 面向对象方法面向对象方法v 5.4.4 面向构件设计方法面向构件设计方法v 5.4.5 面向服务方法面向服务方法v 5.4.6 可视化方法可视化方法 软件工程方法原型设计方法原型设计方法v 在获取基本的需求定义后,利用可视化的开发环境

10、或工具,快速地建立一个目标系统的粗线条版本v 基于可视化原型,用户更能清楚地表达自己的需求,提供反馈意见v 原型分为抛弃式原型和演化式原型 抛弃式原型不作为最终产品,具有探索和实验目的,或只是作为需求确认的工具 演化式原型,最终软件系统是在原型的基础上逐步形成、修改、完善和完成的 软件工程方法原型设计方法的实现过程原型设计方法的实现过程 软件工程方法结构化方法结构化方法 v 面向数据结构的软件设计方法面向数据结构的软件设计方法 v 问题分析法问题分析法 v 系统关联图系统关联图 v 信息隐蔽方法信息隐蔽方法 采用自顶向下、逐步求精设计过程,将系统分解为若干功采用自顶向下、逐步求精设计过程,将系

11、统分解为若干功能模块,然后逐个实现每一个具体的功能模块能模块,然后逐个实现每一个具体的功能模块软件工程方法问题分析法问题分析法 先分解再合成,根据输入、输出数据结构指导系统的分解,先分解再合成,根据输入、输出数据结构指导系统的分解,在系统分析指导下再逐步合成系统在系统分析指导下再逐步合成系统 软件工程方法系统关联图系统关联图 v 用于定义系统与系统外部实体间的界限和接口的简单模用于定义系统与系统外部实体间的界限和接口的简单模型,可以明确外部实体和系统之间通过接口传递的数据型,可以明确外部实体和系统之间通过接口传递的数据流和信息流流和信息流 软件工程方法面向对象方法面向对象方法 v 面向对象方法

12、从所处理的数据入手,以数据为中心来描述系统 v 充分挖掘了“关系”的表达方式,可以尽可能的将事物之间复杂的关系予以体现 v 软件的开发可以视为“类”的抽象及其关联的建模过程v 软件的运行是对象的实例化及其状态的演变过程,对象与对象之间通过发送消息相互联系 软件工程方法对象与类对象与类 v 对象的行为通过操作展示,外界不可以直接访问其内部属性(封装性),操作的实现对用户透明 v 类是对具有相同内部状态和外部行为对象结构的描述,它定义了表示对象状态的实例变量集和表示对象行为的方法集。子类可以继承父类的实例变量和方法、重载父类的某个行为(虚函数),同时还可以定义新的变量和方法 v 消息传递是对象间惟

13、一的交互方式 软件工程方法示例示例 软件工程方法面向对象分析面向对象分析 v 分析是提取和整理用户需求,并建立问题域精确模型的过程 v 面向对象分析一般需要建立3个模型(功能模型、对象模型和动态模型)并定义相应的服务 软件工程方法面向对象设计面向对象设计 v 开-闭原则 v 单一职责原则v 里氏代换原则 v 依赖倒转原则 v 接口隔离原则 v 合成/聚合复用原则 v 迪米特法则 把分析阶段得到的需求转变成符合成本和质量要求把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程的、抽象的系统实现方案的过程软件工程方法面向构件设计方法面向构件设计方法v 就是用就是用“构件构件”取

14、代取代“代码代码”,构件成为软件产品,构件成为软件产品或系统的基本结构单元或系统的基本结构单元 v 构件可以完成一个或多个功能的特定服务,并为用构件可以完成一个或多个功能的特定服务,并为用户提供标准接口户提供标准接口 v 系统构件可以分为业务构件、服务构件、展现构件系统构件可以分为业务构件、服务构件、展现构件、逻辑构件、运算构件等、逻辑构件、运算构件等 v 从传统的关注点分离到构件组装从传统的关注点分离到构件组装v 业务构件是软件过程的主线索,并基于业务构件来业务构件是软件过程的主线索,并基于业务构件来识别出服务构件识别出服务构件 ,然后就是业务构件的实现、验,然后就是业务构件的实现、验证和部

15、署证和部署 软件工程方法构件的层次构件的层次 软件工程方法基于构件的网状结构基于构件的网状结构 软件工程方法面向服务方法面向服务方法 软件工程方法SOA 架构模式架构模式 v SOA模式在三个主要参与者模式在三个主要参与者“服务提供者、服服务提供者、服务消费者和服务代理务消费者和服务代理”之间定义了交互模型之间定义了交互模型 软件工程方法SOA 系统架构的层次系统架构的层次 软件工程方法SOA 系统服务层实现系统服务层实现 软件工程方法SOD的建模和架构方法的建模和架构方法 软件工程方法可视化方法可视化方法 v 借助可视开发工具,直接在图形用户界面上来完成绝大部分的软件设计和编程工作,可以自定

16、义、修改和拖拽各项操作界面元素v 可视开发工具能实现程序代码的自动生成 软件工程方法示例示例 软件工程方法可视化可视化IDE 软件工程方法本章内容本章内容v 5.1 软件方法论v 5.2 用户需求的获取方法v 5.3 软件工程的分析方法v 5.4 软件工程的设计方法v 5.5 5.5 软件测试方法软件测试方法 软件工程方法为什么要进行软件测试?为什么要进行软件测试? 软件工程方法v 5.5.1 白盒和黑盒的测试方法白盒和黑盒的测试方法v 5.5.2 静态和动态的测试方法静态和动态的测试方法v 5.5.3 ALAC测试和随机测试测试和随机测试v 5.5.4 自动化测试方法自动化测试方法v5.5

17、软件测试方法软件测试方法软件工程方法黑盒方法和白盒方法黑盒方法和白盒方法 v 黑盒测试方法黑盒测试方法(Blake-box Testing),是把程序看作一个不能打开的黑盒子,不考虑程序内部结构和内部特性,而是考察数据的输入、条件限制和数据输出,完成测试 v 白盒测试方法白盒测试方法(White-box Testing),也称结构测试或逻辑驱动测试。白盒测试方法是根据模块内部结构了解,基于内部逻辑结构,针对程序语句、路径、变量状态等来进行测试,检验程序中的各个分支条件是否得到满足、每条执行路径是否按预定要求正确的工作。 软件工程方法黑盒测试黑盒测试 vs. 白盒测白盒测试试功能测试功能测试数据

18、驱动(数据驱动(Data-driven)测试)测试结构测试结构测试逻辑驱动(逻辑驱动(Logic-driven)测试)测试 需求事件驱动事件驱动输入输入输出输出软件工程方法方法方法黑盒测试方法黑盒测试方法白盒测试方法白盒测试方法等价类划分边界值分析因果图 错误推测法决策表方法正交试验法 语句覆盖分支覆盖条件覆盖条件组合覆盖循环覆盖基本路径测试软件工程方法静态测试静态测试 和和 动态测试动态测试v 静态测试静态测试就是静态分析,对模块的源代码进行研读,查找错误或收集一些度量数据,并不需要对代码进行编译和仿真运行。静态测试采用人工检测和计算机辅助静态分析手段进行检测 v 动态测试动态测试是通过观察

19、代码运行时的动作,来提供执行跟踪、时间分析,以及测试覆盖度方面的信息。动态测试通过真正运行程序发现错误。通过有效的测试用例,对应的输入/输出关系来分析被测程序的运行情况 软件工程方法静态测试静态测试 vs. 动态测试动态测试主持人作者记录员列席会议内审员技术专家用户代表非正式正式同行评审同行评审 走查走查 评审会议评审会议运行程序运行程序软件工程方法ALAC测试测试v ALAC( Act-like-a-customer,象客户那样,象客户那样做做 )测试是基于客户使用产品的知识而进行)测试是基于客户使用产品的知识而进行测试测试v 其出发点是著名的其出发点是著名的Pareto 80/20规律规律 软件工程方法随机测试随机测试 v 可以作为熟悉新开发产品的功能特性,完善软件测试可以作为熟悉新开发产品的功能特性,完善软件测试用例,获得一举两得的效果用例,获得一举两得的效果v 为对计划测试的补充,使测试人员不受已有测试用例为对计划测试的补充,使测试人员不受已有测试用例的限制,无拘无束、思维活跃,能发现一些隐藏比较的限制,无拘无束、思维活跃,能发现一些隐藏比较深的缺陷深的缺陷软件工程方法自动化测试的特点自动化测试的特点v 自动运行的速度快自动运行的速度快,是手工无法相比的。v 测试结果准确测试结果准确。例如搜索用时及时是0.33秒或0.24秒,系统都会发

温馨提示

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

评论

0/150

提交评论