软件工程总结

上传人:hs****ma 文档编号:508285551 上传时间:2023-03-12 格式:DOCX 页数:8 大小:18.83KB
返回 下载 相关 举报
软件工程总结_第1页
第1页 / 共8页
软件工程总结_第2页
第2页 / 共8页
软件工程总结_第3页
第3页 / 共8页
软件工程总结_第4页
第4页 / 共8页
软件工程总结_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《软件工程总结》由会员分享,可在线阅读,更多相关《软件工程总结(8页珍藏版)》请在金锄头文库上搜索。

1、第一章:1. 什么是软件危机 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题(如何开发 软件,如何维护软件)软件危机主要有以下一些典型的表现:(1)对软件开发成本和进度的估计常常很不准确(2)用户对”已完成的”软件系统不满意的现象经常发生(3)软件产品的质量往往不可靠(4)软件常常是不可维护的(5)软件通常没有适当的文档资料(6)软件成本在计算机系统总成本中所占比例逐年上升(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势2. 产生软件危机的重要原因(1)忽视了软件开发前期的调研和分析工作(2)没有统一的,规范的方法论指导(3)文档资料不齐全,忽视人与人

2、之间的交流(4)忽视测试阶段的工作(5)忽视软件的维护 一方面与软件本身的特点有关,另一方面和软件开发与维护的方法不正确有关3. 软件产品包括程序,数据,以及相关文档的完整集合4. 软件工程三要素:过程,方法和工具5. 软件工程的基本概念 软件工程是指导计算机软件开发和维护的一门工程学科,采用工程的概念,原理, 技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到 的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。6. 软件工程的方法学:是软件工程包含 3个方面的因素:方法,工具,过程。 分为:传统的方法学和面向对象的方法学7. 软件的生命周期:大致可

3、分为三个时期:软件定义,软件开发和运行维护 详细阶段为:(1)问题定义(2)可行性研究(3)需求分析(4)总体设计(5)详细设计(6)编码和单元测试(7)综合测试(8)软件维护8. 软件工程模型有:(1)瀑布模型: 特点为:1.阶段间具有数序性和依赖性。即必须等前一阶段的工作完成之后, 才能开始后一阶段的工作。前一阶段的输出文档就是后一阶段的输入文档,因此, 只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。2. 推迟实现的观点。清楚的区分逻辑设计与物理设计,尽可能推迟程 序的物理实现,是瀑布模型开发软件的一条重要的指导思想。(瀑布模型在编码之 前设置了系统分析和系统设计的各个阶段

4、,分析与设计阶段的基本任务规定,在这 两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现)。3. 质量保证的观点。(2)快速原型模型(建立一个能反应用户主要需求的原型系统): 特点为:原型系统已经通过与用户交互而得到经验,据此产生的规格说明文档 正确的描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误 而进行较大的返工。(3)增量模型(渐增模型): 特点为:1.能在较短的时间内向用户提交可完成部分工作的产品。2.逐步增加 产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客 户组织带来的冲击。(4)螺旋模型 特点为:对可选方案和约束条件

5、的强调有利于已有软件的重用,也有助于把软 件质量作为软件开发的重要目标;减少了过多测试(浪费资金)或测试不足(产品故障多) 所带来的风险;更重要的是,在螺旋模型中维护知识模型的另一个周期,在维护和开发之间 并没有本质区别。(螺旋模型主要适用于内部开发的大规模软件项目)。螺旋模型的主要优势 在于它是风险驱动的。(5)喷泉模型 特点为:具有迭代和无缝的特性9.什么是RUP统一过程RUP: (Rational Unified Process)它是一个具有突出优点的软件过程模型,它提供了 理想开发环境下软件过程的一种完整而完美的模式,可以作为对一个项目进行软件开发的良 好开端。RUP 总结了经过多年商

6、业化验证的 6 条最有效的软件开发验证,这些验证被称为“最 佳实践”分别为:(1)迭代式开发 (2)管理需求 (3)使用给予构建的体系结构 (4)可视化建 模 ( 5)验证软件质量 ( 6)控制软件变更RUP 软件开发生命周期:( 1)核心工作流 ( 2)工作阶段 ( 3) RUP 迭代式开发1. 可行性研究的目的和过程 可行性研究的目的:必须时刻记住,可行性研究的目的不是解决问题,而是确定问题是 否值得去解决。可行性研究的过程:(1)复查系统规模和目标(2)研究目前正在使用的系统(3)导出新系统的高层逻辑模型(4)进一步定义问题(5)导出和评价供选择的解法(6)推荐行动方针(7)草拟开发计划

7、(8)书写文档提交审查2. 比较系统流程图和数据流程图 系统流程图是概括的描绘物理系统的传统工具,它的基本思想就是用图形符号以黑盒子 形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。系统流程图表达的是 数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过过程,因此尽管系 统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流 程图。数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的 变化。在数据流图中没有任何具体的物理部件,它只描绘数据在软件中流动和被处理的逻辑 过程。数据流图是系统逻辑功能的图形表示。设计数据流图只

8、需要考虑系统必须完成的基本 逻辑功能,完全不需考虑怎样具体的实现这些功能。3. 数据字典是数据信息的集合,是对数据流图中所包含元素的定义,数据流图和数据字典共 同构成了系统的逻辑模型4数据流图与数据字典构成系统的逻辑模型第三章1. 什么是需求分析 需求分析是软件定义时期的最后一个阶段,它的基本任务是准确的回答“系统必须做什 么?”这个问题2. 需求分析的任务有哪些?(1)确定对系统的综合要求(功能需求, 性能需求, 出错处理需求, 借口需求 约束, 逆向需求, 将来可能提出的需求)(2)分析系统的数据要求(3)导出系统的逻辑模型(4)修正系统开发计划3. 获取需求分析的方法有哪些?(1)访谈

9、:分为正式访谈和非正式访谈(2)面向数据流自顶向下求精(3)简易的应用规格说明书(4)快速建立软件原形4. 试题练习图,5. 了解第一第二第三范式的定义 第一范式:每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构 第二范式:满足第一范式条件,而且每个非关键字属性都有整个关键字决定(而不是有 关键字的一本分决定)第三范式:符合第二范式条件,每个非关键字属性都仅有关键字决定,而且一个非关键 字属性不能仅仅是对另一个非关键字属性的进一步描述(即一个非关键字属性值不依赖于 另一个非关键字属性值)6. 状态转换图的作用和画法p75第四章:按照形式化的程度,可以把软件工程使用的方法划分为非形式化

10、,半形式化和形式 化3 类。用自然语言描述需求规格说明,是典型的非形式化方法。 用数据流图或实体联系图建立模型,是典型的半形式化方法。所谓形式化方法,是描述系统性质的基本数学的技术,也就是说,如果一种方法有 坚实的数学基础,那么它就是形式化的。第五章1. 什么是总体设计 总体设计又称为概要设计或初步设计,通过这个阶段的工作将划分出组成系统的物理元 素程序,文件,数据库,人工过程和文档等。2. 总体设计的任务和过程 总体设计的基本目的就是回答“概括地说,系统应该如何实现”这个问题。 总体设计的过程:总体设计通常由两个主要阶段组成:系统设计阶段,确定系统的具体 实现方案;结构设计阶段,确定软件结构

11、。典型的总体设计过程包括下述9 个步骤:1. 设想供选择的方案2. 选取合理的方案3. 推荐最佳方案4. 功能分解5. 设计软件结构6. 设计数据库7. 制定测试计划8. 书写文档9. 审查和复审3. 什么是模块化? 模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把 这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。4. 什么是逐步求进 逐步求精是人类解决复杂问题时采用的基本方法,可以把逐步求精定义为:“为了能集 中精力解决主要问题而尽量推迟对问题细节的考虑”。5. 什么是模块独立 模块独立的概念是模块化,抽象,信息隐藏和局部化概念的直接结果。 模块的

12、独立成都可以由两个定性标准度量,这两个标准分别称为内聚和耦合。耦合衡量不同模块彼此之间相互依赖的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程 度。6. 耦合的定义、分类、要求 耦合是对一个软件结构内不同模块之间互连程度的度量。在软件设计中应该追求尽可能 松散耦合的系统。耦合的分类:数据耦合, 控制耦合。7. 内聚的定义、分类、要求内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自 然扩展。简单地说,理想内聚的模块只做一件事情。内聚可分为:功能内聚, 顺序内聚, 通信内聚, 过程内聚, 时间内聚, 逻辑内聚, 偶然内聚。对内局的要求:设计师应该力求做到高内聚,

13、通常中等程度的内聚也是可以采用的,而 且效果和高内聚相差不多。8 深度、宽度、扇出、扇入 p100 深度表示软件结构中控制的层数。它往往能粗略地标志一个系统的大小和复杂程度。 宽度是软件结构内同一个层次上的模块总数的最大值。一般说来,宽度越大系统越复杂 扇出是一个模块直接控制的模块数目,扇出过大意味着模块过分复杂,需要控制和协调 过多的下级模块。扇出过小也不好。经验表明,一个设计得好的典型系统平均扇出通常是3 或 4 (扇出上限一般是 5 到 9 )。9. P105 要求掌握面型数据流的设计方法1什么是详细设计,详细设计的概念 详细设计也称为模块设计,在这个阶段将详细地设计每个模块,确定实现模

14、块功能所需 要的算法和数据结构。详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统。详细设计阶段的任 务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出 实际的程序代码。2. 人机界面设计要涉及到的4 个问题 (1)响应时间 (2)用户帮助设计 (3)出错信息处理 (4)命令交互 人机界面设计是接口设计的一个重要的组成部分。3. 程序流程图,合图,位码,判定树,判定码。(P124)自己看4. 要求掌握流图的概念、画法。 环形复杂度的用法、画法、三种计算方法第七章:1. 编码的基本概念 所谓编码就是把软件设计结果翻译成某种程序设计语言写出的程序。作为软件工程

15、过程 的一个阶段,编码是对设计的进一步具体化。2.什么是软件测试 软件测试的方法(黑盒测试 白盒测试)(功能 结构)3.软件测试的 4 大测试4. 集成测试是什么 策略有哪两种? 集成测试是测试和组装软件的系统化技术。策略有:非渐增式测试渐增式测试5.什么叫确认测试 什么是 Alpha 测试 什么是 Beta 测试 确认测试也称为验收测试,它的目标是验证软件的有效性。Alpha 测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试。Beta测试由软件的最终用户们在一个或多个用户场所进行。与Alpha测试不同,开发 者一般不在Beta测试的现场,因此,Beta测试是软件在开发者不能控制的环境中的“真实” 应用。6. 什么是逻辑覆盖,常见的逻辑覆盖有哪几种?所谓逻辑覆盖是对一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路 测试。常见的逻辑覆盖是:(1)语句覆盖 (2)判定覆盖 (3)条件覆盖 (4)判定/条件覆 盖 (5)条件组合覆盖 (6)点覆盖 (7)边覆盖 (8)路径覆盖考察逻辑覆盖的设计方法(出题)7. 白盒测试在测试阶段的早期进行,黑盒测试在后期进行,黑盒测试力图发现什么问题黑盒测试力图发现下述类型的错误:(1)功能不正确或

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

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