您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程复习的几个知识点和例题(1)
11.软件危机的概念,内容,原因及消除的途径;概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。内容:○1.对软件开发成本和进度的估计常常很不准确。○2.用户对“已完成”软件系统不满意的现象经常发生。○3.软件产品的质量往往靠不住。○4.软件常常是不可维护的。○5.软件通常没有适当的文档资料。○6.软件成本在计算机系统总成本中所占的比例逐年上升。○7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。消除的途径:要缓解软件危机,既要有先进的技术和方法,又需要高水平的组织管理措施。而软件工程正是综合了管理和技术两方面,研究如何更好地开发软件的一门新兴学科。所以,就目前而言,软件工程是缓解软件危机的最好途径。2.软件工程的定义,基本原理;定义:软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。基本原理:○1.用分段的生命周期计划严格管理。○2.坚持进行阶段评审。○3.实行严格的产品控制。○4.采用现代程序设计技术。○5.结果能清楚地审查。○6.开发小组的人员应尽量少而精。○7.承认不断改进软件工程实践的必要性。23.软件工程方法学的基本概念、内容;基本概念:软件工程方法学就是指在软件生命周期全过程中使用的一整套管理和开发技术方法的集合。内容:○1.传统方法学(也称为生命周期方法学或结构化范型)○2.面向对象方法学。4.软件生命周期的具体内容,每一个阶段的任务是什么?结合具体的工程例子来理解做软件项目主要分那几个阶段。软件生命周期由定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。软件生命周期每个阶段的基本任务:○1.问题定义:问题定义阶段必须回答的关键问题是:“要解决的问题是什么”○2.可行性研究:这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。○3.需求分析:确定目标系统必须具备哪些功能,是用正式文档准确地记录对目标系统的需要,这份文档通常称为规格说明书。○4.总体设计:设计出实现目标系统的几种可能的方案,制定出实现最佳方案的详细计划,设计程序的体系结构,也就是确定程序由哪些模块组成以及模块间的关系。○5.详细设计:详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。○6.编码和单元测试:写出正确的容易理解、容易维护的程序模块。○7.综合测试:通过各种类型的测试(及相应的调试)使软件达到预定的要求。5.理解几个典型软件过程的内容及其优点与缺点:瀑布模型、增量模型、快速原型模型、螺旋模型、喷泉模型等;发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。瀑布模型的缺点:(1)开发过程一般不能逆转,否则代价太大;(2)实际的项目开发很难严格按该模型进行;(3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。(4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。快速原型模型的优点:(1)可以得到比较良好的需求定义,容易适应需求的变化;(2)有利于开发与培训的同步;(3)开发费用低、开发周期短且对用户更友好。快速原型模型的缺点:(1)客户与开发者对原型理解不同;(2)准确的原型设计比较困难;(3)不利于开发人员的创新。增量模型的优点:(1)采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;(2)如果核心产品很受欢迎,则可增加人力实现下一个增量;3(3)可先发布部分功能给客户,对客户起到镇静剂的作用。增量模型的缺点:(1)并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;(2)增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。螺旋模型的优点:(1)设计上的灵活性,可以在项目的各个阶段进行变更;(2)以小的分段来构建大型系统,使成本计算变得简单容易;(3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;(4)随着项目推进,客户始终掌握项目的最新信息,从而他或她能够和管理层有效地交互。螺旋模型的缺点:(1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;(2)过多的迭代次数会增加开发成本,延迟提交时间。喷泉模型:喷泉模型与传统的结构化生存期比较,具有更多的增量和迭代性质,生存期的各个阶段可以相互重叠和多次反复,而且在项目的整个生存期中还可以嵌入子生存期。就像水喷上去又可以落下来,可以落在中间,也可以落在最底部。6.了解可行性研究中的任务和过程;任务:用最小的代价在尽可能短的时间内确定问题是否能够解决.过程:(1)复查系统规模和目标(2)研究目前正在使用的系统(3)导出新系统的高层逻辑模型(4)进一步定义问题(5)导出和评价供选择的解法(6)推荐进行方针(7)草拟开发计划(8)书写文档提交审查7.掌握系统流程图的概念和方法,会从具体的案例中抽象出系统流程图;系统流程图:是概括地描绘物理系统的传统工具.它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件.8.掌握数据流图的概念和方法,会从具体的案例中画出0层数据流图和功能级数据流图;数据流图有四种基本符号:(1)正方形(或立方体)表示数据的源点或终点;(2)圆角矩形代表变换数据的处理;(3)开口矩形代表数据存储;(4)箭头表示数据流,即特定数据的流动方向。9.掌握数据字典的内容、方法、用户和实现;数据字典的内容:(1)数据流(2)数据流分量(即数据元素)(3)数据存储(4)处理由数据元素组成数据的方式有3种基本类型:(1)顺序(2)选择(3)重复数据字典基本的表示符号:=意思是等价于(或定义为);+意思是和(即,连接两个分量);[]意思是或(即,从方括弧内列出的若干个分量中选择一个),通常用“|”号分开供选择的分量;{}意思是重复(即,重复花括弧内的分量);()意思是可选(即,圆括弧里的分量可有可无)。数据字典最重要用途:作为分析阶段的工具10.了解成本/效益分析方法;411.了解需求分析过程中任务是什么.基本任务:⑴问题识别:双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求。⑵分析与综合,导出软件的逻辑模型⑶编写文档:包括编写需求规格说明书,初步用户使用手册,确认测试计划,修改完善软件开发计划12.理解面向数据流自顶向下逐步求精的方法和意义;方法:从数据流图的输出端着手分析可行性研究阶段产生的是高层数据流图从数据流图的输出端着手分析,这是因为系统的基本功能是产生这些输出的关键原因输出数据决定了系统必须具有的最基本的组成元素(包括功能和数据结构组成)13.理解分析及建模的意义,需求分析中应该建立哪三种模型?有哪些工具来帮助建立这些模型?三种模型:数据模型、功能模型、行为模型14.掌握实体关系(E-R)图的概念,内容和实现方法,能结合具体实例建立实体关系图;15.掌握状态图的概念,内容,实现方法和作用;16.掌握层次方框图、warnier图、IPO图的概念,内容和作用;17.有穷状态机的概念和内容;P77有穷状态机:状态集、输入集、转换函数、初始态、终态集18.总体设计是做什么?总体设计的过程是怎样的?总体结构设计的目的是什么?总体设计的目标是将需求分析阶段定义的系统模型转换成相应的软件结构,以规定软件的形态及各成分间的层次关系、界面及接口要求。总体设计通常由两个过程组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构。目的:19.掌握几个设计原理,理解他们的内容和意义;1)模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求.2)抽象3)逐步求精4)信息隐藏和局部化5)模块独立它有两个定性标准度量:内聚和耦合.20.掌握耦合和内聚的概念和内容,理解这些原理对设计有哪些指导意义;耦合:耦合是对一个软件结构内不同模块之间互连程度的度量。内聚:内聚标志着一个模块内各个元素彼此结合的紧密程序,它是信息隐藏和局5部化概念的自然扩展。耦合是影响软件复杂程度的一个重要因素。设计时力争做到高内聚,并且能够辨认出低内聚的模块,有能力通过修改设计提高模块的内聚程度并且降低模块间的耦合程度,从而获得较高的模块独立性。21.耦合包含了哪些类型?每个类型的具体内容是什么?要求能通过程序代码识别出耦合类型。(1)非直接耦合:就是没有耦合。(2)数据耦合:就是参数传递耦合,它属于低级别耦合。(3)标记耦合:标记耦合指两个模块之间传递的是数据结构。(4)控制耦合:它属于中级别耦合,比如调度程序与进程之间的耦合,就是控制耦合。(5)外部耦合:属于高级别耦合(6)公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合。(7)内容耦合:属于最高级别耦合,例如,一个模块利用分支或跳转技术,转入到另一个模块中去执行,就是内容耦合。22.启发性规则的内容及部分概念。1.改进软件结构提高模块独立性2.模块规模应该适中3.深度、宽度、扇出和扇入都应适当4.模块的作用域应该在控制域之内5.力争降低模块接口的复杂程度6.设计单入口单出口的模块7.模块功能应该可以预测23.层次图、HIPO图和结构图的内容;24.掌握面向数据流的设计方法,了解其中涉及到的概念(变换流,事务流),结合例子理解变换分析的具体过程。面向数据流的设计方法把信息映射成软件结构,信息流的类型决定了映射的方法。信息流有两种:(1)变换流(2)事务流(P105)变换流:信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加处理以后再沿输出通路变换成外部形式离开软件系统。事务流:以事务为中心,数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。25.详细设计是做什么?详细设计的根本目标:确定应该怎样具体地实现所要求的系统。26.什么是结构程序设计?如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。27.人机界面设计问题包含哪些?(1)系统响应时间(2)用户帮助设施(3)出错信息处理(4)命令交互28.掌握设计过程中用到的工具:程序流程图的概念,内容和方法;盒图的概念、内容和方法;会结合实例使用这些工具;掌握PAD图的概念和内容;掌握判定表的概念和内容。要结合实例来掌握它们。6过程设计的工具:图形(程序流程图、盒图,PAD图)、表格(判定表、判定树)和语言(过程设计语言(PDL))三类。程序流程图:程序流程又称为程序框图,它是历史最悠久、使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法。盒图:出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和Shneiderman提出了盒图,又称为N-S图。PAD图:PAD是问题分析图的英文缩写,它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。判定表:一张判定表由4个部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。判定表右半部的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。29.了解结合Jackson图来掌握面向数据结构的设计方法;会用Jackson程序设计方法对具体的实例进行设计。数据元素彼此之间的逻辑关系:顺序、选择、重复元顺序结构一个顺序元素由一个或多个从左到右的元素组成每个组成的元素只出现一次ABCD选择结构选择是“IfThenElse”或“Case”的结构,而且必须
本文标题:软件工程复习的几个知识点和例题(1)
链接地址:https://www.777doc.com/doc-1891067 .html