软件工程复习知识点总结.doc
1. 软件危机的概念,内容,原因及消除的途径;2. 软件工程的定义,基本原理;3. 软件工程方法学的基本概念、内容;4. 软件生命周期的具体内容,每一个阶段的任务是什么?结合具体的工程例子来理解做软件项目主要分那几个阶段。5. 理解几个典型软件过程的内容及其优点与缺点:瀑布模型、增量模型、快速原型模型、螺旋模型、喷泉模型等;6. 了解可行性研究中的任务和过程;7. 掌握系统流程图的概念和方法,会从具体的案例中抽象出系统流程图;8. 掌握数据流图的概念和方法,会从具体的案例中画出0层数据流图和功能级数据流图;9. 掌握数据字典的内容、方法、用户和实现;10. 了解成本/效益分析方法;11. 了解需求分析过程中任务是什么.12. 理解面向数据流自顶向下逐步求精的方法和意义;13. 理解分析及建模的意义,需求分析中应该建立哪三种模型?有哪些工具来帮助建立这些模型?14. 掌握实体关系(E-R)图的概念,内容和实现方法,能结合具体实例建立实体关系图;15. 掌握状态图的概念,内容,实现方法和作用;16. 掌握层次方框图、warnier图、IPO图的概念,内容和作用;17. 有穷状态机的概念和内容;18. 总体设计是做什么?总体设计的过程是怎样的?总体结构设计的目的是什么?19. 掌握几个设计原理,理解他们的内容和意义;20. 掌握耦合和内聚的概念和内容,理解这些原理对设计有哪些指导意义;21. 耦合包含了哪些类型?每个类型的具体内容是什么?要求能通过程序代码识别出耦合类型。22. 启发性规则的内容及部分概念。23. 层次图、HIPO图和结构图的内容;24. 掌握面向数据流的设计方法,了解其中涉及到的概念(变换流,事务流),结合例子理解变换分析的具体过程。25. 详细设计是做什么?26. 什么是结构程序设计?27. 人机界面设计问题包含哪些?28. 掌握设计过程中用到的工具:程序流程图的概念,内容和方法;盒图的概念、内容和方法;会结合实例使用这些工具;掌握PAD 图的概念和内容;掌握判定表的概念和内容。要结合实例来掌握它们。29. 了解结合Jackson图来掌握面向数据结构的设计方法;会用Jackson程序设计方法对具体的实例进行设计。30. 掌握几种测试:单元测试、集成测试、确认测试、白盒测试技术和黑盒测试技术;掌握它们的概念,内容和方法;31. 对每一种测试方法,理解其具体细节:比如理解什么是渐增式测试和非渐增式测试,什么是Alpha测试和Beta测试.;32. 结合G.J.Myers的观点理解软件测试的目的;(教材p150)33. 掌握白盒测试的技术细节(比如:掌握逻辑覆盖中的8个覆盖点;掌握基本路径测试,会根据过程设计结果画出相应的流图;会计算流图的环形复杂度;会计算出线性独立路径的基本集合);掌握黑盒测试的技术细节;34. 理解软件维护的定义、特点和维护过程; 自测练习题:一、选择题1瀑布模型的存在问题是( ) 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.若有一个计算类型的程序,它的输入量只有一个X,其范围是-1.0,1.0,现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( ) A.条件覆盖法 B.等价分类法 C.边界值分析法 D.错误推测法9.研究开发所需要的成本和资源是属于可行性研究中的研究的一方面。( )A.技术可行性 B.经济可行性C.社会可行性 D.法律可行性10.模块的内聚性最高的是( )A.逻辑内聚 B.时间内聚C.偶然内聚 D.功能内聚12. ( )是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。 A 多态性 B 继承 C 封装 D 消息二、填空题1. 将数据流图映射为程序结构时, 所用映射方法涉及信息流的类型。其信息流分为 和 两种类型。2为了便于对照检查,测试用例应由输入数据和预期的_ _两部分组成。3. 软件由程序、组成。4. 在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是 关系。5. 软件工程釆用层次化的方法,每个层次都包括 、方法、 三要素。6一个模块拥有的直属下级模块的个数称为 ,一个模块的直接上级模块的个数称为 。三、名词解释题1内聚性 2软件危机 3完善性维护 4. 数据字典 5. 程序流图6. 驱动程序7. 数据耦合8. 类图9. Alpha测试与Beta测试10. 软件产品四、简答题1. 黑盒测试旨在测试软件是否满足功能要求,它主要诊断哪几类错误?2. 瀑布模型、增量模型的优缺点3. 程序流程图或者盒图的5种基本结构的画法4. 简述过程设计语言(PDL)的特点。5. 根据特定的项目,你会考虑哪些因素来选择合适的程序设计语言。6. (教材P141) 画出下列伪码程序的程序流程图和盒图STARTIF p THEN WHILE q DO f END DOELSE BLOCK g n END BLOCKEND IFSTOP7. (教材P141)研究下面的PDL语言(过程设计语言,也称伪码程序):LOOP: Set I to (START + FINISH)/2 If TABLE(I)=ITEM goto FOUND If TABLE(I)<ITEM Set START to (I+1) If TABLE(I)>ITEM Set FINISH to (I-1) If (FINISH - START) > 1 goto LOOP If TABLE(START)=ITEM goto FOUND If TABLE(FINISH) = ITEM goto FOUND Set FLAG to 0 Goto DONEFOUND: Set FLAG to 1DONE:Exit1.画出程序流图和N-S盒图。2.此程序的功能是什么?五、综合题(三题分别5,7,8分,共20分)1.某培训中心要研制一个计算机管理系统。它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做相应的修改,并给学生注销单。3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。要求:(1).对以上问题画出功能级数据流程图。(2).画出该培训管理的软件结构图。2.某旅馆的电话服务如下: 可以拨分机号和外线号码。分机号是从7201至7299。外线号码先拨9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区号是从100到300中任意的数字串。市话号码是以局号和分局号组成。局号可以是455,466,888, 552中任意一个号码。分局号是任意长度为4的数字串。要求:写出在数据字典中,电话号码的数据条目的定义即组成。3. 软件测试的过程包括哪些?黑盒测试与白盒测试的具体内容是什么?它们分别针对哪几类错误?一集成测试中自顶向下集成和自底向上集成的优缺点?1、自顶向下集成优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。2、自底向上集成优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。二简述螺旋模型的基本开发过程。正确答案(1)需求定义。利用需求分析技术理解应用领域,获取初步的用户需求,制定项目开发计划。(2)风险分析。根据初始需求或改进意见评审可选用的方案,给出消除或减少风险的途径。(3)工程实现。利用快速原型构造方法针对已知的用户需求生成快速原型。(4)评审。将原型提交用户使用并征询用户改进意见。上述过程将不断迭代,直至给出用户满意的目标软件产品。三 一般而言,衡量某种程序语言是否适合于特定的项目,应考虑哪些因素?(1)应用领域; (2)算法和计算复杂性; (3)软件运行环境; (4)用户需求中关于性能方面的需要; (5)数据结构的复杂性; (6)软件开发人员的知识水平; (7)可用的编译器与交叉编译器。四名词解释:软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的和隐含特征相一致的程度。恢复测试是指采取各种人工干预方式强制性地使软件出错,使其不能正常工作,进而检验系统的恢复能力。类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递7