2022年软件工程导论期末复习大纲

上传人:新** 文档编号:567491418 上传时间:2024-07-20 格式:PDF 页数:9 大小:73.04KB
返回 下载 相关 举报
2022年软件工程导论期末复习大纲_第1页
第1页 / 共9页
2022年软件工程导论期末复习大纲_第2页
第2页 / 共9页
2022年软件工程导论期末复习大纲_第3页
第3页 / 共9页
2022年软件工程导论期末复习大纲_第4页
第4页 / 共9页
2022年软件工程导论期末复习大纲_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《2022年软件工程导论期末复习大纲》由会员分享,可在线阅读,更多相关《2022年软件工程导论期末复习大纲(9页珍藏版)》请在金锄头文库上搜索。

1、软件工程导论期末复习大纲第一章软件工程概述软件=程序+数据+文档1. 软件危机:定义:电脑软件的开发和维护过程中所遇到的一系列严重问题。表现:软件开发的成本和进度估计常常不准确;用户对“已完成的”软件系统不满意的现象经常发生;软件产品的质量往往靠不住;软件常常是不可维护的;软件通常没有适当的文档资料;软件产品供不应求,跟不上电脑普及速度。产生原因:与软件本身的特点;与关软件开发与维护的方法不正确有关。解决方法: 消除各自为阵的理念;使用在实践中总结出来的成功的经验,探索更有效地技术和方法;开发和使用更好的软件工具。2. 软件工程:定义: 指导电脑软件开发和维护的一门工程学科。七条基本原理 :用

2、分阶段的生命周期计划严格管理;坚持进行阶段评审;实行严格的产品控制;采用现代程序设计技术;结果应能清楚地审查;开发小组的人员应该少而精;承认不断改良软件工程实践的必要性。3. 软件工程方法学:定义:通常把在软件生命周期全过程中使用的一整套技术方法的集合。两种方法学: 传统方法学、面向对象方法学。优点传统方法学:把软件生命周期划分成假设干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,降低了整个软件开发过程的困难程度;在每个阶段都采用科学的管理技术和良好的技术方法,每个阶段都从技术和管理两个方面进行严格审查,保证软件的质量;提高了软件的可维护性,提高开发成功率。面向对象方法学

3、:符合人们通常的思维方式,提高了软件的可理解性;对象是相对独立的实体,重用性好;可维护性好。三种要素: 方法、工具、过程。4. 软件生命周期:软件定义系统分析:问题定义、可行性研究、需求分析;软件开发:总体设计+详细设计系统设计、编码和单元测试、+测试系统实现;运行维护:软件维护。5. 软件过程:生命周期模型:瀑布模型快速原型模型增量模型螺旋模型喷泉模型 RUP模型优点瀑布模型:可强迫开发人员采用标准的方法,严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证;它基本上是一种文档驱动的模型。精选学习资料 - - - - - - - - - 名师归纳总结

4、 - - - - - - -第 1 页,共 9 页快速原型模型:减少了软件需求不明确给开发工作带来的风险。增量模型:很有用;减少由于软件需求不明确而给开发工作带来的风险; 缩短产品提交时间快。螺旋模型:对可选方案和约束条件的强调有利于已有软件的重用和把软件质量看作软件开发的一个重要目标;开发者和客户都可以更好地理解和应对风险。缺点瀑布模型:不适应需求经常发生变更的环境;每一步的工作都必须以前一阶段的输出为输入顺序性,可能导致“阻塞”;可能最终开发出的软件产品不能真正满足用户的需要R:几乎完全依赖于书面的规格说明;用户只能通过文档来了解产品是什么样的。增量模型:软件体系结构必须是开放的;本身是自

5、相矛盾的;具有无法集成的风险。螺旋模型:开发人员需要相当丰富的风险评估经验和专门知识。适合场所瀑布模型:用户需求明确、完整、无重大变化的软件项目开发。快速原型模型:需求不完整的软件开发项目。增量模型:适用可多批看到和开发时间快的软件产品开发项目。螺旋模型:高风险的大型软件。喷泉模型和 RUP 模型:需求不稳定、不全面的软件项目开发。特点:瀑布模型:具有顺序性。快速原型模型:线性顺序进行。增量模型:分批地逐步向用户提交产品,减少全新软件给客户带来的冲击。喷泉模型:迭代、无缝对接 RUP模型:迭代、渐增第二章、可行性研究分析方面: 技术可行性、经济可行性、操作可行性数据流图 DFD 第三章、需求分

6、析8 个需求: 获取需求的方法综合使用:访谈、面向数据流自顶向下求精、简易的应用规格说明技术、快速建立软件模型。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 9 页3.6.状态转换图会画第五章、总体设计5.2.设计原理: 模块化为什么模块化、耦合、内聚、 层次图一般为三层:第六章、详细设计6.1.结构程序设计 顺序、选择、循环、单入单出6.3.过程实际的工具 描述与算法之间的转换6.5.程序复杂程度的定量度量计算程序复杂程度第九章、面向对象方法学引论三种模型:对象模型、动态模型、功能模型第十章、面向对象分析8 分大题目。问题:1、什么

7、是软件工程、软件过程?软件过程与软件工程方法学有何关系?答: 软件工程是指导电脑软件开发和维护的一门工程学科。软件过程是为获得高质量软件所需完成的一系列任务的框架,规定了完成各项任务的工作步骤。关系:软件过程是软件工程方法学的三个重要组成部分之一。2、什么是软件生命周期模型?有哪些主要模型?各种模型的适用范围及特点?传统方法学和面向对象方法学分别采用哪些模型?答:软件生命周期模型是描述软件过程的模型。3、简要介绍软件生命周期每个阶段的基本任务。答:问题定义:明确要解决的问题是什么。可行性研究:明确对所确定的问题是否有行得通的解决方法。需求分析:确定目标系统所必须具备的功能。总体设计:设计几种方

8、案来实现目标系统。详细设计:设计出程序的详细规格说明来说明怎样实现系统。编码:写程序模块。单元测试:对每个模块进行测试。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 9 页综合测试:通过各种类型的测试使软件到达预定的要求。4、简要介绍软件工程的7 条基本原理。答:5、需求分析的基本任务是什么?通常对软件系统有哪些需求?答:需求分析的基本任务是确定对系统的综合要求;分析系统的数据要求;导出系统的逻辑模型;修正系统开发计划;撰写需求规格说明书。需求:功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提

9、出的要求。6、模块化有什么好处?答:模块化的好处:开发成本降低、结构清晰、便于共享。7、定性衡量模块独立性的两个标准是什么?它们表示什么含义?答:标准:耦合、内聚。耦合:对一个软件结构内不同模块之间互联程序的度量。内聚:模块内各个元素彼此结合的紧密程度。8. 传统的方法学是如何降低软件危机的?答:传统方法学在软件生命周期的每个阶段都采用科学的管理技术合肥那个发,且在每个阶段结束前都从技术和管理两个角度进行严格的审查,合格之后才开始下一阶段的工作,这样保证了软件的质量,提高了软件的可维护性,降低了软件危机。数据流图 DFD 步骤:把整个系统视为一个大的加工,然后根据数据系统从哪些外部实体接收数据

10、流,以及系统发送数据流到哪些外部实体,可画出输入输出图。顶层图把顶层图的加工分解成假设干加工,并用数据流将这些加工连接起来,使得顶层图的输入数据经过假设干加工处理后,变成顶层图的输出数据流。 0 层图从一个加工画出一张数据流图的过程就是对加工的分解。确定加工:在数据流的组成或值发生变化的地方应该画出一个加工,这个加工的功能就是实现这一变化,也可以根据系统的功能决定加工。确定数据流:用户把假设干数据当作一个单位来处理这些数据一起到达,一起处理时,可以把这些数据看成一个数据流。数据存储:对于一些以后某个时间要使用的数据,可以组织成为一个数据存储来表示。精选学习资料 - - - - - - - -

11、- 名师归纳总结 - - - - - - -第 4 页,共 9 页3、画加工的内部把每个加工看作一个小系统,把加工的输入输出数据流看成小系统的输入输出流。于是可以像画0 层图一样画出每个小系统的加工DFD图。4、画子加工的分解图对第三步分解出来的DFD图中的每个加工,重复第三步的分解过程,直到图中尚未分解的加工都是足够简单的。分层数据流图5、对数据流图和加工编号对于一个软件系统,其数据流图可能有许多层,每层又有许多张图。为了区分不同的加工和不同的DFD子图,应对每张图进行编号,以便管理。顶层图只有一张,图中的加工也只有一个,故不必为其编号。0 层图只有一张,图中的加工号分别是0.1 、0.2

12、、,或 1、2。子图就是父图中被分解的加工号。子图的加工号是由图号、圆点和序号组成。*应适当的为数据流、加工、数据存储以及外部实体命名名字反映的是该成分的实际含义。*画数据流图,不是画控制流。*一个加工的输出数据流,不应与输入数据流同名,即使他们的组成完全相同。*允许一个加工有多条数据流流向另一个加工,也允许一个加工有两条相同的输出数据流流向不同的加工。*保持父图和子图的平衡。父图中某加工的输入输出流必须与它的子图的输入输出流在数量上和名字上相同假设父图中的一个输入/ 输出数据流对应于子图中的几个输入 / 输出数据流且子图中组成这些数据流的数据项的全体正好是父图中的这一数据流,那么它们仍然平衡

13、*在自顶向下的分解过程中,假设一个数据存储首次出现时,只与一个加工有关系,那么这个数据存储应作为这个加工的内部文件而不必画出。*数据守恒。*在整套数据流图中,每个数据存储必须既有读的数据流,又有写的数据流。但在某张子图中,可能只有读没有写,或者只有写没有读。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 9 页一、软件软件概念 : 电脑系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整结合。 (Software=Program+Data+Document)软件的特征 : 非常复杂 (逻辑复杂度高 ),成本高,风险大 (

14、 如何降低? ) ,维护困难(改正性维护 : 修改故障 ; 完善性维护 : 增加功能 ; 适应性维护 : 移植)二、软件危机概念: 电脑软件的开发和维护过程中所遇到的一系列严重问题。表现:4. 用户对“已完成的”软件系统不满意的现象经常发生产生的原因 : 软件本身的特点 +软件开发与维护的方法不正确消除软件危机的方法: 要有技术措施 (传统方法学 +OO 方法学 ); 要有必要的组织管理措施三、软件工程概念: 指导电脑 软件开发 和维护的一门 工程 学科本质特性 P6(7 条):软件工程关注于大型程序的构造;软件工程的中心课题是控制复杂性问题分解功能分解、对象;软件经常变化 ;开发软件的效率非

15、常重要;和谐的合作是开发软件的关键运用相关的标准和规程;软件必须有效地支持它的用户;在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。软件工程的基本原理(7 条)确保软件产品的质量和开发效率的原理的最小集合分阶段 的生命周期计划严格管理(“分阶段”的目的 :减少项目延期 ; 质量评审 )2. 坚持进行阶段评审 (R: 大部分错误是在编码之前造成的; 错误发现与改正得越晚,所需付出的代价也越高)5. 结果应能清楚地审查 : 应该根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准( 在于: 标准+文档清楚的记录、责任)精选学习资料 - - - - - - -

16、 - - 名师归纳总结 - - - - - - -第 6 页,共 9 页6. 开发小组的人员应该少而精:提高软件开发质量和降低通信开销改良软件工程实践的必要性: 积极主动地采纳新的软件技术、不断总结经验来评价新的软件技术的效果。软件工程方法学 ( 范型): 在软件生命周期全过程中使用的一整套技术方法的集合。软件工程方法学的要素:1. 方法( 完成软件开发的各项任务的技术方法);2. 工具( 为运用方法而提供的自动的或半自动的软件工程支撑环境) ;3. 过程( 为了获得高质量的软件所需要完成的一系列任务的框架,规定完成了各项任务的工作步骤 )工具-方法 -过程- 质量关注点支持软件工程的根基就在

17、于对质量的关注传统方法学 / 生命周期方法学 / 结构化范型 : 采用结构化技术来完成软件开发的各项任务并使用适当的软件工具或软件工程环境来支持结构化技术的运用。具体操作 : 把软件生命周期的全过程依次划分为假设干个阶段 ,然后 顺序地 完成每个阶段的任务线性。阶段审查:从技术和管理两个方面对这个阶段的开发成果进行检查,通过之后这个阶段才算结束 ; 假设没通过检查,也必须进行必要的返工,而且返工后还要再经过审查。审查的主要标准 : 每个阶段都应该交出和所开发的软件完全一致的高质量的文档资料,从而保证在软件开发工程结束时有一个验证准确的软件配置交付使用。)优点: 每个阶段的任务相对独立且较简单,

18、降低了整个软件开发工程的困难程度;科学的管理技术、良好的技术方法和严格的审查保证了软件的质量,提高了软件的可维护性。面像对象方法学 (OO方法学 ) :是一个主动地多次反复迭代的演化 过程,而其在概念和表示方法上的一致性,保证了在各项开发活动之间的平滑无缝 过渡。无缝对象一直存在且不变出发点和基本原则 : 尽量模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界、解决问题的方法与过程,从而使描述问题的问题空间与实现解法的解空间在结构上尽可能一致。优点:降低了软件产品的复杂性,提高了软件的可理解性;简化了软件的开发和维护工作;易在以后的软件产品中重复使用促进了软件重用。四、软件生

19、命周期组成:软件定义降低成本,提高软件质量的关键123、软件开发4567、运行维护 8软件生命周期每个阶段的基本任务:1. 问题定义要解决的问题是什么精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 9 页2. 可行性研究对于上一个阶段所确定的问题有行得通的解决方法么3. 需求分析确定目标系统为解决这个问题必须具备的功能用正式文档准确地记录对目标系统的需求,这份文档一般称为规格说明书4. 总体设计概括地说,应该怎么实现目标系统设计出实现目标的几种可能的方案;确定程序由哪些模块组成以及模块间的关系5. 详细设计 / 模块设计应该怎样具体地实

20、现这个系统设计出程序的详细规格说明包含所需的算法和数据结构7. 综合测试通过各种类型的测试及相应的调试使软件到达预定的要求五、软件过程概念:为了获得高质量软件所需要完成的一系列任务的框架,规定了完成各项任务的工作步骤。基本活动:软件规格说明、软件开发、软件确认、软件演进1、瀑布模型规定了各项软件工程的活动次序固定特点:阶段间具有顺序性和依赖性;推迟实现清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现;质量保证文档、文档评审缺点:适合的是用户需求明确、完整、无重大变化的软件项目开发;会导致工作中发生“阻塞”状态;几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的

21、需要;软件产品交付给用户之前,用户仅能通过文档来了解产品是什么样的。优点:可强迫开发人员采用标准的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。成功点 : 很大程度上是由于它基本上是一种文档驱动的模型。2、快速原型模型解决瀑布模型问题3、4第一步 : 快速建立一个能反应用户主要需求的原型系统,让用户在电脑上适用它,通过实践来了解目标系统的概貌; 第二步 : 用户试用原型系统之后会提出许多修改意见,开发人员按照用户的意见快速地修改原型系统,然后再次请用户试用一旦用户认为这个原型系统确实能做他们所需要的工作,开发人员便可据此书写规格说明文档。

22、主要优点 : 软件产品的开发基本上是线性顺序进行的。3、增量模型 (渐增模型 ) 解决瀑布模型问题2操作: 把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。(先基本功能,后附加功能)分解时必须遵守的约束条件: 当把新构件集成到现有软件中时,所形成的产品必须是可测试的。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 9 页优点: 可分批地逐步向用户提交产品; 能在较 短时间 内向用户提交可完成部分工作的产品; 逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减

23、少一个全新的软件可能给客户组织带来的冲击。困难: 把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品 ; 软件体系结构必须是开放的(必须把软件的体系结构设计得便于按这种方式进行扩充,向现有产品中加入新构件的过程必须简单、方便); 增量模型本身是自相矛盾的 ; 会有构件无法集成饭一起的风险注:必须在开始实现各个构件之前就全部完成需求分析、规格说明和概要设计的工作。4、螺旋模型降低风险任务: 确定该阶段的目标,选择方案,设定约束条件;评估方案,识别并排除风险;利华下一阶段 (相当于纯粹的瀑布模型); 开发、验证下一级产品。优点: 有利于已有软件的重用; 有助于把软件质量作

24、为软件开发的一个重要目标; 减少了过多测试和测试不足所带来的风险。适用: 内部开发的大规模软件项目。5、喷泉模型 : 迭代+无缝连接6、RUP模型: 迭代+渐增第二章、可行性研究可行性研究的目的 : 用最小的代价在尽可能短的时间内确定问题能否解决。从以下方面做可行性分析: 技术可行性 ; 经济可行性 ; 操作可行性 ; 法律; 社会效益等。可行性研究过程 : 复查系统规模和目标 ; 研究目前正在使用的系统; 导出新系统的高层逻辑模型 (非实现模型,包括DFD 、DD);进一步定义问题 ; 导出和评价供选择的解法;推荐行动方针 ; 草拟开发计划 ; 书写文档提交审查。系统流程图 : 概括地描绘物理系统的传统工具。数据流图 (DFD): 一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换 (在数据流图中没有任何具体的物理部件,仅是描绘数据在软件中流动被处理的逻辑过程)是系统逻辑功能的图形表示。画数据流图的基本目的: 利用它作为交流信息的工具;作为分析和设计的工具。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 9 页

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号