《软件工程考研资料全》由会员分享,可在线阅读,更多相关《软件工程考研资料全(28页珍藏版)》请在金锄头文库上搜索。
1、 . 软件工程复习提纲第一章 软件工程基本概念1、 软件危机的概念:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。2、 软件危机包含两方面的问题:1)如何开发软件以满足对软件日益增长的需求; 2)如何维护数量不断膨胀的已有软件。3、 软件危机的原因:1)与软件本身的特点有关;2)和软件开发与维护的方法不正确有关。4、 软件危机的消除途径:解决软件危机,既要有技术措施(方法和工具), 又要有必要的组织管理措施。5、 软件工程的概念:软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而 建立和使用完善的工程原理。6、 软件工程的基本原理:1)用分阶段的生命周期计划严格管理
2、 2)坚持进行阶段评审 3)实行严格的产品控制 4)采用现代程度设计技术 5)结果应能清楚地审查 6)开发小组的人员应该少而精 7)承认不断改进软件实践的必要性7、 软件工程方法学(3个要素):通常把在软件生命周期全过程中使用的一整套技术方法的集合称为 方法学,也称为型。三要素:方法、工具和过程。8、 软件生命周期: 从软件定义、软件开发和运行维护,直到最终被废弃,要经历一个漫长的时期, 通常把软件经历的这个漫长的时期称为生命周期。 1)软件定义:问题定义、可行性研究和需求分析; 2)软件开发:总体设计、详细设计、编码和单元测试、综合测试; (前两个称系统设计,后两个称系统实现) 3)运行维护
3、:软件维护;9、 软件过程与其特点:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任 务的工作步骤。1)瀑布模型:a.阶段间具有顺序性和依赖性;前一阶段的工作完成后,才 能开始后一阶段的工作; 前一阶段的输出文档是后一阶段的 输入文档,前一阶段的输出文档正确,后一阶段的工作才能获 得正确的结果。 b.推迟实现的观点;对于规模较大的软件项目来说,往往编码 开始得越早最终完成开发工作所需要的时间反而越长。 c.质量保证的观点;每个阶段都必须完成规定的文档。每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。 优点:文档驱动。 缺点:需求模糊的系统可能不满足用户需
4、求。线性模型太理想化太单纯,不再适合现代的软件开发模式,几乎被 淘汰。但是“线性”是人们最容易掌握并能熟练应用的思想方法。2)快速原型模型:a.快速开发工具b.循环c.低成本。优点:关注满足客户需求。缺点:快速原型部结构并不重要,重要的是迅速构建原型,并迅速修改, 以反应客户需求。可能导致系统设计差,效率低,难于维护。一旦需 求确定,往往快速原型将被抛弃。3)增量模型(渐增模型):优点:开发早期反馈与时(分批逐步的向用户提交产品,用户可完成部分工 作),易于维护。缺点:需要非常好的体系结构,如果体系结构不够强壮可能导致设计差,效 率低。 4)螺旋模型:瀑布模型+快速原型+风险分析;迭代过程优点
5、:由风险驱动,支持现有软件的重用。缺点:软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会 带来更大的风险。适用围:只适用于大规模软件项目,特别是部项目。 5)喷泉模型:a.主要用于支持面向对象开发过程,支持软件复用和生存期中多 项开发活动的集成。 b.体现了软件创建所固有的迭代和无间隙的特征,在各项开发活 动,即分析、设计和编码之间不存在明显的边界。优点:减少了不一致性,降低了出错的可能性。第二章可行性研究1、可行性研究的任务:可行性研究的目的不是解决问题,而是用最小的代价在尽可能短的时间确 定问题是否能够解决,是否值得去解决。从四方面研究每种解法的可行性: (1)技术可行性:(2
6、) 经济可行性:(3) 操作可行性:(4)法律、社会效益可行性。2、 可行性研究的过程:(1)复查系统规模和目标(2)研究目前正在使用的系统(3)导出新系统的高层逻 辑模型(4)进一步定义问题(5)导出和评价供选择的解法(6)推荐行动方针(7) 草拟开发计划(8)书写文档提交审查。3、 系统的流程图:(1)定义:是概括地描绘物理系统的传统工具。 (2)基本思想:用图形符号以黑盒子形式描绘组成系统的每个部件。 #系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理 的控制过程,是物理数据流图而不是程序流程图。# (3)系统流程图常用符号:4、 系统的数据流图:(1)定义:是
7、一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中 所经受的变换。#数据流图是系统逻辑功能的图形表示,即使不是专业的计算机技术人员也容易理解它, 因此是分析员与用户之间极好的通信工具。# (2)数据流图的常用符号:或 数据源点/终点 或 数据加工处理 或 数据存储(文件) (静态数据) 数据流(动态数据) *例子:处理事务的功能进一步分解后的数据流图* (3)作数据流图的目的和用途:a.画数据流图的基本目的是利用它作为交流信息的 工具。 b.数据流图的另一个主要用途是作为分析和设计 的工具。5、 数据字典的容:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。 数据
8、字典由下列4类元素的定义组成: (1)数据流(2)数据流分量(即数据元素)(3)数据存储(4)处理。 # 数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格, 没有数据流图数据字典也难于发挥作用。#6、 定义数据的方法:一般由3+1种关系算符: 被定义为 与(顺序结构) x=a+b,表示x由a和b组成; , 或(选择结构) x=a,b,x=ab,表示x由a或由b组成 ; 重复(循环结构) x=a,表示x由0个或多个a组成; #限制重复次数: m.n# ( ) 可选 x=(a),表示a可在x中出现,也可不出现;7、数据字典的用途:数据字典最重要的用途就是作为分析阶段的工具。8
9、、数据字典的实现过程:数据字典几乎总是作为CASE“结构化分析与设计工具”的一部分实现的。 #大型软件系统:人工维护数据字典几乎不可能;小型软件系统:建议采用卡 片形式书写数据字典(包含的信息:名字、别名、描述、定义、位置)#9、 成本/效益分析:1)成本估计:a.代码行技术:软件的成本=每行代码的平均成本*行数; b.任务分解技术:最常用的办法是按开发阶段划分任务(各部分求和); c.自动估计成本技术:采用自动估计成本的软件工具可以减轻人的劳 动,并且使得估计的结果更客观。2)成本/效益分析的方法:a.货币的时间价值: F=P(1+i)n b.投资回收期:使累计的经济效益等于最初的投资所需要 的时间。(投资回收期越短,获得利润越快) c .纯收入:在整个生存期之系统的累计经济效益(折合 成现在值)与投资之差。 d.投资回收率:衡量投资效益的大小。