《软件工程期末考试试题库附答案.pdf》由会员分享,可在线阅读,更多相关《软件工程期末考试试题库附答案.pdf(63页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程期末考试试题库附答案试 题1一,单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的横线上。1.可行性研究要进行一次 需求分析。A.详 细 的B.全 面 的C.简化的、压 缩 的D.彻 底 的2.系统流程图用于可行性分析中的 的描述。A.当前运行系统B.当前逻辑模型C.目标系统D.新 系 统3.系统流程图是描述 的工具。A.逻辑系统B.程序系统C.体系结构D.物 理 系 统4.工具在软件详细设计过程中不采用。A.判 定 表B.IP0图C.PDL D.DFD图5.程序的三种基本控制结构是A.过程、子程序和
2、分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移6.程序的三种基本控制结构的共同特点是A.不能嵌套使用B.只能用来写简单程序C.已经用硬件实现D.只有一个入口和一个出口 7.产生软件维护的副作用,是指A.开发时的错误B.隐含的错误C.因修改软件而造成的错误D.运行时误操作8.维护中,因误删除一个标识符而引起的错误是 副作用。A.文 档B.数 据C.编 码D.设 计9.可维护性的特性中相互促进的是A.可理解性和可测试性B.效率和可移植性C.效率和可修改性D.效率和结构好10.汽车有一个发动机。汽车和发动机之间的关系是 关系。A.一般具体B.整 体 部 分C.分 类 关 系D.主
3、从关系11.在变更控制中,可以用来确保由不同用户所执行的并发变更。A.异 步 控 制B.同步控制C.存取控制D.基线控制12.变更控制是一项最重要的软件配置任务,其 中“检出”和处理实现了两个重要的变更控制要素,即存取控制和同步控制。A.登 入B.管 理C.填写变更要求D.审查13.提高软件质量和可靠的技术大致可分为两大类:其中一类就是避开错误技术,但避开错误技术无法做到完美无缺和绝无错误,这就需要A.消除错误B.检 测 错 误C.避开错误D.容 错14.是以提高软件质量为目的的技术活动。A.技 术 创 新B.测 试C.技 术 创 造D.技 术 评 审15.面向对象方法学的出发点和基本原则是尽
4、可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。因此面向对象方法有许多特征,如软件系统是由对象组成的;;对象彼此之间仅能通过传递消息互相联系;层次结构的继承。A.开发过程基于功能分析和功能分解B.强调需求分析重要性C.把对象划分成类,每个对象类都定义一组数据和方法D.对既存类进行调整16.软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫()A.生 存 期B.面向对象设计C.面向对象程序设计D.面向对象分析17.原型化方法是用户和设计者之间执行的一种交互构成,适用于 系统。A.需求不确定性高的B.需求确定的C.管理
5、信息D.实 时18.原型化方法是一种_ _ _ _ _ _ _ 型的设计过程。A.自外向内B.自顶向下C.自内向外D.自底向上19.为了提高测试的效率,应该()A.随机地选取测试数据B,取一切可能的输入数据作为测试数据C.在完成编码以后制定软件的测试计划D.选择发现错误可能性大的数据作为测试数据2 0.使用白盒测试方法时,确定测试数据应根据 和指定的覆盖标准。A.程序的内部逻辑B.程序的复杂结构C.使用说明书D.程序的功能1.C 解析 软件的可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。其实质是要进行一次简化、压缩了的需求分析、设计过程,要在较高
6、层次上以较抽象的方式进行需求分析和设计过程。因此答案为C。2.A 解析 可行性研究首先要确定项目的规模和目标,然后就需要对当前运行的系统进行研究了,在考察系统的基础上,通过描绘现有系统的高层系统流程图,与有关人员一起审查该系统流程图是否正确。描述的对象是当前正在运行的系统,因此选择A。3.C 解析 系统流程图是用图形符号来表示系统中的各个元素,例如人工处理、数据库、设备等,流程图表达了系统中各个元素之间的信息流动情况。是描绘物理系统的传统工具。4.D 解析 详细描述处理过程常用三种工具:图形、表格和语言。其中图形工具有结构化流程图、盒图和问题分析图三种,答案中的判定表是用来表示复杂的条件组合与
7、应做的动作之间的对应关系。IP0图用来描述每个模块输入/输出数据、处理功能及模块调用的详细情况。PDL是过程设计语言的缩写,也称程序描述语言,用于描述模块算法设计和处理细节的语言,这三种都可以在软件详细设计过程中使用,而 DFD图则是数据流图,是以图形的方式描绘数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,所以它只是一种功能模型,不能在详细设计过程中使用。5.B 解析 程序的三种基本控制结构是顺序、选择和循环(重复)。子程序只是程序设计一种方法,递归则是一种算法,都算不上是控制结构。6.D 解析 程序的特点就是从一个入口开始,最终以一个出口结束,其间可以用顺序,选择和循环方式对程
8、序的流向进行控制。三种结构可以写出非常复杂的程序,而且选择和循环都可以嵌套设计。7.C 解析 因修改软件而造成的错误或其他不希望出现的情况称为维护的副作用,包括编码副作用、数据副作用、文档副作用三种。只有答案C是正确的表述。8.C 解析 编码副作用指的是在使用程序设计语言修改源代码时可能引入错误,比如删除或修改一个子程序、一个标号、一个标识符,改变程序代码的时序关系,修改文件的打开或关闭等。因此本题答案为C。9.A 解析 软件的可维护性可用七个质量特性来衡量,分别是:可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。对于不同类型的维护,这些特性的侧重点也不相同,有一些可维护特性是
9、可以相互促进的,比如可理解性和可测试性,可理解性和可修改性,另外一些则是相互矛盾的,如答案中的B效率和可移植性、C中的效率和可修改性。至于D中的结构好则不属于可维护性的特征。10.B 解析 类有两种主要的结构关系,即一般一一具体结构关系和整体一一部分结构关系。前者称为分类结构,用来描述现实世界中的一般化的抽象关系。后者称为组装结构,用来描述现实世界中的类的组成的抽象关系。汽车和发动机的关系很明显,应该属于整体一一部分关系。11.B 解析 变更控制包括建立控制点和建立报告与审查制度,其过程中的“检出”和“登入”处理实现了存取控制和同步控制,存取控制管理各个用户存取和修改一个特定软件配置对象的权限
10、,同步控制可用来确保由不同用户所执行任务的并发变更。12.A 解析“检出”和“登入”处理实现了两个重要的变更控制要素。具体说明见上题。13.D 解析 提高软件质量和可靠性的技术大致可分为两类,一类是避开错误技术,即在开发的过程中不让差错潜入软件的技术,另一类是容错技术,即对某些无法避开的差错,使其影响减至最小的技术14.D 解析 技术评审是以提高软件质量为目的的技术活动,是对软件本身的结构、与运行环境的接口、变更带来的影响等方面进行的评审活动。15.C 解析 面向对象方法有四个特征,分别是对象唯一性、分类性、继承性和多态性。其中分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类
11、,每个类是具有相同性质的个体集合,而每个对象相关类的实例,对象彼此之间通过传递消息互相联系。16.D 解析 面向对象的分析的过程就是认识客观世界的过程,其目的就是建立对客观世界的精确、简洁、可理解的正确模型,也就是所谓的建模。因此本题答案为D。17.A 解析 原型不同于最终系统,它只实现所选择的部分功能,仅是为了试验或是演示而用,部分功能需求可以忽略或者模拟实现,因此适用于需求不确定性高的系统。18.A 解析 原型化方法的基本思想是根据用户给出的基本需求,通过快速实现构造出一个小型的、可执行的模型,用户在计算机上实际运行这个用户界面原型,在试用过程中提出意见或建议,然后开发者再对原型进行改进。
12、如此周而复始,逐步弥补不足之处,从而提高了最终产品的质量。它是一种自外向内的设计过程19.D 解析 软件测试是为了尽可能多的发现程序中的错误,尤其是发现至今尚未发现的错误。在选取测试用例时,不可能进行穷举测试,在每一个细节进行测试,也不能无目的地随机选取测试数据,为了提高测试的效率,测试用例应该选择发现错误可能性大的部分,这样的测试结果才符合软件测试的目的。20.A 解析 白盒测试是把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,由于白盒测试是一种结构测试,所以被测对象基本上是源程序,以程序的内部逻辑和指定的覆盖标准确定测试数据。二,填空题(本大题共10小题,每小题2 分
13、,共 20分)21.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的()情况。22.成本效益分析的目的是从()角度评价开发一个项目是否可行。23.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和()。24.独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条()的边的路径。25.汇编语言是面向()的,可以完成高级语言无法完成的特殊功能,如与外部设备之间的一些接口工作。26.在JSP方法中解决结构冲突的具体办法是()。27.详细设计的任务是确定每个模块的内部特性,即模块的算法、Oo28.
14、所有软件维护申请报告要按规定方式提出,该报告也称0报告。29.有两类维护技术:在开发阶段使用来减少错误、提高软件可维护性的面向维护的技术;在维护阶段用来提高维护的效率和质量的()技术。30.科学工程计算需要大量的标准库函数,以便处理复杂的数值计算,可供选择的语言有:()、PASCAL语言、C语言和P L/1语言。21.解:信息流动 解析 系统流程图是描述物理系统的传统工具,用图形符号表示系统中的各个元素,如人工处理、数据处理、数据库、文件、设备等,表达了元素之间的信息流动的情况。22.解:经济 解析 成本效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡,其目的是从
15、经济角度评价开发一个新的软件项目是否可行。2 3 .解:宽度优先策略 解析 渐增式测试法有自顶向下结合和自底向上结合两种组装模块的方法,其中自顶向下集成是构造程序结构的一种增量式方式,不需要编写驱动模块,只需要编写桩模块。它从主控模块开始,按照软件的控制层次结构,以深度优先或宽度优先的策略,逐步把各个模块集成在一起。2 4.解:在其他独立路径中未有过 解析 在基本路径测试中,以详细设计或源程序为基础,导出控制流程图的拓扑结构一一程序图,在计算了程序图的环路复杂性之后,确定只包含独立路径的基本路径图,其中独立路径是包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有
16、一条在其他独立路径中未有过的边的路径。2 5.解:机器 解析 汇编语言属于低级语言,是一种面向机器的语言,它与高级语言相比有许多优越性:如操作灵活,可以直接作用到硬件的最下层,完成与外部设备的接口工作等,是能够利用计算机硬件特性直接控制硬件设备的唯一语言。2 6.解:中间数据结构或中间文件 解析J S P方法是面向数据结构的设计方法。它定义了一组以数据结构为指导的映射过程,根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,在J S P方法中解决结构冲突的具体办法是引入中间数据结构或中间文件,将冲突部分分隔开来,建立多个程序结构,再利用中间文件把它们联系起来,构成一个系统的整体。27.
17、解:使用的数据 解析 详细设计的基本任务是为每个模块进行详细的算法设计,为模块内的数据结构进行设计,确定每个模块的内部特性,包括模块的算法和使用的数据。对数据库进行物理设计等。28.解:软件问题 解析 在软件维护的流程中,第一步就是制定维护申请报告,也称为软件问题报告,它是维护阶段的一种文档,由申请维护的用户填写。29.解:维护支援 解析 面向维护的技术涉及软件开发的所有阶段,能够减少软件错误,提高软件的可维护性。而维护支援技术则包含信息收集,错误原因分析,维护方案评价等项,是在软件维护阶段用来提高维护效率和质量的技术。30.解:FORTRAN语言 解析 计算机语言根据不同行业的需求,使用的侧
18、重点也不尽相同,在办公管理方面,一些数据库语言如FOXPRO、ORICAL有很多的应用,在工程行业,计算机语言的科学计算能力就显得格外重要,如MATLAB、PL/1、FORTRAN语言都是工程计算中常用的语言。三,名 词 解 释(本大题共5小题,每小题3分,共15分)31.经济可行性解:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。解析 对于一个系统所必须要衡量的是经济上是否合算,经济可行性的范围很广,包括效益分析、潜在市场前景等。32.社会可行性解:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目目的运行方式在用户组织内是否行得通,现有管理制度、人员素质
19、、操作方式是否可行。解析 社会可行性包括合同、责任、侵权等技术人员不甚了解的诸多问题。3 3 .投资回收期解:投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。解析 通常我们用投资回收期来衡量一个开发项目的价值,投资回收期越短,就越快获得利润。3 4.对应关系解:即有直接因果关系在程序中可以同时处理。解析 对应关系是指数据单元在数据内容上、数量上和顺序上有直接的因果关系,对于重复的数据单元,重复的次序和次数都相同才有对应关系。3 5 .结 构 冲 突 解:输入数据与输出数据结构找不到对应关系的情况,称为结构冲突。解析 使 用J S P方法时会遇到此类结构冲突问题,对此,J a c k
20、 s o n提出了引入中间数据结构或中间文件的办法,将冲突部分分隔开来,建立多个程序结构,再利用中间文件把它们联系起来,构成一个系统的整体。四,简 答 题(本大题共4小题,每小题5分,共20分)36.可行性研究报告的主要内容有哪些?解:一个可行性研究报告的主要内容如下:(1)引言:说明编写本文档的目的;项目的名称、背景;本文档用到的专门术语和参考资料。(2)可行性研究前提:可行性研究前提。说明开发项目的功能、性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。(3)对现有系统的分析:说明现有系统的处理流程和数据流程;工作负荷;各项费用支出;所需要各类专业技术人员的数
21、量;所需要各种设备;现有系统存在什么问题。(4)所建议系统的技术可行性分析:所建议系统的简要说明;处理流程和数据流程;与现有的系统比较的优越性;采用所建议系统对用户的影响;对各种设备、现有软件、开发环境、运行环境的影响;对经费支出的影响;对技术可行性的评价。(5)所建议系统的经济可行性分析:说明所建议系统的各种支出,各种效益;收益投资比;投资回收周期。(6)社会因素可行性分析:说明法律因素,对合同责任、侵犯专利权、侵犯版权等问题的分析;说明用户使用可行性,是否满足用户行政管理、工作制度、人员素质的要求。(7)其他可供选择方案:逐一说明其他可供选择的方案,并说明未被推荐的理由。(8)结论意见:说
22、明项目是否能开发;还需要什么条件才能开发;对项目目标有什么变动等。解析 做软件的可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发,其中的问题能否解决,报告共分为八个基本内容。37.系统设计的内容是什么?解:系统设计阶段先从高层入手,然后细化。系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。(1)系统分解。系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。每次分解的各子系统数目不能太多,最底层子系统称为模块。(2)确定并发性。分析模型、现实世界及硬件中不少对象均是
23、并发的。系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。后者可以放在一起,而综合成单个控制线或任务。(3)处理器及任务分配。各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现各子系统的各物理单元的连接。(4)数据存储管理。系统中的内部数据和外部数据的存储管理是一项重要的任务。通常各数据存储可以将数据结构、文件、数据库组合在一起,不同数据存储要在费用、访问时间、容量以及可靠性之间做折中考虑
24、。(5)全局资源的处理。必须确定全局资源,并且制定访问全局资源的策略。全局资源包括:物理资源,如处理器、驱动器等;空间,如盘空间、工作站屏等;逻辑名字,如对象标识符、类名、文件名等。如果资源是物理对象,则可以通过建立协议实现对并发系统的访问,以达到自身控制;如果资源是逻辑实体,如对象标识符,那么在共享环境中有冲突访问的可能,如独立的事务可能同时使用同一个对象标识符,则各个全局资源都必须有一个保护对象,由保护对象来控制对该资源的访问。(6)选择软件控制机制。分析模型中所有交互行为都表示为对象之间的事件。系统设计必须从多种方法中选择某种方法来实现软件的控制。(7)人机交互接口设计。设计中的大部分工
25、作都与稳定的状态行为有关,但必须考虑用户使用系统的交互接口。解析 系统设计是问题求解及建立解答的高级策略。必须制定解决问题的基本方法,系统的高层结构形式包括子系统的分解、它的固有并发性、子系统分配给硬软件、数据存储管理、资源协调、软件控制实现、人机交互接口。3 8.什么是软件危机?软件危机的表现是什么?其产生的原因是什么?解:软件发展第二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产成本显著下降,这为计算机的广泛应用创造了条件。一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的需要。在软件开发中遇到的问题找不到解决办法,使问
26、题积累起来,形成了尖锐的矛盾,因而导致了软件危机。软件危机表现在以下四个方面:(1)经费预算经常突破,完成时间一再拖延。由于缺乏软件开发的经验和软件开发数据的积累,使得开发工作的计划很难制定。主观盲目制定计划,执行起来与实际情况有很大差距,使得开发经费一再突破。由于对工作量估计不足,对开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。(2)开发的软件不能满足用户要求。开发初期对用户的要求了解不够明确,未能得到明确的表达。开发工作开始后,软件人员和用户又未能及时交换意见,使得一些问题不能及时解决,导致开发的软件不能满足用户的要求,因而导致开发失败。(3)开发的软件可维护性差。开发过程中没
27、有同意的、公认的规范,软件开发人员按各自的风格工作,各行其是,开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改。程序结构不好,运行时发现错误也很难修改,导致维护性差。(4)开发的软件可靠性差。由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时,又没有严格的、充分的、完全的测试,提交给用户的软件质量差,在运行中暴露出大量的问题。造成软件危机的原因是:(1)软件的规模越来越大,结构越来越复杂。(2)软件开发管理困难而复杂。(3)软件开发费用不断增加。(4)软件开发技术落后。(5)生产方式落后。(6)开发工具落后,生产率提高缓慢。解析 由于软件危机的出现,人们才开始用工程化的思想来
28、开发软件,从此,软件生产才步入了软件工程时代。3 9.软件质量保证应做好哪几方面的工作?解:软件质量保证是软件工程管理的重要内容,软件质量保证应做好以下几方面的工作:(1)采用技术手段和工具。质量保证活动要贯彻开发过程始终,必须采用技术手段和工具,尤其是使用软件开发环境来进行软件开发。(2)组织正式技术评审。在软件开发的每一个阶段结束时,都要组织正式的技术评审。国家标准要求单位必须采用审查、文档评审、设计评审、审计和测试等具体手段来保证质量。(3)加强软件测试。软件测试是质量保证的重要手段,因为测试可发现软件中大多数潜在错误。(4)推行软件工程规范(标准)。用户可以自己制定软件工程 规 范(标
29、准),但标准一旦确认就应贯彻执行。(5)对软件的变更进行控制。软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的修改和变更。(6)对软件质量进行度量。即对软件质量进行跟踪,及时记录和报告软件质量情况。解析 软件的质量保证是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量的活动,是软件工程管理中的重要内容。五,论 述 题(本大题共3小题,第4 0小题7分,第4 1小 题8分,第4 2小 题1 0分,共2 5分)4 0.请使用P A D图和P D L语言描述在数组A (1)A (1 0)中找最大数的算法。解:P D L语言:N=1W H I L E N =
30、1 0 D OI F A (N)=A (N+l)M A X =A (N+l);EL S E M A X =A (N)EN D I F;N=N+1;EN D W H I L E;P A D 图:解析 人工查找时,是从第一个元素开始查找,用当前元素与下一个元素比较,将较大者作为当前元素又与下一元素比较,如此循环,直到数组末尾。4 1.根据下列条件使用等价类划分法设计测试用例。某一8位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围是T 7 7 1 7 7,如05,01 27,-06 5解:(1)划分等价类并编号,如下表示:(4分)(2)为合理等价类设计测试用例,表中有两个合理等价类,
31、设计两个例 子(2分)(3)为不合理等价类测试用例,至少设计一个测试用例(2分)解析 等价类划分属于黑盒测试的一种,它将输入数据域按有效的或无效的划分成若干个等价类,测试每个等价类的代表值就等于对该类其他值的测试,这样用少量有代表性的例子代替大量测试目的相同的例子,可以有效提高测试效率。本题划分了 3个合理等价类,9个不合理等价类进行测试,取到了预期的效果。4 2.某电器集团公司下属的厂包括技术科、生产科等基层单位。现在想建立一个计算机辅助企业管理系统,其中:生产科的任务是:(1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月生产计划。(2)根据车间实际生产日报表、周报
32、表调整月生产计划(3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。(4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间技术科的任务是:(1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清单。(2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件厂。试写出以上系统中生产科和技术科处理的软件结构图。解:画出生产科图的给6分,画出技术科的给4分。解析 软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制层次体系,软件结构往往用树状或网状结构的图形来表
33、示,其主要内容有模块及模块的控制关系,根据题意,可绘制出生产科和技术科的软件结构图,其中生产科的结构图深度和宽度均为4,技术科的结构图的深度和宽度均为3。试 题2一、填空2 规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件具有容错功能的软件。3M c Ca l l 提出的软件质量模型包括1 1 个软件质量特性。4软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。5为了便于对照检查,测试用例应由输入数据和预期的输出结果两部分组成。6 程序设计语言的心理特性主要表现在歧义性、简洁性、传统性、局部性和顺序性。7 软件结构是
34、以模块为基础而组成的一种控制层次结构。8 在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、判定树。9结构化语言是介于自然语言和形式语言之间的一种半形式语言。1 0 若年利率为i,不计复利,n年后可得钱数为F,则现在的价值 =F/(l+(n*i)1 1 软件可靠性是指在给定的时间间隔内,程序成功运行的(概率)o 0 1 0 11 2 高级语言:独立于机器,面向过程或面向(对象)0 1 0 11 3 软件项目管理的范围主要集中于3 个P上,即:P eo p l e人员、P r o b l em 问题和(过程)。0 2 0 1 1 4 人机界面的风格第一代界面是命令 和(询
35、问)方式。1 2 0 21 5 由于维护或在维护过程中其他一些不期望的行为引入的错误称为维护的(副作用)。1 5 0 41 6 在公式V (G)=E -N +2中:E为程序图G中边的总数;N为程序图中结点的总数。V(G)又称为图G的环形(复杂度)0 2 0 4。1 7 任何一个基于计算机系统都可以用输入-处理-输出(I P 0)图来描述,它将系统转成一个信息变换模型1 8 为提高可交互性一般对所有可能造成损害的用户操作动作,应坚持要求用户(确认),例如,提问“你确实要删除“?”。1 2 0 41 9 文档是一种数据媒体和其上所记录的(数据)。0 1 0 12 0 文 档(d o c u m e
36、 nt)一种数据媒体和其上所记录的(数据)。0 1 0 12 1 机器语言、汇编语言:依赖于机器,面 向(机器)0 1 0 12 2 软件有效性(e f f i c i e nc y),指软件系统的时间和(空间)效率。0 1 0 32 3 软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成。0 1 0 32 4 软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”。0 1 0 32 5 为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)。0 4 0 2一个软件的深度是指其控制的(层数)。0 8 0 12 6 以详细设计说明书为输入,将该输入用某
37、种程序设计语言翻译成计算机可以理解并最终可运行的代码的过程叫(编码)过程。1 3 0 12 7 软件维护是软件生命周期的(最后)一个阶段。1 5 0 12 8 软件的可互操作性,是指多个软件元素相互(通信)并协同完成任务的能力。0 2 0 12 9 第三代语言也称为(高级)语言。1 3 0 13 0 软件测试是软件投入运行(前),对软件需求分析、设计、实现的强有力的最终审查。1 4 0 13 1 黑盒测试主要是测试软件是否满足(功能)需求。1 4 0 23 2 (调试)的目的是确定错误的位置和引起错误的原因,并加以改正。因此,又称为排错或纠错。1 4 0 4 3 3 软件工程由方法、工具和(过
38、程)三部分组成,称软件工程的三要素。0 1 0 13 4 软件可追踪性(t r a c e a b i l i t y),是指根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行(逆向)追踪的能力。0 1 0 33 5 瀑布模型是由W.R o y c e 于 1 9 7 0 年提出来的。又称为软件(生存周期)模型。0 1 0 436程序设计语言的(可维护)性通常指这种语言编写的程序被理解,被修改及调整和改进的难易程度。1302 37软件工程由方法、(工具)和过程三部分组成,称软件工程的三要素。010138软件可理解性,指系统具有清晰的结构,能直接反映问题的(需求)o 0
39、10339在实体-关系图简称E-R图中,数据对象实体用长方形、关系用(菱形)、属性用椭圆表示。050240建立数据流模型要遵循的原则包括:每个加工至少应有一个输入数据流以反映被处理数据的来源和一个(输出)数据流来反映加工的结果。050341从工程管理的角度软件设计可分为概要设计和(详细)设计两大步骤。080142通过向用户提供视觉和听觉上反馈,保持用户与界面间的双向通信,是提高界面可(交互)性的措施之一 43程序设计语言的可靠性是指程序设计语言本身不出错或对错误的(纠正)能力。130244对发现错误较多的程序模块,应进行(重点)测试。140145测试用例中,不仅要选择合理的输入数据,还要选择(
40、不合理)的输入数据。46软件工程由(方法)、工具和过程三部分组成,称软件工程的三要素。010347基于计算机系统的软件要素中的软部件由程序、数据和(文档)组成。03014 8 数据流图就是用来刻画数据流和转换的信息系统建模技术。它用简单的图形记号分别表示数据流、转换、(数据源)以及外部实体。0 5 0 14 9 被继承的类我们称之为基类(父类),在基类的基础上新建立的类我们称之为派生类子类。0 7 0 15 0 流程图也称为程序框图是最常用的一种表示法,它有顺序、分支和(循环)三个基本控制构件。0 8 0 2 5 1 机器语言和汇编语言,也称为(低级)语言。1 3 0 15 2 软件测试是执行
41、程序发现并排除程序中潜伏的(错误)的过程。1 4 0 15 3 动态测试有两种测试方法:黑盒测试和(白盒)测试。1 4 0 15 4 软件可维护性,是指软件产品交付使用后,在实现改正潜伏的错误、改进性能等属性、适应环境变化等方面工作的(难易)程度。0 1 0 3二、名词解释面向对象建模及它们之间的关系:对象建模:定义了做事情的实体;动态模型:明确规定了什么时候做;功能模型:指明了应该做什么;他们相互补充,相互配合。对象模型是最基本最重要的,他为其他两种模型奠定了基础,我们依靠对象模型完成了 3 种模型的集成软件工程定义:1 把系统的,规范的,可度量的途径应用于软件开发,运行和维护过程,也就是把
42、工程应用于软件;2 研究1 中提到的的途径软件生命周期各阶段的基本任务:问题定义;可行性研究;需求分析;总体设计;详细设计;编码和单元测试;综合测试;软件维护软件过程定义:软件过程是为了获得高质量软件所需要完成的一系列任务的框架,他规定了完成各项任务的工作步骤生命周期:它规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,也称过程模型生命周期/过程模型:瀑布模型;快速原型模型;增量模型;螺旋模型可行性研究过程步骤:1复查系统规模和目标;2研究目前正在使用的系统;3导出新系统的高层逻辑模型;4进一步定义问题;5导出和评价供选择的解法;6推荐行动方针;7草拟开发计划;8书写文档提交审查系统流程图定
43、义:它是概括地描绘物理系统的传统工具数据流图D F D定义:它是一种图形化技术,他描绘信息流和数据从输入移动到输出地过程中所经受的变换符号:数据流图有4种基本符号:正方形表示数据原点或终点;圆角矩形或圆形代表变换数据和处理;开口矩形代表数据存储;箭头表示数据流,即特定数据的流动方向典型总体设计过程的9个步骤:1设想供选择的方案;2选取合理的方案;3推荐最佳方案;4功能分解;5设计软件结构;6设计数据库;7制定测试计划;8书 写 文 档(系统说明;用户手册;测试计划;详细实现计划;数据库设计结果);9审查和复审模块独立程度的定性标准度量:1耦合:对一个软件结构内不同模块之间互联程度的度量;2内聚
44、:它标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然拓展结构程序设计经典定义:如果一个程序的代码块仅仅通过顺序,选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的人机界面设计,设计指南:1 一般交互指南;2信息显示指南;3数据输入指南程序流程图:又称程序框图,优点:对控制流程的描绘很直观,便于初学者掌握;缺点:1程序流程图本质上不是逐步求精的好工具,他透使程序员过早地考虑程序的控制流程而不去考虑程序的全局结构;2程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计精神随意转移控制;3程序流程图不易
45、表示数据结构盒图:又称S-N图,特点:1功能域明确,可以从盒图上一眼就看出来;2不可能任意转移控制;3很容易确定局部和全程数据的作用域;4很容易表现嵌套关系,也可以表示模块的层次结构Jackson图:1顺序结构:数据由一个或多个数据元素组成,每个元素按确定次序出现一次;2选择结构:数据包含两个或多个数据元素,每次使用这个数据时按一定条件从这些数据元素中选择一个;3重复结构:重复结构的数据,根据使用时的条件由一个数据元素出现零次或多次构成Jackson图的优点:1便于表示层次结构,而且是对结构进行自顶向下分解的有力工具;2 形象直观可读性好;3 技能表示数据结构也能表示程序结构计算环形复杂度的方
46、法:1 流程图中的区域数等于环形复杂度;2 流程G的环形复杂度V (G)=E-N+2,其中E是流程图中边的条数,N是结点数;3 流程G的环形复杂度V (G)=P+1,其中P是流程图中判定结点的数目程序编码的风格应遵循的规则:1 程序内部文档;2 数据说明;3语句构造;4输入输出;5 效率软件测试的目标(定义):1 测试是为了发现程序中的错误而执行的过程;2 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;3 成功的测试是发现了至今为止尚未发现的错误的测试测试的目标:暴露程序中的错误软件测试的准则:1 所有测试都应该能追述到用户需求;2 应该远在测试开始之前就制定出测试计划;3 把P
47、a r e t o 原理应用到软件测试中;4应该从小规模测试开始,并逐步进行大规模测试;5穷举测试是不可能的;6为了达到最佳测试效果,应从独立的第三方从事测试工作测试方法:1 白盒测试即结构测试;2黑盒测试即功能测试测试步骤(先后顺序):1 模块测试;2子系统测试;3 系统测试;4 验收测试;5 平行测试软件维护的定义:在软件应经交付使用之后,为了改正错误或满足新需要而修改软件的过程软件的可维护性定义:维护人员理解,改正,改动或改进这个软件的难易程度决定软件可维护的5个因素:1可理解性;2可测试性;3可修改性;4可移植性;5可重用性面向对象方法学的优点:1与人类习惯的思维方式一致;2稳定性好;
48、3可重用性好;4轻易开发大型软件产品启发规则:1设计结果应该清晰易懂;2一般到特殊结构的深度适当;3设计简单的类;4使用简单的协议;5使用简单的服务;6把设计变动减成至最小软件重用:也叫再用或复用,是指同一事物不做修改或稍加改动就多次重复使用软件重用的三个层次:1知识重用;2方法和标准重用;3软件成分重用软件维护的特点:1结构化维护和非结构化维护差别巨大;2维护代价高昂;3维护的问题很多需求分析任务:确定对系统的综合要求;分析系统的数据要求;导出系统的逻辑模型;修正系统的开发计划验证软件需求:一致性;完整性;现实性;有效性黑盒测试力图发现下述类型错误:功能不正确或遗漏了功能;界面错误;数据结构
49、错误或外部数据库访问错误;性能错误;初始化和终止错误黑盒测试满足标准的测试用例集:所设计出的测试用例能减少为达到合理测试所需要设计的测试用例的总数;所设计出的测试用例能告诉我们能否存在某些类型的错误,而不仅仅指出与特定测试相关的错误是否存在1在软件开发过程中要产生大量的信息,要进行大量的修改,软件配置管理能协调软件开发,并使混乱减到最低程度。试 题3一、1、1 9 6 8年 软件工程”诞生。2、软件定义:软件是程序、数据相关文档的完整结合。其中,程序是能够完成预订功能和性能的可执行的指令序列;数据是使程序能够适当的处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。3、为了解决软件
50、危机,技 术 措 施(方法和工具),组织管理措施4、软件工程:软件工程是(1)把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;(2)研 究(1)中提到的途径。5、软件工程是从管理和技术两方面6、软件工程的本质特性:(1)软件工程关注于大型程序的构造;(2)专拣工程的中心课题是控制复杂性;(3)软件经常变化;(4)开发软件的效率非常重要;(5)和谐的合作是开发软件的关键;(6)软件必须有效的支持它的用户;(7)在软件工程领域中通常由具有一种文化背景的人替具有另外一种文化背景的人创造产品。7、软件工程的7条基本原理:(1)用分阶段的生命周期计划严格管理;(2)