软件工程导论习题.doc_第1页
软件工程导论习题.doc_第2页
软件工程导论习题.doc_第3页
软件工程导论习题.doc_第4页
软件工程导论习题.doc_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

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

文档简介

第一章名词解释:1、软件工程 软件工程是1:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;2:研究1中提到的途径。2、软件过程 是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。3、软件危机 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。(正常、不正常运行软件都具有这种问题) 4、 软件生命周期 指软件从提出到最终被淘汰的这个存在期。填空:1、软件过程中的一个任务集合包括一组软件工程任务、( 里程碑 )和应该交付的产品(软件配置成分)。通常使用软件生命周期模型简洁地描述软件过程。请举出几种典型的软件过程模型如微软过程、(瀑布模型)、( 快速原型模型 )等。2、软件工程方法学的三个要素:(方法)、(工具)、( 过程)3、软件工程方法学包含(技术)、( 管理)两方面内容,是(技术)与(管理)紧密结合所形成的学科。简述题:1、 软件工程包括哪7条基本原理?1. 用分阶段的生命周期计划严格管理;2. 坚持进行阶段评审;3. 实行严格的产品控制;4. 采用现代程序设计技术;5. 结果能清楚地审查;6. 开发小组的人员应该少而精;7. 承认不断改进软件工程实践的必要性。2、 简要说明软件生命周期包括哪三个时期?各个时期包括哪些阶段活动?概括说明传统瀑布模型软件开发有哪些特点?软件生命周期:指软件从提出到最终被淘汰的这个存在期。软件生命周期由软件定义、软件开发和运行维护三个时期组成,每个时期又划分若干个阶段。 软件生命周期组成: 1)软件定义时期的主要任务为: A.问题定义 B.可行性研究 C.需求分析 2)软件开发时期的主要任务为: D.总体设计 E.详细设计 F.编码和单元测试 G.综合测试 3)运行维护时期的主要任务为: H. 使软件持久地满足用户的需要传统瀑布型模型开发软件的三大特点:1)、 阶段间具有顺序性和依赖性2)、 推迟实现的观点3)、质量保证的观点3、软件生命周期的8个阶段分别是什么?1)、问题定义2)、可行性研究3)、需求分析4)、总体设计5)、详细设计6)、编码和单元测试7)、综合测试8)、软件维护4、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。(正常、不正常运行软件都具有这种问题)软件危机的典型表现:1)对软件开发成本和进度的估计常常很不准确;2)用户对完成的软件系统不满意的现象经常发生;3)软件产品的质量往往靠不住; 4)软件常常是不可维护的;5)软件通常没有适当的文档资料;6)软件成本在计算机系统总成本中所占的比例逐年上升;7)软件开发生产率提高的速度跟不上计算机应用的发展趋势。 产生软件危机的原因1)软件本身特点造成;程序规模庞大;程序复杂性随着程序规模的增加而呈指数上升。2)软件开发与维护的方法不正确。主要表现: (a)忽视软件需求分析; (b)认为软件开发就是写程序并使之运行; (c)轻视软件维护;5、 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机? 软件工程是指导计算机软件开发和维护的一门工程学科。软件工程的本质特性: 1. 软件工程关注于大型程序的构造; 2. 软件工程的中心课题是控制复杂性; 3. 软件经常变化; 4. 开发软件的效率非常重要; 5. 和谐地合作是软件开发的关键; 6. 软件必须有效地支持它的用户; 7. 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。解决软件危机的途径:1、组织管理:软件开发不是某种个体劳动的神秘技巧,软件开发应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。2、方法:应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早期发展阶段形成的一些错误概念和做法。3、工具:应该开发和使用更好的软件工具。在软件开发的每个阶段都有许多繁琐重复的工作需要做,在适当的软件工具辅助下,开发人员可以把这类工作做得既快又好。6、 简述结构化泛型和面向对象范型的要点,并分析它们的优缺点。目前使用得最广泛的软件工程方法学(2种): 1. 传统方法学:也称为生命周期方法学或结构化范型。 优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。 2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。 7、 什么是软件过程?它与软件工程方法学有何联系?软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型 8、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。瀑布模型:优点:1.可强迫开发员采用规范的方法2.严格地规定了每个阶段必须提交的文件3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 缺点:传统的瀑布模型过于理想化,是由文档驱动的。 快速原型模型:通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见的方法,获取用户真正的需要。 增量模型:优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用户有较充实的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。 螺旋模型:优点:对可选方案和约束条件的强调有利于已有软件的重用;减少了过多测试;维护只是螺旋模型中另一个周期。第二章填空题1.估算软件成本的方法主要有( 代码行技术 )和( 任务分解技术)等等。2.可行性研究阶段的任务中一般来说应该从( 技术)可行性、( 经济 )可行性和( 操作 )可行性等3个方面研究每种实现方案的可行性。3.系统流程图中的标示符号 代表( 输入输出)含义。名词解释1. 数据流图 数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。2. 数据字典 数据字典:对数据流图中包含的所有元素的定义的集合;3. 系统流程图 系统流程图是概括地描绘物理系统的传统工具,它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等),表达信息在各个部件之间流动的情况。 简答题1. 简述可行性研究的过程步骤有哪些? 1)、复查系统规模和目标 2)、研究目前正在使用的系统 3)、导出新系统的高层逻辑模型 4)、进一步定义问题 5)、导出和评价供选择的解法 6)、推荐行动方针 7)、草拟开发计划 8)、书写文档提交审查2.在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性? 可行性研究的目的是:用最小的代价在尽可能短的时间内确定问题是否能够解决,以及是否值得去解决。 技术上的可行性 使用现有的技术能实现这个系统吗? l 经济上的可行性 这个系统的经济效益能超过它的开发成本吗? (投资与效益) l 操作可行性 系统的操作方式在这个用户组织内行得通吗? l 社会、政策允许的可行性第三、四章练习题填空题:1、需求分析过程应该建立3种模型,它们分别是(数据模型 )、(功能模型)和(行为模型)。2、按照形式化的程度,可以把软件工程使用的方法划分成( 非形式化 )、( 半形式化 )和( 形式化 )等3类。3、验证软件需求应该从以下4个方面进行验证,即( 一致性 )、( 完整性 )、( 现实性 )和( 有效性 )。4、需求分析的任务包括系统综合要求、数据要求、导出逻辑模型和修正系统开发计划等。其中常见的接口需求有:用户接口需求、( 硬件接口需求 )、( 软件接口需求 )和通信接口需求等等。4、需求分析的任务包括( 系统综合要求 )、( 数据要求 )、( 导出逻辑模型 )和修正系统开发计划等。5、需求分析的任务包括系统综合要求、数据要求、导出逻辑模型和修正系统开发计划等。其中设计约束或实现约束常见的有:( 精度 )、工具和语言约束、( 设计约束 )、应该使用的标准和应该使用的( 硬件平台 )等。判断题:1、形式化方法有许多优点,因此在实际软件工作中应该依赖形式化方法来保证开发出的软件绝对正确和降低由于设计缺陷产生的维护代价。( 错 )2、可以用形式化方法证明软件的需求和设计的正确性和合理性,因此,如果为了降低软件的测试成本和改正错误代价等,可以不用对软件进行测试,也可以保证软件的质量和降低开发成本等软件工程的目标。( 错 )名词解释:实体-联系图(ER图) 实体-联系图(Entity-Relation Diagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,形成一个独立于机器,独立于DBMS的ER图模型。 通常将它简称为ER图,相应地可把用ER图描绘的数据模型称为ER模型。ER图提供了表示实体(即数据对象)、属性和联系的方法,用来描述现实世界的概念模型。 状态转换图 状态转换图(简称为状态图)通过描述系统的状态及引起系统状态转换的事件,来表示系统的行为。IPO图 IPO图是输入、处理、输出图的简称,它是由美国IBM公司发展完善起来的一种图形工具,能够方便地描绘输入数据的处理和输出数据之间的关系。Petri网 Petri网是对离散并行系统的数学表示。Petri网是1960年代由卡尔A佩特里发明的,适合于描述异步的、并发的计算机系统模型。 Petri网既有严格的数学表述方式,也有直观的图形表达方式,既有丰富的系统描述手段和系统行为分析技术,又为计算机科学提供坚实的概念基础。 简答题:1、简述需求分析的原则。 需求分析的准则:1、必须并描述的信息域,根据这条准则应该建立数据模型。2、必须定义软件应完成的功能,这条准则要求建立功能模型。3、必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。4、必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。 2、 简述形式化方法的准则。(1)选择合适的形式化方法;(2)应该形式化,但不要过分形式化;(3)应该估算成本;(4)应该有形式化方法顾问随时提供咨询;(5)不应该放弃传统的开发方法;(6)应该建立详尽的文档;(7)不应该放弃质量标准;(8)不应该盲目依赖形式化方法;(9)应该测试、测试再测试;(10)应该重用;3、 为什么要进行需求分析?通常对软件系统有哪些需求?需求分析是软件分析时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。需求分析的任务是对目标系统提出完整、准确、清晰、具体的要求。4、 怎样与用户有效的沟通以获取用户的真实需求? 1)、 访谈 正式访谈:系统分析员提出事先准备好的问题。 非正式访谈:提出一些用户可以自由回答的开放性问题,鼓励被访者说出 自己的想法。 需要访问大量人员时,利用调查表访问较佳。2) 、面向数据流自顶向下求精 借助数据流图、数据字典、IPO图等,细化、完善详细的数据流图,等到各处理环节对应的功能。3) 、简易的应用规格说明技术 面向团队的需求收集法: (用户与开发者配合)l 初步访谈;l 开发者和用户分别写出“产品需求”;l 开会讨论,各自展示需求列表;l 得出一致意见,为需求列表制定小型规格说明;l 根据会议成果,起草完整的软件需求规格说明。4)、快速建立软件原型 快速建立能演示目标系统主要功能的程序。(1)第四代技术 包括:数据库查询和报表语言、程序和应用系统生成器以及其他非常高级的非过程语言,其可以快速生成可执行代码(2)可重用的软件构件使用一组已有的软件构件来装配原型 (3)形式化规格说明和原型环境 5、 举例对比形式化方法和欠形式化方法的优缺点。形式化方法的优点(1)数学是理想的建模工具,适合于表示系统状态和描述系统需求;(2)用数学表达的需求可在不同开发阶段平滑过渡。(3)数学提供了高层确认的手段非形式化方法的缺点 自然语言书写的系统规格说明书可能存在: 1)矛盾; 2)二义性; 如:“操作员标识由操作员姓名和密码组成,密码由6位数字构成,当操作员登陆系统时它被存储在注册文件中。” 3)含糊性; 4)不完整性; 5)抽象层次混乱。6、 在什么情况下应该使用形式化说明技术?使用形式化说明技术时应该遵守哪些准则?应用形式化方法的准则(1)选择合适的形式化方法;(2)应该形式化,但不要过分形式化;(3)应该估算成本;(4)应该有形式化方法顾问随时提供咨询;(5)不应该放弃传统的开发方法;(6)应该建立详尽的文档;(7)不应该放弃质量标准;(8)不应该盲目依赖形式化方法;(9)应该测试、测试再测试;(10)应该重用;第五章填空题1、总体设计过程通常由 系统设计阶段 和 结构设计阶段 两个主要阶段组成。2、软件结构图中,模块框之间若有直线连接,表示它们之间存在_调用 关系。3、软件设计一般包括( 总体设计 )和详细设计阶段等两个阶段,在软件设计过程中应该遵循的基本原理和相关概念有( 模块化 )、( 抽象 )、( 逐步求精 )、( 信息隐藏和局部化 )和( 模块独立 )。4、结构设计是一种应用最广泛的系统设计方法,是以( 层次图 )图为基础、自顶向下、逐步求精和模块化的过程。5、面向数据流的软件设计方法,一般是把数据流图中数据流划分为( 变换流 )和( 事务流 ),再将数据流图映射为软件结构。名词解释:1、 HIPO图HIPO图是美国IBM公司发明的“层次图加输入处理输出图”的英文缩写。为了能使HIPO图具有可追踪性,在H图(层次图)里除了最顶层的方框之外,每个方框都加了编号。2、 模块独立模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。3、耦合耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数量。4、 内聚内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展,简单的说,理想内聚的模块只做一件事情。5、 抽象在现实世界中一定事物、状态或过程之间总存在着某些相似的方面(共性)。把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象。6、 模块模块是由边界元素限定的相邻的程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符来代表它。7、 模块化模块化就是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集中起来组成一个整体,可以完成指定的功能,满足问题的要求。8、 变换流信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理后再沿输出通路变换成外部形式离开软件系统。当数据流图具有这些特性时,这种信息流就叫做变换流。9、 事务流当数据流图的数据流是“以事务为中心的”,也就是说,数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。这类数据流应该划为一类特殊的数据流,称为事务流。简答题:1、 为什么模块独立性很重要?1)、有效的模块化(即具有独立的模块)的软件比较容易开发出来。2)、独立的模块比较容易测试和维护。2、 总体设计的两个主要任务是什么?1)、通过这个阶段的工作将划分出组成系统的物理元素程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。2)、总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。 3、 总体设计过程包括哪2个阶段?说明典型的总体设计过程包括的9个步骤。总体设计过程通常由两个主要阶段组成:1)、系统设计:确定系统的具体实现方案。2)、结构设计:确定软件结构。9个步骤:1)、设想供选择的方案2)、选取合理的方案3)、推荐最佳方案4)、功能分解5)、设计软件结构6)、设计数据库7)、制定测试计划8)、书写文档9)、审查和复审 4、 简述软件结构设计的启发式原则。1) 改进软件结构提高模块独立性2) 模块规模应该适中3) 深度、宽度、扇入和扇出都应适当4) 模块的作用域应该在控制域之内5) 力争降低模块接口的复杂程度6) 设计单入口单出口的模块7) 模块功能应该可以预测5、 模块的内聚性包括哪些类型? 七种内聚:1).巧合(偶然)内聚2).逻辑内聚3).时间内聚4).过程内聚5).通信内聚6).信息内聚 顺序内聚7).功能内聚6、 模块的耦合性包括哪些类型? 耦合的七种类型1).非直接耦合2).数据耦合3).标记(特征)耦合4).控制耦合5).外部耦合6).公共耦合7).内容耦合7、 简述变换分析或事务分析的7个步骤?1)、复查基本系统模型。2)、复查并精化数据流图。3)、确定数据流图具有变换特性还是事务特性。4)、确定输入流和输出流边界,从而孤立出变换中心。5)、完成“第一级分解”。6)、完成“第二级分解”。7)、使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。第六章填空题:1、在设计人机界面的过程中,必须充分重视并认真处理好( 系统响应时间 )、( 用户帮助设施 )、( 出错信息处理 )和( 命令交互 )等四个问题。2、程序的三种基本控制结构是( 顺序 )、( 选择 )和( 循环 )。3、在详细设计阶段,采用的工具有( 程序流程图 )、( 盒图 )、( PAD图 )、( 判定表 )、( 判定树 )和( 过程设计语言 )。4、详细设计的目标包括( 确定应该怎样具体实现所要求的系统 )和( 设计出程序的“蓝图” )。5、Jackson图既可用表达程序结构,也可用表达( 数据结构 )。6、衡量系统响应时间的两个重要属性是( 长度 )和( 易变性 )。7、用户界面设计指南主要包括( 一般交互指南 )、( 信息显示指南 )和( 数据输入指南 )。8、当算法中包含多重嵌套的条件选择时,使用( 判定表 )能够清晰的表示复杂的条件组合与应作的动作的对应关系。名词解释:1、 结构化程序设计 结构程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。1)、在总体设计阶段采用自顶向下逐步求精的方法:把一个复杂问题的解法分解和细化成一个由许多模块组成的层次结构的软件系统。2)、详细设计或编码阶段采用自顶向下逐步求精的方法:可以把一个模块的功能逐步分解细化为一系列具体的处理步骤或某种高级语言的语句。简答题:1、 在设计用户帮助设施时,必须解决那5个主要问题?(1) 、在用户与系统交互期间,是否在任何时候都能获得关于系统全部功能的帮助信息。(2) 、用户怎样请求帮助?有3种选择:帮助菜单,特殊功能键和HELP命令。(3) 、怎样显示帮助信息?有3种选择:在独立的窗口中,指出参考某个文档(不理想)和在屏幕固定位置显示简短提示。(4) 、用户怎样返回到正常的交互方式中?有两种选择:屏幕上的返回按钮和功能键。(5) 、怎样组织帮助信息?有3种选择:平面结构(所有信息都通过关键字访问),信息的层次结构(用户可在该结构中查到更详细的信息)和超文本结构。2、 简述用户界面的评估周期?用户界面的评估周期如下所述:完成初步设计之后就创建第一级原型;用户试用并评估该原型,直接向设计者表述对界面的评价;设计者根据用户意见修改设计并实现下一级原型。上述评估过程持续进行下去,直到用户感到满意,不需要再修改界面设计时为止。3、简述Jackson方法的5个步骤?(1)、分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。(2)、找出输入数据结构和输出数据结构中有对应关系的数据单元。所谓有对应关系是指有 直接的因果关系,在程序中可以同时处理的数据单元(对于重复出现的数据单元必须重复的次序和次数都相同才可能有对应关系)。(3)、用下述三条规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图:1 为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框(注意,如果这对数据单元在输入数据结构和输出数据结构中所处的层次不同,则和它们对应的处理框在程序结构图中所处的层次与它们之中在数据结构图中层次低的那个对应);2 根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框;3 根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。 (4)、列出所有操作和条件(包括分支条件和循环结束条件),并且把它们分配到程序结构图的适当位置。(5)、用伪码表示程序。第七章一、填空题:1、大型软件的测试应该分阶段地进行,通常至少分为( 单元测试 )、( 集成测试 )和( 验收测试 )等3个基本阶段。2、软件测试的两类基本方法是白盒测试和黑盒测试,通常在测试过程的早期阶段主要使用( 白盒测试 ),而在后期阶段主要使用( 黑盒测试 )。3、大型软件系统的测试过程基本上由模块测试、( 子系统测试 )、系统测试、( 验收测试 )和平行运行等。4、一般说来,软件调试途径主要有以下3种即( 蛮干法 )、( 回溯法 )和( 原因排除法 )。二、名词解释:1、软件测试:为了发现程序中的错误而执行程序的过程。2、软件可靠性:是程序在给定的时间间隔内,按照规格说明书的规定成功运行的概率。3、软件可用性:是程序在给定的时间点,按照规格说明书的规定,成功地运行的概率。4、白盒测试如果知道软件内部工作过程,可以通过测试来检验软件内部动作是否按照规格说明书的规定正常进行,这种测试称为白盒测试。也称结构测试。5、 黑盒测试如果已经知道软件应该具有的功能,可以通过测试来检验是否每个功能都能正常使用,这种测试称黑盒测试。也称功能测试。6、 集成测试 集成测试是组装软件的系统化技术,它将经过单元测试的模块联系在一起进行测试。7、确认测试 也称为验收测试,目标是验证软件的有效性。如果软件的功能和性能符合用户的期待,软件就是有效的。软件规格说明书是进行确认测试的基础。 三、判断题:1、软件测试一般包括黑盒测试和白盒测试两种方法,测试是为了竭力证明已经建造好的软件系统的正确性和适用性。( F )2、在软件系统开发中,选择程序设计语言的主要实用标准是依据程序员的知识。( F )3、代码审查方法没有计算机测试方法好。 ( F )4、编码风格由个人喜好决定,没有固定格式。( F )5、如果测试过程没有发现任何错误,则说明软件没有错误。( F )6、软件测试是对软件规格说明、软件设计和编码的最全面也是最后的审查。( T )7、测试计划、测试用例、出错统计和有关的分析报告一般不用长期保存。 ( F )8、用穷举测试是较现实的测试方法。( F )9、程序中的注解越少越好。( F )10、不同程序设计语言在程序的效率上的差异不大。( F )11、编码的依据是详细设计说明书。( T )12、程序文档应该包括代码的功能、代码的完成者等内容。( T )13、判定覆盖必然满足语句覆盖。( T )14、编程中应采用统一的标准和约定,降低程序的复杂性。( )四、简答题:1、软件测试方法之黑盒测试力图发现哪些类型的软件错误? 着重测试软件功能。与白盒测试互补的测试方法,很可能发现白盒测试不易发现的其他类型的错误。 1)、功能不正确或遗漏了功能 2)、界面错误 3)、数据结构错误或外部数据库访问错误 4)、性能错误 5)、初始化和终止错误2、 什么叫测试方案?请简述软件测试的基本准则。 1)所有测试都应该能追溯到用户需求; 2)应该远在测试前就制定出测试计划; 3)把Pareto原理应用到软件测试中; 4)应该从“小规模”测试开始,并逐步进行“大规模”测试; 5)穷举测试是不可能的; 6)为了达到最佳测试效果,应该由独立的第三方从事测试工作。3、 简述软件测试的任务、目的与类型。 软件测试的目标 有关测试的一些规则: (1)测试是为了发现程序中的错误而执行程序的过程; (2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; (3)成功的测试是发现了至今为止尚未发现的错误的测试。 6、简述选择程序设计语言的实用标准?(1)系统用户要求(2)可以使用的编译程序(3)可以得到的软件工具(4)工程规模(5)程序员知识(6)软件可移植性要求(7)软件的应用领域 7、 简述软件测试的步骤?1 模块测试2 子系统测试3 系统测试4 验收测试5 平行测试第八章填空:1. 软件维护通常包括四类活动即( 改正 )、( 适应 )、( 完善 )和预防性维护。2. 决定软件可维护性的五个因素( 可理解性 )、( 可测试性 )、( 可修改性 )、( 可移植性 )和( 可重用性 )。3. 软件系统的文档可以分为( 用户文档 )和( 系统文档 )二、名词解释:1、软件维护:在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程2、改正性维护:交付给用户使用的软件,即使通过严格的测试,仍可能有一些潜在的错误在用户使用的过程中发现和修改。诊断和改正错误的过程称为改正性维护。3、适应性维护:随着计算机的飞速发展,新的硬件系统和外部设备时常更新和升级,一些数据库环境、数据输入/输出方式、数据存储介质等也可能发生变换。为了使软件适应这些环境变化而修改软件的过程叫做适应性维护。4、完善性维护:在软件投入使用过程中,用户可能还会有新的功能和性能要求,可能会提出增加新功能、修改现有功能等要求。为了满足这类要求而进行的维护称为完善性维护。5、预防性维护:为了改进软件未来的可维护性或可靠性,或者为了给未来的改进奠定更好的基础而进行的修改,称为预防性维护。6、软件可维护性:维护人员理解、改正、改动或改进这个软件的难易程度。7、结构化维护:有完整的软件配置,维护从评价设计文档开始,确定软件结构、性能和接口特点,先修改设计,接着修改代码,再进行回归测试。 8、非结构化维护:软件配置的唯一成分是代码,维护从评价程序代码开始,对软件结构、数据结构、系统接口、设计约束等常产生误解,不能进行回归测试,维护代价大。9、软件的逆向工程:是分析程序以便在比源代码更高的抽象层次上创建出程序的某种表示的过程,也就是说,逆向工程是一个恢复设计结果的过程。三、简答题:1.软件的可维护性与哪些因素有关?在软件开发过程中应该采取哪些措施来提高产品的可维护性?1、可理解性 2、可测试性 3、可修改性 4、可移植性 5、可重用性文档描述符合要求,用户文档简洁明确,系统文档完整并且标准第九章一、填空题:1、用面向对象方法开发软件,通常需要建立3种形式的模型即( 对象模型 )、( 动态模型 )和功能模型。2、用面向对象方法学开发软件过程,是一个主动地多次反复迭代的( 演化过程 )。传统方法学强调( 自顶向下 )顺序地完成软件开发的各阶段任务。二、名词解释:1、对象:是具有相同状态的一组操作的集合。2、类:是对具有相同数据和相同操作的一组相似对象的定义。3、封装:封装就是信息隐藏,通过封装对外界隐藏了对象的实现细节。4、继承:继承是指能够直接获得已有的性质和特征,而不必重复定义它们。5、多态性:多态性指子类对象可以象父类对象那样使用,同样的消息既可以发送给父类对象,也可以发送给子类对象,即不同等级的类,可以公用一个方法的名字。6、重载 有两种重载:1)函数重载指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字。2)运算符重载 指同一运算符可以施加于不同类型的操作数上面。当被操作数类型不同时,运算符的含义是不同的。三、简答题:1、简述面向对象方法学的出发点和基本原则? 尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述的问题的问题空间(也称问题域)与现实解法的解空间(也成为求解域)在结构上尽可能一致。2、 面向对象方法的4个要点? A认为客观世界是由对象组成; B把所有对象都划分成各种对象类(Class); C把若干对象类组成一个层次结构的系统(类等级); D对象彼此间仅通过传递消息互相联系。3、 与传统结构化方法相比较面向对象方法学的优点? 1与人们习惯的思维方法一致; 2稳定性好; 3可重用性好; 4较易开发大型软件产品; 5. 可维护性好。4、 对象的5个基本特点? 1)以数据为中心; 2)对象是主动的; 3)实现了数据封装; 4)本质上具有并行性; 5)模块独立性好。第十一章一、填空题:1、大型、复杂系统的对象通常由下述5个层次组成:( 主题层 )、类与对象层、( 结构层 )、( 属性层 )和( 服务层 )。2、软件重用是提高软件( 开发生产率 )和目标系统( 质量 )的重要途径,它基本上始于设计。其中软件成分重用可划分成以下3个级别即代码重用、设计成果重用和分析结果重用。3、面向对象设计的6个准则:( 模块化 )、( 抽象 )、( 信息隐藏 )、弱耦合、( 强内聚 )和( 可重用 )。4、一般来说,对象之间的耦合分为两大类:( 交互耦合 )和( 继承耦合 )。5、在面向对象设计中存在三种内聚:( 服务内聚 )、( 类内聚 )和( 一般特殊内聚 )。6、通过积极的软件重用能够获得可观的商业效益,( 产品质量 )、开发生产率和( 整体成本 )都得到了改善。7、大多数系统的面向对象设计模型,在逻辑上都由4大部分组成,它们分别是( 问题域子系统 )、( 人机交互子系统 )、( 任务管理子系统 )和( 数据管理子系统 )。二、名词解释:1、软件重用:指同一事物不作修改或稍加改动就多次重复使用。广义地说,软件重用可分为以下3个层次:知识重用、方法和标准的重用和软件成分的重用。2、优秀设计:是使得目标系统在其整个生命周期中总开销最小的设计,为获得优秀的设计结果,应该遵循一些基本准则。三、简述题:1、简述面向对象方法学的6条启发原则。1. 设计结果应该清晰易懂; 2. 一般特殊结构的深度应适当3. 设计简单的类4. 使用简单的协议5. 使用简单的服务6. 把设计变动减至最小2、简述软件重用的3个层次。 1)知识重用; 2)方法和标准的重用; 3)软件成分的重用。3、 简述软件成分重用的3个级别。 1)代码重用 a. 源代码剪贴; b. 源代码包含; c. 继承; 2)设计结果重用3)分析结果重用4、 简述类构建重用的3种方式。 1)实例重用 2)继承重用 3)多态重用5、 简述软件系统中子系统之间的两种交互方式。 1)、客户供应商关系 2)、平等伙伴关系6、 简述组织软件系统的两种方案。 1)、层次组织:下层为上层提供服务 封闭式:每层子系统仅仅使用其直接下层提供服务 开放式:可以调用下层任何子系统 2)、块状组织:子系统相互独立,弱耦合7、 面向对象设计应该遵循哪些准则?简述每条准则的内容,并说明遵循这条准则的必要性。 1. 模块化面向对象的软件开发模式,支持了系统模块化的原则:对象就是模块。它把数据结构和操作(方法)紧密地结合在一起构成模块。2. 抽象 类实际上是一种抽象数据类型,它对外开放的公共接口构成了类的规格说明(协议),这种接口规定了外界可以使用的合法操作符,利用这些操作符可以对类的实例中包含的数据进行操作。3. 信息隐蔽 在面向对象方法中,信息隐蔽通过对象的封装性实现:类结构分离了类的接口与类的实现,从而支持了信息隐蔽。4. 弱耦合 弱的耦合可以提高软件模块的独立性,避免某一部分模块发生变化对其它模块有较大的影响。5. 强内聚 面向对象设计中存在三种内聚: A服务内聚:一个服务应该完成一个且完成一个功能。 B类内聚:一个类应该只有一个用途,它的属性和服务应该是高内聚的。 C一般特殊内聚:即基类派生类的内聚。6. 可重用 使用已经存在的类(包括开发环境提供的类库,及以往开发相似系统时创建的类),可以提高软件重用性,提高软件生产率。8、 为什么说类构件是目前比较理想的可重用软构件?它的哪些重用方式? 1. 可重用软构件应具备的特点 1)模块独立性强 2)具有高度可塑性 3)接口清晰、简明、可靠 2. 类构件的重用方式 1)实例重用 2)继承重用 3)多态重用第十二章一、填空题:1、面向对象测试的目标是用尽可能低的( 测试成本)发现尽可能多的( 软件错误 )。2、面向对象实现包括两项工作:( 把面向对象设计结果翻译成用某种程序语言书写的面向对象程序 )和( 测试并调试面向对象程序 )。3、选择编程语言的关键因素是语言的( 一致的表达能力 )、( 可重用性 )和( 可维护性 )。4、一般代码重用有两种,分别为( 本项目内的代

温馨提示

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

评论

0/150

提交评论