《2022年软件工程复习知识要点.docx》由会员分享,可在线阅读,更多相关《2022年软件工程复习知识要点.docx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选学习资料 - - - - - - - - - 1 软件与软件工程概念1. 软件 是运算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整 集合,程序只是软件的组成部分之一;在软件开发中,编程只是软件开发过程的一个阶段;2. 在结构化程序设计时代,程序最小的单位是函数及子程序,程序与数据是分别的;程序的最小单位是类;3. 软件的特性:形状特性、智能特性、开发特性、质量特性、生产特性、治理特性、环境特性、保护特性、废弃特性、应用特性;4. 软件的分类:系统软件;应用软件;支撑软件;可复用软件;5. 什么是软件工程?(课后题)采纳工程的概念、原理、 技术和方法来软件工程是指导
2、运算机软件开发和保护的工程学科;开发和保护软件, 把经过时间考查而证明正确的治理技术和当前能够得到的最好的技术方法结合 起来,以经济地开发出高质量的软件并有效地保护它;6可以用功能性、牢靠性、易用性、效率、可保护性和可移植性六个特性衡量软件的质量;功能性是指软件所实现的功能达到它的设计规范和满意用户需求的程度;可移植性是指软件从某一环境转移到另一环境时所作努力得程度;7. 软件生存期由软件定义、软件开发和运行保护三个时期组成;开发时期通常由概要设计、具体设计、编码和测试四个阶段组成;开发过程中的典型文档包括:项目方案、软件测试方案、软件设计说明书、用户手册;8. 需求分析的基本任务? 1 建立
3、分析模型,明白系统的各种需求细节;2 基于分析结果, 编写出软件需求规格说明或系统功能规格说明,用户手册,并提交治理机构进行分析评审;确认测试方案和初步的系统2 软件工程方法与工具1. 面对对象方法的动身点和基本原就,是尽量模拟人类习惯的思维方式,使开发软件的方法和2.过程尽可能接近人类熟悉问题和解决问题的方法与过程,从而使描述问题的问题空间与其解空间在结构上尽可能一样;形式化方法的主要特点是:(课后题 )名师归纳总结 - - - - - - -第 1 页,共 10 页精选学习资料 - - - - - - - - - 1 软件需求规格说明被细化为用数学记号表达的具体的形式化规格说明;3.2 设
4、计、 实现和单元测试等开发过程由一个变换开发过程代替;通过一系列变换将形式的规格说明细化成为程序;面对对象 = 对象 + 类 + 继承 + 消息通信;4. 新类从现有的类中派生的过程,叫做类继承;5. 多态是指一个程序中同名的不同方法共存的情形;6. UML的特点:统一标准、面对对象、可视化、独立于过程、简单把握使用、与编程语言的关系; 3 软件需求猎取与结构化分析方法1.结构化分析方法的核心是数据字典,包括在目标系统中使用和生产的全部数据对象;其作用顶层数据流图或称环境图的作用是什么?(* )2.顶层数据流图(或称环境图)仅包括一个数据处理过程,也就是要开发的目标系统;如下:1 确定系统在其
5、环境中的位置,与系统有联系的外部实体 人)有哪些;(包括硬件、 软件、 组织机构及2 通过确定系统的输入和输出与外部实体的关系确定系统的边界,也就是要确定哪些功能 或处理属于系统范畴之内,哪些属于系统范畴之外,需要由其他系统处理或人工处理;3. 在对数据流图进行分解时需要留意哪些问题?(*)在对数据流图进行分解时,需要留意以下两个问题:1 当对数据流图分层细化时必需保持信息连续性,也就是说,当把一个处理分解为一系列 / 输出数据流必需相同;处理时,分解前和分解后的输入 2 留意分层细化时对编号的处理方法;4. 在需求评审的实施过程中可能会遇到得风险包括:1 需求评审的参加者选取不当;2 评审规
6、模过大;3 评审组规模过大;4 评审时间过长;3.2 顶层数据流图或称环境图的作用是什么?名师归纳总结 - - - - - - -第 2 页,共 10 页精选学习资料 - - - - - - - - - 顶层数据流图(或称环境图)仅包括一个数据处理过程,也就是要开发的目标系统;其作用如下:1 确定系统在其环境中的位置,与系统有联系的外部实体 人)有哪些;(包括硬件、 软件、 组织机构及2 通过确定系统的输入和输出与外部实体的关系确定系统的边界,也就是要确定哪些功能 或处理属于系统范畴之内,哪些属于系统范畴之外,需要由其他系统处理或人工处理;3.3 在对数据流图进行分解时需要留意哪些问题?在对数
7、据流图进行分解时,需要留意以下两个问题:1 当对数据流图分层细化时必需保持信息连续性,也就是说, 当把一个处理分解为一系列处理时,分解前和分解后的输入 / 输出数据流必需相同;2 留意分层细化时对编号的处理方法;4 结构化设计方法1. 软件设计的五项原就:分而治之、模块独立性、提高抽象层次、复用性设计、敏捷性设;2. 耦合是模块之间得相对独立性(相互连接的紧密程度)的度量, 内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量;耦合程度最高的是内容耦合;3. 结构化设计方法得实施要点是:1 第一争论、分析和审查数据流图;2 然后依据数据流图打算问题的类型;3 由数据流图推导出系统
8、的初始结构图;4 利用一些启示式原就来改进系统的初始结构图,直到得到符合要求的结构图为止;5 依据分析模型中的实体- 关系图和数据字典进行数据设计;6 在上面设计的基础上,依据分析模型中的加工规格说明、状态转换图及掌握规格说明进 行过程设计;7 制定测试方案;4. 模块结构最一般的形式是树状结构和网状结构;5. 模块结构的层次数称为结构图的深度;6. 扇出表示一个模块直接调用(或掌握)的下属模块的数目;7. 基于数据流方法的设计过程包括:名师归纳总结 - - - - - - -第 3 页,共 10 页精选学习资料 - - - - - - - - - 1 复查并精化数据流图;2 确定数据流图中数
9、据流的类型;3 导出初始的软件结构图;4 逐级分解;5 精化软件结构;6 导出接口描述和全局数据结构;8. 变换分析方法由:重画数据流图;区分有效(规律)输入、有效(规律)输出、和中心变换 部分;进行一级分解,设计上层模块;进行二级模块,设计输入、输出和中心变换部分的中、下 层模块四个部分组成;9. 模块的掌握范畴包括它本身及其全部的从属模块;10. 接口设计的依据是数据流图中的自动化系统边界;5 编码1. 程序的效率是指程序的执行速度及程序所占用内存的储备空间;2. 一般情形下,程序的效率和清楚性相比哪一个更重要?在运算机进展的早期,由于 CPU效率低,内存小,程序在运行时简单显现运行时间太
10、长或 内存溢出问题;因此,人们在编写程序时,很留意程序的时间效率和空间效率,而不太留意程序 的清楚性;随着运算机硬件性能的飞速进展以及软件规模和复杂性的急剧增加,这种情形已经发生了 根本的转变,程序的清楚性越来越受到重视,程序的清楚性不好会给测试、保护修改带来困难,这对于规模巨大和复杂的软件特别明显;对于效率没有特别严格要求的系统来说,要将程序的清楚性放在第一位,在不影响清楚性 的情形下,去改进效率;6 软件测试方法 1. 软件测试是为了发觉错误而执行程序的过程;2. 在软件测试的对象中,确认包括需求规格的确认和程序的确认;3. 规律掩盖是以程序内部的规律结构为基础的设计测试用例的技术,属于白
11、盒测试;4. 独立路径是指包括一组以前没有处理的语句或条件的一条路径;名师归纳总结 5. 通常软件测试是按4 个步骤进行,即单元测试、组装测试、确认测试和系统测试;第 4 页,共 10 页- - - - - - -精选学习资料 - - - - - - - - - 6. 调试也称排错或纠错,是紧跟在测试之后要做的工作;6.5 假设汽车的车牌号可由车主人在规定范畴内自选,如其规定为:1 车牌上应有 7 个字符;2 为首的字符限定为汉字“ 京” ;3 第 2 个字符可任选一字母(AZ);4 第 37 个字符可选任意数字;请为相关的处理程序采纳等价类划分方法设计等价类表及相应的测试用例;等价类表输入数
12、据有效等价类无效等价类字符个数 7 个( 1)06 个( 2), 7 个( 3)首字符“ 京” ( 4)非“ 京” ( 5)第 2 个字符字母( 6)非字母( 7)第 37 个字符数字( 8)非数字( 9)测试用例如下:1)京 H87774 (1),( 4),( 6),( 8)2)京 H8777 (2)3)京 H877745 (3)4)冀 H87774 (5)5)京 987774 (7)6)京 BA7774 (9)7 统一建模语言 UML概述1. 在面对对象的需求分析时,模型的静态结构也称为静态模型,在 UML中表示为类图;2. UML 中有哪些关系?说明类图中聚合和关联的相同点和不同点;在
13、UML中,常见的关系有泛化、聚合、关联、依靠和实现;在类图中,关联是一种结构关系,它描述了两个或多个类的实例之间的连接关系;聚合描名师归纳总结 - - - - - - -第 5 页,共 10 页精选学习资料 - - - - - - - - - 述了整体和部分之间的结构关系;依据关联关系的定义,聚合属于一种特别的关联关系,只不过这种关联关系具有明确的整体- 部分含义而已;从耦合度的角度看,聚合关系要强于关联关系;3. 争论次序图与协作图的关系,何时用次序图建模优于协作图建模,以及相反的情形;次序图和协作图都能描述对象间的交互关系,但两者的侧重点不同,次序图着重表现交互的时间次序, 协作图就着重表
14、现交互对象的静态链接关系;但即使他们各有侧重,但从语义上来说是等价的,可从一种图自动转换为另一种图;一般情形下, 当需要强调消息传递的时间次序时,采纳次序图; 当表示涉及许多对象的模型时,协作图比次序图更形象;次序图在分析中更常用,而协作图就在设计中更常用;8 面对对象分析1. 接口设计的依据是数据流图中的自动化系统边界;2. 比较面对对象的分析方法和面对数据流的分析方法,阐述它们各自的特点;面对对象的分析方法使用用例模型来表示用户的功能需求,用例模型相当于功能模型,在对用例模型进行细化的过程中,也相伴着对功能的分解;但面对对象的分析方法并不是以功能分解为核心,在猎取并分析用户的功能需求之后,
15、重点以类和对象为核心,建立对象模型,交互模型也是环绕对象模型进行的;面对数据流的分析方法是从建立顶层数据流图 逐层对加工进行分解;面对数据流的分析方法是以功能分解为核心的;8.3 用例建模的主要步骤是什么?用例建模的主要步骤如下:(环境图) 开头, 之后1 确定业务参加者 可以是与系统有交互的外部硬件、软件、组织、人等;2 确定业务需求用例 参加者需要系统供应的完整功能;3 创建用例图 标识参加者与用例之间、用例与用例之间的关系;8.5 用例与用例之间的关系主要有哪两种?其区分是什么?用例之间的关系主要有包含(也称使用 )和扩展 ;包含 表示一个用例所执行的功能中总是包括被包含用例的功能;扩展
16、 是指一个用例的执行可能需要由其他用例的功能来扩展,扩展联系可用于对期望或可选的行为建模,但其主要用途是使基本用例的功能不依靠于扩展用例;9 软件体系结构和设计模式1. 软件设计模式是从软件设计过程中总结出来的,针对特定问题的解决方案;2. 风格是带有一种倾向性的模式;3. 有两种领域相关的体系结构模型:类属模型和参考模型;名师归纳总结 - - - - - - -第 6 页,共 10 页精选学习资料 - - - - - - - - - 4. 一个交互式应用系统有模型、视图和掌握器 3 个部件组成;10 面对对象设计 1. 面对对象设计准就有:模块化、抽象、信息隐匿、弱耦合、强耦合;2. 在面对
17、对象软件中,常见的软件模块有类、接口、包、构件;3. 从软件复用角度,构件是指在软件开发过程中可以重复使用得软件元素;10.1 软件模块之间的依靠性可以从哪些角度和抽象层次进行分析?在面对对象软件中,常见的软件模块有类、接口、包、构件;因此,分析软件模块之间的依靠性 就可以从类、接口、包和构件的角度和层次进行分析;11 软件保护到终止1. 软件运行的外部环境可能发生变化,护;为了使软件适应这种变化而修改软件的过程叫做适应性维2. 软件保护活动花费的工作占整个生存期工作量的 70%以上;3. 软件保护的策略:改正性保护、适应性保护和完善性保护;4. 所谓副作用是指因修改软件而造成的错误或其他不期
18、望发生的情形,有修改代码的副作用、修改数据的副作用和文档的副作用三种;5. 实施风险治理方案从根本上将就是将风险化解; P314 6. 文档的分类:开发文档、治理文档、用户文档; P349 其次次复习要点1. 软件 是运算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合,程序只是软件的组成部分之一;在软件开发中,编程只是软件开发过程的一个阶段;2. 在结构化程序设计时代,程序最小的单位是函数及子程序,程序与数据是分别的;程序的最名师归纳总结 小单位是类; P2 P6 第 7 页,共 10 页3. 可移植性是指软件从某一环境转移到另一环境时所作努力的程度;4. 软件的分
19、类:系统软件;应用软件;支撑软件;可复用软件; P4 - - - - - - -精选学习资料 - - - - - - - - - 5. 什么是软件危机?它有哪些典型表现?软件危机显现的缘由是什么?软件危机: 软件危机是指在运算机软件的开发和保护过程中所遇到的一系列严峻问题典型表现 :1 对软件开发成本和进度的估量常常很不精确;2 用户对“ 已完成的” 软件系统不中意的现象常常发生;3 软件产品的质量往往靠不住;4 软件常常是不行保护的;5 软件通常没有适当的文档资料;6 软件成本在运算机系统总成本中所占的比例逐年上升;7 软件开发生产率提高的速度,既跟不上硬件的进展速度,也远远跟不上运算机应用
20、快速普及深化的趋势 产生软件危机的缘由: 除了软件本身的特点,其缘由主要有以下几个方面:1 缺乏软件开发的体会和有关软件开发数据的积存,使得开发工作方案很难制定;2 软件人员与用户的沟通存在障碍,使得猎取的需求不充分或存在错误;3 软件开发过程不规范;4 随着软件规模的增大,其复杂性往往会呈指数级上升;5 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证;6. 风格是带有一种倾向性的模式; P203 7. 耦合是模块之间得相对独立性(相互连接的紧密程度)的度量,内聚是模块功能强度(一个名师归纳总结 模块内部各个元素彼此结合的紧密程度)的度量;耦合程度最高的是内容耦合; P67 第 8
21、 页,共 10 页8. 深度:模块结构的层次数称为结构图的深度; P73 9. 接口设计的依据是数据流图中的自动化系统边界; P89 P167 10. 用例之间的关系有:包含、使用及扩展; P186 11. 在面对对象的需求分析时,模块的静态结构也称为静态模型; P171 12. 聚合也称集合,是一种特别的关联;它描述了整体与部分之间的结构关系;13. 次序图描述对象之间的动态交互关系,着重表现对象间消息传递的时间次序; P173 14. 从软件复用角度,构件是指在软件开发过程中可以重复使用得软件元素; P239 15. 调试也称排错或纠错,是紧跟在测试之后要做的工作; P159 P133 1
22、6. 规律掩盖是以程序内部的规律结构为基础得设计测试用例得技术,属于白盒测试;17. 软件保护活动花费的工作占整个生存期工作量的70%以上; P257 - - - - - - -精选学习资料 - - - - - - - - - 18. 软件过程改进循环步骤:评估- 方案 - 改进 - 监控; P291 19. 文档的分类:开发文档、治理文档、用户文档; P350 20. 在需求评审的实施过程中可能会遇到得风险包括: P63 1 需求评审的参加者选取不当;2 评审规模过大;3 评审组规模过大;4 评审时间过长;21. 软件设计的五项原就:分而治之、 模块独立性、 提高抽象层次、复用性设计、 敏捷
23、性设计P67 22. 依据保护工作的性质,保护活动可以分为:改正性保护、适应性保护、完善性保护、预防性保护四种类型; P256 23. 瀑布模型的优缺点是什么? P9 优点:可强迫开发人员采纳规范化的方法;严格地规定了每个阶段必需提交的文档;要求每个 阶段交出的全部产品都必需经过验证的;缺点:由于瀑布模型几乎完全依靠于书面的规格说明,很可能导致最终开发出的软件产品不能真正满意用户的需要;用户往往需要等待很长时间才能看到可以运行的程序;适应需求变更的能力比较差;适用范畴:瀑布模型只适用于项目开头时需求已确定的情形;24. 基于数据流方法的设计过程包括: P75 1 复查并精化数据流图;2 确定数
24、据流图中数据流的类型;3 导出初始的软件结构图;4 逐级分解;5 精化软件结构;6 导出接口描述和全局数据结构;25. 面对对象设计准就有:模块化、抽象、信息隐匿、弱耦合、强耦合; P232 提高题名师归纳总结 1.软件工程是为明白决软件危机而产生的;第 9 页,共 10 页增量模型是瀑布模型和 快速原型模型的综合;2.结构化需求的核心是数据字典;3.- - - - - - -精选学习资料 - - - - - - - - - 4.Jackson 图既可以表示数据结构,也可以表示程序结构;5. 文件设计包括 规律设计 和 物理设计 两个阶段;6. 用 类 表示对象属性及关系;7. 状态图主要用来描述对象子系统的生命周期;8. 面对对象设计中,构件图和部署图是用来表示系统物理架构的;9. 黑白盒测试;10. 软件质量掌握中,PCDA质量掌握法是指方案、执行、检查和行动;11. 软件危机的特别表现(第一页);12. 优秀的需求规格说明具有那些特点?13. 概要设计的任务?14. 结构化需求分析的主要步骤?15. 软件模块化设计有哪些常用的设计准就?16. 面对对象程序设计中,如何提高程序的复用性?17. 软件质量保证包含那些?名师归纳总结 - - - - - - -第 10 页,共 10 页