1、软件工程课后习题及其答案软件工程习题CH1一、填空题一、软件工程需要解决的问题包括: 费用 、 靠得住性 、 可保护性 、 生产率 和 重用 。二、到目前为止,软件生产的进展经历了三个阶段,即 程序设计 、 程序系统 和 软件工程 。3、运算机科学中的研究曾国都可用于软件工程,但运算机科学偏重于 原理和理论 ,而软件工程偏重于 软件系统构造 。4、软件工程有效管理科学的方式和原理进行 软件生产的管理 。五、软件工程是用科学知识和技术原理来 概念 、 开发 、 保护 软件的一门科学。六、软件工程研究的主要内容包括软件开发技术和软件开发管理技术两个方面。在软件开发技术方面,主要研究 开发方式、 开
2、发进程、 开发工具 。在软件开发管理技术方面主要研究 管理学 、 经济学 、 心理学 。7、作为一门交叉学科,软件工程具有很强的综合性,它涉及 运算机科学 、 工程科学 、 管理科学 、 数学 等领域。八、软件生产周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。通常包括 问题概念、可行性研究 、需求分析 、 整体设计 、 详细设计 、 编码 、测试 、 保护 等活动,能够将这些活动以适当方式分派到不同阶段去完成。九、开发软件工具的主要目的是为了提高软件生产效率和改善 软件的质量 。10、描述软件开发进程中各类活动如何执行的模型称为周期 模型。1一、从软件工程诞生以来,已经提出了
3、多种软件开发方式,如 结构化方式 、 面向数据的方式 、 面向对象的方式 ,它们对软件工程及软件产业的进展起到了不可估量的作用。1二、结构化方式由 结构化分析 、 结构化设计 和 结构化程序设计 组成。它是一种面向 数据流 的开发方式。13、 增量 模型是一种非整体开发方式的模型。软件在该模型中是“逐渐”开发出来的,开发一部份向用户展示一部份,可让用户及早看到部份软件,及早发觉问题。或先开发一个“原型”软件,完成部份主要功能,展示给用户并征求意见,然后慢慢完善,最终取得满意的软件产品。14、喷泉模型是一种以 用户需求 为动力,以 对象 作为驱动的模型,适合于 面向对象 的开发方式。它克服了瀑布
4、模型不支持软件重用和多项开发活动集成的局限性。喷泉模型使开发进程具有 迭代性 和 无间隙性 。1五、结构化方式总的指导思想是 自顶向下慢慢求精 。它的大体原则是功能的 分解 和 抽象 。它是软件工程中最先出现的开发方式,特别适用于 数据处置领域 的问题。1六、螺旋模型将 瀑布 模型和 增量 模型结合起来,加入了两种模型均忽略了的风险分析,弥补了这两种模型的不足。17、螺旋模型将开发进程分为几个螺旋周期,在每一个螺旋周期内分为4个工作步骤。第一步 制定计划 ,肯定目标,选定实施方案,明确开发限制条件。第二步 风险分析 ,分析所选方案、识别风险,通过原型消除风险。第三步 开发实施 ,实施软件开发。
5、第四步 用户评估 ,评价开发工作,提出修改意见,成立下一周期的计划。1八、面向对象开发方式包括 面向对象分析 、 面向对象设计 、 面向对象实现 三部份。1九、目前有若干种软件生存周期模型,例如 瀑布 模型、 增量 模型、 螺旋 模型、 喷泉 模型、原型模型、RUM模型。20、瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。它包括 问题概念 、 可行性研究 、 需求分析 、 整体设计 、 详细设计 、 编码 、 测试 、 保护 , 它规定了由前至后、彼此衔接的固定顺序,犹如瀑布流水,逐级下落。 2一、简单实用、应用普遍、技术成熟的开发方式是 结构化方式 。2二、增量构造模
6、型是在前面的开发阶段按 瀑布模型 进行 整体开发 ,后面的开发阶段按 增量方式 开发。23、增量模型是在项目的开发进程中以一系列的 增量方式 开发系统。增量方式包括 增量开发 和 增量提交 。24、按照原型的目的、方式和内容的取舍不同,原型特征可分为 可执行的规格说明 、 基于脚本的设计 、 采用专门语言 和 能重用软件 四类。2五、增量构造模型是在瀑布模型的基础上,对一些阶段进行 整体开发 ,对另一些阶段进行 增量开发 。2六、增量开发是指在项目开发周期内,以必然的时刻距离开发部份工作软件 ;增量提交是指在项目开发周期内,以必然的时刻距离 增量方式 向用户提交 工作软件 及 相应文档 。27
7、、原型模型又称 快速原型模型 ,它是 增量模型 的另一种形式。2八、快速原型模型按照原型的不同,有 探索型 原型、 实验型 原型、 演化型 原型三类。2九、原型开发步骤包括: 快速分析 、 构造原型 、 运行原型 、 评价原型 和 修改 。30、快速原型的思想是在研究 需求分析 的方式和技术中产生的。3一、瀑布模型本质上是一种 线性 顺序模型。3二、对于演化型,用原型进程代替 全数开发 阶段。这是典型的演化提交模型的形式,它是在强有力的 软件工具支持下,通过原型进程的 反复循环 ,直接取得 软件系统 。33、快速原型是利用原型辅助软件开发的一种思想。通过简单 快速分析 , 快速实现 一个原型,
8、用户与开发者在 试用原型、反复评价 进程中增强通信与反馈,通过 改良原型 ,减少误解,弥补遗漏,适应转变,最终提高软件质量。34、探索型的原型模型是把原型用于开发的 需求分析 阶段,目的是要弄清 用户需求 ,肯定 所期望的特性 ,并探索各类方案的 可行性 。3五、构造原型时,必需注意 功能性能 取舍,忽略一切暂不时不关心的部份。3六、用原型进程来代替设计阶段,考查设计方案的可行性与合理性,这是快速原型的 实验型 原型。37、探索型的原型模型主要针对开发 目标模糊 、 用户与开发者对项目都缺乏经验 的情形,通过对原型的开发来明确 用户的需求 。3八、用原型进程代替全数开发阶段,这种快速原型是 演
9、化型 原型。3九、快速原型模型是在 原型 基础上,逐渐完成整个系统的开发工作。40、实验型原型主要用于 设计 阶段,考核 实现方案 是不是适合和 可否实现 。4一、对于实验型,用原型进程来代替 设计 阶段,即在 设计 阶段引入原型,快速分析 实现方案 ,快速构造原型,通过运行,考查设计方案的 可行性与合理性 ,原型成为设计的 整体框架 或 设计结果 的一部份。4二、软件开发中的原型是软件的一个初期可运行的版本,它反映了最终系统的重要特征 。43、增量模型按照增量方式和形式的不同,分为 渐增 模型和 原型 模型。44、若原型不知足需求说明,则按照明确的要求修改 原型 ,若原型不知足用户需求,则修
10、改和规定 需求说明 ,从头构造原型。4五、瀑布模型 不 适应需求可变的软件开发,只有到 开发结束 才能见到整个软件系统。4六、用原型进程来代替需求分析、使需求说明完整、一致、准确,这种快速原型是探索型原型。47、瀑布模型属于 整体 开发模型,增量模型属于 非整体 开发模型。4八、增量模型在开发进程中以一系列 增量方式 开发系统,推延某阶段的 细节 ,从而 及早 产生工作软件。4九、软件原型是软件的 初期 可运行版本,反映最终系统的 重要特性 。50、增量构造模型在 需求分析和设计 阶段按整体方式开发,但在 编码和测试 阶段按增量方式开发。二、选择题一、软件是一种( B )产品。 A. 有形 B
11、. 逻辑 C.物质 D.消耗二、软件工程学的目的应该是最终解决软件生产率的( B )问题。 A.提高软件开发效率 B.使软件生产工程化 C.消除软件危机 D.增强软件的质量保证3、与运算机科学的理论研究不同,软件工程是一门( B )学科。 A.理论性 B.工程性 C.原理性 D.心理性4、软件危机的主要原因有( C )。 软件本身的特点 用户利用不妥 硬件靠得住性差 对软件的错误熟悉 缺乏好的开发方式和手腕 A. B. C. D.五、在运算机软件开发和保护中所产生的一系列严峻的问题通常称为“软件危机”,这些问题中相对次要的因素是( D )。 A. 文档质量 B.开发效率 C.软件功能 D.软件
12、性能六、软件工程与运算机科学性质不同,软件工程着重于( C )。 A.原理探讨 B.理论研究 C.构造软件系统 D.方式的应用7、软件工程学科出现的主要原因是( C )。 A.运算机的进展 B.网络的进展 C.软件危机的出现 D.程序设计方式学的影响八、软件工程方式学的研究内容包括软件开发技术和软件开发管理两个方面,其期望达到的最终目标是( A )。 A.软件开发工程化 B. 消除软件危机 C.实现软件可重用 D.程序设计自动化九、由于软件生产的复杂性和高本钱性,使大型软件的生产出现危机,软件危机的主要表现包括了下述( D )方面。 生产本钱太高 需求增加难以知足 进度难以控制 质量难以保证
13、A. B. C. D.全数10、软件生存周期模型有多种,下列选项中,( C )模型不是软件生存周期模型。 A.螺旋 B.增量 C. 功能 D.瀑布1一、结构化方式和原型化方式是软件开发中常常利用的两种大体方式,在实际的应用中,它们之间的关系表现为( B )。 A.彼此排斥 B.彼此补充 C.交替利用 D.独立利用1二、软件生存周期包括可行性研究、需求分析、整体设计、详细设计、编码、( B )和保护。 A. 工具 B.测试 C.方式 D.文档13、软件开发的瀑布模型,一般都将开发进程划分为:分析、设计、编码和测试等阶段,一般以为可能占用人员最多的阶段是( C )。 A.分析阶段 B.设计阶段 C
14、.编码阶段 D.测试阶段14、解决“软件系统做什么”是( C )阶段的任务。 A.可行性研究 B.详细设计 C.需求分析 D.编码1五、瀑布模型中软件生命周期划分为8个阶段:问题概念、可行性研究、需求分析、整体设计、详细设计、编码、测试、保护。8个阶段又可划分为三个周期:计划、开发和( A )。 A.运行 B.可行性研究 C. 详细设计 D.测试与排错1六、从传统瀑布模型看,在软件生命周期中的8个阶段中,下面( C )选项对软件的影响最大。 A.详细设计阶段 B. 整体设计阶段 C. 需求分析阶段 D.测试和保护阶段17、在瀑布模型中,( A )阶段概念的标准将成为软件测试中的系统阶段测试目标
15、。 A.需求分析阶段 B.整体设计阶段 C.详细设计阶段 D.可行性研究阶段1八、软件生存周期中时刻最长的阶段是( D )。 A.需求分析阶段 B.整体设计阶段 C.测试阶段 D.保护阶段1九、检查软件产品是不是符合需求概念的进程称为( B )。 A.集成测试 B.确认测试 C.验证测试 D.验收测试20、在软件生存周期中,用户主如果在( A )参与软件开发。 A.软件概念期 B.软件开发期 C.软件保护期 D.整个软件生存周期2一、螺旋模型将瀑布模型和增量模型结合,并增加了( B )。 A.系统工程 B.风险分析 C.设计评审 D.进度控制2二、螺旋模型在( D )基础上,沿着螺线自内向外每
16、旋转一圈,就取得元宵的一个新版本。 A.模块划分 B.子程序分解 C.设计 D.原型23、喷泉模型描述了( A )的开发模型,它表现了这种开发方式创建软件的进程所固有的迭代和开发各阶段之间无“间隙”的特征。 A.面向对象 B.面向数据流 C.面向数据结构 D.面向数据驱动24、瀑布模型中,( D )阶段概念的标准将成为软件测试中的系统测试阶段的目标。 A.详细设计阶段 B.整体设计阶段 C.可行性研究阶段 D.需求分析阶段2五、增量模型是一种( B )模型。 A.整体开发 B.非整体开发 C.灵活性差 D.较晚产生工资软件2六、增量模型是( C )。 A.与瀑布模型无关 B.与原型模型有关 C
17、.瀑布模型的改良 D.原型模型的变种三、简答题一、什么是软件危机?它有哪些典型表现?为何会出席软件危机 答: 通常把在运算机软件的开发与保护进程中所碰到的一系列严峻问题笼统地称为软件危机。软件危机主要表现: 对软件开发本钱和进度的估量常常很不准确(效率低) 用户对“已完成的”软件系统不满意的现象常常发生(需求不准) 软件产品的质量往往靠不住(质量差) 软件常常是不可保护的(保护难) 软件通常没有适当的文档资料(重用差) 软件本钱在运算机系统总本钱中所占的比例逐年上升(本钱高) 软件开发生产率提高的速度远远跟不上运算机应用迅速普及深(性能低) 入的趋势 产生软件危机的原因: 客观原因:软件是运算
18、机系统中的逻辑部件而不是物理部件,其显著特点是“可见性”,因此,管理和控制软件开发进程相当困难。另外,软件保护通常意味着更正或修改原有的设计,从而使得软件较难保护。 软件的另一个突出特点是规模庞大,而持续复杂性将随着程序规模增加以指数速度上升。软件可能具有的状态通常都是天文数字,无法完全预见软件可能碰到的每一种情形。 主观原因:在运算机系统进展初期阶段开发软件的个体化特点,使得许多软件工程师对软件开发和保护有很多糊涂熟悉,在实际工作中或多或少地采用了错误的方式,这是使软件问题进展成软件危机的主要原因。错误的熟悉和做法主要表现为,轻忽软件需求分析的重要性,以为软件开发就是写程序,轻视软件保护。必
19、需熟悉到程序只是完整的软件产品的一个组成部份,一个软件产品必需由一个完整的配置组成。软件配置包括程序、文档和数据。严酷的事实是,在软件开发后期阶段引入一个变更比在初期引入同一个变更所需付出的代价高几百倍。所谓软件保护就是在软件开发工作结束以后在利用现场对软件进行修改。因此,保护是极端艰苦复杂的工作,需要花费专门大代价。由此可见,轻视软件保护是一个最大的错误。软件工程的一个重要目标就是提高软件的可保护性,减少软件保护的代价。二、什么是软件工程?它有哪些本质特征?如何用软件工程消除软件危机?答:软件工程是指导运算机软件开发和保护的一门工程学科,该学科的目的是生产出能按期交付的、在预算范围内的、知足
20、用户需求的、质量合格的软件产品。软件工程具有下述本质特性:(1)软件工程关注大型程序的构造(2)软件工程的中心课题是控制复杂性(3)软件常常转变(4)开发软件的效率超级重要(5)和谐的合作是开发软件的关键(6)软件必需有效地支持它的用户(7)由具有一种文化背景的人代替具有另一种文化背景的人创造产品软件工程的7条原理是消除软件危机的保证:(1)用生命周期计划严格管理 (2)坚持进行阶段评审(3)实行产品一致性控制(4)采用最新的软件设计技术 (5)清楚地审查软件产品 (6)开发小组的人员应该少而精 (7)承认不断改良软件工程实践的必要性 3、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、
21、增量原型模型和螺旋模型。 答: 软件生命周期模型归纳地描述软件进程,规定了软件进程包括的各个阶段,和完成这些阶段的顺序。典型的生命周期模型有:(1)瀑布模型瀑布模型规定了各项软件工程活动自上而下,彼此衔接的固定顺序,犹如瀑布流水,逐级下落。长处:强迫开发人员采用规范的技术方式;严格地规定了每一个阶段必需提交的文档;每一个阶段提交的产品必需通过质量保证小组的仔细验证。 缺点:在可运行的软件产品交付给用户之前,用户只能通过文档来了解未来的产品是什么样的;开发人员与用户之间缺乏有效的沟通,极可能致使最终开发的软件产品不能真正知足用户的需求。(2)快速原型瀑布型模型的缺点在于软件开发阶段推动是直线型的
22、,工程实践说明这是一个“理想化”模型,不完全符合人们熟悉问题的规律。原型化开发方式主要思想是:先成立一个能够反映用户需求的原型系统(“样机”),使得用户和开发者能够对目标系统的概貌进行评价、判断。然后对原型进行若干轮反复的扩充、改良、求精,最终成立完全符合用户需求的目标系统。初始原型能够超级简单,它只实现未来系统的主要功能,系统主要模块之间的重要接口。初始原型主要用于向用户展示系统功能概貌。确认开发人员对系统主要功能的理解。对系统应该具有的功能的演示运行通常能够对用户与开发人员之间的沟通起到催化剂作用,确立用户对项目开发的信心。 长处:任何功能一经开发就可以进入测试以便验证是不是符合产品需求。
23、 帮忙导引出高质量的产品要求。若是没有可能在一开始就弄清楚所有的产品需求,它们能够分批取得。而对于已提出的产品需求,则可按照对现阶段原型的试用而做出修改。 风险管理能够在初期就取得项目进程数据,可据此对后续的开发循环做出比较切实的估算。提供机缘去采取初期预防办法,增加项目成功的机率。 大大有助于初期成立产品开发的配置管理,产品构建,自动化测试,缺点跟踪,文档管理。均衡整个开发进程的负荷。 开发中的经验教训能反馈应用于本产品的下一个循环进程,大大提高质量与效率。 若是风险管理发觉资金或时刻已超出可经受的程度,则能够决定调整后续的开发,或在一个适当的时刻结束开发,但仍然有一个具有部份功能的,可工作
24、的产品。 心理上,开发人员早日见到产品的雏型,是一种鼓舞。 利用户能够在新的一批功能开发测试后,当即参加验证,以便提供超级有价值的反馈。 可使销售工作有可能提前进行,因为能够在产品开发的中后期取得包括了主要功能的产品原型去向客户作展示和试用。 缺点:“模型效应”对于开发者不熟悉的领域把次要部份看成主要框架,做出不切题的原型。原型迭代不收敛于开发者预先的目标。即每次更改,为了消除错误,次要部份愈来愈大,“淹没”了主要部份。原型过快收敛于某些特定需求,而忽略了一些大体点,专门是与系统大体性能有关的部份。资源计划和管理较为困难,随时更新文档也带来麻烦、版本控制可能致使失控。长期在原型环境上开发,只注
25、意取得满意的原型,容易“遗忘”用户环境和原型环境的不同。(3)增量模型增量模型把软件产品作为一系列的增量构件来设计、编码、集成和测试。每一个构件由多个彼此作用的模块组成,而且能够完成特定的功能。利用增量模型时,第一个增量构件往往实现软件的大体需求,提供最核心的功能。特点:以功能递增的方式进行软件开发能较快地产生可操作的系统;在每一步递增中,都能够把用户/开发者的经验结合到不断求精的产品中;从而利用户有比较丰裕的时刻学习和适应新软件,减少全新软件给客户组织带来的冲击;可改善测试效果和降低软件开发总本钱。(4)螺旋模型将瀑布模型、原型模型等结合起来,并强调风险分析。4、试述软件生命周期8个阶段要解
26、决的关键问题和里程碑阶段关键问题里程碑问题定义要解决的问题是什么?关于规模和目标的报告书可行性研究有可行的解吗?系统的高层逻辑模型需求分析系统必须做什么?系统的逻辑模型总体设计概括地说,应该如何解决这个问题?系统层次图或结构图详细设计怎样具体地实现这个系统?编码规格说明编码和单元测试正确的程序模块源程序、单元测试方案和结果综合测试符合要求的软件综合测试方案和结果、软件配置维护持久地满足拥用户需要维护记录Ch2 可行性研究一、填空题一、 软件可行性研究 的目的就是用最小代价在尽可能短的时刻内肯定该软件项目是不是能够开发、是不是值得开发。二、可行性研究的目的不是是开发一个软件项目,而是研究那个项目
27、是不是 值得去开发、其中的问题可否解决 。3、可行性研究的本质是要进行一次简化、紧缩了 需求分析 和 设计 进程,要在较高层次上以较抽象的方式进行需求分析和设计进程。4、可行性研究需要从 技术 可行性、 经济 可行性、社会 可行性和 操作 可行性四个方面分析研究每种解决方案的可行性。五、技术可行性是对开发项目的 功能 、 性能 、 限制条件 进行分析,肯定现有资源条件下,技术风险有多大,项目是不是能实现。六、经济可行性一般要考虑的情形包括: 本钱 和 效益 。7、技术可行性的研究包括: 本钱-效益分析 、 公司经营的长期策略 、 开发所需要的本钱和资源 和 潜在的市场前景 。八、社会可行性所涉
28、及的范围包括 合同 、 责任 、 侵权 、用户组织的管理模式、范围和其他一些技术人员常常不了解的陷阱。九、典型的可行性研究有以下步骤:肯定项目的规模和目标、 研究正在运行的系统 、 成立新系统的高层逻辑模型 、导出和评价各类方案、推荐可行的方案和编写可行性研究报告。10、一个可行性研究报告的主要内容如下:引言、可行性研究的前提、对现有系统的分析 所建议系统的技术的可行性 、 所建议系统的经济可行性 、 社会因素可行性分析 、其他可供选择的方案、结论意见。1一、系统效益=经济效益+ 社会效益 。1二、效益分有型效益和 无形效益 两种。13、项目开发计划的主要内容:项目概述、 实施计划 、 人员组
29、织及分工 和交付期限。14、纯收入= 经济效益 - 投资。1五、系统流程图图形符号表示系统中各个元素之间的 信息流动 。1六、软件工程有两种效益,它们是 有形效益 和 无形效益 。17、可行性的最后一个步骤是 编写可行性研究报告 。1八、系统的经济效益等于 因利用新的系统而增加的收入 加上 利用新的系统能够节省的运行费用 。1九、经费利用是不是合理是从 社会角度 评价开发一个新的软件项目是不是可行。20、可行性研究中描述系统高层次物理模型的工具是 系统流程图 。2一、可行性研究的本质是进行一次简化、紧缩了的 需求分析和设计 。2二、可行性研究的第一个步骤是 肯定项目的规模和目标 。二、选择题一
30、、研究开发资源有效性是进行( A )可行性研究的一个方面 A. 技术 B. 经济 C. 社会 D. 操作二、在软件可行性研究中、能够从不同的角度对软件进行研究,其中是从软件的功能可行性角度考虑的是( B )可行性 A. 经济 B. 技术 C. 操作 D. 社会3、在遵循软件工程原则开发软件进程中,计划阶段应该依次完成( B ) A. 可行性研究、需求分析、问题概念 B. 问题概念、可行性研究、 需求分析 C. 需求分析、问题概念、可行性研究 D.可行性研究、问题概念、需求分析4、技术可行性要解决( D ) A. 存在侵权否 B. 本钱-效益问题 C. 运行方式可行 D.技术风险问题五、制定软件计划的目的在于及早对欲开发的软件进行合理估价,软件计划的任务是( D ) A. 组织与管理 B. 分析与估算 C. 设计与测试 D. 计划与调度六、可行性研究中,系统流程图用于描述( A ) A. 当前运行的系统 B. 当前逻辑模型 C. 目标系统 D.新系统7、研究软硬件资源的有效性是进行( A )可行性研究的一方面。 A. 技术 B. 经济 C. 社会 D. 操作八、可行性研究要进行的需求分析和设计应是( C )。 A. 详
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1