软件工程复习2.docx
- 文档编号:28094785
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:30
- 大小:635.73KB
软件工程复习2.docx
《软件工程复习2.docx》由会员分享,可在线阅读,更多相关《软件工程复习2.docx(30页珍藏版)》请在冰豆网上搜索。
软件工程复习2
5
缺陷报告的用途是什么?
记录缺陷
缺陷分类
缺陷跟踪
判断缺陷类别的方法
通过参考文档来确认缺陷的严重等级
通过了解软件产品的行业背景来发现确认缺陷的严重等级
通过沟通来确认和识别缺陷的严重等级
6
白盒测试:
又称透明盒测试、逻辑驱动测试
是测试被测单元内部如何工作的一种测试方法
允许测试人员根据程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑结构进行测试
可覆盖全部代码、分支、路径和条件等
白盒测试和黑盒测试比较
白盒测试
黑盒测试
联系
白盒测试和黑盒测试都是软件测试的一个方面;
两者有时结合起来同时进行测试,“灰盒测试”;
区
别
需要源代码
不需要源代码,需要可执行文件
无法检验程序的外部特性,无法测试遗漏的需求
从用户的角度出发进行测试
关心程序内部结构、逻辑以及代码的可维护性
关心程序的外在功能和非功能表现
编码、集成测试阶段进行
确认测试、系统测试阶段进行
白盒测试目的
保证一个模块中的所有独立路径至少被执行一次;
对所有的逻辑值均需要测试真、假两个分支;
在上下边界及可操作范围内运行所有循环;
检查内部数据结构以确保其有效性。
逻辑驱动覆盖测试
语句覆盖
判定(分支)覆盖
条件覆盖
判定条件覆盖
条件组合覆盖
路径测试覆盖
8
性能测试前需要考虑哪些问题
v确定性能目标
v用户活动剖析
v后台活动分析
v关键性能尺度标准
v镜像生产环境
v创建一份性能测试计划书
可靠性测试和稳定性测试
可靠性的概念
软件按规定的条件,在规定的时间内运行而不发生故障的能力
软件的故障:
是由于它固有的缺陷导致错误,进而使系统的输出不满足预定的要求,造成系统的故障。
按规定的条件:
主要指软件的运行(使用)环境,它涉及软件运行所需要的一切支持系统及有关的因素;如支持硬件、操作系统及其他支持软件、输入数据的规定格式和范围、操作规程等。
稳定性的概念
一般与可靠性不作区分
如何增强可靠性
使用工程方法保证软件可靠性
在软件寿命周期的各个阶段千方百计地减少缺陷
v如何进行稳定性测试和可靠性测试
⏹时间是至关重要的因素
◆在测试软件时,实际需要发生的是把它部署到内部实验室,并使用自动脚本模拟虚拟用户以增加它的工作强度,同时在很长时间内将CPU占用率保持在75%或80%。
◆在测试时,很长时间内没有管理性干预(重启等)是至关重要的。
⏹DLL没有在启动时候加载
◆如果服务器已经运行一段时间了,可能只剩下很少的连续内存。
如果需要加载的DLL比任何一块连续的内存都大,它就不能加载,从而使你的服务器有崩溃的危险。
⏹规格说明书应涵盖的内容
◆可测量的特征:
在CPU利用率为75%的负载情况下,应用能持续运行500个小时
v可伸缩性的概念
⏹系统能够接受更多用户而不增加每个用户所需的开销,并且同时保持系统的响应特性的能力
v可伸缩性和性能的联系与区别
⏹从餐厅的角度,菜上的一贯的慢,这是性能问题;但如果上菜的速度本来还可以,但随着用餐人数上升而急剧下降,这就是可伸缩性问题。
从网站的角度,页面响应一贯的慢,这是性能问题;如果页面响应的速度本来还可以,但随着访问人数上升而急剧下降,这是可伸缩性问题。
v系统的两种缩放形式
⏹扩大:
将当前的机器改造成更大的机器
◆增加CPU,内存等等
⏹扩充:
向拓扑结构中添加更多的机器,以减轻处理的负载
◆拓扑结构复杂化
◆机器间共享难以管理
vASP性能测试的必要性
⏹资源密集型技术
vASP性能瓶颈分析
⏹操作系统的选择
⏹数据库的选择
⏹优化程序语句的选择,使用Response.IsClientConnected查看客户端机器是否依然联机
v如何进行ASP性能测试
⏹使用Response.End
⏹IIS异常监控器
v自动化性能测试的必要性
v如何进行自动化性能测试
⏹量化典型用户动作,或资源占用多的用户动作
⏹分析影响性能的指标
⏹用脚本录制场景
⏹用工具自动测试
vWeb层的常见错误原因
⏹配置问题
⏹硬件资源不足
⏹低效的设计
⏹代码错误
vWeb层导致瓶颈的主要因素
⏹页面大小
◆结果集大小
◆无效代码
⏹图片
⏹命名约定
⏹禁用SSL
⏹使用已经落后的技术
11
v开发模式又称为范型、范例、风范或模式(Pattern)。
开发模式定义了
⏹特定问题和应用的开发过程中将遵循的步骤;
⏹确定将用于表示问题和解的那些成分的类型;
⏹利用这些成分表示与问题解决有关的抽象;
⏹直接得到问题的结构。
v开发模式的选择影响到整个软件开发生存期。
就是说,它支配了
⏹设计方法
⏹编码语言
⏹测试和检验技术
的选择
v面向过程开发模式产生过程的抽象。
v这些抽象的基础是把软件视为处理流,并定义成由一系列步骤构成的算法。
v每一步骤都是带有预定输入和特定输出的一个过程,把这些步骤串联在一起可产生合理的稳定的贯通于整个程序的控制流,最终产生一个简单的具有静态结构的体系结构。
v过程性开发模式侧重建立构成问题解决的处理流。
v数据抽象、数据结构根据算法步骤的要求开发,它贯穿于过程,提供过程所要求操作的信息。
v系统的状态是一组全局变量,这组全局变量保存状态的值,把它们从一个过程传送到另一个过程。
v在面向过程开发模式中优先考虑的是过程抽象,在面向对象开发模式中优先考虑的是实体(问题论域的对象)。
v在面向对象开发模式中,把标识和模型化问题论域中的主要实体做为系统开发的起点,主要考虑对象的行为而不是必须执行的一系列动作。
v面向对象系统中的对象是数据抽象与过程抽象的综合。
v系统的状态保存在各个数据抽象的所定义的数据存储中。
v控制流包含在各个数据抽象中的操作内。
v在面向对象体系结构中,消息从一个对象传送到另一个对象。
算法被分布到各种实体中。
v一个数据库界面,可以使用面向存取的方法进行设计;
v智能数据分析用逻辑性的开发模式设计;
v一组分析算法是过程性的;
v用户界面是用面向对象开发模式设计出来的。
什么是面向对象
vCoad和Yourdon给出了一个定义:
“面向对象=对象+类+继承+通信”。
v如果一个软件系统是使用这样4个概念设计和实现的,则我们认为这个软件系统是面向对象的。
v一个面向对象的程序的每一成份应是对象,计算是通过新的对象的建立和对象之间的通信来执行的。
对象(object)
对象是面向对象开发模式的基本成份。
每个对象可用它本身的一组属性和它可以执行的一组操作来定义。
属性一般只能通过执行对象的操作来改变。
操作又称为方法或服务,它描述了对象执行的功能,若通过消息传递,还可以为其它对象使用。
消息(Message)
v消息是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操作的规格说明。
发送给一个对象的消息定义了一个方法名和一个参数表(可能是空的),并指定某一个对象。
v一个对象接收的消息则调用消息中指定的方法,并将形式参数与参数表中相应的值结合起来。
类(class)
v类是一组具有相同数据结构和相同操作的对象的集合。
v类的定义包括一组数据属性和在数据上的一组合法操作。
v类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象。
v在一个类中,每个对象都是类的实例(Instance),它们都可使用类中提供的函数。
v对象的状态则包含在它的实例变量,即实例的属性中。
继承(Inheritance)
v继承是使用已存在的定义做为基础建立新定义的技术。
v新类的定义可以是既存类所声明的数据和新类所增加的声明的组合。
新类复用既存的定义,而不要求修改既存类。
v既存类可当做基类来引用,则新类相应地可当做派生类来引用。
面向对象方法的开发过程
v面向对象方法改进了在生存期各个阶段之间的接口,因为在生存期各个阶段所开发出来的“部件”都是类。
v在面向对象生存期的各个阶段对各个类的信息进行细化,类成为分析、设计和实现的基本单元
复用(Reusable
v在软件开发中,复用扮演了重要角色。
软件部件应当独立于当初开发它们的应用而存在。
v部件的开发瞄准某些局部的设计和实现,它们能够帮助当前问题的解决,但为了在以后的项目中使用,它们还应当足够通用。
v类就是一个希望能够复用的单元,因此,提出了一个“类生存期”。
v类生存期是与应用生存期是交叉的。
即就是说,类的标识是应用生存期的一个阶段,但类生存期的步骤独立于任一特殊应用的开发。
v类的开发应能完整地描述一个基本实体。
而不仅仅考虑当前正在开发的系统。
实现
n通过变量的声明、操作界面的实现及支持界面操作的函数的实现,可实现一个类的预期行为和状态。
n实现是与语言有关的。
一个好的面向对象语言应当分离共有界面与其内部实现。
n采取必要措施分别编译界面和内部表示。
测试
n单个的类为测试提供了自然的单元。
n如果类的定义提供的界面比较狭窄,那么穷举测试就有可能实现。
n类的测试在最抽象的层次开始,沿继承关系继续向下进行。
n已经测试过的部分不需要重新测试。
n重点放在对新类的测试和组装测试。
面向对象分析与模型化
v面向对象分析是软件开发过程中的问题定义阶段。
v这一阶段最后得到的是对问题论域的清晰、精确的定义。
v分析阶段包括两个步骤:
论域分析和应用分析。
v它们都要标识问题论域中的抽象。
v在分析中,需要
◆找到特定对象
◆基于对象的公共特性组合它们
◆标识出对这个问题的抽象
v在分析阶段中要标识
◆抽象之间的关系
v这些关系在应用系统中常常用对象之间的消息来表示,叫做消息连接。
v在一个面向对象的应用中的控制流由两部分构成:
◆每个单独操作内部的控制流
◆对象之间的消息模式
v面向对象分析过程分两阶段:
◆论域分析
◆应用分析
语义数据模型
v语义数据模型是一种特别适用的建立构成问题论域模型的技术。
v它基于实体—关系模型,并对这类模型进行了扩充和一般化。
语义数据模型可以表达问题论域的内涵,还可以表示复杂的对象和对象之间的关系。
v外部模型层反映应用的外部现实世界的视图,它体现了用户对问题的理解。
v概念模型层考虑在外部模型层所标识的实体之间的关系。
这些关系都是可直接观察到的交互关系。
v内部模型层考虑实体的物理模型,就是我们生存期中的类设计阶段。
状态图
状态图是一个状态和事件的网络,侧重于描述每一类对象的动态行为。
v构造和评审OOA概念模型的顺序和由五个层次组成。
v这五个层次是分析过程中的层次。
v每个层次的工作都为系统的规格说明增加了一个组成部分。
v这五个层次是:
类与对象、属性、服务、结构和主题。
四、选择排序的伪代码如下〖共计10分〗;
Select_sort(a[1],a[2],…,a[n])
{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 复习
![提示](https://static.bdocx.com/images/bang_tan.gif)