软件工程考试题_软件工程期末考试题
软件工程考试题由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“软件工程期末考试题”。
一、填空题
1、瀑布模型把软件生命周期划分为8个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段有可以归纳为三大阶段:计划阶段、开发阶段和运行阶段。
2、瀑布模型八个阶段中,需求分析极端出错,对软件的影响最大。
3、在结构化模型中,需求分析阶段定义的标准成为软件测试中的系统测试阶段的目标。
4、软件工程方法的出现是由于软件危机的出现。
5、软件工程方法学的目的:使软件规范化和功能化得以实施的主要保证是软件开发工具和软件开发环境。
6、软件开发常使用的两种基本方法是结构化和原型化方法,在实际中它们关系表现为相互补充。
7、UML主要应用于基本对象的面向对象方法。
8、原型化方法对软件设计和开发人员的要求最高。
9、结构化分析法主要是一种预测无严格定义需求的方法,它在实施时强调的是分析对象的数据流。
10、瀑布模型一般开发过程分为:分析、设计、编码和测试阶段,占用人员数量最多的阶段是编码阶段。
11、软件开发模型是指软件开发的全部过程,活动和任务的结构框架,主要开发模型有:瀑布模型、演化模型、螺旋模型、喷泉模型和智能模型。
12、耦合度是对软件中模块间关联度的一种度量。
13、为改正软件系统中潜藏的错误而进行的维护活动称为纠正维护。
14、保证软件质量的手段有:复审、复查、管理复审和测试等,其中复审发生在软件生命周期的每个阶段结束之前。
15、完整的系统设计应该包括计算机系统设计,应用软件设计,数据库设计和网络设计。
16、系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素间信息活动情况。
17、成本效益分析的目的是从经济的角度评价开发一个项目是否可行。
18、自顶向下结合的渐增测试法,在组合模块时有两种组合策略:深度优化策略和宽度优化策略。
19、在jsp方法中解决结构冲突的具体办法是中间数据结构或中间文件。
20、详细设计的任务是确定每一个模块的内部特性,即模块的算法使用的数据。
21、软件维护申请报告要按规按方式提出,该报告也称软件问题报告。
22、独立路径包括一组以前没有处理的语句或条件的路径,从程序内来看一条独立路径是至少包含一条在其他独立路径中未有过的边的路径。
23、设计任何一个人机界面,一般必须考虑响应时间,用户帮助机制,错误信息处理和命名方式四个方面。
24、白盒测试法:已知产品内部工作过程,通过测试检验产品内部动作是否按照产品规格说明的规定正常进行的方法是白盒测试法。
二、名词解释
1、经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发;对于一个系统所必须要衡量的是经济上是否合算,经济可行性的范围很广,包括效益分析、潜在的市场影响等。
2、社会可行性:要开发的项目是否存在任何侵权,如妨碍等责任问题,要开发项目的运行在用组织内是否行得通,现有管理制度,人员素质,操作方式是否可行。社会可行性包括合同、责任、侵权等技术人员不甚了解的诸多问题。
3、投资会收期:投资回收期就是使累积的经济效益等于最初的投资费用所需的时间。
4、对应关系:即有接因果关系在程序中可以同时处理,它是指数据单元在数据内容上、数量上和顺序上有直接的因果关系,对于重复的数据单元、重复的次序和次数都相同才有对应关系。
5、结构冲突:输入数据和输出数据结构找不到对应关系的情况,使用jsp方法创建它,可以引用中间数据结构或中间文件的方法,将冲突都分隔开来,建立多个程序结构。
三、论述题
1、软件维护是软件生命周期的重要组成,而影响维护的因果较多,出了人员因素、技术因素和管理因素外,还有程序自身因素,具体影响因素可以归纳为:
a)软件系统的规模 b)软件系统的年龄 c)软件系统的结构
试回答:
1)给出上述三项因素的解释,阐述“规模”“年龄”“结构”的具体含义。2)扼要分析影响维护工作量的因素,即分析可能增加维护工作量的因素和可能减少维护工作量的因素。
3)简单叙述软件可维护性度量的含义。
2、系统设计的内容是什么?
答:
1、1)系统的规模:指软件系统规模的大小,系统规模越大,维护困难越大
系统的年龄:系统运行时间越长,可能经过多次修改,从而造成维护的困难;系统结构:系统结构合理与否,会给维护带来困难。
2)软件系统的年龄和规模,结构的合理性,程序复杂性,用户数量,应用的变化和文档的质量,结构化技术的使用,自动化工具的使用,数据可技术的应用,高性能软件的使用,新软件技术的应用。
3)可维护度量表示软件系统维护工作的强度或维护工作量的大小,人们为了度量可维护性,常将可维护性度量问题分解为:可测试性、可理解性、可修改性、可移植性、可靠性、有效性和可用性的度量。
2、系统设计阶段先从高层入手,然后细化,系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。
(1)系统分解:系统中主要的组成部分成为子系统,子系统既不是一个对象也不是一个功能,而是类、并联、操作时间和约束的集合。每次分解的各个子系统数目不能太多最底层子系统称为模块。
(2)确定并发、分析模型、现实世界及硬件中不少对象均是并发的。系统设计的一个重要目标就是确定哪些是必须同时,动作的对象,哪些不是同时动作的对象,后者可能放在一起而综合成单个控制线或任务。
(3)处理器及任务分配。各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体功能单元,必须完成下面工作:估计性能要求和资源要求,选择现实子系统的硬软件将软件子系统分配给各个处理器,以满足性能要求和极小化处理器之间的通信,决定现实各子系统的各物理单元的连接。
(4)数据存储管理:系统中的内部数据和外部数据的存储管理是一项重要的任务,通常各种数据的存储可以将数据结构化,数据库结合在一起,不同数据存储。要在费用,访问时间,容量及可靠性之中做折中考虑。
(5)全局资源的处理:必须确定全局资源,并且制定访问全局资源的策略,全局资源包括:物理资源、处理器、驱动器等。空间:如盘空间、工作站屏等。逻辑名称:如对象标识符、类名、文件名等。现实对并发系统的访问,以达到自身控制;如果资源是逻辑实体,如果对象是标示符,那么在共享环境中有冲突访问的可能,如独立的事物可能同时使用同一个对象标示符,则各个全局资源都必须有一个保护对象,保护对象来控制对该资源的访问。
(6)选择软件控制机制:分析模型中所有交互行为都表示为对象之间的事物,系统设计必须从多种方法中选择某种方法来实现软件的控制。
(7)人机交互接口设计:设计中的大部分工作都与稳定的状态行为有关,但必须考虑用户使用系统的交互接口。
三、简答题
1、可行性研究报告的主要内容有那些?
(1)引言:说明编写本文档的目的:项目的名称、背景、文档用到的专门术语和参考资料。
(2)可行性研究前提:说明开发项目的功能和基本要求,达到的目标,各种限制条件,可行性研究方法和决定可行性的主要因素。
(3)对现有系统的分析:说明现有系统后处理流程;工作负荷;项目费用支出;所学要各专业技术人员数量;所需要各种设备;现有系统存在什么问题。
(4)所建议系统的技术可行性分析:所建议系统的简要说明,处理流程和数据流程与现有的系统比较优越性,采用所建议系统对用户的影响,对各种设备,现有软件开发环境,运行环境的影响,对经费支出的影响,对技术可行性的评价。
(5)所建议系统的经济可行性分析:说明所建议系统的各种支出,各种效益,收益投资比,投资回收周期。
(6)社会因素可行性分析:说明法律因素,对合同责任,侵犯专利权,侵犯版权等问题的分析。
(7)其他可供选择方案并说明未被推荐的理由:逐一说明其他选择方案,说明用户可行性,是否满足用户行政管理,工作制度,人员素质的要求。
(8)结论意见:说明项目是否能开发,还需要什么条件才能开发,对项目目标有什么变动等。
2、什么是软件危机?软件危机的表现是什么?其产生的原因是什么?
答:软件发展第二阶段末期,由于计算机硬件技术的进步,计算机运行速度,容量,可行性有显著提高,生产成本显著下降,这为计算机的广泛应用创造了条件,一些复杂大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的需求。在软件开发中遇到的问题找不到解决放法,使问题累计起来,形成尖锐的矛盾,因而导致了软件危机。
软件危机表现在以下四个方面:
(1)经费预算经常突破,完成时间一再拖延。由于缺乏软件开发经验和软件开发数据的积累,使得开发工作的计划很难制定,主观盲目制定计划,执行起来与现实情况有很大差距,使得开发经费一再突破,由于对工作量估计不足,对开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。
(2)开发的软件不能满足客户要求,开发初期的客户要求了解不够明确,未能得到明确的表达,开发工作开始后,软件人员和又未能及时交换意见使得一些问题不能及时解决,导致开发的软件不能满足用户的要求,因而导致开发失败。
(3)开发软件的可维护性差。开发过程中没有同意的公认规范,软件开发人员按各自的风格工作,各行其是,开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改程序结构不好,运行时发现错误也很难修改,导致维护性差。
(4)开发软件可靠性差,由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时有没有严格的、充分的完全的测试提交给用户的软件质量差在运行中暴露出大量问题。
原因:
(1)软件规模越来越大,结构越来越复杂。(2)软件开发管理困难而复杂。(3)软件开发费用不断增加。(4)软件开发技术落后。(5)生产方式落后。
(6)开发工具落后,生产率提高缓慢。
3、软件质量保证应做好哪几个方面的工作?
答:(1)采用技术手段和工具:质量保证要贯彻开发过程始终必须采用技术和工具,尤其是使用软件开发环境来进行软件开发。
(2)组织正式技术评审:在软件开发的每一个阶段结束时,都要组织正式的技术评审,国家标准要求单位必须采用审查,文档评审,设计评审,审计和测试等手段来保证质量。
(3)加强软件测试:软件测试是软件质量的重要保证手段,因其可发现其中大量潜在错误。
(4)推行软件工程规范(标准):用户可以自己制定软件工程规范(标准),但标准一旦确定就应贯彻执行。
(5)对软件的变更进行控制:软件修改和变更常常会引起潜在的错误,因此必须严格控制软件修改和变更。
(6)对软件质量进行度量:即对软件质量进行跟踪,及时记录和报告软件质量情况。