软件工程复习的几个知识点和例题.doc

上传人:h**** 文档编号:1081863 上传时间:2018-12-01 格式:DOC 页数:17 大小:719.50KB
下载 相关 举报
软件工程复习的几个知识点和例题.doc_第1页
第1页 / 共17页
软件工程复习的几个知识点和例题.doc_第2页
第2页 / 共17页
软件工程复习的几个知识点和例题.doc_第3页
第3页 / 共17页
软件工程复习的几个知识点和例题.doc_第4页
第4页 / 共17页
软件工程复习的几个知识点和例题.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、11. 软件危机的概念,内容,原因及消除的途径;概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。内容:.对软件开发成本和进度的估计常常很不准确。 1.用户对“已完成”软件系统不满意的现象经常发生。 2.软件产品的质量往往靠不住。 3.软件常常是不可维护的。 4.软件通常没有适当的文档资料。 5.软件成本在计算机系统总成本中所占的比例逐年上升。 6.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的 7趋势。原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。消除的途径:要缓解软件危机,既要有先进的技术和方法,又需要高水平的组织管理措施

2、。而软件工程正是综合了管理和技术两方面,研究如何更好地开发软件的一门新兴学科。所以,就目前而言,软件工程是缓解软件危机的最好途径。2. 软件工程的定义,基本原理;定义:软件工程是指导计算机软件开发和维护的一门工程学科。采 用 工 程 的 概念 、 原 理 、 技 术 和 方 法 来 开 发 与 维 护 软 件 , 把 经 过 时 间 考 验 而 证 明 正 确 的 管理 技 术 和 当 前 能 够 得 到 的 最 好 的 技 术 方 法 结 合 起 来 , 以 经 济 地 开 发 出 高 质 量的 软 件 并 有 效 地 维 护 它 , 这 就 是 软 件 工 程 。基 本 原 理 :.用分段

3、的生命周期计划严格管理。 1.坚持进行阶段评审。 2.实行严格的产品控制。 3.采用现代程序设计技术。 4.结果能清楚地审查。 5.开发小组的人员应尽量少而精。 6.承认不断改进软件工程实践的必要性。 723. 软件工程方法学的基本概念、内容;基本概念:软件工程方法学就是指在软件生命周期全过程中使用的一整套管理和开发技术方法的集合。内容: .传统方法学(也称为生命周期方法学或结构化范型) .面向对象方 1 2法学。4. 软件生命周期的具体内容,每一个阶段的任务是什么?结合具体的工程例子来理解做软件项目主要分那几个阶段。软件生命周期由定义、软件开发和运行维护 3 个时期组成,每个时期又进一步划分

4、成若干个阶段。软件生命周期每个阶段的基本任务:.问题定义:问题定义阶段必须回答的关键问题是:“要解决的问题是什么” 1.可行性研究:这个阶段的任务不是具体解决问题,而是研究问题的范围, 2探索这个问题是否值得去解,是否有可行的解决办法。.需求分析:确定目标系统必须具备哪些功能,是用正式文档准确地记录对 3目标系统的需要,这份文档通常称为规格说明书。.总体设计:设计出实现目标系统的几种可能的方案,制定出实现最佳方案 4的详细计划,设计程序的体系结构,也就是确定程序由哪些模块组成以及模块间的关系。.详细设计:详细地设计每个模块,确定实现模块功能所需要的算法和数据 5结构。.编码和单元测试:写出正确

5、的容易理解、容易维护的程序模块。 6.综合测试:通过各种类型的测试(及相应的调试)使软件达到预定的要求。 75. 理解几个典型软件过程的内容及其优点与缺点:瀑布模型、增量模型、快速原型模型、螺旋模型、喷泉模型等;发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。瀑布模型的缺点:(1)开发过程一般不能逆转,否则代价太大;(2)实际的项目开发很难严格按该模型进行;(3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。(4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。 快速原型模型的优点:(1)可以得到比较良好的需求定义,容易适应需求的变化;(2)有利于开

6、发与培训的同步;(3)开发费用低、开发周期短且对用户更友好。快速原型模型的缺点:(1)客户与开发者对原型理解不同;(2) 准确的原型设计比较困难;(3) 不利于开发人员的创新。3增量模型的优点:(1)采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;(2)如果核心产品很受欢迎,则可增加人力实现下一个增量;(3)可先发布部分功能给客户,对客户起到镇静剂的作用。增量模型的缺点:(1)并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;(2)增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体

7、性。螺旋模型的优点:(1)设计上的灵活性,可以在项目的各个阶段进行变更;(2)以小的分段来构建大型系统,使成本计算变得简单容易;(3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;(4) 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。螺旋模型的缺点:(1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;(2)过多的迭代次数会增加开发成本,延迟提交时间。喷泉模型:喷泉模型与传统的结构化生存期比较,具有更多的增量和迭代性质,生存期的各个阶段可以相互重叠和多次反复,而且在

8、项目的整个生存期中还可以嵌入子生存期。就像水喷上去又可以落下来,可以落在中间,也可以落在最底部。6. 了解可行性研究中的任务和过程;任务:用最小的代价在尽可能短的时间内确定问题是否能够解决. 过程:(1)复查系统规模和目标 (2)研究目前正在使用的系统(3)导出新系统的高层逻辑模型 (4)进一步定义问题(5)导出和评价供选择的解法 (6)推荐进行方针(7)草拟开发计划 (8)书写文档提交审查7. 掌握系统流程图的概念和方法,会从具体的案例中抽象出系统流程图;系统流程图:是概括地描绘物理系统的传统工具.它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件.8. 掌握数据流图的概念和方法,会

9、从具体的案例中画出 0 层数据流图和功能级数据流图;数据流图有四种基本符号:(1)正方形(或立方体) 表示数据的源点或终点; (2)圆角矩形代表变换数据的处理;(3)开口矩形代表数据存储; (4)箭头表示数据流,即特定数据的流动方向。9. 掌握数据字典的内容、方法、用户和实现;数据字典的内容:(1)数据流 (2)数据流分量(即数据元素) (3)数据存储 (4)处理由数据元素组成数据的方式有 3 种基本类型:(1)顺序(2)选择(3)重复数据字典基本的表示符号: 意思是 等价于(或定义为); 意思是 和(即,连接两个分量); 意思是或(即,从方括弧内列出的若干个分量中选择一个),通常用“”号分开

10、供选择的分量;4 意思是重复(即,重复花括弧内的分量);( )意思是可选(即,圆括弧里的分量可有可无)。数据字典最重要用途:作为分析阶段的工具10. 了解成本/效益分析方法;11. 了解需求分析过程中任务是什么.基本任务: 问题识别:双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求。 分析与综合,导出软件的逻辑模型 编写文档:包括编写“需求规格说明书 “,“初步用户使用手册“,“确认测试计划“,“修改完善软件开发计划“12. 理解面向数据流自顶向下逐步求精的方法和意义;方法:从数据流图的输出端着手分析可行性研究阶段产生的是高层数据流图从数据流图的输出端着手分析,

11、这是因为系统的基本功能是产生这些输出的关键原因输出数据决定了系统必须具有的最基本的组成元素(包括功能和数据结构组成)13. 理解分析及建模的意义,需求分析中应该建立哪三种模型?有哪些工具来帮助建立这些模型?三种模型:数据模型、功能模型、行为模型14. 掌握实体关系(E-R)图的概念,内容和实现方法,能结合具体实例建立实体关系图;15. 掌握状态图的概念,内容,实现方法和作用;16. 掌握层次方框图、warnier 图、IPO 图的概念,内容和作用;17. 有穷状态机的概念和内容; P77有穷状态机:状态集、输入集、转换函数、初始态、终态集18. 总体设计是做什么?总体设计的过程是怎样的?总体结

12、构设计的目的是什么?总体设计的目标是将需求分析阶段定义的系统模型转换成相应的软件结构,以规定软件的形态及各成分间的层次关系、界面及接口要求。总体设计通常由两个过程组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构。目的:19. 掌握几个设计原理,理解他们的内容和意义;1)模块化 就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求.52)抽象 3)逐步求精 4)信息隐藏和局部化 5)模块独立 它有两个定性标准度量:内聚和耦合.20. 掌握耦合和内聚的概念和内容,理解这些原理对设计有哪些指导意义;

13、耦合:耦合是对一个软件结构内不同模块之间互连程度的度量。内聚:内聚标志着一个模块内各个元素彼此结合的紧密程序,它是信息隐藏和局部化概念的自然扩展。耦合是影响软件复杂程度的一个重要因素。设计时力争做到高内聚,并且能够辨认出低内聚的模块,有能力通过修改设计提高模块的内聚程度并且降低模块间的耦合程度,从而获得较高的模块独立性。21. 耦合包含了哪些类型?每个类型的具体内容是什么?要求能通过程序代码识别出耦合类型。(1)非直接耦合:就是没有耦合。 (2)数据耦合:就是参数传递耦合,它属于低级别耦合。 (3)标记耦合:标记耦合指两个模块之间传递的是数据结构。 (4)控制耦合:它属于中级别耦合,比如调度程

14、序与进程之间的耦合,就是控制耦合。 (5)外部耦合:属于高级别耦合 (6)公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合。 (7)内容耦合:属于最高级别耦合,例如,一个模块利用分支或跳转技术,转入到另一个模块中去执行,就是内容耦合。22. 启发性规则的内容及部分概念。1.改进软件结构提高模块独立性2.模块规模应该适中3.深度、宽度、扇出和扇入都应适当4.模块的作用域应该在控制域之内5.力争降低模块接口的复杂程度6.设计单入口单出口的模块7.模块功能应该可以预测23. 层次图、HIPO 图和结构图的内容;24. 掌握面向数据流的设计方法,了解其中涉及到的概念(变换流,事务流),结合例

15、子理解变换分析的具体过程。面向数据流的设计方法把信息映射成软件结构,信息流的类型决定了映射的方法。信息流有两种:(1)变换流 (2)事务流 (P105)变换流:信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加处理以后再沿输出通路变换成外部形式离开软件系统。事务流:以事务为中心,数据沿输入通路到达一个处理 T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。25. 详细设计是做什么?详细设计的根本目标:确定应该怎样具体地实现所要求的系统。 26. 什么是结构程序设计?如果一个程序的代码块仅仅通过顺序、选择和循环这 3 种基本控制结构进行连接,并且

16、每个代码块只有一个入口和一个出口,则称这个程序是结构化的。627. 人机界面设计问题包含哪些?(1)系统响应时间 (2)用户帮助设施 (3)出错信息处理 (4)命令交互28. 掌握设计过程中用到的工具:程序流程图的概念,内容和方法;盒图的概念、内容和方法;会结合实例使用这些工具;掌握 PAD 图的概念和内容;掌握判定表的概念和内容。要结合实例来掌握它们。过程设计的工具:图形(程序流程图、盒图,PAD 图) 、表格(判定表、判定树)和语言(过程设计语言(PDL))三类。程序流程图:程序流程又称为程序框图,它是历史最悠久、使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法。盒图:出于要

17、有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和 Shneiderman 提出了盒图,又称为 N-S 图。PAD 图: PAD 是问题分析图的英文缩写,它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。判定表:一张判定表由 4 个部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。判定表右半部的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。29. 了解结合 Jackson 图来掌握面向数据结构的设计方法;会用 Jackson 程序设计方法对具体的实例进行设计。数据元素彼

18、此之间的逻辑关系:顺序、选择、重复元顺序结构一个顺序元素由一个或多个从左到右的元素组成每个组成的元素只出现一次A B CD选择结构选择是“If Then Else”或“Case”的结构,而且必须有两个或多个元素使用选择元素时根据指定的条件从这些子元素中选择一个子元素A B CDS重复结构重复元素仅由一个子元素构成,表示重复元素由子元素重复 0 次或多次组成D*AI730. 掌握几种测试:单元测试、集成测试、确认测试、白盒测试技术和黑盒测试技术;掌握它们的概念,内容和方法;单元测试:单元测试集中监测软件设计的最小单元模块。从这些方面对模块进行测试:(1)模块接口(2)局部数据结构(3)重要的执行

19、通路(4)出错处理通路(5)边界条件集成测试:是测试和组装软件的系统化技术。测试方法:(1)非渐增式测试 (2)渐增式测试当使用渐增方式把模块结合到程序中去时,有自顶向下和自底向上的两种集成策略白盒测试:根据程序内部逻辑结构进行测试,来检验程序内部动作是否按照规格说明书的规定正常进行。黑盒测试:根据程序外部特征来进行测试,着重测试软件功能,它并不能取代白盒测试,它是与白盒测试互补的测试方法。31. 对每一种测试方法,理解其具体细节:比如理解什么是渐增式测试和非渐增式测试,什么是 Alpha 测试和 Beta 测试.;Alpha 测试:由用户在开发者的场所进行,并且在开发者对用户的“指导“下进行

20、测试。开发者负责记录发现的错误和使用中遇到的问题. Beta 测试:由软件的最终用户在一个或多个客户场所进行.与 Alpha 测试不同,开发者通常不在 Beta 测试的现场,因此, Bate 测试时软件在开发者不能控制的环境中的“真实 “应用。32. 结合 G.J.Myers 的观点理解软件测试的目的;(教材 p150)33. 掌握白盒测试的技术细节(比如:掌握逻辑覆盖中的 8 个覆盖点;掌握基本路径测试,会根据过程设计结果画出相应的流图;会计算流图的环形复杂度;会计算出线性独立路径的基本集合);掌握黑盒测试的技术细节;白盒测试:软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试

21、对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。8 个覆盖点:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、点覆盖、边覆盖、路径覆盖黑盒测试:黑盒测试着重测试软件功能。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。34. 理解软件维护的定义、特点和维护过程;定义:就是在

22、软件已经交付使用之后,为了改正错误或满足新的需要而修改的过程。过程:1、维护组织 2、维护报告 3、维护的事件流 4、保存维护记录 5、评价维护活动。35. 掌握面向对象方法学的要点,理解面向对象方法学的优点;面向对象方法学的四要点是:对象、类、继承、消息。优 点 : 1.与 人 类 习 惯 的 思 维 方 法 一 致 。 2.稳 定 性 好 3.可 重 用 性 好84.较 易 开 发 大 型 软 件 产 品 5.可 维 护 性 好36. 掌握面向对象的概念;面向对象的基本概念:对象是由描述该对象属相的数据以及可以对这些数据施加的所有操作封装在一起的统一体。37. 面向对象建模是建立哪三个模型

23、?它们的具体内容是什么?三个模型: 对象模型(类图):描述系统的数据结构;动态模型(状态转换图):描述系统的控制结构;功能模型(用例图,数据流图):描述系统功能。38. 建立对象模型的内容是什么?在面向对象的分析和设计阶段,致力于建立模拟问题领域的对象模型。建立对象模型即包括自底向上的抽象过程,也包括自顶向下的分解过程39. 掌握用 UML 提供的类图来建立对象模型的方法。理解类图的定义、基本符号和具体内容;40.能结合实例掌握类图中类与类之间的关系:关联、泛化(继承)、依赖和细化。能根据实例情况正确判断出类与类之间的具体关系类型。关联(Association)表现为变量。类与类之间的联接,它

24、使一个类知道另一个类的属性和方法。例如如果 A 依赖于 B,则 B 体现为 A 的全局变量。如 person 类和 company 类关联关系有双向关联和单向关联。双向关联:两个类都知道另一个类的公共属性和操作。单向关联:只有一个类知道另外一个类的公共属性和操作。大多数关联应该是单向的,单向关系更容易建立和维护,有助于寻找可服用的类。UML 图中实现使用一条实线连接相同或不同类9泛化(Generalization)表现为继承或实现关系。具体形式为类与类之间的继承关系,接口与接口之间的继承关系,类对接口的实现关系UML 图中实现使用一条带有空心三角箭头的实线指向基类。如下依赖 (Dependen

25、cy)表现为函数中的参数。是类与类之间的连接,表示一个类依赖于另一个类的定义,其中一个类的变化将影响另外一个类。例如如果 A 依赖于 B,则 B 体现为局部变量,方法的参数、或静态方法的调用。如电视(TV)依赖于频道(channel)常见的依赖关系如下:(1)类 B 以参数的形式传入类 A 的方法。(2)类 B 以局部变量的形式存在于类 A 的方法中。(3)类 A 调用类 B 的静态方法。UML 图中实现使用一条带有箭头的虚线指向被依赖的类。如下实现(Realization):指的是一个类实现接口(可以是多个)的功能;实现是类与接口之间最常见的关系;C 中没有直接的接口而是通过在类中定义纯虚函

26、数来实现的。UML 图中实现使用一条带有空心三角箭头的虚线指向接口。如下10聚合(Aggregat ion)是关联关系的一种,是强的关联关系。聚合关系是整体和个体的关系。普通关联关系的两个类处于同一层次上,而聚合关系的两个类处于不同的层次,一个是整体,一个是部分。同时,是一种弱的“拥有”关系。UML 图中实现使用一条带有虚心菱形的线来表示组合(Composition)是关联关系的一种,是比聚合关系强的关联关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。Composition(组合关系)是一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期一致。他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;UML 图中实现使用一条带有实心菱形的线来表示

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

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。