《SEI软件工程方法》PPT课件.ppt_第1页
《SEI软件工程方法》PPT课件.ppt_第2页
《SEI软件工程方法》PPT课件.ppt_第3页
《SEI软件工程方法》PPT课件.ppt_第4页
《SEI软件工程方法》PPT课件.ppt_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

软件工程导论(5) 软件工程方法,方法的作用,/Kerryzhu,虽然没有银弹,本章内容,5.1 软件方法论 5.2 用户需求的获取方法 5.3 软件工程的分析方法 5.4 软件工程的设计方法 5.5 软件测试方法,/Kerryzhu,本章内容,5.1 软件方法论 5.2 用户需求的获取方法 5.3 软件工程的分析方法 5.4 软件工程的设计方法 5.5 软件测试方法,/Kerryzhu,什么是工程的方法?,/Kerryzhu,5.1 软件方法论,/Kerryzhu,5.1.1 系统工程方法论 5.1.2 软系统方法论 5.1.3 软件工程方法体系,系统工程方法论,系统工程方法论是针对复杂多变和不确定性的特点,综合应用运筹学、系统动力学、控制论、信息论等有关学科的理论和方法,将数理统计、概率论、线性代数、模糊数学等作为定性分析和定量分析的有效工具,深入地分析问题,寻求问题解决的最优策略 动态系统理论、自动机理论 、霍尔三维结构、系统分析法、成本效益分析、计划协调技术、关键路线法等,/Kerryzhu,问题定义确定目标系统综合系统分析系统评价系统创建 系统实施,软系统方法论,/Kerryzhu,是一项运用系统思维方法解决非系统问题的定性研究的技术,目的是解决那些包含有大量社会的、政治的以及人为因素的问题,软系统方法的逻辑,/Kerryzhu,丰富图的一个示例,/Kerryzhu,软件工程方法体系,/Kerryzhu,抽象原则给出软件工程问题求解全过程的最基本原则 体系规范原则是规范整体解题思路及解决方案的验证 局部规范原则是规范解决模块、组件等局部问题的原则,发现现实问题 抽象 模型 解决问题,方法,/Kerryzhu,结构化程序设计方法 面向对象方法 面向构件方法 面向服务方法 基于净室思想的方法 基于敏捷思想的方法 自适应开发方法 动态系统开发方法 测试驱动方法 ,示例,本章内容,5.1 软件方法论 5.2 用户需求的获取方法 5.3 软件工程的分析方法 5.4 软件工程的设计方法 5.5 软件测试方法,/Kerryzhu,需求访谈,哪些人将会使用这个软件系统? 他们希望该软件系统达到什么样的效果? 以前使用过其它类似的软件系统吗?,/Kerryzhu,从一组语境无关的问题开始,然后,站在用户的角度展开要询问的问题,寻求更多的需求信息,挖掘用户潜在的功能需求,便利的应用规约技术,/Kerryzhu,在中立的地点举行会议 建立筹备和参与会议的规则 建议一个议程,能够覆盖需求范围所有的要点,但不鼓励思维的任意流动 一个“协调者控制会议 使用一种“定义机制” 目标是标识问题、提出解决方案的元素、评估不同的方法以及刻画初步解决方案的需求集合,鼓励建立客户和开发者的联合团队,一起工作以标识问题、提出解决方案的元素、刻画初步解决方案的需求集合,本章内容,5.1 软件方法论 5.2 用户需求的获取方法 5.3 软件工程的分析方法 5.4 软件工程的设计方法 5.5 软件测试方法,/Kerryzhu,如何分析问题?,/Kerryzhu,5.3 软件工程的分析方法,5.3.1 系统分析方法 5.3.2 问题分析方法 5.3.3 根本原因分析 5.3.4 决策分析,系统分析方法,整体分析 结构分析 层次分析 相关分析,/Kerryzhu,问题分析方法,/Kerryzhu,问题说明阶段: 提出目标,确定评价指标和约束条件 分析研究阶段: 提出各种备选方案并预计一旦实施后可能产生的结果 评估结果 :将各方案的评价比较结果提供给决策者,作为判断抉择的依据,根本原因分析,/Kerryzhu,在开发周期的每个阶段实施根本原因分析,为有效开展缺陷预防活动提供依据 应用在解决各个方面的问题的过程中 得到提倡,形成一种文化或一种机制,而对每个人应形成一种处理问题的习惯,问题 根本原因 解决方案,决策分析,选择决策技术和结构层次,制订决策分析与决定的计划 建立作为决策基础的评价准则。 建立并运用决策分析指导原则,确定推荐的候选方案。 依据评价准则进行综合分析、讨论和审查,然后选择相应的评价方法,依据准则来评价候选方案。 最终选择的候选方案应附有所选择的技术、准则和作出选择的依据,/Kerryzhu,本章内容,5.1 软件方法论 5.2 用户需求的获取方法 5.3 软件工程的分析方法 5.4 软件工程的设计方法 5.5 软件测试方法,/Kerryzhu,设计中最关键的问题?,/Kerryzhu,软件危机,5.4.1 原型设计方法 5.4.2 结构化方法 5.4.3 面向对象方法 5.4.4 面向构件设计方法 5.4.5 面向服务方法 5.4.6 可视化方法,/Kerryzhu,原型设计方法,在获取基本的需求定义后,利用可视化的开发环境或工具,快速地建立一个目标系统的粗线条版本 基于可视化原型,用户更能清楚地表达自己的需求,提供反馈意见 原型分为抛弃式原型和演化式原型 抛弃式原型不作为最终产品,具有探索和实验目的,或只是作为需求确认的工具 演化式原型,最终软件系统是在原型的基础上逐步形成、修改、完善和完成的,/Kerryzhu,原型设计方法的实现过程,/Kerryzhu,结构化方法,/Kerryzhu,面向数据结构的软件设计方法 问题分析法 系统关联图 信息隐蔽方法,采用自顶向下、逐步求精设计过程,将系统分解为若干功能模块,然后逐个实现每一个具体的功能模块,问题分析法,/Kerryzhu,先分解再合成,根据输入、输出数据结构指导系统的分解,在系统分析指导下再逐步合成系统,系统关联图,/Kerryzhu,用于定义系统与系统外部实体间的界限和接口的简单模型,可以明确外部实体和系统之间通过接口传递的数据流和信息流,面向对象方法,/Kerryzhu,面向对象方法从所处理的数据入手,以数据为中心来描述系统 充分挖掘了“关系”的表达方式,可以尽可能的将事物之间复杂的关系予以体现 软件的开发可以视为“类”的抽象及其关联的建模过程 软件的运行是对象的实例化及其状态的演变过程,对象与对象之间通过发送消息相互联系,对象与类,/Kerryzhu,对象的行为通过操作展示,外界不可以直接访问其内部属性(封装性),操作的实现对用户透明 类是对具有相同内部状态和外部行为对象结构的描述,它定义了表示对象状态的实例变量集和表示对象行为的方法集。子类可以继承父类的实例变量和方法、重载父类的某个行为(虚函数),同时还可以定义新的变量和方法 消息传递是对象间惟一的交互方式,示例,/Kerryzhu,面向对象分析,/Kerryzhu,分析是提取和整理用户需求,并建立问题域精确模型的过程 面向对象分析一般需要建立3个模型(功能模型、对象模型和动态模型)并定义相应的服务,面向对象设计,/Kerryzhu,开-闭原则 单一职责原则 里氏代换原则 依赖倒转原则 接口隔离原则 合成/聚合复用原则 迪米特法则,把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程,面向构件设计方法,就是用“构件”取代“代码”,构件成为软件产品或系统的基本结构单元 构件可以完成一个或多个功能的特定服务,并为用户提供标准接口 系统构件可以分为业务构件、服务构件、展现构件、逻辑构件、运算构件等 从传统的关注点分离到构件组装 业务构件是软件过程的主线索,并基于业务构件来识别出服务构件 ,然后就是业务构件的实现、验证和部署,/Kerryzhu,构件的层次,/Kerryzhu,基于构件的网状结构,/Kerryzhu,面向服务方法,/Kerryzhu,SOA 架构模式,/Kerryzhu,SOA模式在三个主要参与者“服务提供者、服务消费者和服务代理”之间定义了交互模型,SOA 系统架构的层次,/Kerryzhu,SOA 系统服务层实现,/Kerryzhu,SOD的建模和架构方法,/Kerryzhu,可视化方法,/Kerryzhu,借助可视开发工具,直接在图形用户界面上来完成绝大部分的软件设计和编程工作,可以自定义、修改和拖拽各项操作界面元素 可视开发工具能实现程序代码的自动生成,示例,/Kerryzhu,可视化IDE,/Kerryzhu,本章内容,5.1 软件方法论 5.2 用户需求的获取方法 5.3 软件工程的分析方法 5.4 软件工程的设计方法 5.5 软件测试方法,/Kerryzhu,为什么要进行软件测试?,/Kerryzhu,5.5.1 白盒和黑盒的测试方法 5.5.2 静态和动态的测试方法 5.5.3 ALAC测试和随机测试 5.5.4 自动化测试方法,5.5 软件测试方法,黑盒方法和白盒方法,黑盒测试方法(Blake-box Testing),是把程序看作一个不能打开的黑盒子,不考虑程序内部结构和内部特性,而是考察数据的输入、条件限制和数据输出,完成测试 白盒测试方法(White-box Testing),也称结构测试或逻辑驱动测试。白盒测试方法是根据模块内部结构了解,基于内部逻辑结构,针对程序语句、路径、变量状态等来进行测试,检验程序中的各个分支条件是否得到满足、每条执行路径是否按预定要求正确的工作。,黑盒测试 vs. 白盒测试,功能测试 数据驱动(Data-driven)测试,结构测试 逻辑驱动(Logic-driven)测试,需求,事件驱动,输入,输出,方法,静态测试 和 动态测试,静态测试就是静态分析,对模块的源代码进行研读,查找错误或收集一些度量数据,并不需要对代码进行编译和仿真运行。静态测试采用人工检测和计算机辅助静态分析手段进行检测 动态测试是通过观察代码运行时的动作,来提供执行跟踪、时间分析,以及测试覆盖度方面的信息。动态测试通过真正运行程序发现错误。通过有效的测试用例,对应的输入/输出关系来分析被测程序的运行情况,/Kerryzhu,静态测试 vs. 动态测试,运行程序,ALAC测试,ALAC( Act-like-a-customer,象客户那样做 )测试是基于客户使用产品的知识而进行测试 其出发点是著名的Pareto 80/20规律,随机测试,可以作为熟悉新开发产品的功能特性,完善软件测试用例,获得一举两得的效果 为对计划测试的补充,使测试人员不受已有测试用例的限制,无拘无束、思维活跃,能发现一些隐藏比较深的缺陷,自动化测试的特点,自动运行的速度快,是手工无法相比的。 测试结果准确。例如搜索用时及时是0.33秒或0.24秒,系统都会发现问题,不会忽视任何差异 高复用性。一旦完成所用的测试脚本,可以一劳永逸运行很多遍 永不疲劳 可靠 独特的能力,自动化测试带来的好处,测试周期缩短 更高质量的产品 软件过程更规范 高昂的团队士气 节省人力资源,降低企业成本 充分利用硬件资源,降低企业成本。,手工测试,发现缺陷率高 容易实施 创造性、灵活性 覆盖率量化困难 重复测试效率低 不一致性、可靠性低 依赖人力资源,高效率

温馨提示

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

评论

0/150

提交评论