免费预览已结束,剩余48页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机专业课程系列软件工程概论作业集西安交通大学网络教育学院高涛 编目录第一章 绪论第二章 软件项目管理第三章 软件需求分析第四章 软件设计第五章 软件测试第六章 软件维护第七章 面向对象软件工程的概念第八章 面向对象分析第九章 面向对象设计第十章 面向对象测试第十一章 软件工程的前景模拟试题(一)模拟试题(二)参考答案软件工程概论第一章 绪论本章要点:1软件工程产生的背景2软件工程的有关概念3软件生存周期及软件过程模型4软件开发方法5软件开发工具本章目标:1了解软件的特点、发展及软件危机2掌握软件工程的相关概念3了解软件生存周期及软件过程模型4了解常用的软件开发方法及软件开发工具本章重点:1软件生存周期及软件危机2软件过程模型本章难点:1几种软件过程模型的对比2软件开发方法(分类)一、填空题1CASE这一术语的英文是( computer aided software engineering )。2如果不考虑应用领域、项目规模和复杂性,与软件工程相关的工作可分为三个一般的阶段:( 定义阶段)、( 开发阶段 )、( 支持阶段 )。3软件生存周期包括( 可行性研究 )和( 项目开发计划 )、( 需求分析 )、( 软件设计 )、( 编码 )、( 测试 )和( 维护 )等活动。4“软件工程”概念的提出是为了克服( 软件危机 )。5“软件工程”是使用系统化的、规范的、可量化的方法指导(软件开发 )、( 运行 )和(维护 )的一门学科。6螺旋模型将( 瀑布 )模型和( 增量 )模型结合起来,加入了两种模型均忽略了的风险分析,弥补了这两种模型的不足。7瀑布模型本质上是一种( 线性 )顺序模型。二、选择题1软件是一种(B )产品A有形B逻辑C物质D消耗2软件工程方法学的研究内容包含软件开发技术和软件工程管理两个方面,其期望达到的最终目标是( A )A软件开发工程化B消除软件危机C实现软件可重用D程序设计自动化3软件工程方法得以实施的主要保证是( C )A硬件环境B开发人员的素质C软件开发工具和软件开发的环境D软件开发的环境4一个CASE工作台是一组(A ),支持设计、实现或测试等特定的软件开发阶段。A工具集B软件包C平台集D程序包5增量模型是一种( B )模型A整体开发B非整体开发C灵活性差D较晚产生工作软件6瀑布模型的问题是(B )A用户容易参与开发B缺乏灵活性C用户与开发者易沟通D适用可变需求三、问答题1.软件危机指的是什么?它的表现是什么?以及产生的原因。答:1、在计算机软件的开发和维护过程中,所遇到的一系列严重问题,长期找不到解决这些问题的办法,是问题逐渐积累起来,形成了尖锐的矛盾,从而导致了软件危机。2、表现:开发的软件不能满足用户的要求;无完整、规范的文档,难以维护;项目计划不周,进度拖延;软件质量差。3、原因:缺乏正确的理论指导,开发人员各行其是;软件规模越来越大,无开发管理经验;软件复杂度越来越高,而开发技术不相适应;缺少先进的开发工具,开发方式落后。2.什么是软件工程?它的内容是什么?答:软件工程是用科学知识和技术原理来定义、开发、维护软件的一门学科,软件工程研究的主要内容是软件开发技术和软件开发管理两个方面,在软件开发技术方面,主要是研究软件开发方法、软件开发过程、软件开发工具盒环境。在软件管理方面,主要是研究软件管理学,软件经济学,软件心理学等3.什么是软件生存周期模型?软件生存周期模型是描述软件开发过程中,各种活动如何执行的模型,软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段活动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理4.什么是软件生存周期?它有哪些活动?答:软件生存周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。把整个生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大、结构复杂和管理复杂的软件开发变得容易控制和管理。软件生存周期在各阶段有不同的划分。在划分软件生存周期阶段时,应遵循的一条基本原则是:各阶段的任务应尽可能相对独立,同一阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂程度,简化不同阶段之间的联系,有利于软件项目开发的组织管理。通常,软件生存周期包括可行性分析和项目开发计划、需求分析、概要分析、详细分析、编码、测试、维护等活动,可以将这些活动以适当的方式分配到不同阶段去完成。5.增量模型的基本思想是什么?答:为了克服瀑布模型的局限性,使开发过程具有一定的灵活性和可修改性,于是产生了增量模型。它是在瀑布模型的基础上加以修改而形成的。增量模型和瀑布模型之间的本质区别是:瀑布模型属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。而增量模型属于非整体开发模型,它推迟某些阶段和所有阶段中的细节,从而较早地产生工作软件。增量模型是在项目的开发过程中以一系列的增量方式开发系统。增量方式包括增量开发和增量提交。增量开发是指在项目开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应文档。增量开发和增量提交可以同时使用,也可以单独使用。第二章 软件项目管理本章要点:1软件项目管理的概念2可行性研究3软件项目计划4项目进度安排与跟踪5软件质量管理6软件配置管理本章目标:1掌握软件项目管理的概念2了解可行性研究的任务和目的3掌握软件项目计划的相关内容4了解软件质量保证的相关内容 本章重点:1可行性研究的任务和目的2软件项目计划的相关内容本章难点:1可行性研究的任务和目的2软件项目计划的相关内容一、填空题1(软件可行性研究 )的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。2基本的估算方法有( 自顶向下估算 )、( 自底向上估算 )、( 差别估算法 )等等。3可行性研究需要从( 技术 )可行性、( 经济 )可行性、( 社会 )可行性三个方面分析研究每种解决方法的可行性。、4针对不同工作目标,软件项目计划有:( 项目实施计划、质量保证计划、软件测试计划、文档编制计划、用户培训计划、综合支持计划、软件发布计划)。5实施软件质量保证需运用( 验证、确认、评审、审核 )4种支持过程作为质量保证的手段。6人员是一种成功软件项目中最重要的因素。可以分为5类:( 高级管理者、技术管理者、开发人员、客户、最终用户 )。二、选择题1 研究软硬件资源的有效性是进行( A )研究的一方面。A 技术可行性B 经济可行性C 社会可行性D 操作可行性2 技术可行性要解决( D )。A 存在侵权否B 成本效益问题C 运行方式可行D 技术风险问题3Constantine提出的“组织范型”包括( ABCD )A封闭式范型B随机式范型C开放式范型D同步式范型4社会因素可行性考虑的方面包括(ABCD )A政策B法律C使用D环境5技术可行性考虑的问题有( ABC)A开发风险分析B资源分析C相关技术的反展6经济可行性考虑的系统成本包括( ABCD )A软件开发费用B购置并安装软硬件机有关设备的费用C系统安装、运行和维护费用D人员培训费用三、问答题1软件质量保证包括哪几方面内容?答:软件质量保证是一种应用于整个软件过程的庇护性活动,包括:(1)质量管理方法(2)有效地软件工程方法和工具(3)过程中采用的正是技术评审(4)多层次的测试策略(5)对软件文档及其修改的控制(6)保证与开发标准符合的规程(7)软件度量及报告机制等等方面的内容2简述可行性研究的任务。答:可行性研究的主要任务是了解用户的要求及现实环境,从技术、经济和社会因素等方面研究并论证本软件项目的可行性,编写可行性研究报告供项目管理人员评审,以便作出是否开发软件项目的决策。3 简述可行性研究的步骤答:(1)复查确认系统目标、规模(2)研究现行系统的工作流程(3)导出目标系统高层逻辑模型(4)导出和评价供选择的方案(5)推荐可行方案(6)编写可行性研究报告,送审4针对不同工作目标,软件项目计划有哪些内容。答:(1)项目实施计划(软件开发计划):这是软件开发的综合性计划,通常应包括任务、进度、人力、环境、资源、组织等多个方面。(2)质量保证计划:把软件开发的质量要求具体规定为每个开发阶段可以检查的质量保证活动。(3)软件测试计划:规定测试活动的任务、测试方法、进度、资源、人员职责等(4)文档编制计划:规定所开发项目应编制的文档种类、内容、进度、人员职责等。(5)用户培训计划:规定对用户进行培训的目标、要求、进度、人员职责等。(6)综合支持计划:规定软件开发过程中所需要的支持,以及如何获取和利用这些支持。(7)软件发布计划:软件开发项目完成后,如何提交给用户。5简述项目基准计划的步骤。答:(1)定义项目目标,确定软件范围;(2)把项目按项目范围分解为多个任务;(3)确定对应每个任务必须执行的活动;(4)将每个任务分配给一个小组,并为每个开发者分配角色和职责;(5)用Gantt图或PERT图表示出项目的进度。6风险管理的活动有哪些。答:(1)风险识别:确定风险的类型(管理、技术)。(2)风险分析:评估风险出现的可能性及其后果。(3)风险规划:指定避免或降低风险的策略。(4)风险控制:定期进行风险评估,及时修正缓解风险的计划。7项目总结都包括哪些内容。答:(1)用户验收:根据项目协议中规定的验收标准对系统进行评价,并通过场景演示,测试系统功能性和非功能性需求。(2)安装:在目标环境下安装、运行系统并提交文档。(3)总结:总结经验教训,建立团队工作效率的历史档案,以便提高个人和团队整体的软件工程能力。第三章 软件需求分析本章要点:1软件需求2需求分析过程3传统方法的分析建模本章目标:1掌握软件需求的类型、描述、需求规约2掌握需求分析的相关概念及分析过程3掌握传统方法(SA)的分析建模本章重点:1需求分析的过程2传统方法(SA)的分析建模本章难点:1需求分析的过程2传统方法(SA)的分析建模一、填空题1需求的目的是( 彻底的解决用户的问题 )。2在需求分析阶段,首先进行问题识别,即双方确定对问题的综合需求,这些需求包括:( 功能需求、性能需求、环境需求、用户界面需求 )。3.数据流图有四个基本成分:( 数据流、加工、数据存储、数据的源点或终点 )。4.建立数据字典一般的两种形式是( 手工建立 )和( 利用计算机辅助建立并维护 )。5.IDEF0用来描述系统的( 功能活动及联系 ),建立系统的( 功能模型 )。6传统的SA方法主要用于( 数据处理方面 )的问题,主要工具DFD体现了系统的( 做什么 )功能,但它仅是一个( 静态模型 ),没有处理的顺序,即( 控制模型 )。二、选择题1.需求分析是(A )A软件开发工作的基础B软件生存周期的开始C由系统分析员单独完成的D由用户自己单独完成的2.SA方法是一种( A )A自顶向下逐层分解的分析方法B自底向上逐层分解的分析方法C面向对象的分析方法D以上都不是3.在数据流图中,有名字及方向的成分是(C )A控制流B信息流C数据流D信号流4.分层DFD是一种比较严格又易于理解的描述方式,它的顶层图描述了系统的( B)A细节B输入与输出C软件的作者D绘制的时间5需求分析最终结果是产生( C )A项目开发计划B可行性分析报告C需求规格说明书D设计说明书6结构化分析方法(SA)最为常见的图形工具是( C)A程序流程图B实体联系图C数据流图D结构图7下面错误的说法是( A )A每个数据流必须用名词或名词短语命名B每个加工必须有名字,通常是动词短语C每个数据存储必须用名词或名词短语D每个数据源点或终点必须有名字三、问答题1什么是需求分析?需求分析阶段的基本任务是什么?答:需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约的过程。需求分析的基本任务是要准确地定义新系统的目标,为了满足用户需求,回答系统必须“做什么”的问题。本阶段要进行以下几个方面的工作:(1)问题识别。(2)分析与综合,导出软件的逻辑模型。(3)编写文档。2需求分析的原则是什么?答:需求分析的原则如下:(1)必须能够表达和理解问题的数据域和功能域。数据域包括数据流、数据内容和数据结构,而功能域反映上述三方面的控制信息。(2)可以把一个复杂问题按功能进行分解并可逐层细化。通常软件要处理的问题如果太大太复杂就很难理解,若划分成几部分,并确定各部分间的接口,就可完成整体功能。在需求分析过程中,软件领域中的数据、功能和行为都可以划分。(3)建模。模型可以帮助分析人员更好地理解软件系统的信息、功能和行为,这些模型也是软件设计的基础。3什么是数据字典?其作用是什么?答:数据字典是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关因素的一致的定义和详细的描述。数据字典和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。数据字典是为了分析人员查找数据流图中有关名字的详细定义而服务的,因此也像普通字典一样,要把所有条目按一定的次序排列起来,以便查阅。数据字典有以下四类条目:数据流、数据项、数据存储、基本加工。4需求说明书的作用及内容。答:需求说明书是需求分析阶段最重要的技术文档之一。它提供了用户与开发人员对开发软件的共同理解,其作用相当于用户与开发单位之间的技术合同,是今后各阶段设计工作的基础,也是本阶段评审和测试阶段确认与验收的依据。需求说明书的主要内容如下:(1)前言:说明项目的目的、范围,所用的术语的定义;用到的缩略语和缩写词;参考资料。(2)项目概述:产品的描述;产品的功能;用户的特点;一般的约束等。(3)具体需求:说明每个功能的输入、处理和输出;外部接口需求,包括用户接口、软件接口、硬件接口和通信接口;性能需求;设计约束;其他需求,包括数据库、操作等。5简述结构化设计方法(SA)的优缺点。答:结构化设计方法的优点:结构化设计方法是软件需求分析中公认的、有成效的、技术成熟、使用广泛的一种方法,它较适合于开发数据处理类型软件的需求分析。该方法利用图形等半形式化工具表达需求,简明、易读,也易于使用,为后一阶段的设计、测试、评价提供了有利条件。结构化设计方法的缺点:(1)传统的SA方法用于数据处理方面的问题,主要工具DFD体现了系统“做什么”的功能,但它仅是一个静态模型,没有反映处理的顺序,即控制流程。因此,不适合描述实时控制系统。(2)20世纪60年代末出现的数据库技术,使许多大型数据处理系统中的数据都组织成数据库的形式,SA方法使用DFD在分析与描述“数据要求”方面是有局限的,DFD应与数据库技术中的实体联系图结合起来。ER图能增加对数据存储的细节以及数据与数据之间、数据与处理过程之间关系的理解,还解决了在DD中所包含的数据内容表示问题,这样才能较完整地描述用户对系统的需求。(3)对于一些频繁的人机交互的软件系统,如飞机订票、银行管理、文献检查等系统,用户最关心的是如何使用它,输入命令、操作方式、系统响应方式、输入格式等等,都是用户需求的重要方面,DFD不适合描述人机界面系统的需求。SA方法往往对这一部分用自然语言作补充。(4)描述软件需求的精确性有待提高。6某银行计算机储蓄系统的功能是:将储户填写的存款单或取款单输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并打印出存款单给储户;如果是取款,系统计算清单给储户。请用DFD和IDEF0描绘该功能的需求。该题功能比较简单,首先找出该系统的外部环境,从而获得系统的输入输出。与该系统打交道的外部实体只有储户,输入有存取款原始单。该系统经过处理后,输出给储户正式的存款单或结算清单。这样,该系统的顶层DFD就确定了。其次,考虑该系统内部功能。系统要检验用户填写单据的合法性及区分存款还是取款,然后分别进行存款处理和取款处理。存款处理要登记储户的存款信息,需要建立数据存储文件;而取款处理要读取数据存储文件及查阅储户的信息,取款后要修改储户信息。另外还要通过银行自己的利率计算存款利率。根据以上分析画出该系统的数据流图(未分层)如下图:7某考务中心准备开发一个成人自学考试考务管理系统(简称EMS),经过调研,该系统有如下功能:(1)对考生填写的报名单进行审查,对合格的新生,编好准考证发给考生,汇总后的报名单送给阅卷站;(2)给合格的考生制做考生通知单,将考试科目、时间、地点安排告诉考生;(3)对阅卷站送来的成绩进行登记,按当年标准审查单科合格者,并发成绩单,对所考专业各科成绩全部合格者发给大专毕业证书。(4)对成绩进行分类(按地区、年龄、职业、专业、科目等分类)产生相应统计表;(5)查阅:考生可按准考证号随时查询自己的各科成绩。请按结构化分析方法进行分析。顶层图:数据流条目:报名单姓名性别年龄学历身份证号码地区职业待考专业 成绩单姓名专业科目考试时间成绩41 考生通知单姓名专业科目考试时间考试地点? 准考证编号姓名性别年龄身份证号 总报名单报名单各专业人数总人数数据项条目: 成绩:别名:平均成绩 类型:实型 长度:6位,小数点后一位准考证编号:别名:无 类型:字符串 长度:10 取值范围及含义:前四位表示专业,后六位表示本专业内编号加工条目: 加工名称:EMS 编号:无 输入/出:略 加工逻辑:对全市的成人自学考试进行管理,主要功能有:报名、考试、成绩管理等。0层图: 其他条目略。 数据存储条目: 文件名:考生记录 组成:准考证编号姓名性别年龄地区职业科目成绩1 15 组织方式:索目文件,以准考证编号为主关键字第四章 软件设计本章要点:1软件设计概述2软件体系结构3优秀设计的概念4传统的结构化设计5用户界面设计6构件级设计本章目标:1了解软件设计的相关概念2掌握体系结构的风格及意义3了解优秀软件设计的概念4掌握传统的结构化设计5明确用户界面设计及构件级设计本章重点:1软件设计的相关概念2传统的结构化设计3用户界面设计 本章难点:1传统的结构化设计2用户界面设计一、填空题1.随着软件系统越来越大、越来越复杂,软件设计的核心已经转移到新的计算模式,非传统的( “程序算法数据结构”、 ),新的模式就是( 系统总体结构的设计和规范 )。2.具有明确功能并可以分离出来的软件或硬件叫做( 构件 )。3仓库风格是基于一个( 共享数据库 )的系统模型。4Wasserman(1995)提出了5种创建设计的方法:( 模块化分解、面向数据的分解、面向事件的分解、由外往内的设计、面向对象的设计 )。5UI设计必须考虑软件使用者的体力和脑力,( 人的能力 )是界面设计原则的基础。6Shneiderman把不同形式的交互分为5种类型:( 直接操纵、菜单选择、表格填写、命令语言、自然语言)。7MVC模型指的是(模型视图控制器 )模型。二、选择题1.软件设计一般分为总体设计和详细设计,它们之间的关系是(A )A.全局和局部B.抽象和具体C.总体和层次D.功能和结构2.属于软件设计的基本原理是( D)A.数据流分析设计B.变换流分析设计C.事务流分析设计D.模块化3.内容耦合指( D )A.两个模块之间传递的是数据结构B.一个模块调用另一个模块时,传递的是控制变量C.通过一个公共数据环境相互作用的哪些模块间的耦合D.一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部4.程序内部的各个部分之间存在的联系,用结构图表达时,最关心的是模块的内聚性和( C )A.独立性B.有效性C.耦合性D.安全性5.结构化设计是一种面向( A )的设计方法A.数据流B.数据结构C.数据库D.程序6.指出PDL是下列( B)语言A.高级程序设计语言B.伪码C.中级程序设计语言D.低级程序设计语言7.详细设计的任务是确定每个模块的(B )A.外部特性B.内部特性C.算法和使用的数据D.功能和输入输出数据三、问答题1.什么是软件概要设计?软件概要设计的基本任务是什么?答:在软件需求分析阶段,已经搞清楚了软件“做什么”的问题,并通过需求说明书将这些需求描述了出来,这也是目标系统的逻辑模型。进入了设计阶段,要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型。即着手实现软件的需求,并将设计的结果反映在“设计说明书”文档中,所以软件设计是一个把软件需求转换为软件表示的过程,最初这种表示只是描述了软件的总的体系结构,称为软件概要设计或结构设计。概要设计的基本任务有:(1)设计软件系统结构(简称软件结构)(2)数据结构及数据库设计(3)编写概要设计文档(4)评审2.请描述一下软件体系结构的几种模型。答:(1)结构模型:是构件、连接件(定义构件之间交互规则、消息协议的构造模块)有组织的集合。反映系统的重要语义内容,包括系统的配置、约束等。(2)框架模型:与结构模型类似,不侧重细节,侧重于系统的整体结构(模式)。(3)动态模型:补充模型,强调系统的行为性质。(4)过程模型:注重系统必须适应业务和技术的过程。(5)功能模型:一组功能构件按层次组成,下层向上层提供服务,是一种特殊的框架模型。3.用户界面设计的原则有哪些?答:以下设计原则适用于所有的用户设计:(1)用户熟悉:界面所使用的术语和概念是来自于用户的经验,这些用户是将要使用系统最多的人。(2)一致性:界面应该是一致的,命令、菜单格式相同,参数以相同方式传递,减少用户学习时间。(3)意外最小化:永远不要让用户对系统的行为感到吃惊,类似的操作应该有类似的效果。(4)可恢复性:界面应该有一种机制来允许用户从错误中恢复。(5)用户指南:在错误发生时界面应该提供有意义的反馈,并具有用户帮助功能。(6)用户差异性:界面应该为不同类型用户提供合适的交互功能。4.MVC模型的思想是什么?使用它有什么好处?答:把用户界面中的表示、交互和实体相分离是该模型的基础。MVC是一种用来使用户界面层和系统的其他部分分离的体系结构模式。MVC不仅有助于增强用户界面层的层内聚,而且有助于降低用户界面与系统其余部分以及UI本身各部分之间的耦合。MVC模式使系统的功能层(模型)同用户界面的两个方面分离:试图(view)和控制器(controller)。用户能够用适当的交互方式与每种表示形式进行交互。要显示的数据被封装到一个模型对象中。每个视图都是模型的一种显示表示方式。每个模型对象可能有许多独立的视图对象与之关联,例如表示数字数据的模型可能有一个直方图的或一个表格的视图。每个视图都有一个的处理用户输入和设备交互的控制器对象。使用MVC模式的好处:(1)三个构件可独立设计(2)提高内聚,降低耦合:构件之间通信信道最小且易查找。(3)增加重用:视图和控制器通常会使用大量的可重用构件作为各种UI控件。(4)灵活设计:很易通过改变视图或控制器来改变UI。(5)可测试性设计:可脱离UI层测试应用程序。5.详细设计的基本任务有哪些。6什么是耦合性和内聚性?都包括哪些内容?答:(1)耦合性是软件结构中各构件间相互联系紧密程度的一种度量。包括:无直接耦合、数据耦合、标记耦合、控制耦合、公共耦合、内容耦合。(2)内聚性是一个构件内部各种元素彼此结合的紧密程度的度量。包括:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚。7有效模块化设计的启发式原则有哪些?答:(1)评估软件结构的初始模型以降低耦合并提高内聚。(2)高层高扇出使最小化;当深度增加时(特别是底层)争取提高扇入。(3)将模块的作用范围限制在模块的控制范围内。作用范围:受模块内一个判定影响的所有模块的集合。控制范围:模块本身及其所有下属模块的集合。(4)评估模块接口以降低复杂度和冗余并提高一致性。(5)定义功能可以预测的模块,(如对于相同的输入,输出是恒定的),但要避免过分限制模块(如数据结构的大小、控制流的选择、外部接口的模式等限制)。第五章 软件测试本章要点:1软件测试的概念2软件测试技术3软件测试策略4测试管理5软件调试6软件的可靠性和可用性本章目标:1掌握软件测试的相关概念2掌握基本的软件测试技术3了解软件测试的策略4了解软件的可靠性与可用性本章重点:1软件测试技术(黑盒技术,白盒技术)2软件测试的策略本章难点:1软件测试技术(黑盒技术,白盒技术)2软件测试的策略3理解软件的可靠性与可用性一、填空题1软件调试方法一般分为( 动态测试方法 )与( 静态测试方法 )。动态测试方法中又根据测试用例的设计方法不同,分为( 黑盒测试 )与( BAI盒测试 )两类。2调试的目的是( 确定错误的原因和位置 ),并(改正错误 ),因此调试也称为( 纠错 )。3桩模块用来代替被测模块( 所调用的模块 )。它的作用是( 返回被测模块所需的信息 )。4用等价类划分的方法设计测试用例的步骤为:( 划分等价类、确定测试用例 )。5二分法检索将检索空间划分成了三个部分,每个部分构成了一个( 等价类 ),选择这些等价类集合的( 边界值 )作为测试用例。二、选择题1.黑盒测试是从(C )观点出发的测试,白盒测试是从( )观点出发的测试。A.开发人员、管理人员B.用户、管理人员C.用户、开发人员D.开发人员、用户2.软件测试的目的是(D )A.证明软件的正确性B.找出软件系统中存在的所有错误C.证明软件系统中存在错误D.尽可能多的发现软件系统中的错误3.程序的3中基本结构是( B )A.过程、子程序、分程序B.顺序、条件、循环C.递归、堆栈、队列D.调用、返回、转移4.软件测试是软件开发过程中重要和不可缺少的阶段,其包括的内容和步骤甚多,而测试过程的多种环节中基础的是( B )A.集成测试B.单元测试C.系统测试D.验收测试5.软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试(B )A.结构合理性B.软件外部功能C.程序正确性D.程序内部逻辑6.白盒测试方法重视(A )的度量A.测试覆盖率B.测试数据多少C.测试费用D.测试周期7.评审是对软件进行精彩测试的一种方法,下述结论中,( B )是与软件评审无关的内容。A.尽量发现错误B.检查软件文档C.根据评审标准D.依靠测试信息三、问答题1.软件测试的原则有哪些?答:(1)测试用例不但应有输入数据,还应有预期的输出数据。这样便于对照检查,做到“有的放矢”。(2)测试用例不仅选用合理的输入数据,还要选择不合理的输入数据。这样能更多的发现错误,提高程序的可靠性。对于不合理的输入数据,要将反馈信息提供给用户。(3)除了检查程序是否做了它应该做的事,还可检查程序是否做了它不应该做的事。例如程序正确地打印出用户所需信息的同时还是否打印出用户并不需要的多余信息。(4)应指定测试计划并严格执行,排除随意性。(5)长期保留测试用例,为以后进行的回归测试和维护提供方便。(6)对发现错误较多的程序段,应进行更深入的测试。因为在修改错误过程中容易引入新的错误。(7)为了达到最有效的测试效果,程序员避免测试自己的程序。2什么是黑盒测试法?什么是白盒测试法?答:黑盒测试是把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程。只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能需求。因此,黑盒测试又称为功能测试或数据驱动测试。通过黑盒测试主要发现以下错误:(1)是否有不正确或遗漏了的功能。(2)在接口上,能否正确地接受输入数据,能否产生正确的输出信息。(3)访问外部信息是否有错。(4)性能上是否满足要求等等。白盒测试是把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。3简述软件测试的步骤。答:软件测试一般分为四个步骤: (1)单元测试(也称模块测试):针对软件设计的基本单元程序模块,进行正确 性检验的测试工作。目的在于发现各个模块内部可能存在的各种差错。单元测试需要从程序内部结构出发设计测试用例,多个模块可以平行、独立地进行测试; (2)集成测试(也称组装测试,联合测试):在单元测试的基础上,将所有模块按设计要求集成在一起进行测试,以检验总体设计中各模块间的接口设计问题、模块之间的相互影响、上层模块存在的各种差错及全局数据结构对系统的影响等方面。 (3)确认测试(也称验收测试,有效性测试):主要检验软件的功能和性能是否与需求说明书中的规定一致。 (4)系统测试:将软件系统作为一个元素,放入整个实际的计算机系统中,与计算机硬件、其他软件、使用人员等系统元素结合在一起,在实际使用环境下进行综合全面的测试。4集成测试有哪些具体的方法?它们的区别是什么?答:集成测试的方法主要有非渐增式测试和渐增式测试。(1)非渐增式测试:该测试是首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起进行的测试。(2)渐增式测试:该测试是逐个把未经过测试的模块组装到已经测试过的模块上去,进行集成测试。每加入一个新模块进行一次集成的测试,重复此过程直至程序组装完毕。非渐增式测试和渐增式测试的区别有如下几点:(1)非渐增式方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而渐增式测试把单元测试与集成测试合在一起,同时完成。(2)非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。(3)渐增式可以较早地发现接口之间的错误,非渐增式最后组装时才发现。(4)渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口出错。(5)渐增式比较彻底,已测试的模块和新的模块组装在一起再测试。(6)渐增式占用的时间较多,但非渐增式需更多的驱动模块、桩模块,也占用一些时间。(7)非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。5什么是软件的可靠性和可用性,二者有什么区别和联系。答:可靠性:系统在给定的时间间隔内,根据需求说明成功地运行的概率。也可以说可靠性是系统依照需求指定的功能不失败运作的可能性。可用性:系统在给定的时间点上根据需求说明成功地运行的概率。也可以说可用性是当有请求时(即在一定时刻)系统能执行有用服务的可能性。可靠性与长期的行为有关,而可用性描述时间中某一给定点上的事情。对于硬件,有的东西可能是高可靠的,但在时间的某一特定点上可能是不可用的。同样的概念也适用于软件系统。可靠性、可用性是相互依赖的系统特性。都反映了用户对系统的信任程度。如果系统是不可靠的,就很难保证系统的安全性、保密性等许多特性。如果系统不可用,用户将无法接受。第六章 软件维护本章要点:1软件维护的概念2软件维护的活动3软件的可维护性4软件再工程本章目标:1了解软件维护的相关概念2掌握维护活动的基本过程3明确软件的可维护性4了解软件再工程本章重点:1软件维护的相关概念2维护活动的基本内容3软件的可维护性本章难点:1维护活动的基本内容2软件的可维护性一、填空题1软件维护分为( 改正性维护、适应性维护、增强性维护 )。2带来高维护费用的关键因素有:( 人员的不稳定、合同责任、维护人员技术水平、系统结构衰退 )。3( 软件再工程 )是视图增加当前系统的总体质量、提高可维护性的工程。4软件维护费用增加的主要原因是维护的( 生产率)非常低。5软件的( 可维护性、可使用性、可靠性 )是衡量软件质量的几个主要特性。二、选择题1.在软件生存周期中,工作量所占比例最大的阶段是( D )阶段A.需求分析B.设计C.测试D.维护2.软件工程对维护工作的主要目标是提高(A ),降低维护的代价。A.软件的生产率B.软件的可靠性C.软件的可维护性D.维护的效率3.产生软件维护的副作用,是指(C )A.开发时的错误B.隐含的错误C.因修改软件而造成的错误D.运行的误操作4.软件维护工作的最主要部分是( C)A.校正性维护B.适应性维护C.完善性维护D.预防性维护5.尽管有不合法的输入,软件仍能继续正常工作的能力是指(C )A.兼容性B.可靠性C.容错性D.稳定性6.下面有关软件维护的叙述( A )是正确的A.设计软件时就应考虑到将来的可修改性B.维护软件是一件很吸引人的创造性工作C.维护软件就是改正软件中的错误D.谁编写软件就应由谁来维护这个软件7.以下不属于软件维护的困难表现的是(C )A.读懂别人的程序是困难的B.文档的不一致性C.源程序及相关文档的错误或丢失D.软件开发和软件维护在人员和时间上的差异E.软件维护不是一项吸引人的工作三、问答题1.软件维护的内容有哪些?答:软件维护内容有四种:校正性维护,适应性维护,完善性维护和预防性维护。 (1)校正性维护 在软件交付使用后,由于在软件开发过程中产生的错误并没有完全彻底的在测试 中发现,因此必然有一部分隐含的错误被带到维护阶段来。这些隐含的错误在某些特定的使用环境下会暴露出来。为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。校正性维护占整个维护工作的20%左右。(2)适应性维护 随着计算机的飞速发展,计算机硬件和软件环境也在不断发生变化,数据环境也 在不断发生变化。为了使应用软件适应这种而修改软件的过程称为适应性维护。这种维护活动占整个维护活动的25%。(3)完善性维护 在软件漫长的运行时期中,用户往往会对软件提出新的功能要求与性能要求。这 是因为用户的业务会发生变化,组织机构也会发生变化。为了适应这些变化,应用软件原来的功能和性能需要扩充和增强,为达到这个目的而进行的维护活动称为完善性维护,占整个维护活动的50%。(4)预防性维护 为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。这是为 以后进一步的运行和维护打好基础,占整个维护工作的4%。2.软件的可维护性指什么?与可维护性相关的质量属性是什么?如何提高软件的可维护性?答:软件可维护性的定义:软件能够被理解、校正、适应及增强功能的容易程度。软件的可维护性、可使用性、可靠性是衡量软件质量的几个主要特性,也是用户十分关心的几个问题。软件的可维护性是软件开发阶段的关键目标。影响软件可维护性的因素较多,设计、编码及测试中的疏忽和低劣的软件配置,缺少文档等都对软件的可维护性产生不良影响。软件可维护性可用下面七个质量特性来衡量,即可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。对于不同类型的维护,这七种特性的侧重点也是不相同。 从下面五个方面来阐述如何提高软件的可维护性: (1)建立明确的软件质量目标 如果要程序满足可维护性七个特性的全部要求,那么要付出很大的代价,甚至 是不现实的,但有些可维护性是相互促进的,因此要明确软件所追求的质量目标。(2)使用先进的软件开发技术和工具 利用先进的软件开发技术能大大提高软件质量和减少软件费用。面向对象的软件 开发方法就是一个非常实用而强有力的软件开发方法,用面向对象方法开发出来的软件系统,稳定性好,比较容易修改,比较容易理解,易于测试和调试,因此,可维护性好。(3)建立明确的质量保证 质量保证是指为提高软件质量所做的各种检查工作。质量保证检查是非常有效的 方法,不仅在软件开发的各阶段中得到了广泛应用,而且在软件维护中也是一个非常主要的工具。为了保证可维护性,以下四类检查是非常有用的: 1.在检查点进行检查。 2.验收检查。 3.周期性的维护检查。 4.对软件包的检查。(4)选择可维护的语言 程序设计语言的选择对维护影响很大。低级语言很难掌握,很难理解,因而很难 维护。一般来说,高级语言比低级语言更容易理解,第四代语言更容易理解,容易编程,程序容易修改,改进了可维护性。(5)改进程序的文档 程序文档是对程序功能、程序各组成部分之间的关系、程序设计策略、程序实现过程的历史数据等的说明和补充。程序文档对提高程序的可阅读性有重要作用。为了维护程序,人们必须阅读和理解程序文档。3.简述软件维护的流程。答:软件维护的流程如下: (1)制定维护申请报告。 (2)审查申请报告并批准。 (3)进行维护并做详细记录。 (4)复审。 1.制定维护申请报告 所有软件维护申请报告应按照规定的方式提出。该报告也称为软件问题报告。它 是维护阶段的一种文档,由申请维护的用户填写。维护申请报告是一种由用户产生的文档,在软件维护组织内部还要制定一份软件修改报告,该报告是维护阶段的另一种文档。提出维护申请报告之后,由维护机构来评审维护请求。评审工作很重要,通过评审回答要不要维护,从而可以避免盲目的维护。2.维护过程 一个维护申请提出之后,经评审需要维护则按下列过程实施维护: (1)首先确定要进行维护的类型。 (2)对校正性维护从评价错误的严重性开始。 (3)对适应性维护和完善性维护。 (4)实施维护任务。不管维护类型如何,大体上要开展相同的技术工作。这些工作 包括修改软
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 炉渣综合利用项目环境影响报告表
- 2025年济南烟草招聘真题及答案
- 中国电力科学研究院:车网互动技术发展现状与展望
- 2025年物理中考压轴真题及答案
- 火星基地知识试题及答案
- 2025年河南幼师招教题库及答案
- 子痫前期应急预案演练(3篇)
- 2025年文秘技能大赛题库及答案
- 辑推理能力测试题及答案
- 咨询服务定价策略-洞察与解读
- DZB200B富凌系列变频器说明书
- 无人机试飞基地建设项目可行性研究报告
- 10以内连加口算练习题4000题每页80题297
- 水产养殖规划方案(3篇)
- 呼吸的生理与病理教案
- 英语学习大学英语六级词汇表下载
- 特殊口腔护理课件
- 当代中国经济教学大纲
- 《纺织行业基础知识》课件
- 自制胸针出售合同协议
- 体育设备采购项目方案投标文件(技术方案)
评论
0/150
提交评论