软件工程研复习提纲答案2010

上传人:F****n 文档编号:100205043 上传时间:2019-09-22 格式:DOC 页数:20 大小:1,008KB
返回 下载 相关 举报
软件工程研复习提纲答案2010_第1页
第1页 / 共20页
软件工程研复习提纲答案2010_第2页
第2页 / 共20页
软件工程研复习提纲答案2010_第3页
第3页 / 共20页
软件工程研复习提纲答案2010_第4页
第4页 / 共20页
软件工程研复习提纲答案2010_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《软件工程研复习提纲答案2010》由会员分享,可在线阅读,更多相关《软件工程研复习提纲答案2010(20页珍藏版)》请在金锄头文库上搜索。

1、复 习 提 纲第一章 软件工程概述1、分析60年代末出现的软件危机的原因。如何理解“越早潜伏的错误越晚发现,越晚发现的错误,修正的费用越高”。答:软件危机是指在软件开发过程中遇到的一系列严重问题,如:开发周期延长,成本增加,可靠性降低等。开发大型软件与编制小程序主要有以下区别:人员:小程序从确定要求、设计、编制、使用,直到维护通常由一个人完成;大型软件则由用户、项目负责人、分析员、程序员、资料员、操作员等组成一支开发队伍来协同完成。文档:小程序很少有书面文档;大型软件则是集体劳动的“产物”,必须有规范化的文档,便于开发和维护。产品。小程序工作量小,如果需作大的修改,可舍弃旧程序而重新编写;但大

2、型软件的开发耗费了大量的人力与物力,一般不会轻易抛弃,而总是在旧软件的基础上一再改动,以延长它的使用期,因此“版本”在不断升级。大型软件的开发提出了许多新的问题,而开发方法却还停留在编制小程序的方法上,经验和技巧已不能满足开发大型软件的需要,导致软件开发过程混乱;使用的开发方法和技术不当,没有适当的文档,不易交流,维护困难,开发成本高,软件质量低等,这些问题是造成软件危机的主要原因。2、软件复用的概念及两类软件复用技术:合成技术和生成技术。答:软件复用是指在构造新的软件系统过程中,对已存在的软件产品(设计结构、源代码、文档等)重复使用的技术。(1)合成技术 利用部件(component,组件,

3、构件)合成软件系统的技术。 部件是可复用的一小段软件(可为二进制形式),可以是对某一函数、过程、子程序、数据类型、算法等可复用软件成分的抽象,封装了功能细节和数据结构,有详细的接口。(2)生成技术 利用可复用的模式,通过生成程序产生一个新的程序或程序段,产生的程序可以看成是模式的实例。 可复用的模式有两种:代码模式和规则模式。 代码模式 可复用的代码模式存在于应用生成器中,通过特定的参数替换,生成抽象软件模块的具体实体。各种程序生成器。 规则模式 利用程序变换系统,把用超高级规格说明语言编写的程序转化成某种可执行语言的程序。IDLCORBA的接口定义语言。第二章 需求分析工程3、简述需求分析工

4、程的重要性。答:(1)在软件生命周期中,一个错误发现越晚,修复错误的费用越高。(2)许多错误是潜伏的,且在错误产生后很长一段时间才被检测出。(3)需求分析中会产生大量错误。(4)需求分析中的错误多为疏忽、不一致和二义性。(5)需求错误是可以被检测出来的。4、掌握和分析Petri网的有关问题;会用可达树分析死锁问题。分析饿死现象并改进。答:Petri网的局限性1、令牌缺乏表示信息内容的能力 令牌只是表示动作控制的流向,无法表达信息的内容。2、缺乏描述选择“使能”变迁的策略3、Petri网不能描述有定时要求的计算问题,而很多系统的定时问题则很重要。用可达树分析死锁问题:若出现叶结点,则系统中有死锁

5、。分析饿死现象并改进:P2P1P4P5P6P7P3t1t2t3t4t5t6图中存在激发序列无限循环,而 被“饿死”,原因是Petri网不能描述选择策略。修改Petri网,强制它使用一种选择策略,避免了t3在t4激发之前激发两次。如下图:5、分析、理解电梯运动的Petri网。PPT第二章49按下tmin=0.1tmin(C)=0.05tmax(C)=0.05第三章 软件开发的结构化方法6、传统的瀑布模型将软件开发分为几个步骤,每一步得到什么结果。问题定义可行性研究需求分析总体设计详细设计编码与单元测试综合测试软件维护图1-1 瀑布模型问题定义的结果:问题目标和规模报告书可行性研究的结果:可行性研

6、究报告。需求分析的结果:需求规格说明书7、简述结构化方法需求分析的综合要求。答:需求分析阶段的任务主要是确定目标系统必须具备哪些功能。结构化需求分析的综合要求: 功能要求:指系统必须完成的所有功能。 性能要求:如联机系统的响应时间,系统的存储容量、健壮性和安全性等方面的要求。 运行要求:指系统运行所需要的软硬件环境。 未来要求:指系统将来可能的扩充要求。 数据要求:指系统所要处理的数据以及它们之间的联系。需求分析的结果:需求规格说明书8、能绘制DFD,并能将DFD映射为软件结构图。PPT第三章18例子:某工厂采购部门每天要开出定货清单,清单中包括订购部件的部件号、部件名、规格、说明、订购量、当

7、前价格、主要供应商和辅助供应商。 部件入库或出库称为业务,通过仓库中的终端把业务报告给定货系统,处理库存业务。 当某种部件的库存量少于标准线以下时,仓库管理员就应该及时通知定货系统开出定货清单,交由采购员采购。根据画数据流图的步骤画出定货系统的数据流图。(不需要答)(1)从系统的简述中提取数据流图的四个成分;1) 源点和汇点。仓库管理员视为源点,采购员视为汇点2) 处理。处理通常是系统简述中的动词短语,如产生定货清单,处理库存业务等。3)数据流。从系统的源点流出和流入汇点的数据流即是系统的输入数据流和输出数据流。4)数据存储。确定哪些数据应保存在数据存储中。库存业务一旦产生就立即被处理,所以不

8、必保存。定货清单一天只产生一次,故需要保存产生定货清单的数据。有关库存零部件的信息包括定货标准线也应作为数据存储,统称为库存数据。(2)定货系统数据流图的基本成分 源点/汇点 处理 数据流 数据存储 管理员 产生定货清单 定货清单 定货数据 采购员 处理库存业务 库存业务 库存数据(3)画出系统的高层数据流图; 图在PPT第三章28、29将DFD映射为软件结构图图在PPT第三章909、简述软件测试的三个步骤、黑盒和白盒测试方法。内聚、耦合类型分析。(1)单元测试:又称模块测试测试对象是软件设计中最小的单元模块,其目的是发现模块内部存在的错误。单元测试发现编码阶段的错误。测试内容:(a)模块间的

9、接口;(b)模块内的局部数据结构(c)模块内的重要通路尤其是错误处理的通路和影响上述各方面的边界条件。(2)集成测试:又称组装测试或联合测试集成测试发现软件设计阶段的错误。在单元测试的基础上,需要将所有模块按设计要求组装成系统。在经过单元测试未发现错误的模块,组装之后仍可能出现各种问题。集成测试的基本方法:边组装边测试。有自顶向下或自底向上两种方法。(a)自顶向下测试从主控模块开始,沿着模块层次,边组装边测试已组装部分的功能,直到全部组装完毕,系统达到设计的功能和性能要求为止。为保证测试的进行,必须提供保证测试条件的桩模块。桩模块:用来模拟被测模块的下层模块的模块。再用实际的下层模块代替桩模块

10、,并进行回归测试。回归测试是相对于原始测试而言的,它部分或全部地重复前面进行过的测试工作。(b)自底向上测试与自顶向下测试相反,它先组装最低层模块,向上逐步组装。每组装一个模块,便测试由此模块及其下层模块组成的子功能。直到全部装配完毕,达到系统设计的功能和性能要求为止。为保证测试的进行,必须提供保证测试条件的“驱动程序”。用实际的上层模块代替该驱动程序。(3)确认测试:又称有效性测试或验收测试确认测试检查系统的功能和性能是否达到系统分析说明书提出的设计指标,即是否满足用户要求,检查文档是否齐全等。确认测试发现软件分析阶段的错误。黑盒测试法是根据程序的功能和性能进行测试的方法。它把被测程序看成一

11、个黑盒子,完全不考虑程序内部的数据结构和逻辑通路。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能和性能是否满足预期需要,程序是否能适当地接收输入数据产生正确的输出数据,并保持外部信息的完整性。产生黑盒测试的测试用例的方法有如下几种:等价类划分法、边界值分析法、因果图法、错误推测法。白盒测试法是根据程序的逻辑结构进行测试的方法。它把程序看成是装在一个透明的白盒中,也就是完全了解程序内部的结构和处理过程。这种方法按程序内部的逻辑来测试程序,检验程序的每条通路是否都能按规定要求正确工作。产生白盒测试用例的方法有如下几种:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖。一般而言

12、,测试时以黑盒测试法为主,白盒测试法为辅。模块间的耦合程度按从低到高分类如下:无耦合。如果两模块之间没有任何联系,每一个都能独立地工作而不需要另一模块的存在,是彼此完全独立的,则这两个模块间属于无耦合的情况。数据耦合。如果两个模块是通过参数表仅传递数据型信息,则这种耦合称为数据耦合。 数据耦合是松散的耦合,模块间的独立性较强。软件结构中至少有这种耦合。特征耦合。若两个模块通过参数表传递的是某一数据结构的子结构,而不是简单变量,这就是特征耦合。 是数据耦合的一种变种。增加出错的机会,不易改动(数据结构变化时)。将该数据结构上的操作全部集中在一个模块中,就可消除这种耦合。控制耦合。如果传递控制型信

13、息,这就是控制耦合。 对被控制的模块做任何修改,都会影响到控制模块,降低模块的独立性。公共耦合。若一组模块使用了公共数据,则它们之间的耦合称为公共耦合。 公共数据包括全程变量、共享的通信区、内存的公共覆盖区等。公共数据的使用,必然降低软件的可读性、可修改性和可靠性。内容耦合。如果发生下列情况之一,两个模块间就是内容耦合: 一个模块直接访问另一个模块的内部数据; 一个模块通过不正常入口直接转入另一模块内部; 一个模块有多个入口; 两模块有一部分代码重叠(只在汇编语言中出现);内容耦合是耦合性最高的耦合,即是模块间最坏的联系方式,现在大多数高级程序设计语言中已经不会出现这种耦合。 在进行设计时应该

14、采取以下原则:以数据耦合为主,特征耦合为辅,少用控制耦合,限制公共耦合,杜绝内容耦合。 模块的内聚性按从低到高分类如下:偶然内聚。如果模块中各组成成分间彼此没有实质联系,即使有联系也是很松散的,模块功能模糊,则称为偶然内聚。例如有时写完一段程序后,发现一组语句在程序中多处出现,便将其组织在一个模块内以节省内存,就出现了偶然内聚的模块。在模块设计时,如果发觉一个模块难以命名,就应考虑是否出现偶然内聚。逻辑内聚。如果一个模块完成的是逻辑上相同或相似的一组功能,则称为逻辑内聚。例如,设计一个模块打印各种报表,如固定资产报表、产品成本报表、利润报表等,打印何种报表靠传递控制参数调用。由于不同功能在一个模块中,通常在设计模块时会出现几种功能共用部分代码,从而使得修改、添加或去掉功能都很困难。 时间内聚。若一个模块中包含的任务必须在同一时间内执行,而这些任务的次序无关紧要,则叫时间内聚。例如各种初始化工作由初始化模块完成,而各种结束工作被组合到结束模块中,这样它的执行将涉及到其它许多模块。过程内聚。如果一个模块内的处理成分间是相关的,而且必须以特定顺序执行,则称为过程内聚。 例如把程序流程图中的循环、判断和计算分成三个模块,则这三个模块就是过程内聚的模块。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号