《2022年完整word版,软件工程期末复习要点归纳总结.docx》由会员分享,可在线阅读,更多相关《2022年完整word版,软件工程期末复习要点归纳总结.docx(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选学习资料 - - - - - - - - - 第一章 软件工程学概论1、软件危机产生的缘由软件本身的特点:难于保护、规律复杂软件开发与保护的方法不正确 课本表述:忽视需求分析重要性、轻视软件保护1、软件不同于硬件,它是运算机中的规律部件而不是物理部件而且程序的复杂性将规模的2、软件不同于一般程序,它的一个显著特点是规模巨大,增加而出现指数上升;3、软件本身特有的特点的确给开发和保护带了一些客观困难4、软件开发与保护有关的很多错误熟悉与做法有关(忽视需求分析,轻视软件保护)5、对用户要求没有完整精确的熟悉就匆忙开头着手编写程序6、在软件不同阶段进行修改需要付出的代价是很不相同的2、软件危机的
2、表现(什么是软件危机)1、成本高:2、软件质量得不到保证:3、进度难以掌握: 项目延期比比皆是软件质量问题导致失败的软件项目特别多 由于进度问题而取消的软件项目较常见 只有一小部分的项目能够按期完成4、保护特别困难: 软件保护的多样性 软件保护的复杂性 软件保护的副作用3、克服软件危机1 、治理的角度:软件开发过程的讨论、文档的标准化以及人员的沟通方式等 2 、软件开发方法的讨论结构化软件开发方法, 面对对象的开发4、软件工程的定义概括的说,软件工程师指导运算机软件开发和保护的一门工程学科;采纳工程的概念、名师归纳总结 原理、技术和方法来开发和保护软件,把经过时间考查而证明正确的治理技术和当前
3、能够得第 1 页,共 16 页- - - - - - -精选学习资料 - - - - - - - - - 到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地保护它,这就是软件工程;(1)、软件工程就是建立和使用一套合理的工程原理,从而经济地获得牢靠的、可以在实际机器上高效运行的软件;(2)、把系统的、规范的、可度量的方法应用于软件开发、运行和保护的过程,也就 是把工程应用于软件 .讨论中提到的途径总之: 软件工程是应用运算机科学、数学及治理科学等原理开发软件的工程;他借鉴传 统工程的原理、方法,以提高质量,降低成本为目的;5、软件工程的本质特性1、 关注与大型程序的构造 2、 中心
4、课题是掌握复杂度 3、 软件常常变化 4、 开发软件的效率特别重要 5、 和谐的合作是开发软件的关键 6、 软件必需有效地支持它的用户 7、 在软件工程领域中通常由具有一个文化背景的人替另外一种文化背景的人制造产 品6、软件工程的基本原理1、用分阶段的生命周期方案严格治理 2、坚持进行阶段评审 3、实行严格的产品掌握 4、采纳现代程序设计技术 5、结果应能清晰地审查 6、开发小组应当少而精 7、承认不断改进软件工程实践的必要性 软件工程学包含 3 个要素:方法、工具和过程7、软件生命周期1、概念 : 软件生命周期由软件定义、软件开发和运行保护(也成软件保护)3 个时期组成;2、内容:名师归纳总
5、结 - - - - - - -第 2 页,共 16 页精选学习资料 - - - - - - - - - 1、 问题定义回答 “要解决的问题是什么 的书面报告2、 可行性分析.“,写出关于问题性质、工程目标和工程规模回答 ”对于问题是否有行得通的解决方法 .“,即探究问题是否值得去解,是否有可行的方法3、 需求分析确定 ”为明白决这个问题,目标系统必需做什么 备哪些功能,得到需求规格说明书;4、 总体设计 回答 ”概括地说,应当怎样实现目标系统?及模间的关系5、 具体设计“,确定目标系统必需具“ ,确定程序由哪些模块组成以回答 ”应当怎样具体地实现这个系统呢 .”,确定实现模块功能所需要的算 法
6、与数据结构 6、 编码和单元测试 写出正确的简洁懂得、简洁保护的程序模块,然后认真测试每个模块 7、 综合测试 通过各种类型的测试(及相应的调试)是软件达到预定要求 8、 软件保护 通过各种必要活动是系统长久地满意用户需求8、生命周期模型1、瀑布模型 传统瀑布模型特点:1、 阶段间具有次序性与依靠性名师归纳总结 - - - - - - -第 3 页,共 16 页精选学习资料 - - - - - - - - - 2、 推迟实现的观点3、 质量保证的观点 瀑布模型优点:1、 可强迫开发人员使用规范的方法(例如:结构化技术);2、 严格规定每个阶段必需提交的文档;3、 要求每个阶段交出的全部产品都必
7、需通过验证;缺点:1、“ 瀑布模型是由文档驱动的” 成为主要缺点 适用范畴:适合于 用户需求明确、完整、无重大变化 2、快速原型模型 适用范畴:的软件项目开发;用户不能给出完整、精确的需求说明, 或者开发者不能确定算法的有效性、操作系统的适应性或人机交互的形式等情形;3、增量模型 特点:1、反复的应用瀑布模型的基本成分和原型模型的迭代特点,每一个线型过程 产生一个“ 增量” 的发布或提交,该增量均是一个可运行的产品;2、 早期的版本实现用户的基本需求,并供应应用户评估的平台;优点:1、 在较短时间内向用户提交可完成部分工作的产品;2、 逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,
8、从而减 少一个全新的软件可能给客户组织带来的冲击;缺点:1、 软件体系结构必需是开放的;2、 开发人员既要把软件系统看作整体;又要看成可独立的构件,相互冲突;3、 多个构件并行开发,具有无法集成的风险;4、螺旋模型 基本思想:使用原型或其他方法来降低风险;适用范畴:适用于内部开发大规模软件项目;优点:1、对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质 量作为软件发的一个重要目标2、削减了过多测试或测试不足 3、保护和开发之间并没有本质区分 缺点:1、 风险驱动,需要相当丰富的风险评估体会和特地学问,否就风险更大 2、 随着迭代次数的增加,工作量加大,软件开发成本增加 5、喷泉
9、模型 特点:名师归纳总结 喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于采纳对象第 4 页,共 16 页- - - - - - -精选学习资料 - - - - - - - - - 技术的软件开发项目; 该模型认为软件开发过程自下而上周期的各阶段是相互 迭代和无间隙的特性;6、Rational 统一过程 RUP重复一系列周期, 每个周期由一个交付给用户的产品终止;每个周期划分为初 始、细化、构造和移交四个阶段,每个阶段环围着五个核心工作流(需求、分析、设计、实现、测试)分别迭代;其次章 可行性讨论1、 概念(目的)用最小的代价在尽可能短的时间内确定问题是否能够解决,定问题是否值得去
10、解决;2、 可行性讨论任务不是解决问题, 而是确明白客户的要求及现实环境,从技术、 经济和社会因素等三方面讨论并论证本软件 项目的可行性,编写可行性讨论报告,制定初步项目开发方案;即对软件开发以后的行动方针提出建议;3、 讨论内容(1)技术可行性使用现有的技术能实现这个系统吗.(2)经济可行性这个系统的经济效益能超过它的开发成本吗(3)操作可行性系统的操作方式在这个用户组织内行得通吗.(4)法律可行性新系统开发是否会侵害法藤、集体或国家利益4、 数据字典(1)、内容 1、数据流 2、数据流重量(即数据元素)3、数据储备 4、处理(2)、作用 对于数据流图中显现的全部被命名的图形元素在字典中作为
11、一个词条加以定 义,使得每一个图形元素都有一个准确的定义;名师归纳总结 - - - - - - -第 5 页,共 16 页精选学习资料 - - - - - - - - - 第三章 需求分析1、 需求分析的任务(1)确定对系统的综合要求(2)分析系统的数据要求(3)导出系统的规律模型(4)修正系统的开发步骤2、 猎取需求的方法(1)访谈(2)面对数据流自顶向下(3)简易的应用规模说明技术(4)快速建立软件模型3、 实体-关系图(.)、层次方框图 (.)和 IPO 图(.)4、 结构化分析模型名师归纳总结 - - - - - - -第 6 页,共 16 页精选学习资料 - - - - - - -
12、- - 数据流图:描画当数据在软件系统中移动时被变换的规律过程,的功能,是建立功能模型的基础 实体 - 联系图:指明系统具有的变换数据描画数据对象及数据对象之间的关系,用于建立数据模型; 状态转换图:名师归纳总结 态”指明白作为外部大事结果的系统行为;描画了系统的各种行为模式 称为“ 状第 7 页,共 16 页 和在不同状态间转换的方式;是行为建模的基础- - - - - - -精选学习资料 - - - - - - - - - 第四章 总体设计1、 模块独立性与耦合性(.)1 模块化把程序划分成独立命名且可独立拜访的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功
13、能满意用户的需求模块化的优点:1. 使软件结构清晰,简洁设计也简洁阅读与懂得2. 简洁测试与调试,提高牢靠性3. 提高软件的可修改性4. 有助于软件开发工程的组织治理2 模块独立的重要性 有效的模块化即具有独立的模块的软件比较简洁开发出来 独立的模块比较简洁测试和保护3 耦合衡量不同模块彼此间相互依靠 他模块之间的关系要简洁连接 的紧密程度,耦合要低,即每个模块和其1、 数据耦合: 两个模块之间通过参数交换信息,而且交换的信息仅仅是数据 2、 掌握耦合: 传递的信息中有掌握信息 3、 特点耦合: 当把整个数据结构作为参数传递而被调用的模块只需要使用其 中一部分数据元素4、 公共环境耦合:两个或
14、多个模块通过一个公共环境相互作用5、 内容耦合: 显现一下情形之一,就为内容耦合:1、 一个模块拜访另一个模块的内部数据 2、 一个模块不通过正常入口而转到另一个模块的内部 3、 两个模块有一部分代码重叠 4、 一个模块有多个入口 数据耦合 掌握耦合 特点耦合 公共环境耦合 内容耦合4 内聚( .)衡量一个模块内部各个元素彼此结合的紧密程度;个相对独立的特定子功能信息隐匿( .)应当这样设计和确定模块,使得一个模块内包含的信息 些信息的模块来说,是不能拜访的内聚要高, 每个模块完成一过程和数据 对于不需要这名师归纳总结 - - - - - - -第 8 页,共 16 页精选学习资料 - - -
15、 - - - - - - 2、 启示规章1、 改进软件结构提高模块独立性 2、 模块规模应当适中 3、 深度、宽度、扇入、扇出都应适中 4、 模块的作用域应当在掌握域之内 5、 力争降低模块接口的复杂度 6、 设计单入口、单出口模块 7、 模块功能应当可以猜测3、 层次图和 HIPO 图( .)4、 面对数据流的设计方法(.)1 概念面对数据流设计就是把信息流映射成软件结构,信息流包括变换流、事物流;2 变换分析与事务分析(.105)5、 小结信息流的类型打算了映射的方法;i. 进行软件结构设计遵循的最主要的原理是模块独立原理ii. 抽象和求精是一对互补概念iii. 软件工程师在实践中总结体会
16、得出一些很有参考价值的启示式规章iv. 自顶向下逐步求精是进行软件结构设计的常用途径v. 用形式化的方法由数据流图映射出软件结构第五章 实现1、 挑选程序设计语言为了使程序简洁测试和保护以削减软件的总成本,所选用的高级语言程序应当有抱负的模块化机制,以及可读性好的掌握结构和数据结构:为了便于调试和提高软件牢靠性,语言特点应当是编译程序能够尽可能多地发觉程序中的错误;为了降低软件开发和保护的成本,选用的高级语言应当有良好的独立编译机制;名师归纳总结 - - - - - - -第 9 页,共 16 页精选学习资料 - - - - - - - - - 第六章 软件测试2、测试的概念1 测试是为了发觉
17、程序中的错误而执行程序的过程2 好的测试方案是极可能发觉了至今为止尚未发觉的错误的测试方案;3 胜利的测试是发觉了至今为止尚未发觉的错误的测试;3、测试的过程与步骤(.)大型软件的测试过程基本由下述几个步骤组成1 模块测试(单元测试)2 子系统测试 3 系统测试(集成测试)4 验收测试(确认测试)5 平行运行发觉编码和具体设计的错误4、单元测试( .着重从下述 5 个模块进行测试(主要使用白盒测试技术)1 模块接口 2 局部数据结构 3 重要的执行通路 4 出错处理通路 5 边界条件5、集成测试( .集成测试就是测试和组装软件的系统化技术,主要目标是发觉与接口有关的问题;有两种集成策咯1 自顶
18、向下集成 2 自底向上集成名师归纳总结 - - - - - - -第 10 页,共 16 页精选学习资料 - - - - - - - - - 6、确认测试( .也称验收测试,它的目标是验证软件的有效性;通常使用黑盒测试法;7、白盒测试技术(.)白盒方法测试软件时设计测试数据的典型技术1 规律掩盖 1、 语句掩盖 2、 判定掩盖 3、 条件掩盖 4、 判定 /条件掩盖 5、 条件组合掩盖 6、 点掩盖 7、 边掩盖 8、 路径掩盖2 掌握结构测试 1、 基本路径测试 2、 条件测试 3、 循环测试8、黑盒测试技术(.)黑盒测试力图发觉下述类型的错误:1 功能不正确或遗漏了功能;2 界面错误;3
19、数据结构错误或外部拜访数据库错误 4 性能错误 5 初始化和终止错误黑盒测试用到的技术1 等价划分 2 边界值分析 3 错误估量名师归纳总结 - - - - - - -第 11 页,共 16 页精选学习资料 - - - - - - - - - 第七章 保护1、 保护的定义( .所谓软件保护就是在软件已经交付使用周,件的过程;为了改正错误或满意新的需要而修改软依据交付使用之后可能进行的 4 项活动具体定义软件保护1 改正性保护 订正在使用过程中暴露出来的错误;诊断和改正错误的过程,2 适应性保护 为了和变化了的环境适当地协作而进行的修改软件活动3 完善性保护在使用软件的过程中增加新的功能或修改已
20、有功能,看法的过程4 预防性保护仍可能提出一般性的改进为了改进将来的可保护性与牢靠性,或为了给将来的改进奠定更好的基础而修改软件的过程;2、 保护的过程( .1 保护组织 2 保护报告3 保护的大事流 4 储存保护记录5 评判保护活动3、 小结1、 软件生命周期每个阶段的工作都和软件可保护性有亲密关系;2、 再工程过程可以在完成任意一个活动之后中止名师归纳总结 - - - - - - -第 12 页,共 16 页精选学习资料 - - - - - - - - - 第八章 面对对象技术1、 面对对象方法学要点(.面对对象方法学的动身点和基本原就,是尽可能模拟人类思维方法,是开发软件尽可能接近人类熟
21、悉世界解决问题的方法与过程;2、 面对对象方法学优点1、 与人类习惯的思维方法一样 2、 稳固性好3、 可重用性好 4、 较易开发大型软件产品 5、 可保护性好3、 对象模型 (.对象模型表示静态的,结构化的系统的“ 数据 ”性质; 它是对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静态结构;4、 动态模型 (.动态模型表示瞬时的、行为化的系统的” 掌握 “性质, 它规定了对象模型中的对象的合法序列;5、 功能模型 (.功能模型表示变化的系统的”功能 “性质,他指明白系统应当”做什么 ”,因此更直接反映了用户对目标系统的需求;名师归纳总结 - - - - - - -第 13
22、 页,共 16 页精选学习资料 - - - - - - - - - 6、 三种模型之间的关系(.功能模型指明白系统应当“ 做什么”;动态模型明确规定了什么时候(即在何种状况下接受什么时间的触发)做;对象模型就定义了做事情的实体;在面对对象方法学中,对象模型是最基本的,它为其他两种模型奠定了基础,人们依靠对象模型完成了 3 中模型的集成;下面扼要地表达 3 种模型之间的关系;三种模型描述了系统的不同方面:对象模型动态模型功能模型对象的静态结构与时间和次序有与值的变化有关及相互关系关的系统性质的系统性质描述系统的数据掌握结构系统的功能结构“干事的主体”“ 什么时候干”“ 干什么”功能模型与对象模型
23、的关系-对象模型描述了功能模型中的动作对象,数据储备以及数据流结构-功能模型中的处理对应于对象模型中的操作动态模型与对象模型的关系-状态转换促使行为发生,这些行为在DFD中被映射成处理,它们同时与对象模型的操作相对应-针对每个建立的动态模型描述了类实例的生命周期或运行周期动态模型与功能模型的关系-功能模型中的处理可能产生动态模型中的大事;7、 其他复杂问题(大型系统) 的对象模型通常由下述 结构层、属性层、服务层5 个层次组成: 主题层、类与对象层、主题层 类与对象层 结构层 属性层 服务层名师归纳总结 - - - - - - -第 14 页,共 16 页精选学习资料 - - - - - -
24、- - - 面对对象开发方法包括 对象实现)三个部分OOA(面对对象分析) 、OOD(面对对象设计) 、OOP(面对第九章 软件项目治理1、估算软件规模(.)1 代码行技术每个人了估量程序的最小规模(a),最大规模( b)和最可能规模(m),分别算出这 3 中规模的平均值. .、. .和 . . 之后,用下面公式运算程序规模:2 功能点技术L=. .+4. +.62、项目进度( Gantt 图)3、质量保证概括得说, 软件质量就是 “ 软件与明确地和隐含地定义的需要相一样的程度”;更具体地说,软件质量是软件与明确地表达的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应当具
25、有的隐含特点相一样的程度;4、软件配置治理软件配置治理事是在软件的整个生命周期内治理变化的一组活动;具体地说, 这组活动用来:1 标识变化2 掌握变化3 确保适当地实现了变化4 向需要知道这类信息的人报告变化5、基线基线是一个软件配置治理概念,它有助于人们在不严峻合理变化的前提下来掌握变化,名师归纳总结 简而言之,基线就是通过了正式复审的软件配置项;在软件配置项变成基线之前,可以迅第 15 页,共 16 页- - - - - - -精选学习资料 - - - - - - - - - 速而非正式地修改它;其他复习简答题1、简述文档在软件工程中的作用;名师归纳总结 1 提高软件开发过程的能见度第 16 页,共 16 页提高开发效率2 作为开发人员阶段工作成果和终止标志3 记录开发过程的有关信息便于使用与保护;4 供应软件运行、保护和培训有关资料;5 便于用户明白软件功能、性能;6 - - - - - - -