软件工程考试题(含答案)
软件工程试卷及答案多套精品试卷

软件工程试卷及答案多套精品试卷IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】软件工程试题及答案第一部分选择题一、单项选择题每小题1分,共20分。
(在每小题的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内)1.在下列工具与环境中()属于较早期的CASE。
A.基于信息工程CASE B.人工智能CASEC.结构的基于图形CASE D.集成的CASE环境2.Putnam成本估算模型是一个()模型。
A.静态单变量 B.动态单变量 C.静态多变量 D.动态多变量3.在McCall软件质量度量模型中,()属于面向软件产品修改。
A.可靠性 B.可重用性C.适应性 D.可移植性4.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是()A.SQIC B.SQMC C.SQRC D.SQDC5.软件复杂性度量的参数包括()A.效率 B.规模 C.完整性 D.容错性6.对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。
A.结合 B.隐藏C.封装 D.抽象7.软件调试技术包括()A.边界值分析 B.演绎法 C.循环覆盖 D.集成测试8.瀑布模型的存在问题是()A.用户容易参与开发B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求9.软件测试方法中的静态测试方法之一为()A.计算机辅助静态分析 B.黑盒法 C.路径覆盖 D.边界值分析10.软件生命周期中所花费用最多的阶段是()A.详细设计 B.软件编码 C.软件测试D.软件维护11.第一个体现结构化编程思想的程序设计语言是()A.FORTRAN语言B.Pascal语言 C.C语言D.PL/1语言12.程序的三种基本控制结构是()A.过程、子程序和分程序B.顺序、选择和重复 C.递归、堆栈和队列D.调用、返回和转移13.在详细设计阶段,经常采用的工具有()A.PAD B.SA C.SC D.DFD 14.详细设计的结果基本决定了最终程序的()A.代码的规模 B.运行速度 C.质量 D.可维护性15.需求分析中开发人员要从用户那里了解()A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模16.结构化程序设计主要强调的是()A.程序的规模 B.程序的效率C.程序设计语言的先进性D.程序易读性17.IDEF。
软件工程试卷及参考答案

试卷(一)一、单项选择题1、在结构化设计(SD)方法中全面指导模块划分的最重要的原则是( )A、程序模块化B、模块高内聚C、模块低耦合D、模块独立性2、软件维护产生的副作用,是指()A、开发时的错误B、隐含的错误C、因修改软件而造成的错误D、运行时误操作3、软件详细设计的主要任务是确定每个模块的()A、算法和使用的数据结构B、外部接口C、功能D、编程4、为了提高模块的独立性,模块内部最好是()A、逻辑内聚B、时间内聚C、功能内聚D、通信内聚5、软件是一种()A、程序B、数据C、逻辑产品D、物理产品6、因计算机硬件和软件环境的变化而作出的修改软件的过程称为( )A、纠正性维护B、适应性维护C、完善性维护D、预防性维护7、只有单重继承的类层次结构是( )层次结构。
A、网状型B、星型C、树型D、环型8、下列属于维护阶段的文档是( )A、软件规格说明B、用户操作手册C、软件问题报告D、软件测试分析报告9、不适合作为科学工程计算的语言是( )A、PascalB、CC、FortranD、 Prolog10、研究开发所需要的成本和资源是属于可行性研究中的( )研究的一方面。
A. 技术可行性B. 经济可行性C. 社会可行性D. 法律可行性11、中级结构性成本模型COCOMO是一个( )A、静态单变量模型B、动态单变量模型C、静态多变量模型D、动态多变量模型12、PAD图为()提供了有力的工具。
A、系统分析B、软件的自动化生成C、自动分析数据D、测试软件13、下列关于JSP方法不正确的说法是( )A、JSP方法主要用于规模不大的数据处理系统B、JSP方法不明确的划分软件概要设计和详细设计的两个阶段C、JSP方法适用于输入数据和输出数据之间有对应关系的问题求解D、JSP方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。
因此它只适用于详细设计阶段14、在详细设计阶段,经常采用的工具有()A、PADB、SAC、SCD、DFD15、确认软件的功能是否与需求规格说明书中所要求的功能相符的测试属于()A、集成测试B、恢复测试C、验收测试D、单元测试16、盒图(N-S图)为()提供了有力的工具。
软件工程试题及答案

1. 软件生命期各阶段的任务是什么?答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性3、需求分析:系统必须做什么4、总体设计:系统如何实现,包括系统设计和结构设计5、详细设计:具体实现设计的系统6、实现:编码和测试7、运行维护:保证软件正常运行。
2、软件重用的效益是什么?答:1、软件重用可以显著地改善软件的质量和可靠性。
2、软件重用可以极大地提高软件开发的效率。
3、节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费.3、自顶而下渐增测试与自底而上渐增测试各有何优、缺点?答:①自顶而下渐增测试优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能够尽早发现上层模块的接口错误。
缺点:需要存根程序,底层错误发现较晚.②自底而上渐增测试优点与缺点和自顶而下渐增测试相反.4 、提高可维护性的方法有哪些?答:在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束前的审查和复审中,应着重对可维护性进行复审。
在需求分析阶段的复审中,应对将来要扩充和修改的部分加以注明.在讨论软件可移植性问题时,要考虑可能要影响软件维护的系统界面。
在软件设计的复审中,因从便于修改、模块化和功能独立的目标出发,评价软件的结构和过程,还应对将来可能修改的部分预先做准备。
在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素。
在软件系统交付使用前的每一测试步骤中都应给出需要进行预防性维护部分的提示。
在完成每项维护工作后,都应对软件维护本身进行仔细认真的复审.为了从根本上提高软件系统的可维护性,人们正试图通过直接维护软件规格说明来维护软件,同时也在大力发展软件重用技术。
简述软件测试要经过哪几个步骤,每个步骤与什么文档有关.【解答】测试过程按4 个步骤进行,即单元测试(模块测试)、集成测试(子系统测试和系统测试)、确认测试(验收测试)和平行运行。
软件工程考试题(含答案)

软件工程考试题简答题1、什么叫软件?软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合2、什么叫软件危机?软件危机包含哪两点?软件危机产生的原因是什么?软件危机是指在计算机软件开发与维护过程中所遇到的一系列严重问题。
包括两点:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。
软件开发和维护过程中存在的许多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
具体表现如下:(1)软件是逻辑部件而不是物理部件。
(2)软件的规模越来越大,复杂性越来越大。
(3)轻视需求分析的重要性,轻视软件维护的错误观点和方法。
3、什么叫软件工程?1968 年在第一届NATO 会议上的早期定义:“建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法”。
1993 年 IEEE 的定义:“①软件工程是:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②进而研究①实现的途径”。
我们国家最近定义:软件工程是指导计算机软件开发和维护的工程学科。
它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
4、两种软件工程方法学开发软件时要建立哪些模型?软件工程方法学包括:传统方法学和面向对象方法学。
常用的开发模型有:瀑布模型(需求稳定,而且可以预先指定)原型模型(需求模糊或者随时间变化)增量模型(分析员先作出需求分析和概要设计,用户参与逐步完善)螺旋模型(将瀑布模型与原型化模型结合起来,并加入了风险分析)喷泉模型(使开发过程具有迭代性和无间隙性)5、软件过程模型有哪些?简述它们的特点。
过程模型分为五大类: 1.管理过程模型。
2.瀑布模型(又称为生命周期模型)。
3.增量过程模型:包括增量模型,,RAD模型。
软件工程考试试题(含答案)

一、填空题(每空1分,共25分)1.软件生存周期一般可以划分为,问题定义、____________、____________、设计、编码、测试和____________.2.基于软件的功能划分,软件可以划分成__________、__________、__________三种.3.可行性研究,应从、技术可行性、运行可行性、和开放方案可行性等方面研究。
4.系统流程图是描绘的传统工具。
它的基本思想是用图形符号以描绘系统里面的每个部件。
5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、、和。
6.结构化分析方法是面向________________进行需求分析的方法。
结构化分析方法使用________________与________________来描述。
7.是自动地共享类、子类和对象中的方法和数据的机制.8.软件详细设计工具可分为3类,即________________、________________和________________。
9.为了在软件开发过程中保证软件的质量,主要采取下述措施:________________、复查和管理复审、________________。
10.大型软件测试包括、、确认测试和四个步骤.1、可行性研究需求分析运行与维护2、系统软件支撑软件应用软件3、经济可行性法律可行性4、物理系统黑盒子形式5、加工数据流数据存储文件6、数据流数据流图DFD 数据字典DD7、继承性8、图示工具、设计语言表格工具9、审查测试10、单元测试集成测试系统测试1.软件设计中划分模块的一个准则是()。
A、低内聚低耦合B、低内聚高耦合C、高内聚低耦合D、高内聚高耦合2.Jackson设计方法是由英国的M。
Jackson提出的,它是一种面向()的软件设计方法.A、对象B、数据流C、数据结构D、控制结构3.试判断下列叙述中,哪个(些)是正确的( ).a、软件系统中所有的信息流都可以认为是事务流b、软件系统中所有的信息流都可以认为是变换流c、事务分析和变换分析的设计步骤是基本相似的A、aB、bC、cD、b和c4.()是用户和设计交换最频繁的方法.A、原型化方法B、瀑布模型方法C、螺旋模型方法D、构件组装模型5.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是()。
软件工程试题及答案(较详细)

一.判断题:1.如果决定将软件全部包给第三方公司开发。
(×)2.有了对系统的目标有了大致的了解,就可以开始开发项目,以后的在开发中继续了解。
(×)3.对于一个成功的软件项目,可执行程序是唯一交付的东西。
(×)4.直到程序运行,才评估软件系统的质量。
(×)5.如果未能按时完成任务,我们可以通过增加程序员来加快完成任务.(×)6.虽然软件需求不断变更,但因软件比硬件有弹性,所以我们经常可以变更它.(×)7.软件工程将导致我们产生大量的无用文档,降低工作效率。
(×)8.在面向对象建模中,主题划分提供了在更高一层上描述。
(主题划分是指UML中将一组关联比较强的类的集合。
则上百个类可划分为几个主题)(√)9.面向对象的开发,对象分解取代功能分解. (√)10.软件中80%的错误存在20%的模块中。
(√)11.结构化分析方法在建立系统模型时,使用一般――特殊结构(实际上没有这种关系)来处理信息。
(×)12.开发软件就是编程。
(×)13.需求规格说明书说明了(√)14.结构化方法,建立系统模型时使用一般连接组织信息. (×)15.敏捷过程模型选用小而高激励的团队使用而不适用于大团队。
(√)二.简答题1.软件工程是层次化的,其四个层次是?答:方法,工具,过程,质量保证软件工程是一种层次化的技术(如图2-1所示)。
任何工程方法(包括软件工程)必须以有组织的质量保证为基础。
全面的质量管理和类似的理念刺激了不断的过程改进,正是这种改进导致了更加成熟的软件工程方法的不断出现。
支持软件工程的根基就在于对质量的关注。
软件工程的基层是过程层。
软件工程过程是将技术层结合在一起的凝聚力,使得计算机软件能够被合理地和及时地开发出来.过程定义了一组关键过程区域的框架(KPAs)[PAY93],这对于软件工程技术的有效应用是必须的。
关键过程区域构成了软件项目的管理控制的基础,并且确立了上下各区域之间的关系,其中规定了技术方法的采用、工程产品(模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证及变化的适当管理。
软件工程试卷(附答案)

一、单项选择题(每题2分,共40分)1。
软件生存周期模型有多钟,下列选项中,(C)不是软件生存周期模型。
A.螺旋模型B.增量模型C。
功能模型D。
瀑布模型2.以下说法错误的是(C)。
A.增量模型是在瀑布模型的基础上加以修改而形成的B。
增量模型推迟某些阶段或所有阶段中的细节,从而较早地产生工作软件C。
瀑布模型和增量模型都属于整体开发模型D。
瀑布模型规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节3.可行性分析中,系统流程图用于描述(A)。
A。
当前运行系统B。
当前逻辑模型C。
目标系统D。
新系统4.研究软硬件资源的有效性是进行(A)研究的一方面.A。
技术可行性B.经济可行性C。
社会可行性D.操作可行性5、数据字典中,一般不包括下列选项中的(D)条目.A。
数据流B.数据存储C。
加工D。
源点与终点6、SA方法的分析步骤是首先调查了解当前系统的工作流程,然后(A)。
A。
获得当前系统的物理模型,抽象出当前系统的逻辑模型,建立目标系统的逻辑模型B.获得当前系统的物理模型,抽象出目标系统的逻辑模型,建立目标系统的物理模型C。
获得当前系统的逻辑模型,抽象出目标系统的物理模型,建立目标系统的逻辑模型D.获得当前系统的逻辑模型,抽象出目标系统的物理模型,建立目标系统的物理模型7、通过(B)可以完成数据流图的细化.A。
结构分析B。
功能分解C.数据分析D。
系统分解8、对软件进行分解,是为了(C)。
A。
降低模块的复杂程度B.降低模块间接口的复杂程度C.降低模块的复杂程度,并降低模块间接口的复杂程度D。
降低模块的复杂程度,并提高模块间接口的复杂程度9、为了提高模块的独立性,模块内部最好是(C)。
A。
逻辑内聚B.时间内聚C.功能内聚D。
通信内聚10、在软件结构设计完成后,对于下列说法,正确的是(C).A。
非单一功能模块的扇入数大比较好,说明本模块重用率高B.单一功能的模块扇入高时应重新分解,以消除控制耦合的情况C.一个模块的扇出太多,说明该模块过分复杂,缺少中间层D。
《软件工程》题库及参考答案

《软件工程》练习测试题库一、单项选择题1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做()A.软件工程B.软件周期C.软件危机D.软件产生2.研究开发所需要的成本和资源是属于可行性研究中的()研究的一方面。
A.技术可行性B.经济可行性C.社会可行性D.法律可行性3.IDEF0图不反映出系统()A.系统做什么B.系统功能如何实现C.系统由谁来做D.系统实现的约束条件4.模块的内聚性最高的是()A.逻辑内聚B.时间内聚C.偶然内聚D.功能内聚5.在SD方法中全面指导模块划分的最重要的原则是()A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性6.软件详细设计主要采用的方法是()A.模块设计B.结构化设计C.PDL语言D.结构化程序设计7.下列关于JSP方法不正确的说法是()A.JSP方法主要用于规模不大的数据处理系统B.JSP方法不明确的划分软件概要设计和详细设计的两个阶段C.JSP方法适用于输入数据和输出数据之间有对应关系的问题求解D.JSP方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。
因此它只适用于详细设计阶段8.不适合作为科学工程计算的语言是()A. PascalB. CC. FortranD. Prolog9.黑盒测试在设计测试用例时,主要需要研究()A.需求规格说明与概要设计说明B.详细设计说明C.项目开发计划D.概要设计说明与详细设计说明10.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。
设计这组测试用例的方法是()A.条件覆盖法 B.等价分类法C.边界值分析法D.错误推测法11.下列属于维护阶段的文档是()A.软件规格说明B.用户操作手册C.软件问题报告D.软件测试分析报告12.快速原型模型的主要特点之一是()A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件D.及早提供工作软件13.因计算机硬件和软件环境的变化而做出的修改软件的过程称为()A.较正性维护B.适应性维护C.完善性维护D.预防性维护14.类库这种机制是()级别的信息共享。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程考试题简答题1、什么叫软件?软件就是计算机系统中与硬件相互依存的另一部分,它就是包括程序,数据及其相关文档的完整集合2、什么叫软件危机?软件危机包含哪两点?软件危机产生的原因就是什么?软件危机就是指在计算机软件开发与维护过程中所遇到的一系列严重问题。
包括两点:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。
软件开发与维护过程中存在的许多严重问题,一方面与软件本身的特点有关,另一方面也与软件开发与维护的方法不正确有关。
具体表现如下:(1)软件就是逻辑部件而不就是物理部件。
(2)软件的规模越来越大,复杂性越来越大。
(3)轻视需求分析的重要性,轻视软件维护的错误观点与方法。
3、什么叫软件工程?1968年在第一届NATO会议上的早期定义: “建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法”。
1993年IEEE的定义: “①软件工程就是:把系统的、规范的、可度量的途径应用于软件开发、运行与维护过程,也就就是把工程应用于软件;②进而研究①实现的途径”。
我们国家最近定义:软件工程就是指导计算机软件开发与维护的工程学科。
它采用工程的概念、原理、技术与方法来开发与维护软件,把经过时间考验而证明正确的管理技术与当前能够得到的最好的技术方法结合起来。
4、两种软件工程方法学开发软件时要建立哪些模型?软件工程方法学包括:传统方法学与面向对象方法学。
常用的开发模型有:瀑布模型(需求稳定,而且可以预先指定)原型模型(需求模糊或者随时间变化)增量模型(分析员先作出需求分析与概要设计,用户参与逐步完善)螺旋模型(将瀑布模型与原型化模型结合起来,并加入了风险分析)喷泉模型(使开发过程具有迭代性与无间隙性)5、软件过程模型有哪些?简述它们的特点。
过程模型分为五大类:1、管理过程模型。
2、瀑布模型(又称为生命周期模型)。
3、增量过程模型:包括增量模型,,RAD模型。
4、烟花过程模型:包括原型开发模型,螺旋模型,协同开发模型。
5、专用过程模型:包括机遇构建的开发模型,形式化方法模型,面向方面的软件开发模型。
6、什么就是软件生命周期?一个软件从定义,开发,使用与维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长时期称为生命周期7、软件生命周期有哪几个阶段与步骤?三个阶段:定义、开发、维护八个步骤:问题定义、可行性研究、需求分析;总体设计、详细设计、编码与单元测试、综合测试;运行维护。
8、计算机软件的开发经过哪三个大阶段?三个阶段:定义、开发、维护9、软件开发的各阶段的任务就是什么?定义阶段:问题定义--任务:关于规模与目标的报告书;可行性研究--任务:系统的高层逻辑模型:数据流图,成本/效益分析;需求分析--任务:系统的逻辑模型:数据流图,数据字典,算法描述。
开发阶段:总体设计--任务:系统流程图,成本/效益分析,推荐的系统结构:层次图/结构图;详细设计--任务:HIPO图或PDL 图;编码与单元测试--任务:源程序清单,单元测试方案与结果;综合测试--任务:综合测试方案,结果集成测试,验收测试,完整一致的软件配置。
维护阶段:软件维护--任务:维护记录以及改正性维护,适应性维护,完整性维护与预防性维护10、软件设计分哪两个阶段?总体设计的两个阶段分别就是什么?分为总体设计与详细设计两个阶段。
11、总体设计包括系统设计(划分出组成系统的程序、文件、数据库、人工过程与文档等物理元素)与结构设计(确定系统中每个程序就是由哪些模块组成的,以及这些模块相互间的关系,不涉及模块内部算法流程)12、软件与硬件的区别就是什么?软件就是一种逻辑部件,而不就是具体的物理部件。
软件在开发、生产、使用、维护等方面与硬件相比有明显差异。
软件就是开发,硬件就是制造软件就是自定的,硬件就是组装的软件不会磨损,硬件存在机械磨损问题13、软件需求分析的任务就是什么?需求分析的任务就是确定系统必须完成哪些工作,也就就是对目标系统提出完整、准确、清晰、具体的要求。
一般说来,需求分析的任务包括下述几方面:1、确定对系统的综合要求(主要有: 功能需求、性能需求、运行需求、将来可能提出的需求。
)2、分析系统的数据要求3、导出系统的逻辑模型:数据流图、实体-联系图、状态转换图、数据字典、算法流程等4、修正系统开发计划14、瀑布模型与原型模型分别适用于开发哪些软件?瀑布模型与原型模型分别适用于开发哪些软件瀑布模型适合于需求稳定,而且可以预先指定的大型系统工程项目。
原型模型适合于需求模糊或者随时间变化的中小型项目15、数据流图的作用就是什么?如何画数据流图简称DFD(Data Flow Diagram)图,它就是以特定的图形符号描述系统逻辑模型的工数据流图具; 它从数据传送与加工的角度抽象的描述信息在系统中的流动与数据处理的过程; 它就是开发人员与用户之间交流信息的通信工具;它也就是系统分析与系统设计的工具。
数据流图画法总结1、先找出数据源点与汇点。
它们就是外部实体,由它们确定系统与外界的接口。
2、找出外部实体的输出数据流与输入数据流。
画出顶层数据流图。
3、从顶层加工出发,逐步细化,画出所需子图。
4、分析系统的主要处理功能,把每一个处理功能作为一个加工,并且确定它们之间的数据流入、流出关系,画出第一层数据流图。
5、对流图中的每个加工进行细化,画出所需的子图,直到加工不需再分解为止。
6、按照前面给出原则检查与修改每一层数据流图与子图16、什么叫数据字典?如何写数据字典?数据字典就是描述数据流图中数据的信息的集合(描述内容包括:数据流图、状态转换图、数据字典E-R 图中的数据信息(数据流、数据存储、外部实体) 、控制信息(事件)等,不包括处理) 。
如何写?数据元素的组合方式顺序:即以确定的次序连接两个或多个分量。
例:A+B选择:即从两个或多个可能的元素中选取一个。
例:[A|B]重复:即把指定的分量重复零次或多次。
例:1{A}5可选:即一个分量就是可有可无的(重复零次或一次)17、软件设计的原则有哪些?模块化,抽象化与逐步求精,信息隐藏与局部化,模块独立18、耦合与内聚分别有哪些?如何定义?如何区分?耦合衡量不同模块彼此间互相依赖(连接)的紧密程度内聚衡量一个模块内部各个元素彼此结合的紧密程度耦合的种类:数据耦合:如果两个模块间的通讯信息就是若干参数,其中每一个参数都就是一个数据元素,称数据耦合这种耦合为数据耦合。
这就是模块之间影响最小的耦合关系。
标记耦合:当把整个数据结构作为参数传递而被调用模块只需要使用其中一部分数据元素标记耦合时,这种情况称为标记耦合。
控制耦合: 那么A与B之间控制耦合如果模块A向模块B所传递的信息控制了模块B的内部逻辑,的耦合称为控制耦合。
公共耦合:如果两个或多个模块都与同一个公共数据域有关,则称为公共耦合。
公共耦合公共耦合就是一种不良的耦合关系,它给模块的维护与修改带来困难。
如果两个模块共享的数据很多,都通过参数传递很不方便时,可以利用公共耦合。
内容耦合:如果一个模块与另一个模块的内部属性(即运行程序与内部数据)有关,则称为内容耦合。
功能内聚:如果一个模块内部的各组成部分的处理动作全都为执行同一个功能而存在, 并且功能内聚: 只执行一个功能,则称为功能内聚。
判断一个模块就是不就是功能内聚,只要瞧这个模块就是“做什么”就是完成一个具体的任务,还就是完成多任务。
顺序内聚:如果一个模块内部的各个组成部分执行的几个处理动作有这样的特征: 前一个处顺序内聚:理动作所产生的输出数据就是后一个处理动作的输入数据,称为顺序内聚。
顺序内聚维护起来不如功能内聚方便, 要修改模块中的一个功能, 会影响到同一个模块中的其她功能。
通讯内聚:如果一个模块内各组成部分的处理动作都使用相同的输入数据或产生相同的输通讯内聚出数据,称为通讯内聚。
过程内聚:如果一个模块内部的各个组成部分的处理动作各不相同,彼此也没有联系,但她们都受同一个控制流支配,决定她们的执行次序,称为过程内聚。
暂时内聚(时间内聚):如果一个模块内的各组成部分的处理动作与时间有关,则称为暂时: 内聚。
暂时内聚模块的处理动作必须在特定的时间内完成。
-----指在一个特定的时间范围内完成,但完成次序不重要。
例如:程序设计中的模块的初始化。
逻辑内聚:如果一个模块内部的各组成部分的处理动作在逻辑上相似, 但功能都彼此不同或逻辑内聚: 无关,则称为逻辑内聚。
一个逻辑内聚模块往往包括若干个逻辑相似的动作,使用时可以选用一个或几个功能。
例如:把编辑各种输入数据的功能放在一个模块中。
机械内聚(偶然内聚):如果一个模块的内部各组成部分的处理动作彼此没有任何联系,则: 称为机械内聚19、详细设计阶段用到了哪些图形工具?程序流程图(PFD)盒图(N-S 图)问题分析图(PAD)判定表/判定树(其她非图形工具有过程设计语言(PDL)20、软件工程的启发式规则有哪些?A、当模块过大时就应该分解它。
一般按功能分解到成为一个小的功能单一的模块为止。
一般一个模块内包含的语句在30-50 条左右较好(指高级语言) 。
分解后不应该降低模块的独立性。
B、深度、宽度、扇出与扇入都应适当。
好的设计结构通常就是顶层扇出比较高,中层扇出比较少,底层扇入到公共的实用模块中去(底层模块有高扇入) 。
模块的独立性就是贯穿始终的标准,不能为了追求其它目标而违背独立性标准。
C、对于任何一个内部存在判断调用的模块, 它的判断作用的范围应该就是其控制范围的一个子集。
存在判断调用的模块, 所在层次不要与那些属于判断作用范围的模块所在的层次相隔太远----越近越好。
D、力争降低模块接口的复杂程度。
模块接口复杂就是软件发生错误的一个主要原因。
应该仔细设计模块接口,使得信息传递简单并且与模块的功能一致。
接口复杂或不一致(即瞧起来传递的数据之间没有联系) ,就是紧耦合或低内聚的征兆,应该重新分析这个模块的独立性。
E、设计单入口单出口的模块: 防止出现内容耦合---多入口(多种处理功能) 意味着内容耦合。
F、模块功能应该可以预测-----模块就是黑合子,输入相同则输出相同,其内部数据结构与接口受到限制。
模块的功能应该能够预测,但也要防止模块功能过分局限。
过分局限将导致模块灵活性太差,会出现使用现场的修改。
21、模块的作用域与控制域分别指什么?模块的控制域:本身及其所有下级模块(包括直接与间接下级模块) 。
模块的作用域:受该模块内一个判定影响的所有模块的集合22、模块的扇入、扇出、深度、宽度分别就是什么意思?深度表示软件结构中控制的层数----粗略的标志一个系统的大小与复杂程度。
宽度就是软件结构同一层次上的模块总数的最大值----宽度越大系统越复杂。