第一范文网 - 专业文章范例文档资料分享平台

软件工程缩印版(西南交大)

来源:用户分享 时间:2025/5/26 9:15:18 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

11、模块独立性要求每个模块只完成问题要求的 一个 子功能,并且与其它模块的联系 简单 。 12、结构图包含的主要内容有 模块 、 模块间的连线 和 模块间传递的数据 。 13、衡量模块独立性的两个定性的度量指标是 内聚 和 耦合 。将软件系统划分成模块时,尽量做到 高 内聚, 低 耦合,提高模块的独立性,为设计高质量的软件奠定基础。

14、模块的 扇出 指一个模块的直接下属模块的个数, 扇入 指一个模块的直接上层模块的个数。 15、结构化设计简称 面向数据流的设计 。数据流图一般可分为 变换 型和 事务 型两类。

16、面向数据流的设计是以需求分析阶段产生的数据流图为基础,按照一定的步骤将数据流图映射成软件结构。因此又称 结构化设计 。

三、 单项选择

1、软件设计一般分为总体设计和详细设计,它们之间的关系是( B )。

A.全局和局部 B.抽象和具体 C.总体和层次 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 )的。

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.面向对象设计 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.数据 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、 概要设计的基本任务是什么?

●系统结构设计:确定物理系统的具体实现方案。--概括地说,系统应该怎样做—划分出组成系统的物理元素----程序、文件、

数据库、人工过程和文档。

●软件结构设计:确定系统中每个程序组成的模块、模块之间的联系(结构)。 ●数据结构或数据库设计:确定系统需要的数据及数据间的相互关系。 ●系统接口设计:模块接口设计、外部接口设计和人机界面设计。 2、 模块设计的原理是什么?

模块设计的原理是尽量做到模块的高内聚低耦合,以次提高模块的独立性。 3、 软件设计的基本原则包含那些内容?

●模块化:以模块作为程序设计的基本单位,把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集总起来,并通过模块间的调用关系把它们组成一个完整的整体,完成指定的功能。

●抽象:解决复杂问题的唯一有效的方法就是运用抽象的思维方式,首先用一些高级的抽象概念构造和理解它;这些高级概念又可以用一些较低级的概念构造和理解,如此进行下去,直到最低层次的具体元素。

●信息隐蔽:模块内部的信息(处理过程和数据),应对不需要了解这些信息的模块隐蔽起来,使它们不能访问。

●模块独立:开发具有独立功能而且和其他模块之间没有过多的相互作用的模块。衡量模块独立程度的两个定性度量标准--内聚和耦合。

4、 软件结构优化原则有那些? ●改进软件结构提高模块独立性 ●模块规模应该适中

●深度、宽度、扇出和扇入应适当 ●模块的作用域应在控制域之内 ●尽量降低模块接口的复杂程度 ●设计单入口出口的模块

●模块功能应该可以预测

5、 变换分析设计和事务分系设计有什么区别?

数据流图呈线性变换特征,而且可以抽象成三部分:I-P-O。 数据流图呈辐射型,根据输入数据的性质选择加工路径。 变换分析设计适用于具有明显变换特征的数据流图。 事务分析设计适用于具有明显事务特征的数据流图。

6、 衡量模块独立性的两个标准是什么?它们各表示什么含义? 标准:耦合和内聚

耦合:也称块间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量。

内聚:也称块内联系,指模块功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。 7、什么是模块?模块有那些基本属性?模块:是可以单独命名和编译的程序基本单位。 模块基本属性:

(1)接口:模块的输入与输出 (2)功能:模块做什么;

(3)逻辑:描述模块内部怎么做;

(4)状态:模块使用时的环境和条件。

其中,功能、接口和状态反映模块的外部特性,逻辑反映模块的内部特性。

第六章 详细设计习题 一、 名词解释

详细设计:确定每个模块的具体执行过程,也称过程设计。详细设计的结果基本决定了最终的程序代码的质量。

结构化程序设计:是按照一组能提高程序的可读性和易维护性的规则而进行的程序设计方法,目的是为了使程序具有一种合理的结构,以使程序易理解和维护,便于保证和验证程序的正确性。

PDA:问题分析图,是一种算法描述工具。它是一种从左向右展开的二维树形结构,其控制流程为自上而下,从左到右地执行。

二、 填空

1、详细设计阶段的主要任务是 确定每个模块的具体执行过程。 。

2、软件的详细设计可以用 图形 、 表格 、 过程设计语言 三种形式的描述工具表示模块的处理过程。 3、处理过程设计中最典型的方法是 结构化程序设计 方法,其基本要点是 自顶向下 、 逐步求精 。

4、任何程序都可由 顺序 、 选择 和 循环 3种基本控制结构构造,这3中基本结构的基本点是 单入口 、 单出口 。 5、PAD图是一种 从左到右 展开的二维 树形 结构,PAD图的控制流程是 自上而下 、 从左到右 地执行。 6、详细设计是软件设计的第二个阶段,主要确定每个模块的具体执行过程,故也成为 过程设计 。 7、详细设计的目标不仅是逻辑上正确地实现 每个模块的功能 ,还应使设计出的处理过程 清晰易懂 。

8、结构化程序设计 是实现该目标的关键技术之一,它指导人们用良好的思想方法开发易于 阅读 、易于 理解 的程序。

三、 单项选择

1、在详细设计阶段,经常采用的工具包括( C )

A.SA B.SD C.PAD D.DFD 2、详细设计阶段的任务是( A )。

A.算法设计 B.功能设计 C.调用达观系设计 D.输入/输出设计 3、结构化程序设计的一种基本方法是( D )。

A.筛选法 B.递归法 C.迭代法 D.逐步求精法 4、下面说法不正确的是( C )。

A.流程图不易表示数据结构 B.流程图容易造成非结构化的程序结构 C.流程图支持逐步求精 D.流程图描述的是程序的逻辑结构 5、下面说法不正确的是( B )。

A. PAD图支持逐步求精 B.PAD图容易造成非结构化的程序结构 C. PAD图描述的是算法 D.PAD图容易表达程序的层次结构 四、 简答题

1、 什么是详细设计,?该阶段的基本任务是什么?

详细设计是软件设计的第二个阶段,确定每个模块的具体执行过程,也称过程设计。 根本任务:

(1)为软件结构中的每个模块选择算法,并用选定的某种表达工具给出清晰的描述。 (2)块内数据结构设计 (3)数据库物理设计

详细设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂。 2、 什么是结构化程序设计?,简述结构化程序设计的基本要点。

结构化程序设计是按照一组能提高程序的可读性和易维护性的规则而进行的程序设计方法,目的是为了使程序具有一种合理的结构,以使程序易理解和维护,便于保证和验证程序的正确性。基本要点:

自顶向下、逐步求精的设计方法

使用顺序、选择、循环三种基本控制结构 在三种基本控制结构中保持单入口、单出口 第七章 实现作业 一、 名词解释

编码:编程就为是用编程(程序)语言把软件表达翻译为计算机可以理解的形式—用某种程序设计语言书写的程序。 软件测试:是软件投入运行之前,对软件需求分析、设计规格说明和编码的最终复查,是软件质量保证的关键步骤。

黑盒测试:不考虑程序内部结构和处理过程,只依据软件的需求规格说明书,检查程序的功能是否符合它的功能说明。因此,黑盒测试又称功能测试或数据驱动测试。

白盒测试:按照程序内部逻辑测试程序。检查程序中的每条通路是否都能按照预定要求正常工作。这种测试完全了解程序的结构和处理过程。因此,白盒测试又称为结构测试或逻辑驱动测试。

单元测试:是检查程序模块是否正确实现了规定的功能,目的是保证每个模块作为一个单元能正确运行,所以模块测试通常又称为单元测试。

集成测试:把模块按设计要求组装成子系统或系统的过程中的测试。 确认测试:以需求规格说明为基准,验证软件的有效性的测试。

渐增式测试:在集成测试中,的模块一个一个地加入进行测试。当一个模块加入测试完以后再把下一个应该测试的模块结合进来测试。这种每次增加一个模块的方法称为渐增式测试。

非渐增式测试:是先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序。这种方法称为非渐增式测试方法。 回归测试: 指重新执行已经做过的测试。

每当改正软件错误的时候,可能导致软件配置的某些成分的改变,这些改变可能引进新的错误。回归测试就是保证由于调试或其它原因引起的变化,不会导致非预期的软件行为或额外错误的测试活动。

调试: 根据测试所暴露的错误,诊断和改正其错误的过程。

二、 填空

1、为了使程序代码易于阅读和理解,通常需要加注释,注释分为 序言性注释 和 功能性注释 两种类型 2、软件测试的目的是尽可能多地发现软件中存在的 错误 。

3、软件测试方法一般分为两大类: 白盒测试 方法和 黑盒测试 方法。 4、集成测试可以采用的具体方法是 渐增式测试 和 非渐增式测试 。 5、测试用例由 测试输入数据 和预期的的 结果 两部分组成。 三、 单项选择题

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.全程量说明、局部量说明、类型说明、常量说明 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.概要设计说明书 C.详细设计说明书 D.源程序 10、超出软件工程范围的测试是【 D 】

A.单元测试 B.集成测试 C.确认测试 D.平行测试 11、【 B 】方法需要考察模块间的接口和各模块之间的联系 A.单元测试 B.集成测试 C.确认测试 D.验收测试 12、调试应该由【 B 】完成。

A.与源程序无关的程序员 B.编制该源程序的程序员 C.不了解软件设计的机构 D.设计该软件的机构 四、 简答题

1、 选择高级程序设计语言的标准是什么?

选择的标准是:

理想的模块化机制良好的编译程序良好的独立编译机制

2、 为了使程序具有良好的设计风格,应注意那些方面的问题?

代码文档化

数据说明顺序应该规范

语句构造简单直接,不能为追求效率而是使代码复杂化 输入输出格式简单一致,具有合法性验证、与结束标志 追求效率应建立在不损害程序可读性和可靠性基础上

3、 为什么说软件测试是软件开发中不可缺少的重要一环,但不是软件质量保证的安全阀?

●软件测试是软件开发中不可缺少的重要一环,原因:

软件最终要由人工编程来实现,出现错误是不可避免的。测试的工作量占整个项目开发工作量40%左右。如果是关系到人的生命安全的软件,测试的工作量还要成倍增加。

软件测试代表了需求分析、设计、编码的最终复审。

● 软件测试不是软件质量保证的安全阀:软件测试只能发现错误,不能保证没有错误。 4、 软件测试应当遵循什么原则?为什么要遵循这些原则?

●所有测试应以用户需求为基准,测试的根本目标是保证软件能满足最终用户对软件的需求。 ●制定系统的测试计划,并严格执行测试计划,排除测试的随意性。 ●充分注意关键模块的测试和测试中的群集现象。

实践表明,测试发现的错误中80%可能集中在20%的模块中,对这些模块应重点测试。

●测试过程中必须随时注意测试所覆盖的程序逻辑的程度,确保程序设计中使用的所有条件都能被测试到。 ●避免自己测试自己的程序,应由第三方独立进行测试。

●测试用例应包括合理的输入和不合理的输入。不合理的输入往往更能发现程序中错误。

●测试用例应由测试输入数据和对应的预期输出结果组成。缺少预期输出结果实际是缺少检验正误的基础。

5、 单元测试、集成测试和确认测试各自主要目标是什么?它们之间有什么不同?相互有什么关系? 模块测试是检查程序模块是否正确实现了规定的功能,发现模块在编码或算法中的错误,目的是保证每个模块作为一个单元能正确运行。集成测试的主要目标是检查与设计相关的模块间与接口有关的问题确认测试的主要目标是验证软件的有效性,确保软件有效实现了软

件需求规格说明书的要求,需求规格说明书是确认测试的依据。 它们之间的不同有: 测试内容不同

测试方法不同:单元测试用白盒法,集成测试使用渐增式或非渐增式测试;确认测试使用黑盒法。

发现的错误不同:单元测试发现的错误是编码阶段产生的错误;集成测试发现的是设计阶段引入的错误;确认测试发现的错误主要上需求分析阶段产生的错误。

涉及的文档不同:单元测试涉及详细设计和编码文档;集成测试涉及概要设计和详细设计文档;确认测试涉及需求分析阶段产生的文档。

相互间的关系:单元测试、集成测试、确认测试是顺序进行的。 6、 什么是黑盒测试和白盒测试?它们都适应哪些测试?

黑盒测试:不考虑程序内部结构和处理过程,只依据软件的需求规格说明书,检查程序的功能是否符合它的功能说明。白盒测试:按照程序内部逻辑测试程序。检查程序中的每条通路是否都能按照预定要求正常工作。这种测试完全了解程序的结构和处理过程白盒测试

适应单元测试,包括逻辑测试和基本路径测试。测试数据对程序的逻辑覆盖的程度决定了测试完全性的程度。黑盒测试适合确认测试。测

试的方法包括等价类划分、边界值分析、错误推断等。 7、 简述软件测试和软件调试有什么区别?

目的不同:测试是为了发现错误,调试是定位和改正测试发现的错误。因而各自使用的技术也不同。 进行的方式不同:测试是有计划的,而调试不受时间约束的。

第八章 软件维护 一、 名词解释

软件维护:软件投入运行后,解决发生的各种故障,增强其功能,使之适应新的环境的活动称为软件维护。 软件可维护性:维护人员理解、改正、改动和改进这个软件的难易程度。

校正性维护:对运行阶段暴露出来的软件错误进行测试、判断、定位、纠错及验证的过程。 适应性维护:使软件系统适应不断变化的运行环境而进行修改的过程。

完善性维护:软件投入运行后,以满足用户新的要求而对软件进行修改和维护

预防性维护:自动地修改和扩充已有软件的功能、性能、结构以及可维护性,以适应将来各种可能变化的情况。 二、 填空题

1、在软件生存周期中,时间长、费用高、困难大的阶段是 软件维护阶段 。

2、软件维护主要包括校正性维护、 适应性维护 、 完善性维护 、 预防性维护 。 3、在软件交付使用后,测试中没有发现的一部分隐含的错误被带到了 维护 阶段,识别和纠正这种隐含在软件中的错误的过程称为 校正性维护 。

4、适应性维护指为使软件系统适应 计算机运行环境 的不断变化而修改软件的过程。

5、在软件交付以后,由于在软件开发过程中产生的 错误 没有完全彻底在 测试 阶段发现,必然有一部分隐含错误待到 运行维护 阶段。

三、单项选择题

1、决定软件可维护性的因素不包括【 D 】。

A.可理解性 B.可测试性 C.可移植性 D.简洁性 2、软件维护困难不包括【 D 】。

A.读懂别人程序的困难 B.文档的不一致性 C.软件维护不吸引人 D.源程序错误多 3、软件维护费用高的主要原因是【 A 】。

A.生产率低 B.人员少 C.生产率高 D.人员多 4、在软件生存周期中,时间最长、所花费的精力和费用也最多的阶段是【 B 】。 A.详细设计 B.维护 C.概要设计 D.测试 四、简答题

1、 简述软件维护的流程

制定维护申请报告:用户填写维护申请,组织制定软件修改报告。 维护审批:由维护机构审查维护申请,决定是否需要维护。 进行维护并记录维护中的各种情况。 维护复审

2、 决定软件可维护性的因素有哪些?它们是怎样影响软件的可维护性?

●可理解性:软件可理解性表现为外来读者理解软件的结构、接口、功能和内部过程的难易程度。

●可测试性:诊断和测试的难易程度主要取决于软件容易理解的程度。良好的文档对诊断和测试是至关重要的。

●可修改性:软件容易修改的程度设计原理和规则直接有关。耦合、内聚、局部化,控制域与作用域的关系等等,都影响软件的可修改性。

●可移植性:一个程序被移植到一个新的计算环境的可能性的大小,或表明程序可以容易地、有效地在各种各样的计算环境中运行的程度。

●可重用性:重用指同一事物不作修改或稍加改动就在不同环境中多次重复使用。大量使用可重用的软件构件来开发软件,可以明显提高软件可维护性:

3、 文档在提高软件可维护性中扮演什么角色?

文档是影响软件可维护性的决定因素。其作用是: 1、帮助维护人员读懂程序。 2、方便被维护软件的测试。

搜索更多关于: 软件工程缩印版(西南交大) 的文档
软件工程缩印版(西南交大).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c42pbz3axvm8ojis8frcr_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top