软件工程课后习题及其答案.doc_第1页
软件工程课后习题及其答案.doc_第2页
软件工程课后习题及其答案.doc_第3页
软件工程课后习题及其答案.doc_第4页
软件工程课后习题及其答案.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论