软件工程习题集答案_第1页
软件工程习题集答案_第2页
软件工程习题集答案_第3页
软件工程习题集答案_第4页
软件工程习题集答案_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程习题集答案第一章 软件工程概述作业答案一、名词解释1. 软件软件是计算机程序以及开发、使用和维护程序所需要的所有文档。软件是包括程序、数据及其相关文档的完整集合。2. 软件危机软件生产的进度、 数量、 质量、 成本满足不了社会对软件的需求量和希望的现象, 称为 “软件危机”。软件工程IEEEIEE93:软件工程是将系统的、规范的、可度量的工程化方法应用于软件开发、 运行和维护的全过程及上述方法的研究。4. 软件生存周期软件生存周期是指一个软件从提出开发要求开始直到不再使用 (报废 为止的整个时期。 5. 软件过程模型软件过程指为获得高质量软件所需要完成的一系列任务以及完成这些任务的工作

2、步骤。 过程还规定了运用的方法的顺序、 应该交付的文档资料、 为保证软件质量和协调变化所需要 采取的管理措施、任务完成的标志等。软件过程模型也叫软件生存期模型、软件工程范型,是软件过程的一种抽象表示。二、填空题1、在信息处理和计算机领域内,一般认为软件是 程序 、 数据 和 文档的集合 。2、 软件生产的发展经历了 程序设计 时代、 程序系统 时代和 软件工程 时代, 各时 代的生产方式分别是 个体 、 作方式 和 工程化 。3、 软件生存周期的 8个阶段分别是 问题定义 、 可行性研究 、 需求分析 、 概要设计 、 详细设计 、 编码与模块测试 、 综合测试 、 维护 。4、 软件工程是利

3、用工程化的原理和方法来进行 开发 、 维护 和 管理 软件的一门 学科。5、描述软件开发过程中各种活动如何执行的模型称为 软件过程 模型。6、瀑布模型 不 适应需求可变的软件开发,只有到 最后 才能见到整个软件系统。7、 软件产品的生产主要是研制,软件产品的成本主要体现在8、软件工程面临的问题有 软件费用 、 可靠性 、 可维护性 、 生产率 。三、单项选择题1、软件文档是( C 。A. 程序 B.工具 C.文书和资料 D.数据2、软件是一种( B 性工业产品A. 理论 B.知识(或逻辑 C.消耗 D.体力3、与计算机科学的理论研究不同,软件工程是一门( B 的学科。A .理论性 B.工程性

4、C.原理性 D.心理性4、软件工程与计算机科学的性质不同,软件工程着重于( B A .理论研究 B.建造软件系统 C.原理探讨 D.原理的理论 5、软件工程学科出现的直接原因是( C 。A .计算机的发展 B.其它工程学科的影响C. 软件危机的出现 D.程序设计方法学的影响6、软件工程方法学的研究内容包含软件开发技术和软件工程管理两个方面,以期达到的最 终目标是( A A .软件开发工程化 B.消除软件危机C. 实现软件可重用 D.程序设计自动化7、由于软件生产的复杂性和高成本,使大型软件的生成出现危机,软件危机的主要表现包 括了下述( D 方面。生产成本过高 需求增长难以满足进度难以控制 质

5、量难以保证A . B. C. D.全部8、软件的主要结构和功能是在( A 阶段决定的。A. 分析设计 B.编程 C.测试 D.维护9、有关计算机程序功能、设计、编制、使用的文字或图形资料称为【 B 】 。A. 软件 B.文档 C.程序 D.数据10、软件生成周期模型有多种,下列选项中, 【 C 】不是软件生存周期模型。A. 螺旋模型 B.增量模型 C.功能模型 D.瀑布模型四、简答题1. 软件产品的特点是什么? 软件是一种逻辑产品,无形态,具有抽象性。软件是开发而形成的,无明显的制造过程。与硬件相比,软件开发更依赖于开发人员 的业务素质、 智力以及人员的组织、 合作和管理。 软件成本集中在开发

6、上, 主要反映在人力 成本上,而且开发成本难以估计。软件不会“磨损”和老化,但存在退化问题。大多数软件是定做的,不是通过已有构件组装而成。主要靠脑力劳动生产。开发和维护成本高。2. 软件生产经历了哪几个时代,各有何特征?软件生产经历了三个时期:(1程序设计时期(19461956 软件 =程序主要特征:计算机硬件 =计算机用途少,规模小;不作为商品;开发者 =使用者:自己开发,自己使用。(2程序系统时期(19561968 软件 =程序 +说明主要特征:程序规模增大,多人分工合作。软件作为商品,即程序设计者使用者;程序开发和使用的文档资料已不可缺少。(3软件工程时期(1968现在 软件 =程序 +

7、数据 +文档主要特征:按工程管理的方法管理整个软件开发过程。3. 软件危机是如何产生的?其表现形式是什么?试说明产生危机的原因?大规模集成电路出现后,性能大大提高,推动了计算机的广泛应用,促进了大规模软件 系统的设计。 但由于软件开发方法不适应规模较大的项目的开发, 因而出现了比计划延迟交 付、 费用比预算增加很多、 功能和质量不能满足用户要求, 维护困难等问题, 造成了软件危 机。主要表现:(1软件开发:软件开发过程和成本无法有效控制,延迟交付且成本逐年上升;软件开发生产率提高的速度跟不上需求的增加;用户需求模糊,用户对已完成的软件系统不满意;没有确保质量的有效措施,软件产品的质量靠不住。(

8、2软件维护:软件常常是不可维护的(缺乏文档或文档质量 。维护花费的时间和费用占整个软件开发组织的 60%以上。原因:(1客观原因:软件规模越来越大,结构越来越复杂,使得开发和管理都变得困难。但是:软件是手工劳动,是智力产品 -生产率低。软件是逻辑实体,出错容易,纠错困难。软件的复杂性使得仅靠人的智力难以驾驭。(2主观原因开发方式:认为开发软件就是写程序。组织方式:作坊式的生产方式; 开发无计划、 开发过程无规范、 开发过程难控制。 用户方面:对软件需求描述不精确。开发人员方面:对用户需求的理解与用户本来愿望有差异,相互之间的信息交流 不及时、不准确、有误解。4. 阐述软件工程的定义和目标,试说

9、明软件工程是如何克服软件危机的。目标:在给定成本、进度的前提下,开发出满足用户需求的高质量的、易于维护的软 件产品。克服危机的方法:软件工程是从技术和管理两方面利用一套科学的技术和管理方法进 行软件的开发,从而提高软件质量和生产率。5. 什么是软件生存周期?软件生成周期把软件产品的分成哪几个阶段?各阶段的任务什 是么?软件生存周期由 8个阶段组成:1、问题定义:确定要求解决的问题是什么?2、可行性研究 :确定在时间和资源的约束条件下,能否完成指定的任务?包括:技术 可行性、经济可行性、法律可行性、社会可行性。若可行,则制定项目所需费用、资源、时 间的开发计划。3、 需求分析:准确地确定“软件系

10、统必须做什么”, 即明确目标系统必须具备的功能 和对系统的约束。4、 概要设计:确定在总体上应该怎样实现目标系统, 包括系统的软件结构设计、 接口 设计和数据结构设计。5、详细设计:对软件结构中的模块进行精确描述算法设计。6、 编码及模块测试:把模块算法转换成特定程序设计语言的正确的、 容易理解、 容易 维护的程序模块。7、 综合测试:发现和纠正程序中的错误, 保证软件功能和性能符合需求规格说明书规 定的要求。包括集成测试、确认测试和系统测试。8、 软件维护:软件投入使用后继续对软件的查错、 纠错和改进。 使系统持久地满足用 户的需要。包括:改正性维护、适应性维护、完善性维护、预防性维护。6.

11、 什么是软件工程过程模型?瀑布、增量、原型和螺旋模型各自有什么特点?软件过程模型也叫软件生存期模型、 软件工程范型, 是软件过程的一种抽象表示。 瀑布 模型:严格按照软件生存期的阶段划分顺序和各阶段的目标、 任务、 文档的要求来进行开发。 该模型以文档为驱动。每一活动结束后,通过严格的阶段复审和确认,得到一致、完整、准 确的良好文档, 以“冻结”这些文档为该阶段结束的标志, 并作为下一阶段活动的唯一基础; 以每一步的正确性和完整性来保证最终系统的质量。增量模型:先按瀑布模型开发一个满足基本要求的系统,然后根据用户在使用中提出 的新需求在进一步完善形成新的版本,这个过程不断重复,直到最终的完善产

12、品。原型模型:先根据用户对需求的描述,通过软件工具构造一个软件系统的原型来描述 目标系统的主要功能, 让用户进行评价, 并根据用户意见进行改进。 随着不断实验、 评价和 修改, 最后使得在功能上完全满足用户需求。 一般情况下, 软件系统原型不是最终的目标系 统, 它只是在功能上描述了用户需求, 忽略了对软件质量特性的要求, 避开了管理对质量的 控制。螺旋模型:螺旋模型是一个风险驱动模型,将开发过程分为几个螺旋周期,每个螺旋 周期大致与瀑布模型相同。 每个螺旋周期可分为四个工作步骤:(1 制定计划:确定软件目 标,选定实施方案,明确开发限制条件; (2风险分析:分析所选方案,识别风险和消除风 险

13、; (3开发实施:实施软件开发; (4用户评估:评价开发工作,提出修改意见。第二章 可行性研究习题一、名词解释可行性研究:用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否 值得开发。技术可行性:在现有技术条件下估算项目开发的风险 。经济可行性:从成本和经济效益考虑系统是否值得开发。成本效益分析:是从经济角度论证开发一个特定的新系统开发是否划算,是决定是否 投资开发新系统的依据。二、填空1、 可行性研究的目的不是去开发一个软件项目, 而是研究这个项目是否 , 是否 值得开发 。2、 可行性研究可以从 技术可行性 、 经济可行性 、 社会可行性 三方面进行论证。3、可行性研究中,成本

14、 -效益分析的目的是发是否划算 。4、可行性研究阶段可能形成的两个文档是 可行性研究报告 和 项目开发计划 。5、经济可行性一般考虑的问题包括:和6、社会可行性一般包括:现有管理制度、人员素质、操作方式对用户是否可行三、单项选择题1、在软件的可行性研究主要从不同角度对系统进行可行性研究,其中从功能角度对系统 进行研究属于(B 的研究。A. 经济可行性 B. 技术可行性C. 操作可行性 D. 社会可行性2、制定软件项目开发计划的目的对软件开发过程、进度、资源进行(D 。A. 组织和管理 B. 分析与估算C. 设计与测试 D. 规划与调整3、下列不属于成本 -效益分析的度量指标是(C 。A. 货币

15、的时间价值 B. 投资回收期C. 性质因素 D. 纯收入4、制定软件项目开发计划属于软件开发周期的第(B 阶段。 A.1 B.2C.3 D.45、技术可行性要解决(D 。A. 存在侵权否 B. 成本 -效益问题 C. 运行方式可行 D. 技术风险问题四、简答题1、 可行性研究的目的和任务是什么?目的:用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得开 发。任务:(1对项目可能的各种实现方案的可行性进行论证,确定项目是否应该开发 , 以 减少和降低软件开发的技术风险和投资风险。(2若项目应该开发,则需要进行开发方案的评价,并制定项目开发计划。 成本效益 分析对软件项目是否开发有

16、何影响?成本效益分析是从经济角度论证开发一个特定的新系统开发是否划算,是决定是否投资开发新系统的依据。3、成本 -效益分析的目的是什么?可用哪些指标进行度量?成本 /效益分析的目的是从经济角度论证开发一个特定的新系统开发是否划算,是决 定是否投资开发新系统的依据。(1 、货币的时间价值:货币的价值本身随时间的增加而产生增值:(2 、投资回收期:累计的经济效益等于最初的投资所需的时间。(3 、 纯收入:在整个生存周期内系统的累计经济效益 (折合现在的钱 与投资之差。(4 、投资回收率 -投资的年利率第三章 需求分析作业一、名词解释结构化分析方法:面向数据流进行需求分析的方法,采用自顶向下、逐步求

17、精的分析方法。 数据流图:用图形的方式从数据加工的角度来描述数据在系统中流动和处理的过程,只反 映系统必须完成的功能,是一种功能模型。 数据字典:用于定义对数据流图中的各个 成分的具体含义。二、填空1、需求分析是指开发人员通过细致的 调查 ,准确理解 用户的要求 ,将用户非 形式化的需求转化为 完整的需求定义 ,再把 需求定义 转化为相应的形式化功能 规约的过程。2、需求分析的基本任务是准确定义 ,为了满足用户的需要,回答系 统必须 “ 做什么 ” 的问题。3、需求分析阶段需编写的文档有试计划 。4、数据流图的基本组成部分有 、 、 。5、 数据流图和数据字典共同构成了系统的 模型, 是需求规

18、格说明书的主要组成 部分。6、结构化分析方法是面向 进行分析的方法。 7据元素 是组成组成数据流和数据存储的最小元素。8、 在结构化分析的需求描述中, 数据流图 描述系统的分解, 即描述系统由哪几部分 组成,各部分有什么联系等等。 数据字典 定义了数据流图中每一个图形元素。9、 是数据在系统内传播的路径, 因此由一组固定的数据项组 成。加工(又称为数据处理是对数据流进行的某些 处理 。三、单项选择题1、需求分析阶段最重要的技术文档之一是(C 。A. 项目开发计划 B. 设计说明书 C. 需求规格说明书 D. 可行性分析报告 2、在需求分析之前有必要进行(B A. 程序设计 B. 可行性分析 C

19、.ER 分析 D.3NF 分析3、软件需求分析阶段建立原型的主要目的时(A 。A. 确定系统的功能和性能要求 B. 确定系统的运行要求C. 确定系统是否满足用户需要 D. 确定系统是否满足开发人员需要4、软件开发的需求活动,其主要任务是(D 。A. 给出软件解决方案 B. 给出系统模块结构C. 定义模块算法 D. 定义需求并建立系统模型5、需求分析阶段的研究对象是(A 。A. 用户要求 B. 分析员要求 C. 系统要求 D. 软硬件要求6、数据流图描述系统的(D 。A. 数据结构 B. 控制流程 C. 基本加工 D. 软件功能7、软件需求阶段要解决的问题是(A 。A. 软件做什么 B. 软件提

20、供哪些信息 C. 软件采用的结构 D. 软件怎样做8、数据字典不包括的条目是(C 。A. 数据项 B. 数据流 C. 数据类型 D. 数据加工9、需求分析(D 。A. 要回答“软件必须做什么?”B. 可以概括为“理解,分解,表达”六个字。C. 要求编写需求规格说明书D. 上面都对。10、在数据流图中,有名字及方向的成分是(A 。A. 数据流 B. 信息流 C. 控制流 D. 信号流11、软件需求分析阶段的工作,可以分成以下四个方面:对问题的识别、分析与综合、制 定需求规格说明以及(C 。A. 总结 B. 实践性报告 C. 需求分析评审 D. 以上答案都不正确12、结构化分析方法使用的描述工具(

21、B 定义了数据流图中每一个图形元素。 A. 数据流图 B. 数据字典 C. 判定表 D. 判定树13、需求规格说明书的作用不应包括(D 。A. 软件设计的依据 B. 用户与开发人员对软件要做什么的共同理解C. 软件验收的依据 D. 软件可行性研究的依据14、在结构化分析方法中,与数据流图配合使用的是(C 。A. 网络图 B. 实体联系图 C. 数据字典 D. 程序流程图15、软件需求规格说明书的内容不应包括对(B 的描述。A. 主要功能 B. 算法的详细过程 C. 用户界面及运行环境 D. 软件的性能16、通过(B 分解完成数据流图的细化。A. 结构分解 B. 功能分解 C. 数据分解 D.

22、系统分解17、数据存储和数据流都是(D ,仅仅所处的状态不同。A. 分析结果 B. 事件 C. 动作 D. 数据18、数据字典中,一般不包括下列选项中的(D 条目。A. 数据流 B. 数据存储 C. 加工 D. 源点与终点19、 SA 方法用 DFD 描述(D 。A. 系统的控制流程 B. 系统的数据结构 C. 系统的基本加工 D. 系统的功能 20、初步用户手册在(B 阶段编写。A. 可行性研究 B. 需求分析 C. 软件概要设计 D. 软件详细设计21、 SA 方法的分析步骤是首先调查了解当前系统的工作流程,然后(A 。A. 获得当前系统的物理模型,抽象出当前系统的逻辑模型,建立目标系统的

23、逻辑模型。B. 获得当前系统的物理模型, 抽象出目标系统的逻辑模型, 建立目标系统的物理模型。C. 获得当前系统的逻辑模型, 建立当前系统的物理模型, 抽象出目标系统的逻辑模型。D. 获得当前系统的逻辑模型,建立当前系统的物理模型,建立目标系统的物理模型。 22、 SA 方法的基本思想是(C 。A. 自底向上逐步抽象 B. 自底向上逐步分解C. 自顶向下逐步分解 D. 自顶向下逐步抽象四、解答题1、 为什么要进行需求分析?通常对软件系统有哪些需求?开发一个软件系统,必须知道用户对目标软件系统在功能、行为、性能、 设计约束等方面有什么期望和要求,所以必须进行需求分析。通常对软件系统的需求有:功能

24、需求,性能需求,运行要求、可扩展要求、 数据需求。2、 软件需求分析阶段的任务是什么?需求获取:通过调研,获取用户对系统的功能需求和非功能需求。需 求分析:通过对用户需求分析和综合,消除用户需求的模糊性、歧义性和不一 致性。建立系统逻辑模型。需求描述:用规范化的语言和格式生成需求规格说明。3、 数据字典的作用是什么?数据字典是对数据流图中出现的所有成分都给出 “ 严格定义 ” 。 ,包括对数据加工、 数据流、数据存储、数据元素的定义。4、 什么是结构化分析方法?该方法使用什么描述工具?面向数据流进行需求分析的方法,采用自顶向下、逐步求精的分析方法。描述工具:数据流图,数据字典。第四章 总体设计

25、作业一、名词解释1. 软件概要设计:抽象出软件系统实现的总体框架的设计,是把软件需求转换为软件表 示的抽象过程2. 模块:是可以单独命名和编译的程序基本单位。3. 模块化:指解决一个复杂问题时自顶向下逐层把软件系统划分成若干个模块的过程。 每个模块完成一个特定的功能所有模块按照某种方法组装起来, 成为一个整体, 完成整个系 统所要求的功能。4. 信息隐蔽:指设计一个模块时,使得一个模块内包含的信息(过程或数据 ,对于不 需要这些信息的模块来说,是不能访问的。5. 耦合:也称块间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量。6. 内聚:也称块内联系,指模块功能强度的度量,即一个模块内

26、部各个元素彼此结合的 紧密程度的度量。7. 模块独立性:指每个模块只完成系统要求的独立的子功能,并且与其它模块的联系最 少且接口简单。8. 结构化设计:又称面向数据流的设计,它是以需求分析阶段产生的数据流图为基础, 按照一定的步骤把数据流图映射成软件结构。9. 变换流:指具有明显的数据输入、数据变换和数据输出边界的数据流图。10. 事务流:指可以根据输入流的事务类型分解成多个相互独立的处理数据流的数据流 图,具有明显的事务处理中心是事务流的显著特点。二、填空1、软件设计是把 的过程,包括两个阶段2、软件设计阶段是把软件“3、 软件设计的基本任务包括 系统设计 、 软件结构设计 、 数据结构设计

27、 和 软件接口 设计 等。4、数据库的“概念设计”与“逻辑设计”分别对应于软件生存周期中的“和“ 概要设计 ”阶段。5、概要设计阶段的可能的主要文档有 和6、抽象是认识复杂事务的思维工具,即抽象出事务的 的、虑它的 细节 。7、模块具有 、 、 和8、软件结构的设计是以 数据流图 为基础的,即以需求分析的结果为依据,将系统进一步 划分成 模块 ,并确定模块之间的 联系 。9、软件结构中各模块间相互联系的密切程度称为 。10、 信息隐蔽 是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据 对于不需要这些信息的其它模块来说,是不能 访问 的。11、模块独立性要求每个模块只完成问题要求的

28、一个 子功能,并且与其它模块的联 系 简单 。12、 结构图包含的主要内容有 。 13、衡量模块独立性的两个定性的度量指标是 内聚 和 耦合 。将软件系统 划分成模块时,尽量做到 高 内聚, 低 耦合,提高模块的独立性,为设计高质量的软件奠定基础。14、 模块的 指一个模块的直接 上层模块的个数。15、 结构化设计简称 数据流图一般可分为类。16、 面向数据流的设计是以需求分析阶段产生的数据流图为基础, 按照一定的步骤将数据流 图映射成软件结构。因此又称 结构化设计 。三、单项选择1、软件设计一般分为总体设计和详细设计,它们之间的关系是(B 。A. 全局和局部 B. 抽象和具体 C. 总体和层

29、次 D. 功能和结构2、属于软件设计的基本原理是(D 。A. 数据流分析设计 B. 变换流分析设计C. 事务流分析设计 D. 模块化3、软件设计阶段一般又可分为(B A. 逻辑设计和功能设计 B. 概要设计和详细设计C. 概念设计和物理设计 D. 模型设计和程序设计4、结构图中,不是其主要成分的是(C 。A. 模块 B. 模块间传递的数据 C. 模块内部数据 D. 模块间的控制关系 5、好的软件结构应该是(B 。A. 高内聚、高耦合 B. 低耦合、高内聚C. 高耦合、低内聚 D. 低耦合、低内聚6、一组语句在程序中多次出现,为了节省内存空间,把这些语句放在一个模块中,该模块 的内聚度是(C 的

30、。A. 一致性 B. 瞬时性 C. 偶然性 D. 通信性7、软件设计中划分模块通常遵循的原则是要使模块间的耦合性尽可能(B 。 A. 强 B. 弱 C. 较强 D. 适中8、一个模块把数值作为参数传递给另一个模块,这种耦合方式称为(D 。 A. 公共耦合 B. 内容耦合 C. 控制耦合 D. 数据耦合9、最高程度也是最差的耦合是(B 。A. 公共耦合 B. 内容耦合 C. 控制耦合 D. 数据耦合10、内聚是对模块功能强度的度量,内聚性最强的是(D 。A. 逻辑内聚 B. 顺序内聚 C. 偶然内聚 D. 功能内聚11、结构化设计又称为(B 。A. 概要设计 B. 面向数据流设计 C. 面向对象

31、设计 D. 详细设计12、在面向数据流的软件设计方法中,一般把数据流分为(A 。A. 变换流和事务流 B. 变换流和控制流C. 事务流和控制流 D. 数据流和控制流13、 (D 着重反映的是模块间的隶属关系,即模块间的调用关系和层次关系。A. 程序流程图 B. 数据流图 C.E-R 图 D. 软件结构图14、软件设计一般将用图形工具,下列(C 可用作设计的图形工具。结构图 实体联系图 IPO 图 层次图A. 和 B. 和 C. 和 D. 全部15、为了提高模块的独立性,模块内部最好是(C 。A. 逻辑内聚 B. 时间内聚 C. 功能内聚 D. 通信内聚16、程序结构中矩形表示(C 。A. 数据

32、 B. 加工 C. 模块 D. 存储17、结构化设计方法在软件开发中,用于(B 。A. 测试用例设计 B. 概要设计 C. 程序设计 D. 详细设计18、 (D 是数据说明、可执行语句等程序对象的集合,它是单独命名的而且可通过名字 访问。A. 模块化 B. 抽象 C. 精化 D. 模块19、面向数据流的设计方法把(A 映射成软件结构。A. 数据流 B. 系统结构 C. 控制结构 D. 信息流20、设计软件结构一般不确定(C 。A. 模块的功能 B. 模块的接口 C. 模块内的局部数据 D. 模块间的调用关系四、解答题1、 概要设计的基本任务是什么?系统结构设计:确定物理系统的具体实现方案。 -

33、概括地说,系统应该怎样做 划分出组成系统的物理元素 -程序、文件、数据库、人工过程和文档。软件结构设计:确定系统中每个程序组成的模块、模块之间的联系(结构 。 数据结构或数据库设计:确定系统需要的数据及数据间的相互关系。系统接口设计:模块接口设计、外部接口设计和人机界面设计。2、 模块设计的原理是什么?模块设计的原理是尽量做到模块的高内聚低耦合,以次提高模块的独立性。3、 软件设计的基本原则包含那些内容?模块化:以模块作为程序设计的基本单位,把程序划分成若干个模块,每个模块完 成一个子功能,把这些模块集总起来,并通过模块间的调用关系把它们组成一个完整的整 体,完成指定的功能。抽象:解决复杂问题

34、的唯一有效的方法就是运用抽象的思维方式,首先用一些高级 的抽象概念构造和理解它;这些高级概念又可以用一些较低级的概念构造和理解,如此进 行下去,直到最低层次的具体元素。信息隐蔽:模块内部的信息(处理过程和数据 ,应对不需要了解这些信息的模块 隐蔽起来,使它们不能访问。模块独立:开发具有独立功能而且和其他模块之间没有过多的相互作用的模块。衡 量模块独立程度的两个定性度量标准 -内聚和耦合。4、 软件结构优化原则有那些? 改进软件结构提高模块独立性 模块规模应该适中 深度、宽度、扇出和扇入应适当 模块的作用域应在控制域之内 尽量降低模块接口的复杂程度 设计单入口出口的模块 模块功能应该可以预测5、

35、 变换分析设计和事务分系设计有什么区别?数据流图呈线性变换特征,而且可以抽象成三部分:I-P-O 。数据流图呈辐射型,根据输入数据的性质选择加工路径。变换分析设计适用于具有明显变换特征的数据流图。事务分析设计适用于具有明显事务特征的数据流图。6、 衡量模块独立性的两个标准是什么?它们各表示什么含义?标准:耦合和内聚耦合:也称块间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量。 内聚:也称块内联系,指模块功能强度的度量,即一个模块内部各个元素彼此结合 的紧密程度的度量。7、 什么是模块?模块有那些基本属性? 模块:是可以单独命名和编译的程序基本单位。 模块基本属性:(1接口:模块的输入

36、与输出(2功能:模块做什么;(3逻辑:描述模块内部怎么做;(4状态:模块使用时的环境和条件。其中,功能、接口和状态反映模块的外部特性,逻辑反映模块的内部特性。第六章 详细设计习题一、名词解释详细设计:确定每个模块的具体执行过程, 也称过程设计。 详细设计的结果基本决定了 最终的程序代码的质量。结构化程序设计:是按照一组能提高程序的可读性和易维护性的规则而进行的程序设 计方法,目的是为了使程序具有一种合理的结构,以使程序易理解和维护,便于保证和验 证程序的正确性。PDA :问题分析图, 是一种算法描述工具。 它是一种从左向右展开的二维树形结构, 其 控制流程为自上而下,从左到右地执行。二、填空1

37、、详细设计阶段的主要任务是2、 软件的详细设计可以用 图形 、 表格 、 过程设计语言 三种形式的描述工 具表示模块的处理过程。3、 处理过程设计中最典型的方法是 方法, 、 逐步求精 。4、任何程序都可由 种基本控制结构构造, 这 3中基本 结构的基本点是 单入口 、 单出口 。5、 PAD 图是一种 结构, PAD 图的控制流程是下 、 从左到右 地执行。6、 详细设计是软件设计的第二个阶段, 主要确定每个模块的具体执行过程,故也成为 过程设计 。7、 详细设计的目标不仅是逻辑上正确地实现 , 还应使设 计出的处理过程 清晰易懂 。8是实现该目标的关键技术之一,它指导人们用良好的 思想方法

38、开发易于 阅读 、易于 理解 的程序。三、单项选择1、在详细设计阶段,经常采用的工具包括(C A.SA B.SD C.PAD D.DFD2、详细设计阶段的任务是(A 。A. 算法设计 B. 功能设计 C. 调用达观系设计 D. 输入 /输出设计 3、结构化程序设计的一种基本方法是(D 。A. 筛选法 B. 递归法 C. 迭代法 D. 逐步求精法4、下面说法不正确的是(C 。A. 流程图不易表示数据结构 B. 流程图容易造成非结构化的程序结构C. 流程图支持逐步求精 D. 流程图描述的是程序的逻辑结构5、下面说法不正确的是(B 。A. PAD图支持逐步求精 B.PAD 图容易造成非结构化的程序结

39、构C. PAD图描述的是算法 D.PAD 图容易表达程序的层次结构四、简答题1、 什么是详细设计,?该阶段的基本任务是什么?详细设计是软件设计的第二个阶段, 确定每个模块的具体执行过程, 也称过程设计。 根本任务 :(1为软件结构中的每个模块选择算法,并用选定的某种表达工具给出清晰 的描述。(2块内数据结构设计(3数据库物理设计详细设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出 的处理过程应该尽可能简明易懂。2、 什么是结构化程序设计?,简述结构化程序设计的基本要点。结构化程序设计是按照一组能提高程序的可读性和易维护性的规则而进行的程序设计 方法,目的是为了使程序具有一种合

40、理的结构,以使程序易理解和维护,便于保证和验证 程序的正确性。基本要点:自顶向下、逐步求精的设计方法使用顺序、选择、循环三种基本控制结构在三种基本控制结构中保持单入口、单出口第七章 实现作业一、名词解释编码:编程就为是用编程 (程序 语言把软件表达翻译为计算机可以理解的形式 用某 种程序设计语言书写的程序。软件测试:是软件投入运行之前,对软件需求分析、设计规格说明和编码的最终复查, 是软件质量保证的关键步骤。黑盒测试:不考虑程序内部结构和处理过程,只依据软件的需求规格说明书,检查程 序的功能是否符合它的功能说明。因此,黑盒测试又称功能测试或数据驱动测试。白盒测试:按照程序内部逻辑测试程序。检查

41、程序中的每条通路是否都能按照预定要 求正常工作。这种测试完全了解程序的结构和处理过程。因此,白盒测试又称为结构测试 或逻辑驱动测试。单元测试:是 检查程序模块是否正确实现了规定的功能, 目的是保证每个模块作为一 个单元能正确运行,所以模块测试通常又称为单元测试。集成测试:把模块按设计要求组装成子系统或系统的过程中的测试。确认测试:以需求规格说明为基准, 验证软件的有效性的测试。渐增式测试:在集成测试中,的模块一个一个地加入进行测试。当一个模块加入测试 完以后再把下一个应该测试的模块结合进来测试。这种每次增加一个模块的方法称为渐增 式测试。非渐增式测试:是先分别测试每个模块,再把所有模块按设计要

42、求放在一起结合成所 要的程序。这种方法称为非渐增式测试方法。回归测试 :指重新执行已经做过的测试。每当改正软件错误的时候,可能导致软件配置的某些成分的改变,这些改变可能引进新的 错误。回归测试就是保证由于调试或其它原因引起的变化,不会导致非预期的软件行为或 额外错误的测试活动。调试 :根据测试所暴露的错误,诊断和改正其错误的过程。二、填空1、为了使程序代码易于阅读和理解,通常需要加注释,注释分为和 功能性注释 两种类型2、软件测试的目的是尽可能多地发现软件中存在的 错误 。3、软件测试方法一般分为两大类:方法和4、集成测试可以采用的具体方法是 。5、测试用例由 测试输入数据 和预期的的 结果

43、两部分组成。三、单项选择题1、为了使程序能在不同的机器上运行,程序应具有较好的【 A 】 。A. 可移植性 B. 可重用性 C. 可维护性 D. 可实用性2、下列属于功能性注释的是【 C 】A. 说明模块的用处和功能的注释 B. 说明数据的名称和用处的注释C. 说明程序段的注释 D. 说明程序开发背景的注释3、序言性注释主要内容不包括【 D 】A. 模块的接口 B. 数据的描述 C. 模块的功能 D. 数据的状态4、功能性注释主要内容不包括【 C 】A. 程序段的功能 B. 语句的功能 C. 模块的功能 D. 数据的状态5、符合数据说明顺序规范是【 D 】A. 全程量说明、局部量说明、类型说明

44、、常量说明B. 全程量说明、局部两说明、常量说明、类型说明C. 类型说明、常量说明、全程两说明、局部量说明D. 常量说明、类型说明、全程量说明、局部量说明6、下面说法正确的是【 C 】A. 经过测试没有发现错误说明程序正确B. 测试的目标是为了证明程序没有错误C. 成功的测试是发现了迄今尚未发现的错误的测试D. 成功的测试是没有发现错误的测试7、覆盖准则最强的【 C 】A. 语句覆盖 B. 判定覆盖 C. 条件覆盖 D. 路径覆盖8、发现错误能力最弱的是【 A 】A. 语句覆盖 B. 判定覆盖 C. 条件覆盖 D. 路径覆盖9、与确认测试有关的文档是【 A 】A. 需求规格说明书 B. 概要设

45、计说明书 C. 详细设计说明书 D. 源程序10、超出软件工程范围的测试是【 D 】A. 单元测试 B. 集成测试 C. 确认测试 D. 平行测试11、 【 B 】方法需要考察模块间的接口和各模块之间的联系A. 单元测试 B. 集成测试 C. 确认测试 D. 验收测试12、调试应该由【 B 】完成。A. 与源程序无关的程序员 B. 编制该源程序的程序员C. 不了解软件设计的机构 D. 设计该软件的机构四、简答题1、 选择高级程序设计语言的标准是什么?选择的标准是:理想的模块化机制良好的编译程序良好的独立编译机制2、 为了使程序具有良好的设计风格,应注意那些方面的问题?代码文档化数据说明顺序应该

46、规范语句构造简单直接,不能为追求效率而是使代码复杂化输入输出格式简单一致,具有合法性验证、与结束标志追求效率应建立在不损害程序可读性和可靠性基础上3、 为什么说软件测试是软件开发中不可缺少的重要一环,但不是软件质量保证的安全 阀?软件测试是软件开发中不可缺少的重要一环,原因:软件最终要由人工编程来实现,出现错误是不可避免的。测试的工作量占整个项目 开发工作量 40%左右。如果是关系到人的生命安全的软件,测试的工作量还要成倍 增加。软件测试代表了需求分析、设计、编码的最终复审。 软件测试不是软件质量保证的安全阀:软件测试只能发现错误,不能保证没有错 误。4、 软件测试应当遵循什么原则?为什么要遵

47、循这些原则?所有测试应以用户需求为基准, 测试的根本目标是保证软件能满足最终用户对软件的 需求。制定系统的测试计划,并严格执行测试计划,排除测试的随意性。充分注意关键模块的测试和测试中的群集现象。实践表明, 测试发现的错误中 80%可能集中在 20%的模块中, 对这些模块应重点测试。 测试过程中必须随时注意测试所覆盖的程序逻辑的程度, 确保程序设计中使用的所有 条件都能被测试到。避免自己测试自己的程序,应由第三方独立进行测试。测试用例应包括合理的输入和不合理的输入。不合理的输入往往更能发现程序中错 误。测试用例应由测试输入数据和对应的预期输出结果组成。 缺少预期输出结果实际是缺 少检验正误的基

48、础。5、 单元测试、集成测试和确认测试各自主要目标是什么?它们之间有什么不同?相互 有什么关系?模块测试是检查程序模块是否正确实现了规定的功能,发现模块在编码或算法中的错 误, 目的是保证每个模块作为一个单元能正确运行。 集成测试的主要目标是检查与设计相关 的模块间与接口有关的问题确认测试的主要目标是验证软件的有效性, 确保软件有效实现了 软件需求规格说明书的要求,需求规格说明书是确认测试的依据。它们之间的不同有:测试内容不同测试方法不同:单元测试用白盒法, 集成测试使用渐增式或非渐增式测试; 确认测试 使用黑盒法。发现的错误不同:单元测试发现的错误是编码阶段产生的错误; 集成测试发现的是设 计阶段引入的错误;确认测试发现的错误主要上需求分析阶段产生的错误。涉及的文档不同:单元测试涉及详细设计和编码文档; 集成测

温馨提示

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

评论

0/150

提交评论