第7章 软件工程(答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章软件工程
习题(答案)
一、选择题
1. D
2. B
3. C
4. B
5. A
6. C
7. A
8. D
9. BD 10. C
11. B 12. C
二、简答题
1.什么叫软件危机?
答:随着计算机应用的普及和深化,计算机软件的数量、规模、复杂程度和开发所需的人力、物力等都在急剧增加,计算机发展初期个人编写小程序的传统方法,已不再适合现代大型软件的开发,用传统方法开发出来的许多大型软件甚至无法投入运行。同时,由于计算机应用领域和硬件技术得到丁飞速发展,软件的生产速度、质量和规模远远适应不了对软件的需求,造成大量人力、物力、财力的浪费,在软件开发和维护过程中出现了巨大的困难。计算机领域把大型软件开发和维护过程中遇到的一系列严重问题称为“软件危机”(Software Crisis)。
2.软件危机的表现形式是什么?
答:软件危机的表现形式:
(1) 软件的质量难以保证
开发的软件可靠性差。由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时,又没有严格的、充分的、完全的测试,提交给用户的软件质量差,在运行中暴露出大量的问题。这种不可靠的软件,轻者会影响系统正常工作,重者会发生事故,造成生命财产的重大损失。
(2) 软件开发成本和开发进度难以控制
经费预算经常突破,完成时间一再拖延。由于缺乏软件开发的经验和软件开发数据的积累,使得开发工作的计算很难制定。主观盲目制定的计算,执行起来和实际情况有很大差距,使得开发经费一再突破。由于对工作量和开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。
(3) 软件的维护非常困难
开发的软件可维护性差。开发过程没有统一的、公认的规范,软件开发人员按各自的风格工作,各行其事。开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改。程序结构不好,运行进发现错误也很难修改,导致维护性差。
(4) 用户对“已完成”的软件系统不满意
开发的软件不能满足用户要求。开发初期对用户的要求了解不够明确,未能得到明确
表达。开发工作开始后,软件人员和用户又未能及进交换意见,使得一些问题不能及时解
3.什么叫软件工程?
答:软件工程是研究大规模程序设计的方法、工具和管理的一门工程科学,也就是运用系统的、规范的和可定量的方法来开发、运行和维护软件的系统工程。软件工程是—门交叉学科,涉及到计算机科学、管理科学、工程学和数学。软件工程的理论、方法、技术都是建立在计算机科学的基础上,它是用管理学的原理、方法来进行软件生产管理;用工程学的观点来进行费用估算、制定进度和实施方案;用数学方法来建立软件可靠性模型以及分析各种算法和性质。软件工程是指导计算机软件开发和维护的工程学科。
4.软件工程的目标是什么?
答:软件工程的目标可概括为:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需要的软件产品。
5.简述软件工程过程。
答:软件工程过程包含如下7个过程。
(1) 获取过程:获取过程为需方按合同获取一个系统、软件产品或服务的活动。
(2) 供应过程:供应过程为供方向需方提供合同中的系统、软件产品或服务所需的活动。
(3) 开发过程:开发过程为开发者和机构为了定义和开发软件或服务所需的活动。引过程包括需求分析、设计、编码、集成、测试、软件安装和验收等活动。
(4) 操作过程:操作过程为操作者和机构为了在规定的运行环境中为其用户运行一个计算机系统所需要的活动。
(5) 维护过程:维护过程为维护者和机构为了管理软件的修改,使它处于良好运行状态所需要的活动。
(6) 管理过程:管理过程为软件工程过程中各项管理活动,包括项目开始和范围定义;项目管理计划;实施和控制,评审和评价;项目完成。
(7) 支持过程:支持过程对项目的生存周期过程给予支持。它有助于项目的成功并能提高项目的质量。
6.简述软件生存周期。
答:软件生存周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。通常,软件生存周期包括可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等活动,可以将这些活动以适当方式分配到不同阶段去完成。
7.常见的软件开发模型有哪些?
答:常见的软件工程模型有:瀑布模型、螺旋模型、快速原型模型、智能模型等等。
8.简述喷泉模型。
答:喷泉模型是一种以用户需求为动力,以对象作为驱动的模型。它适合于面向对象的开发方法。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。喷泉模型使开发过程具有迭代性和无间隙性。系统某些部分常常重复工作多次,相关功能在每次迭代中随之加入演化的系统。无间隙是指在分析、设计和实现等开发活动之间不存在明显的
边界。
9.简述智能模型。
智能模型又称智能生存周期模型,是基于知识的软件开发模型,它把瀑布模型与专家系统结合在—起。该模型在实施过程中要建立知识库,将模型本身、软件工程知识与特定领域的知识分别存入数据库。以软件工程知识为基础的生成规则构成的专家系统与含应用领域知识规则的其他专家系统相结合,构成这一应用领域软件的开发系统。
10.简述模块划分的原则。
答:模块的划分不能够随意进行,而是应该遵循一定的原则:
(1) 划分的模块要有尽量高的功能独立性,而模块之间应该是低耦合(关联少)的。
(2) 模块的大小要适宜,过大,增加模块本身的复杂性;过小,模块数增多,会增加模块间关联度。
(3) 模块间接口是必须是明确的。
(4) 模块间可以有调用关系,这个调用的层次不能太多。
(5) 尽量注意提高模块的复用率,提高开发效率。
11.简述结构化方法遵循的原则。
答:结构化方法通常遵循以下原则:
(1) 用户参与的原则。由于整个软件开发工作的复杂性,用户的需求分析至关重要,但是,用户的需求不是一次就能够明确的,而是随着系统开发工作的深入,用户的需求表达和开发人员对用户需求的理解才能逐步明确、深化和细化。这就要求软件的开发要有用户的积极参与。否则,往往导致开发缓慢、不断反复、甚至失败。
(2) 先分析、再设计、后实现的原则。结构化方法强调在进行系统设计和系统实施之前,要先进行充分的需求调查与分析,进行可行性的论证,即首先解决系统“做什么”的问题,然后再进入系统设计、系统实施阶段,来解决“如何做”的问题。
(3) 自顶向下的原则。在系统分析、设计、实施等各阶段,结构化方法都强调“自项向下”的原则,即从总体目标和功能出发,逐级分解、逐步细化,将整个开发系统分解,先实现某些子系统,然后再实现总的目标和功能。遵循这个原则,可以将一个复杂的问题分解成若干个比较简单的问题分别加以解决,从而降低了解决问题的难度。
(4) 阶段成果文档化。结构化方法强调要将每一工作阶段的成果,用明确的文字和标准化的图形、表格等文档化工具进行完整而又准确的描述。这些文档即可标志阶段开发工作的结束,又是下阶段工作开展的主要依据。
12.简述软件质量的含义。
答:软件质量是贯穿软件生存期的一个极为重要的问题,关于软件质量的定义有多种说法,从实际应用来说,软件质量定义如下:
(1) 与所确定的功能和性能需求的一致性。
(2) 与所成文的开发标准的一致性。
(3) 与所有专业开发的软件所期望的隐含特性的一致性。
13.简述软件质量保证的含义
答:软件的质量保证就是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量活动,即确定、达到和维护需要的软件质量而进行的所有