软件工程—简答题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全国2010年10月
四、简答题
1. 简述软件危机产生的原因。
答案:软件危机产生的原因有:(每点1分)
(1)软件的规模越来越大,结构越来越复杂。
(2)软件开发的管理困难。由于软件规模大,结构复杂,又具有无形性,导致管理困难,进度控制困难,质量控制困难,可靠性无法保证。
(3)软件开发费用不断增加。软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多,周期长,费用上升很快。
(4)软件开发技术、开发工具落后,生产率提高缓慢。
(5)生产方式落后。软件仍然采用个体手工方式开发。
2. 简述需求分析的概念及需求分析的基本任务。
答案:需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。(3分)需求分析的基本任务是要准确地定义新系统的目标,为了满足用户需要,回答系统必须“做什么”的问题。(2分)
3. 简述数据流图的分类及每一类的特点。
答案:数据流图有两类:变换型数据流图和事务型数据流图。(1分)变换型数据流图是由输入、处理和输出三部分组成,(1分)因此变化型数据流图是一个顺序结构。(1分)事务型数据流图特征:事务处理中心将它的输入流分离成许多发散的数据流,形成许多加工路径,(1分)并根据输入的值选择其中一个路径来执行。(1分)
4. 简述建立对象模型的过程。
答案:建立对象模型的步骤如下:(每点1分)
(1)确定类:标出来自问题域的相关对象类。
(2)准备数据字典:为所有建模实体准备一个数据字典,准确描述各对象类的精确含义,描述当前问题中的类的范围,包括对类的成员、用法方面的假设或限制;
(3)确定关联:确定二个或多个类之间的相互依赖;
(4)确定属性:只考虑与具体应用直接相关的属性
(5)使用继承来细化类:使用继承来共享公共结构,以此来重新组织类__
全国2010年1月
1.简述软件工程面临的问题。
答:内容:①软件开发技术②软件开发管理面临的主要问题:①软件费用②软件可靠性③软件维护④软件生产率⑤软件重用
2.简述可行性研究报告包含的主要内容。
技术可行性:对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。包括:开发的风险;资源的有效性;技术;开发人员在评估技术可行性时,一旦估计错误,将会出现灾难性后果。
经济可行性:包括成本――效果分析、公司经营长期策略、开发所需的成本和资源、潜在的市场前景。
社会可行性包括:合同、责任、侵权、用户组织的管理模式及规范,其他一些技术人员常常不了解的陷阱等。
3.简述软件结构设计的优化准则。
答:(1)模块独立性准则,即尽量高内聚,低耦合,保持模块相对的独立性,并以此原则优化软件结构;(2)控制范围与作用范围之间的准则,一个模块的作用范围应在其控制范围之内,且条件判断所在的模块应与受其影响的模块在层次上尽量靠近;(3)软件结构的形态特征准则,软件结构的深度、宽度。扇入、扇出应适当;(4)模块的大小准则,模块的大小最好控制在50~150条语句左右,以便于阅读研究;(5)模块的接口准则,模块的接口要简单。清晰及含义明确,以便于理解、实现、测试和维护。
4.简述快速原型的开发步骤。
答:快速原型开发步骤可划分下列阶段:
(1)快速分析:迅速确定基本需求、集中力量确定需求说明。
(2)快速构造原型:在快速分析基础上,在强有力的软件工具支持下,快速构造所需原型。(3)运行原型:在开发者指导下,用户参与原型的运行,各类人员在共同运行原型中进一步加深对系统的了解及相互间的理解,以发现各种问题。
(4)评价原型;在运行基础上,根据原型目标,考核原型的特性,分析原型效果是否满足用户需求,提出修改意见。
(5)修改原型:在评价基础上进行修改。若不满足需求说明,则根据明确的需求修改原型。
若不满足用户需求,则先修改并明确用户需求,再重新构造原型。
2008年10月
1. 软件生存周期可以分为几个阶段,每个阶段的提交物是什么?
答案:(1)可行性研究和项目开发计划,提交项目开发计划和可行性分析报告;
(2)需求分析,提交软件需求说明书;
(3)概要设计,提交概要设计说明书;
(4)详细设计,提交详细设计说明书;
(5)编码,提交源程序清单;
(6)测试,提交测试报告;
(7)维护,提交维护报告。
(1点1分,答对5点以上可得满分)
2. 结构化分析的描述工具有哪些?简述结构化分析的步骤。
答案:结构化分析的描述工具有:(1)数据流图,(2)数据字典,(3)描述加工逻辑的结构化语言、判定表、判定树。(1分)
(1)了解当前系统的工作流程,获取当前系统的物理模型;(1分)
(2)抽象出当前系统的逻辑模型;(1分)
(3)建立目标系统的逻辑模型;(1分)
(4)作进一步补充和优化。(1分)
3. 什么是黑盒测试法?常用的黑盒测试方法有哪些?
答案:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。(1分)黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。黑
盒测试又称为功能测试。(2分)常用的黑盒测试方法有等价类划分、边界值分析、错误推测、因果图。(2分,每答对两个1分)
4. 简述面向对象的特征。
答案:(1)对象唯一性:每个对象都有自身唯一的标识,通过这种标识,可以找到相应的对象。(1分)
(2)分类性:分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。(1分)
(3)继承性:继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。(1分)
(4)多态性:多态性是指相同的操作或函数、过程作用于多种类型的对象上并获得不同的结果。不同的对象收到同一消息可以产生不同的结果。(2分)
2007年10月
1. 简述软件工程过程的含义、目的以及包含的子过程。
答案:软件工程过程规定了获取、供应、开发、操作和维护软件时,要实施的过程、活动和任务。(1分)其目的是为各种人员提供一个公共的框架,以便用相同的语言进行交流。(1分)
软件工程过程包含七个子过程:(3分)
(1)获取过程;
(2)供应过程;
(3)开发过程;
(4)操作过程;
(5)维护过程;
(6)管理过程;
(7)支持过程。
2. 数据字典的作用是什么,它有哪些条目?
答案:数据字典是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式,为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。(3分)[JP3]数据字典包含以下几个条目:数据流条目、数据存储条目、数据项条目、加工条目。(2分)3. 简述结构化程序设计方法的基本要点。
答案:(1)采用自顶向下、逐步求精的程序设计方法:在需求分析、概要设计中,都采用了自顶向下、逐层细化的方法。(1分)
(2)使用三种基本控制结构构造程序,分别是顺序、选择和循环,这三种基本结构的共同点是单入口、单出口,为自顶向下、逐步求精的设计方法提供了具体的实施手段。(2分)(3)采用主程序员组的组织形式:指开发程序的人员组织方式应用由一个主程序员、一个后备程序员和一个程序管理员三人为核心,再加上一些专家、其他技术人员组成小组。(2分)
4. 简述原型的开发步骤。
答案:(1)快速分析:在分析人员与用户紧密配合下,迅速确定系统的基本需求,根据原型所要体现的特征描述基本需求以满足开发原型的需要;(1分)
(2)构造原型:在快速分析的基础上,根据基本需求说明尽快实现一个可运行的系统;(1分)
(3)运行原型:这是发现问题、消除误解、开发者与用户充分协调的一个步骤;(1分)(4)评价原型:在运行的基础上,考核评价原型的特性,分析运行效果是否满足用户的愿