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