《软件工程导论期末复习大纲 .docx》由会员分享,可在线阅读,更多相关《软件工程导论期末复习大纲 .docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结软件工程导论期末复习大纲第一章 软件工程概述软件 =程序+数据+文档1. 软件危机:定义:电脑软件的开发和保护过程中所遇到的一系列严峻问题。表现:软件开发的成本和进度估量常常不精确。用户对“已完成的”软件系统不中意的现象常常发生。软件产品的质量往往靠不住。软件常常是不行保护的。软件通常没有适当的文档资料。软件产品供不应求,跟不上电脑普及速度。产生缘由:与软件本身的特点。与关软件开发与保护的方法不正确有关。解决方法: 排除各自为阵的理念。使用在实践中总结出来的胜利的体会,探究更有效的技术和方法。开发和使用更好的软件工具。2. 软件工程:定义: 指导电脑软件开发和保护的一门工程学科
2、。七条基本原理 : 用分阶段的生命周期方案严格治理。坚持进行阶段评审。实行严格的产品掌握。接受现代程序设计技术。结果应能清晰的审查。开发小组的人员应当少而精。承认不断改良软件工程实践的必要性。3. 软件工程方法学:定义:通常把在软件生命周期全过程中使用的一整套技术方法的集合。两种方法学: 传统方法学、面对对象方法学。优点传统方法学:把软件生命周期划分成假设干个阶段,每个阶段的任务相对独立,而且比较简洁,便于不同人员分工协作,降低了整个软件开发过程的困难程度。在每个阶段都接受科学的治理技术和良好的技术方法,每个阶段都从技术和治理两个方面进行严格审查,保证软件的质量。提高了软件的可保护性,提高开发
3、胜利率。面对对象方法学:符合人们通常的思维方式,提高了软件的可懂得性。对象是相对独立的实体,重用性好。可保护性好。三种要素: 方法、工具、过程。4. 软件生命周期:软件定义系统分析:问题定义、可行性讨论、需求分析。软件开发:总体设计 +具体设计系统设计、编码和单元测试、+测试 系统实现。运行保护:软件保护。5. 软件过程:生命周期模型:瀑布模型快速原型模型 增量模型 螺旋模型 喷泉模型 RUP模型优点瀑布模型:可强迫开发人员接受标准的方法,严格的规定了每个阶段必需提交的文档。要求每个阶段交出的全部产品都必需经过质量保证小组的认真验证。它基本上是一种文档驱动的模型。可编辑资料 - - - 欢迎下
4、载精品名师归纳总结快速原型模型:削减了软件需求不明确给开发工作带来的风险。增量模型:很有用。削减由于软件需求不明确而给开发工作带来的风险。 缩短产品提交时间快 。螺旋模型:对可选方案和约束条件的强调有利于已有软件的重用和把软件质量看作软件开发的一个重要目标。开发者和客户都可以更好的懂得和应对风险。缺点瀑布模型:不适应需求常常发生变更的环境。每一步的工作都必需以前一阶段的输出为输入次序性,可能导致“堵塞”。可能最终开发出的软件产品不能真正满意用户的需要 R:几乎完全依靠于书面的规格说明。用户只能通过文档来明白产品是什么样的。增量模型:软件体系结构必需是开放的。本身是自相冲突的。具有无法集成的风险
5、。螺旋模型:开发人员需要相当丰富的风险评估体会和特的学问。适合场所瀑布模型:用户需求明确、完整、无重大变化的软件项目开发。快速原型模型:需求不完整的软件开发项目。增量模型:适用可多批看到和开发时间快的软件产品开发项目。螺旋模型:高风险的大型软件。喷泉模型和 RUP模型:需求不稳固、不全面的软件项目开发。特点:瀑布模型:具有次序性。快速原型模型:线性次序进行。增量模型:分批的逐步向用户提交产品,削减全新软件给客户带来可编辑资料 - - - 欢迎下载精品名师归纳总结的冲击。喷泉模型:迭代、无缝对接RUP模型:迭代、渐增可编辑资料 - - - 欢迎下载精品名师归纳总结其次章、可行性讨论分析方面: 技
6、术可行性、经济可行性、操作可行性数据流图 DFD第三章、需求分析8 个需求: 猎取需求的方法综合使用:访谈、面对数据流自顶向下求精、简易的应用规格说明技术、快速建立软件模型。可编辑资料 - - - 欢迎下载精品名师归纳总结3.6. 状态转换图会画第五章、总体设计5.2. 设计原理: 模块化为什么模块化 、耦合、内聚、 层次图一般为三层: 第六章、具体设计6.1. 结构程序设计 次序、挑选、循环、单入单出6.3. 过程实际的工具 描述与算法之间的转换6.5. 程序复杂程度的定量度量 运算程序复杂程度第九章、面对对象方法学引论三种模型:对象模型、动态模型、功能模型第十章、面对对象分析8 分大题目。
7、问题:1、什么是软件工程、软件过程?软件过程与软件工程方法学有何关系? 答: 软件工程是指导电脑软件开发和保护的一门工程学科。软件过程是为获得高质量软件所需完成的一系列任务的框架,规定了完成各项任务的工作步骤。关系:软件过程是软件工程方法学的三个重要组成部分之一。2、什么是软件生命周期模型?有哪些主要模型?各种模型的适用范畴及特点?传统方法学和面对对象方法学分别接受哪些模型?答:软件生命周期模型是描述软件过程的模型。3、简要介绍软件生命周期每个阶段的基本任务。答:问题定义:明确要解决的问题是什么。可行性讨论:明确对所确定的问题是否有行得通的解决方法。需求分析:确定目标系统所必需具备的功能。总体
8、设计:设计几种方案来实现目标系统。具体设计:设计出程序的具体规格说明来说明怎样实现系统。编码:写程序模块。单元测试:对每个模块进行测试。可编辑资料 - - - 欢迎下载精品名师归纳总结综合测试:通过各种类型的测试使软件到达预定的要求。4、简要介绍软件工程的 7 条基本原理。答:5、需求分析的基本任务是什么?通常对软件系统有哪些需求?答:需求分析的基本任务是确定对系统的综合要求。分析系统的数据要求。导出系统的规律模型。修正系统开发方案。撰写需求规格说明书。需求:功能需求、性能需求、牢靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的要求。6、模块化有什么好处?答:模块化的好
9、处:开发成本降低、结构清晰、便于共享。7、定性衡量模块独立性的两个标准是什么?它们表示什么含义? 答:标准:耦合、内聚。耦合:对一个软件结构内不同模块之间互联程序的度量。内聚:模块内各个元素彼此结合的紧密程度。8. 传统的方法学是如何降低软件危机的?答:传统方法学在软件生命周期的每个阶段都接受科学的治理技术合肥那个发,且在每个阶段终止前都从技术和治理两个角度进行严格的审查,合格之后才开头下一阶段的工作,这样保证了软件的质量,提高了软件的可保护性,降低了软件危机。数据流图 DFD步骤:把整个系统视为一个大的加工,然后依据数据系统从哪些外部实体接收数据流,以及系统发送数据流到哪些外部实体,可画出输
10、入输出图。顶层图把顶层图的加工分解成假设干加工,并用数据流将这些加工连接起来,使得顶层图的输入数据经过假设干加工处理后,变成顶层图的输出数据流。 0 层图从一个加工画出一张数据流图的过程就是对加工的分解。确定加工:在数据流的组成或值发生变化的的方应当画出一个加工,这个加工的功能就是实现这一变化,也可以依据系统的功能打算加工。确定数据流:用户把假设干数据当作一个单位来处理这些数据一起到达,一起处理时,可以把这些数据看成一个数据流。数据储备:对于一些以后某个时间要使用的数据,可以组织成为一个数据储备来表示。可编辑资料 - - - 欢迎下载精品名师归纳总结3、画加工的内部把每个加工看作一个小系统,把
11、加工的输入输出数据流看成小系统的输入输出流。于是可以像画 0 层图一样画出每个小系统的加工DFD图。4、画子加工的分解图对第三步分解出来的 DFD图中的每个加工,重复第三步的分解过程,直到图中尚未分解的加工都是足够简洁的。分层数据流图5、对数据流图和加工编号对于一个软件系统,其数据流图可能有很多层,每层又有很多张图。为了区分不同的加工和不同的 DFD子图,应对每张图进行编号,以便治理。顶层图只有一张,图中的加工也只有一个,故不必为其编号。 0 层图只有一张,图中的加工号分别是0.1 、0.2 、,或 1、2。子图就是父图中被分解的加工号。子图的加工号是由图号、圆点和序号组成。* 应适当的为数据
12、流、加工、数据储备以及外部实体命名名字反映的是该成分的实际含义。* 画数据流图,不是画掌握流。* 一个加工的输出数据流,不应与输入数据流同名,即使他们的组成完全相同。* 答应一个加工有多条数据流流向另一个加工,也答应一个加工有两条相同的输出数据流流向不同的加工。* 保持父图和子图的平稳。父图中某加工的输入输出流必需与它的子图的输入输出流在数量上和名字上相同假设父图中的一个输入/ 输出数据流对应于子图中的几个输入 / 输出数据流且子图中组成这些数据流的数据项的全体正好是父图中的这一数据流,那么它们仍旧平稳* 在自顶向下的分解过程中,假设一个数据储备首次显现时,只与一个加工有关系,那么这个数据储备
13、应作为这个加工的内部文件而不必画出。* 数据守恒。* 在整套数据流图中,每个数据储备必需既有读的数据流,又有写的数据流。但在某张子图中,可能只有读没有写,或者只有写没有读。可编辑资料 - - - 欢迎下载精品名师归纳总结一、软件软件概念 : 电脑系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整结合。 Software=Program+Data+Document软件的特点 : 特别复杂 规律复杂度高 ,成本高,风险大 如何降低? ,保护困难 改正性保护 : 修改故障 ; 完善性保护 : 增加功能 ; 适应性保护 : 移植二、软件危机概念: 电脑软件的开发和保护过程中所遇到的一
14、系列严峻问题。表现:4. 用户对“已完成的”软件系统不中意的现象常常发生产生的缘由 : 软件本身的特点 +软件开发与保护的方法不正确排除软件危机的方法 : 要有技术措施 传统方法学 +OO方法学 ; 要有必要的组织治理措施三、软件工程概念: 指导电脑 软件开发 和保护的一门 工程学科本质特性 P67 条:软件工程关注于大型程序的构造 ;软件工程的中心课题是掌握复杂性问题分解功能分解、对象;软件常常变化 ;开发软件的效率特别重要 ;和谐的合作是开发软件的关键运用相关的标准和规程;软件必需有效的支持它的用户 ;在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人制造产品。软件工程的基
15、本原理 7 条 确保软件产品的质量和开发效率的原理的最小集合分阶段 的生命周期方案严格治理 “分阶段”的目的 : 削减项目延期 ; 质量评审 2. 坚持进行阶段评审 R: 大部分错误是在编码之前造成的; 错误发觉与改正得越晚,所需付出的代价也越高 5. 结果应能清晰的审查 : 应当依据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准 在于: 标准+文档清晰的记录、责任 可编辑资料 - - - 欢迎下载精品名师归纳总结6. 开发小组的人员应当少而精 : 提高软件开发质量和降低通信开销改良软件工程实践的必要性 : 积极主动的接受新的软件技术、不断总结体会来评判新的软件技术的成效。软件工
16、程方法学 范型: 在软件生命周期全过程中使用的一整套技术方法的集合。软件工程方法学的要素 :1. 方法 完成软件开发的各项任务的技术方法 。2. 工具 为运用方法而供应的自动的或半自动的软件工程支撑环境。3. 过程 为了获得高质量的软件所需要完成的一系列任务的框架,规定完成了各项任务的工作步骤 工具- 方法 - 过程- 质量关注点支持软件工程的根基就在于对质量的关注传统方法学 / 生命周期方法学 / 结构化范型 : 接受结构化技术来完成软件开发的各项任务并使用适当的软件工具或软件工程环境来支持结构化技术的运用。具体操作 : 把软件生命周期的全过程依次划分为假设干个阶段 ,然后次序的 完成每个阶
17、段的任务线性。阶段审查:从技术和治理两个方面对这个阶段的开发成果进行检查,通过之后这个阶段才算终止 ; 假设没通过检查,也必需进行必要的返工,而且返工后仍要再经过审查。审查的主要标准 : 每个阶段都应当交出和所开发的软件完全一样的高质量的文档资料,从而保证在软件开发工程终止时有一个验证精确的软件配置交付使用。优点: 每个阶段的任务相对独立且较简洁,降低了整个软件开发工程的困难程度; 科学的治理技术、良好的技术方法和严格的审查保证了软件的质量,提高了软件的可保护性。面像对象方法学 OO方法学 :是一个主动的多次反复迭代的演化过程,而其在概 念和表示方法上的一样性,保证了在各项开发活动之间的平滑无
18、缝 过渡。无缝对象始终存在且不变动身点和基本原就 : 尽量模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类熟悉世界、解决问题的方法与过程,从而使描述问题的问题空间与实现解法的解空间在结构上尽可能一样。优点:降低了软件产品的复杂性,提高了软件的可懂得性。简化了软件的开发和保护工作。易在以后的软件产品中重复使用促进了软件重用。四、软件生命周期组成:软件定义降低成本,提高软件质量的关键123、软件开发4567、运行保护 8软件生命周期每个阶段的基本任务:1. 问题定义要解决的问题是什么可编辑资料 - - - 欢迎下载精品名师归纳总结2. 可行性讨论对于上一个阶段所确定的问题有行得通的解决
19、方法么3. 需求分析确定目标系统为解决这个问题必需具备的功能用正式文档精确的记录对目标系统的需求,这份文档一般称为规格说明书4. 总体设计概括的说,应当怎么实现目标系统设计出实现目标的几种可能的方案。确定程序由哪些模块组成以及模块间的关系5. 具体设计 / 模块设计应当怎样具体的实现这个系统设计出程序的具体规格说明包含所需的算法和数据结构7. 综合测试通过各种类型的测试及相应的调试使软件到达预定的要求五、软件过程概念:为了获得高质量软件所需要完成的一系列任务的框架,规定了完成各项任务的工作步骤。基本活动:软件规格说明、软件开发、软件确认、软件演进1、瀑布模型规定了各项软件工程的活动次序固定特点
20、:阶段间具有次序性和依靠性。推迟实现清晰的区分规律设计与物理设计,尽可能推迟程序的物理实现。质量保证文档、文档评审缺点:适合的是用户需求明确、完整、无重大变化的软件项目开发。会导致工作中发生“堵塞”状态。几乎完全依靠于书面的规格说明,很可能导致最终开发出的软件产品不能真正满意用户的需要。软件产品交付给用户之前,用户仅能通过文档来明白产品是什么样的。优点:可强迫开发人员接受标准的方法。严格的规定了每个阶段必需提交的文档。 要求每个阶段交出的全部产品都必需经过质量保证小组的认真验证。胜利点: 很大程度上是由于它基本上是一种文档驱动的模型。2、快速原型模型解决瀑布模型问题3、4第一步: 快速建立一个
21、能反应用户主要需求的原型系统,让用户在电脑上适用它, 通过实践来明白目标系统的概貌 ; 其次步: 用户试用原型系统之后会提出很多修改看法,开发人员依据用户的看法快速的修改原型系统,然后再次请用户试用一旦 用户认为这个原型系统的确能做他们所需要的工作,开发人员便可据此书写规格说 明文档。主要优点 : 软件产品的开发基本上是线性次序进行的。3、增量模型 渐增模型 解决瀑布模型问题 2操作: 把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。 先基本功能,后附加功能分解时必需遵守的约束条件 : 当把新构件集成到现有软件中时,所形成的产品
22、必需是可测试的。可编辑资料 - - - 欢迎下载精品名师归纳总结优点: 可分批的逐步向用户提交产品 ; 能在较短时间 内向用户提交可完成部分工作的产品; 逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而削减一个全新的软件可能给客户组织带来的冲击。困难: 把每个新的增量构件集成到现有软件体系结构中时,必需不破坏原先已经开发出的产品 ; 软件体系结构必需是开放的 必需把软件的体系结构设计得便于按这种方式进行扩充,向现有产品中加入新构件的过程必需简洁、便利; 增量模型本身是自相冲突的 ; 会有构件无法集成饭一起的风险注: 必需在开头实现各个构件之前就全部完成需求分析、规格说明和概要设计
23、的工作。4、螺旋模型降低风险任务: 确定该阶段的目标,挑选方案,设定约束条件; 评估方案,识别并排除风险 ;利华下一阶段 相当于纯粹的瀑布模型 ; 开发、验证下一级产品。优点: 有利于已有软件的重用 ; 有助于把软件质量作为软件开发的一个重要目标; 削减了过多测试和测试不足所带来的风险。适用: 内部开发的大规模软件项目。5、喷泉模型 : 迭代+无缝连接6、RUP模型: 迭代+渐增其次章、可行性讨论可行性讨论的目的 : 用最小的代价在尽可能短的时间内确定问题能否解决。从以下方面做可行性分析 : 技术可行性 ; 经济可行性 ; 操作可行性 ; 法律; 社会效益等。可行性讨论过程 : 复查系统规模和目标 ; 讨论目前正在使用的系统 ; 导出新系统的高层规律模型 非实现模型,包括 DFD、DD; 进一步定义问题 ; 导出和评判供挑选的解法; 举荐行动方针 ; 草拟开发方案 ; 书写文档提交审查。系统流程图 : 概括的描画物理系统的传统工具。数据流图 DFD: 一种图形化技术,它描画信息流和数据从输入移动到输出的过程中所经受的变换 在数据流图中没有任何具体的物理部件,仅是描画数据在软件中流淌被处理的规律过程 是系统规律功能的图形表示。画数据流图的基本目的 : 利用它作为沟通信息的工具 ; 作为分析和设计的工具。可编辑资料 - - - 欢迎下载