1、2013年三峡大学硕士研究生招生复试 软件工程 课程考试答案 (A卷) 一、选择题(每小题2分,共10分)1.B 2.A D 3.A 4.C 5.B二、判断题(每空2分,共10分) 1.XV 2.X 3.X 4. X V 5.XV三、名词解释(每小题5分,共20分)1. 软件软件工程过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤指导计算机软件开发和维护的一门工程学科2.系统流程图软件生命周期:描述软件开发过程中各种活动如何执行的模型概括的描绘物理系统的传统工具3.内聚性:内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素
2、彼此结合的紧密程度的度量3. 数据字典:简称,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述. 4.软件可靠性:程序在给定的时间间隔内,按照规格说明书的规定成功运行的概率。四、问答题 1说明软件危机及其表现,以及为什么会出现软件危机?什么是软件危机?软件危机的表现是什么?其产生的原因是什么?软件发展第二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产成本显著下降,这为计算机的广泛应用创造了条件。一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能
3、满足发展的需要。在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。 软件危机表现在以下四个方面: (1)经费预算经常突破,完成时间一再拖延。由于缺乏软件开发的经验和软件开发数据的积累,使得开发工作的计划很难制定。主观盲目制定计划,执行起来与实际情况有很大差距,使得开发经费一再突破。由于对工作量估计不足,对开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。 (2)开发的软件不能满足用户要求。开发初期对用户的要求了解不够明确,未能得到明确的表达。开发工作开始后,软件人员和用户又未能及时交换意见,使得一些问题不能及时解决,导致开发的软件不能满足用户的
4、要求,因而导致开发失败。 (3)开发的软件可维护性差。开发过程中没有同意的、公认的规范,软件开发人员按各自的风格工作,各行其是,开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改。程序结构不好,运行时发现错误也很难修改,导致维护性差。 (4)开发的软件可靠性差。由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时,又没有严格的、充分的、完全的测试,提交给用户的软件质量差,在运行中暴露出大量的问题。 造成软件危机的原因是: (1)软件的规模越来越大,结构越来越复杂。(2)软件开发管理困难而复杂。(3)软件开发费用不断增加。(4)软件开发技术落后。(5)生产方式落后。6)开发工具落后
5、,生产率提高缓慢。2.主要的软件开发方法有哪些?主要有何不同?答:主要开发方法有结构化方法、面向对象的开发方法。结构化方法有结构化分析、设计、程序设计组成,是一种以数据为中心的开发方法。它的基本原则是分解与抽象。在问题域进行分解与抽象,以数据流程图为主要工具,建立数据处理模型,然后把它转换到求解域的系统结构模型。结构化方法比较成熟,是基于瀑布模型的方法,至今还广泛应用。面向对象的方法以对象为中心。按照人们认识自然界的规律把客观世界的实体划分为对象,对象是分析和解决问题的核心。而问题域的对象和求解域的对象有着一致的对应关系,不需转换。其基本原则依然是分解、抽象。只不过对象是比模块更高一级的抽象,
6、它不但封装了模块,更重要的是封装了数据,模块是操作这些数据的程序。开发方法正是由于像客观世界的实体一样面向对象,所以不但定义了对象,还定义了对象的继承关系,使得软件的复用在面向对象的设计中成了自然而然的事情。因而面向对象的方法已经成为软件工程主要的开发方法。2、可行性研究有哪些步骤?a.确定项目规模和目标b.研究正在运行的系统c.建立新系统的高层逻辑模型d.导出和评价各种方案 e.推荐可行的方案 f.编写可行性研究报告3.什么是详细设计需求分析,?及其主要任务?编写软件的“详细设计说明书”.软件人员要完成的工作:(1) 为每一个模块确定采用的算法, 选择某种适当的工具表达算法的过程,写出模块的
7、详细过程描述.(2) 确定每一模块使用的数据结构.(3) 确定模块结构的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及关于模块输入数据、输出数据及局部数据的全部细节.(4) 为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试.需求分析阶段的基本任务是什么?需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。需求分析阶段的基本任务是: (1) 问题识别:双方对问题的综合需求:a.功能需求b.性能需求c.环境需求d.用户界面需求
8、. (2) 分析与综合,导出软件的逻辑模型. (3) 编写文档4.什么是黑盒测试,白盒测试?它们主要采用的技术有哪些?1.黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程序的内部逻辑结构。测试者把被测程序看成一个黑盒,不用关心程序的内部结构。黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试主要采用的技术有:等价分类法、边沿值分析法、错误推测法和因果图等技术。2白色测试指:测试者了解被测程序的内部结构和处理过程,对程序的所有逻辑路径进行测试,在不同点检
9、查程序状态,确定实际状态与预期状态是否一致。白盒测试主要采用的技术有:路径测试技术和事务处理流程技术,对包含有大量逻辑判断或条件组合的程序采用基于逻辑的测试技术。4软件质量保证应做好哪几方面的工作?解:软件质量保证是软件工程管理的重要内容,软件质量保证应做好以下几方面的工作: (1)采用技术手段和工具。质量保证活动要贯彻开发过程始终,必须采用技术手段和工具,尤其是使用软件开发环境来进行软件开发。 (2)组织正式技术评审。在软件开发的每一个阶段结束时,都要组织正式的技术评审。国家标准要求单位必须采用审查、文档评审、设计评审、审计和测试等具体手段来保证质量。 (3)加强软件测试。软件测试是质量保证
10、的重要手段,因为测试可发现软件中大多数潜在错误。 (4)推行软件工程规范(标准)。用户可以自己制定软件工程规范(标准),但标准一旦确认就应贯彻执行。 (5)对软件的变更进行控制。软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的修改和变更。 (6)对软件质量进行度量。即对软件质量进行跟踪,及时记录和报告软件质量情况。(1) 你使用的配置管理工具是什么?其版本存取的控制流程是什么? 在VSS和CVS中选择其中之一进行回答: VSS: 开发人员从项目数据库中检出需要变更的配置对象,系统同时将配置库中的该对象进行加锁; 开发人员完成修改并通过检测后,将修改后的对象登入配置库中,系统解除该版
11、本的封锁,形成一个新的版本。CVS: 开发人员从项目数据库中检出需要变更的配置对象;开发人员在自己的工作空间中进行修改,在通过检测后提交修改后的配置对象,并使用系统命令与原有版本进行合并,形成一个新的版本。(2) 为什么需要定义软件需求的优先级? 软件开发很难在规定的时间内实现所有的需求,通过定义需求的优先级,可以在保证核心功能的前提下削减部分需求,从而将有限的开发力量投入到核心功能的开发上,同时确保了开发进度。 (3) 为什么需要将整个系统划分成若干子系统?子系统的划分应符合什么原则? 划分子系统可以降低系统的复杂性,也有利于开发的组织。 子系统的划分应符合“高内聚低耦合”的原则。 (4) 分析类图与设计类图有什么不同? 分析类图是面向问题域建模,不关注技术实现问题; 设计类图是面向实现域建模,它以分析类图为基础集中研究实现问题。 (5) 在类设计中,你建议使用什么方法进行属性的设置和读取?这样做有什么好处? 在类设计中,建议使用set方法和get方法进行进行属性的设置和读取; 好处:降低类之间的耦合度。