好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

软件工程(研)复习提纲答案2010.doc

20页
  • 卖家[上传人]:平***
  • 文档编号:10589470
  • 上传时间:2017-10-09
  • 文档格式:DOC
  • 文档大小:1,014.52KB
  • / 20 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 复 习 提 纲第一章 软件工程概述1、分析 60 年代末出现的软件危机的原因如何理解“越早潜伏的错误越晚发现,越晚发现的错误,修正的费用越高” 答:软件危机是指在软件开发过程中遇到的一系列严重问题,如:开发周期延长,成本增加,可靠性降低等开发大型软件与编制小程序主要有以下区别:⑴人员:小程序从确定要求、设计、编制、使用,直到维护通常由一个人完成;大型软件则由用户、项目负责人、分析员、程序员、资料员、操作员等组成一支开发队伍来协同完成⑵文档:小程序很少有书面文档;大型软件则是集体劳动的“产物” ,必须有规范化的文档,便于开发和维护小程序工作量小,如果需作大的修改,可舍弃旧程序而重新编写;但大型软件的开发耗费了大量的人力与物力,一般不会轻易抛弃,而总是在旧软件的基础上一再改动,以延长它的使用期,因此“版本”在不断升级大型软件的开发提出了许多新的问题,而开发方法却还停留在编制小程序的方法上,经验和技巧已不能满足开发大型软件的需要,导致软件开发过程混乱;使用的开发方法和技术不当,没有适当的文档,不易交流,维护困难,开发成本高,软件质量低等,这些问题是造成软件危机的主要原因2、软件复用的概念及两类软件复用技术:合成技术和生成技术。

      答:软件复用是指在构造新的软件系统过程中,对已存在的软件产品(设计结构、源代码、文档等)重复使用的技术1)合成技术利用部件(component,组件,构件 )合成软件系统的技术部件是可复用的一小段软件(可为二进制形式) ,可以是对某一函数、过程、子程序、数据类型、算法等可复用软件成分的抽象,封装了功能细节和数据结构,有详细的接口2)生成技术利用可复用的模式,通过生成程序产生一个新的程序或程序段,产生的程序可以看成是模式的实例可复用的模式有两种:代码模式和规则模式①代码模式可复用的代码模式存在于应用生成器中,通过特定的参数替换,生成抽象软件模块的具体实体各种程序生成器②规则模式利用程序变换系统,把用超高级规格说明语言编写的程序转化成某种可执行语言的程序IDL——CORBA 的接口定义语言第二章 需求分析工程3、简述需求分析工程的重要性答:(1)在软件生命周期中,一个错误发现越晚,修复错误的费用越高2)许多错误是潜伏的,且在错误产生后很长一段时间才被检测出3)需求分析中会产生大量错误4)需求分析中的错误多为疏忽、不一致和二义性5)需求错误是可以被检测出来的4、掌握和分析 Petri 网的有关问题;会用可达树分析死锁问题。

      分析饿死现象并改进答:Petri 网的局限性1、令牌缺乏表示信息内容的能力令牌只是表示动作控制的流向,无法表达信息的内容2、缺乏描述选择“使能”变迁的策略3、Petri 网不能描述有定时要求的计算问题,而很多系统的定时问题则很重要用可达树分析死锁问题:若出现叶结点,则系统中有死锁分析饿死现象并改进:P4 P5P6 P7P3t1 t2t3 t4t5 t6图中存在激发序列无限循环,而 被“饿死” ,原因是 Petri 网不能描述选择策略修改 Petri 网,强制它使用一种选择策略,避免了 t3 在 t4 激发之前激发两次如下图:P1 P25、分析、理解电梯运动的 Petri 网PPT 第二章 49按下tmin=0.1tmin(C)=0.05tmax(C)=0.05第三章 软件开发的结构化方法6、传统的瀑布模型将软件开发分为几个步骤,每一步得到什么结果问题定义可行性研究需求分析总体设计详细设计编码与单元测试综合测试软件维护图 1-1 瀑布模型问题定义的结果:《问题目标和规模报告书》可行性研究的结果:《可行性研究报告》 需求分析的结果:《需求规格说明书》7、简述结构化方法需求分析的综合要求答:需求分析阶段的任务主要是确定目标系统必须具备哪些功能。

      结构化需求分析的综合要求:⑴ 功能要求:指系统必须完成的所有功能⑵ 性能要求:如联机系统的响应时间,系统的存储容量、健壮性和安全性等方面的要求⑶ 运行要求:指系统运行所需要的软硬件环境⑷ 未来要求:指系统将来可能的扩充要求⑸ 数据要求:指系统所要处理的数据以及它们之间的联系需求分析的结果:《需求规格说明书》8、能绘制 DFD,并能将 DFD 映射为软件结构图PPT 第三章 18例子:某工厂采购部门每天要开出定货清单,清单中包括订购部件的部件号、部件名、规格、说明、订购量、当前价格、主要供应商和辅助供应商部件入库或出库称为业务,通过仓库中的终端把业务报告给定货系统,处理库存业务当某种部件的库存量少于标准线以下时,仓库管理员就应该及时通知定货系统开出定货清单,交由采购员采购根据画数据流图的步骤画出定货系统的数据流图不需要答)(1)从系统的简述中提取数据流图的四个成分;1) 源点和汇点仓库管理员视为源点,采购员视为汇点2) 处理处理通常是系统简述中的动词短语,如产生定货清单,处理库存业务等3)数据流从系统的源点流出和流入汇点的数据流即是系统的输入数据流和输出数据流4)数据存储确定哪些数据应保存在数据存储中。

      库存业务一旦产生就立即被处理,所以不必保存定货清单一天只产生一次,故需要保存产生定货清单的数据有关库存零部件的信息包括定货标准线也应作为数据存储,统称为库存数据2)定货系统数据流图的基本成分源点/汇点 处理 数据流 数据存储管理员 产生定货清单 定货清单 定货数据采购员 处理库存业务 库存业务 库存数据(3)画出系统的高层数据流图; 图在 PPT 第三章 28、29将 DFD 映射为软件结构图图在 PPT 第三章 909、简述软件测试的三个步骤、黑盒和白盒测试方法内聚、耦合类型分析1)单元测试:又称模块测试测试对象是软件设计中最小的单元——模块,其目的是发现模块内部存在的错误单元测试发现编码阶段的错误测试内容:(a)模块间的接口;(b)模块内的局部数据结构(c)模块内的重要通路尤其是错误处理的通路和影响上述各方面的边界条件2)集成测试:又称组装测试或联合测试集成测试发现软件设计阶段的错误在单元测试的基础上,需要将所有模块按设计要求组装成系统在经过单元测试未发现错误的模块,组装之后仍可能出现各种问题集成测试的基本方法:边组装边测试。

      有自顶向下或自底向上两种方法a)自顶向下测试从主控模块开始,沿着模块层次,边组装边测试已组装部分的功能,直到全部组装完毕,系统达到设计的功能和性能要求为止为保证测试的进行,必须提供保证测试条件的桩模块桩模块:用来模拟被测模块的下层模块的模块再用实际的下层模块代替桩模块,并进行回归测试回归测试是相对于原始测试而言的,它部分或全部地重复前面进行过的测试工作b)自底向上测试与自顶向下测试相反,它先组装最低层模块,向上逐步组装每组装一个模块,便测试由此模块及其下层模块组成的子功能直到全部装配完毕,达到系统设计的功能和性能要求为止为保证测试的进行,必须提供保证测试条件的“驱动程序”用实际的上层模块代替该驱动程序3)确认测试:又称有效性测试或验收测试确认测试检查系统的功能和性能是否达到系统分析说明书提出的设计指标,即是否满足用户要求,检查文档是否齐全等确认测试发现软件分析阶段的错误黑盒测试法是根据程序的功能和性能进行测试的方法它把被测程序看成一个黑盒子,完全不考虑程序内部的数据结构和逻辑通路也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能和性能是否满足预期需要,程序是否能适当地接收输入数据产生正确的输出数据,并保持外部信息的完整性。

      产生黑盒测试的测试用例的方法有如下几种:等价类划分法边界值分析法、因果图法、错误推测法白盒测试法是根据程序的逻辑结构进行测试的方法它把程序看成是装在一个透明的白盒中,也就是完全了解程序内部的结构和处理过程这种方法按程序内部的逻辑来测试程序,检验程序的每条通路是否都能按规定要求正确工作产生白盒测试用例的方法有如下几种:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖一般而言,测试时以黑盒测试法为主,白盒测试法为辅模块间的耦合程度按从低到高分类如下:⑴无耦合如果两模块之间没有任何联系,每一个都能独立地工作而不需要另一模块的存在,是彼此完全独立的,则这两个模块间属于无耦合的情况⑵数据耦合如果两个模块是通过参数表仅传递数据型信息,则这种耦合称为数据耦合 数据耦合是松散的耦合,模块间的独立性较强软件结构中至少有这种耦合⑶特征耦合若两个模块通过参数表传递的是某一数据结构的子结构,而不是简单变量,这就是特征耦合是数据耦合的一种变种增加出错的机会,不易改动(数据结构变化时) 将该数据结构上的操作全部集中在一个模块中,就可消除这种耦合⑷控制耦合如果传递控制型信息,这就是控制耦合对被控制的模块做任何修改,都会影响到控制模块,降低模块的独立性。

      ⑸公共耦合若一组模块使用了公共数据,则它们之间的耦合称为公共耦合公共数据包括全程变量、共享的通信区、内存的公共覆盖区等公共数据的使用,必然降低软件的可读性、可修改性和可靠性⑹内容耦合如果发生下列情况之一,两个模块间就是内容耦合:• 一个模块直接访问另一个模块的内部数据;• 一个模块通过不正常入口直接转入另一模块内部;• 一个模块有多个入口;• 两模块有一部分代码重叠(只在汇编语言中出现);内容耦合是耦合性最高的耦合,即是模块间最坏的联系方式,现在大多数高级程序设计语言中已经不会出现这种耦合 在进行设计时应该采取以下原则:以数据耦合为主,特征耦合为辅,少用控制耦合,限制公共耦合,杜绝内容耦合 模块的内聚性按从低到高分类如下:⑴偶然内聚如果模块中各组成成分间彼此没有实质联系,即使有联系也是很松散的,模块功能模糊,则称为偶然内聚例如有时写完一段程序后,发现一组语句在程序中多处出现,便将其组织在一个模块内以节省内存,就出现了偶然内聚的模块在模块设计时,如果发觉一个模块难以命名,就应考虑是否出现偶然内聚⑵逻辑内聚如果一个模块完成的是逻辑上相同或相似的一组功能,则称为逻辑内聚例如,设计一个模块打印各种报表,如固定资产报表、产品成本报表、利润报表等,打印何种报表靠传递控制参数调用。

      由于不同功能在一个模块中,通常在设计模块时会出现几种功能共用部分代码,从而使得修改、添加或去掉功能都很困难 ⑶时间内聚若一个模块中包含的任务必须在同一时间内执行,而这些任务的次序无关紧要,则叫时间内聚例如各种初始化工作由初始化模块完成,而各种结束工作被组合到结束模块中,这样它的执行将涉及到其它许多模块⑷过程内聚如果一个模块内的处理成分间是相关的,而且必须以特定顺序执行,则称为过程内聚例如把程序流程图中的循环、判断和计算分成三个模块,则这三个模块就是过程内聚的模块⑸通信内聚模块内的所有成分都通过公共数据而发生关系的内聚就是通讯内聚例如对同一文件进行输入、修改、输出操作模块中各成分经模块的局部的公共数据进行通信⑹顺序内聚若模块中每个处理成分对应一个功能,且这些处理必须按顺序执行,则称为顺序内聚 例如一个处理成分的输出是下一个处理成分的输入的模块就是顺序内聚⑺功能内聚模块中各处理成分属于一个整体,都为了完成同一功能,很难分割,这就是功能内聚这种模块通常有明确表达模块功能的名称第四章 软件开发的面向对象方法10、与 OO 方法相比,传统方法存在哪些问题OO 方法有哪些优点答:传统方法存在下列问题:(1)对现实世界的认识与编程之间存在理解上的鸿沟;功能与数据相分离造成。

      2)修改困难;系统是围绕如何实现一定的行为进行,当需求变化时,数据常常发生变化,最终导致数据的结构变化,难于修改3)维护困难;为了得到“好的软件结构” ,使作用域在控制域之中,导致系统总体结构混。

      点击阅读更多内容
      相关文档
      2026高中语文选择性必修中册 - -第一单元综合测试卷.docx 2026高中语文选择性必修中册 - -第二单元综合测试卷.docx 2023-2025三年高考物理真题分类汇编专题10 磁场.docx 2026高中语文选择性必修中册 - -第四单元综合测试卷.docx 广东省东莞市2024-2025学年高一下学期期末考试 语文试卷.docx 广东省东莞市2024-2025学年高一下学期期末考试 数学试卷.docx 山西省临汾部分学校2024-2025学年高一下学期期末联考 生物试卷.docx 2026高中语文选择性必修上册 - -第一单元综合测试卷.docx 山西省临汾部分学校2024-2025学年高一下学期期末联考 化学试卷.docx 2023-2025三年高考物理真题分类汇编专题04 抛体运动与圆周运动.docx 广东省东莞市2024-2025学年高一下学期期末考试 英语试卷.docx 广东省东莞市2024-2025学年高一下学期期末考试 物理试卷.docx 2026高中语文选择性必修上册 - -期中测试卷.docx 山西省临汾部分学校2024-2025学年高一下学期期末联考 英语试卷.docx 山西省临汾部分学校2024-2025学年高一下学期期末联考 数学试卷.docx 2023-2025三年高考物理真题分类汇编专题03 牛顿运动定律.docx 2023-2025三年高考物理真题分类汇编专题02 力的相互作用与受力分析.docx 2026高中语文选择性必修上册 - -第二单元综合测试卷.docx 2026《高考数学一轮复习》4等比数列.docx 2026《高考数学一轮复习》3等差数列及其前n项和.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.