中国海洋大学软件工程考研资料

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件工程复习提纲第一章软件工程基本概念1、软件危机的概念:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。2、软件危机包含两方面的问题:1)如何开发软件以满足对软件日益增长的需求;2)如何维护数量不断膨胀的已有软件。3、软件危机的原因:1)与软件本身的特点有关;2)和软件开发与维护的方法不正确有关。4、软件危机的消除途径:解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。5、软件工程的概念:软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。6、软件工程的基本原理:1)用分阶段的生命周期计划严格管理2)坚持进行阶段评审3)实行严格的产品控制4)采用现代程度设计技术5)结果应能清楚地审查6)开发小组的人员应该少而精7)承认不断改进软件实践的必要性7、软件工程方法学(3个要素):通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型。三要素:方法、工具和过程。8、软件生命周期:从软件定义、软件开发和运行维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。1)软件定义:问题定义、可行性研究和需求分析;2)软件开发:总体设计、详细设计、编码和单元测试、综合测试;(前两个称系统设计,后两个称系统实现)3)运行维护:软件维护;9、软件过程及其特点:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。1)瀑布模型:a.阶段间具有顺序性和依赖性;①前一阶段的工作完成后,才能开始后一阶段的工作;②前一阶段的输出文档是后一阶段的输入文档,前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。b.推迟实现的观点;对于规模较大的软件项目来说,往往编码开始得越早最终完成开发工作所需要的时间反而越长。c.质量保证的观点;①每个阶段都必须完成规定的文档。②每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。优点:文档驱动。缺点:①需求模糊的系统可能不满足用户需求。②线性模型太理想化太单纯,不再适合现代的软件开发模式,几乎被淘汰。但是“线性”是人们最容易掌握并能熟练应用的思想方法。2)快速原型模型:a.快速开发工具b.循环c.低成本。优点:关注满足客户需求。缺点:快速原型内部结构并不重要,重要的是迅速构建原型,并迅速修改,以反应客户需求。可能导致系统设计差,效率低,难于维护。一旦需求确定,往往快速原型将被抛弃。3)增量模型(渐增模型):优点:开发早期反馈及时(分批逐步的向用户提交产品,用户可完成部分工作),易于维护。缺点:需要非常好的体系结构,如果体系结构不够强壮可能导致设计差,效率低。4)螺旋模型:瀑布模型+快速原型+风险分析;迭代过程优点:由风险驱动,支持现有软件的重用。缺点:软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险。适用范围:只适用于大规模软件项目,特别是内部项目。5)喷泉模型:a.主要用于支持面向对象开发过程,支持软件复用和生存期中多项开发活动的集成。b.体现了软件创建所固有的迭代和无间隙的特征,在各项开发活动,即分析、设计和编码之间不存在明显的边界。优点:减少了不一致性,降低了出错的可能性。第二章可行性研究1、可行性研究的任务:可行性研究的目的不是解决问题,而是用最小的代价在尽可能短的时间内确定问题是否能够解决,是否值得去解决。从四方面研究每种解法的可行性:(1)技术可行性:(2)经济可行性:(3)操作可行性:(4)法律、社会效益可行性。2、可行性研究的过程:(1)复查系统规模和目标(2)研究目前正在使用的系统(3)导出新系统的高层逻辑模型(4)进一步定义问题(5)导出和评价供选择的解法(6)推荐行动方针(7)草拟开发计划(8)书写文档提交审查。3、系统的流程图:(1)定义:是概括地描绘物理系统的传统工具。(2)基本思想:用图形符号以黑盒子形式描绘组成系统的每个部件。###【【【系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,是物理数据流图而不是程序流程图。】】】###(3)系统流程图常用符号:4、系统的数据流图:(1)定义:是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。###【【【数据流图是系统逻辑功能的图形表示,即使不是专业的计算机技术人员也容易理解它,因此是分析员与用户之间极好的通信工具。】】】###(2)数据流图的常用符号:或数据源点/终点或数据加工处理或数据存储(文件)(静态数据)数据流(动态数据)*********例子:处理事务的功能进一步分解后的数据流图*********(3)作数据流图的目的和用途:a.画数据流图的基本目的是利用它作为交流信息的工具。b.数据流图的另一个主要用途是作为分析和设计的工具。5、数据字典的内容:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据字典由下列4类元素的定义组成:(1)数据流(2)数据流分量(即数据元素)(3)数据存储(4)处理。###【【【数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,没有数据流图数据字典也难于发挥作用。】】】###6、定义数据的方法:一般由3+1种关系算符:=被定义为+与(顺序结构)x=a+b,表示x由a和b组成;[,]或(选择结构)x=[a,b],x=[a|b],表示x由a或由b组成[|];{}重复(循环结构)x={a},表示x由0个或多个a组成;###限制重复次数:m{...}n###()可选x=(a),表示a可在x中出现,也可不出现;7、数据字典的用途:数据字典最重要的用途就是作为分析阶段的工具。8、数据字典的实现过程:数据字典几乎总是作为CASE“结构化分析与设计工具”的一部分实现的。###大型软件系统:人工维护数据字典几乎不可能;小型软件系统:建议采用卡片形式书写数据字典(包含的信息:名字、别名、描述、定义、位置)###9、成本/效益分析:1)成本估计:a.代码行技术:软件的成本=每行代码的平均成本*行数;b.任务分解技术:最常用的办法是按开发阶段划分任务(各部分求和);c.自动估计成本技术:采用自动估计成本的软件工具可以减轻人的劳动,并且使得估计的结果更客观。2)成本/效益分析的方法:a.货币的时间价值:F=P(1+i)^nb.投资回收期:使累计的经济效益等于最初的投资所需要的时间。(投资回收期越短,获得利润越快)c.纯收入:在整个生存期之内系统的累计经济效益(折合成现在值)与投资之差。d.投资回收率:衡量投资效益的大小。P=F1/(1+j)+F2/(1+j)2+……+Fn/(1+j)n第三章需求分析1、需求分析的任务:1)确定对系统的综合要求2)分析系统的数据要求(通常采用建立数据模型的方法);即:准确地回答:“系统必须做什么?”2、获得需求的主要方法:1)访谈:访谈是使用最早的、迄今仍然最广泛的一种需求分析技术;2)面向数据流自顶向下求精:结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法;3)简易的应用规格说明技术:又称面向团队的需求收集法;优点:开发者和用户不分彼此,齐心协力,密切合作;即时讨论并求精;4)快速建立软件原型:a.方法和工具:(1)第四代技术(4GT);(2)可重用的软件构件;(3)形式化规格说明和原型环境。b.特点:(1)快速;(2)容易修改。c.优点:关注满足客户需求。d.缺点:可能导致系统设计差,效率低,难于维护。3、分析建模:根据结构化分析准则,需求分析过程应该建立3种模型数据模型(实体-联系图E-R)功能模型(数据流图DFD)行为模型(状态转换图STD)4、实体—联系图:1)描绘数据对象及数据对象之间的关系,用于建立数据模型。数据对象:可以由一组属性来定义的实体。2)数据模型包括数据对象的属性:定义了数据对象的性质。一对一数据对象的联系:数据对象彼此之间相互连接的方式。一对多多对多3)例子:5、状态转换图:1)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。2)状态转换图的3部分:a.状态:(1)状态:任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。(2)状态图中定义的状态主要有:初态(初始状态)、终态(最终状态)和中间状态。在一张状态图中只能有一个初态,而终态则可以有0至多个。b.事件:引起系统做动作或(和)转换状态的控制信息。c.符号:(1)初态:用实心圆表示;(2)终态:用一对同心圆表示;(3)中间状态:用圆角矩形表示。(必选)(可选)(可选)层次方框图(重要)6、其他图形工具:IPO图(重要)Warnier图(不重要)1)层次方框图:用树形结构的一系列多层次的矩形框描绘数据的层次结构。2)IPO图:是输入、处理、输出图的简称,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。算法的初级描述。改进IPO图改进的IPO图验证需求的一致性7、验证软件需求的方法:验证需求的现实性验证需求的完整性和有效性8、验证软件需求分析的工具:PSL/PSA(问题陈述语言/问题陈述分析程序)系统。优点:改进了文档质量,能保证文档具有完整性、一致性和无二义性,从而可以减少管理和维护的费用;数据存放在数据库中,便于增加、删除和更改。第四章总体设计1、总体设计/概要设计/初步设计的目的:“概括地说,系统应该如何实现?”Howtodo?2、总体设计过程:1)通常由两个主要阶段组成:a.系统设计阶段,确定系统的具体实现方案;b.结构设计阶段,确定软件结构;2)典型的总体设计过程包括9个步骤:1.设想供选择的方案2.选取合理的方案3.推荐最佳方案4.功能分解:先进行结构设计(总体设计阶段),然后过程设计(详细设计阶段);5.设计软件结构:可以用层次图或结构图来描绘;6.设计数据库7.制定测试计划8.书写文档9.审查和复审3、总体设计原理:1)模块化:把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。(1)优点:使软件结构清晰;使软件容易测试和调试;能够提高软件的可修改性。【【【模块是构成程序的基本构件。】】】2)抽象:抽出事物的本质特性而暂时不考虑细节(忽略差异,集中相似在一起)。3)逐步求精:是人类解决复杂问题时采用的基本方法,是一种自顶向下的设计策略。4)信息隐藏和局部化:局部化有助于实现信息隐藏。5)模块独立:是模块化、抽象、信息隐藏和局部化概念的直接结果。(1)度量模块独立程度的两个定性标准:内聚和耦合。(2)为什么模块的独立性很重要?a.有效的模块化(即具有独立的模块)的软件比较容易开发出来。b.独立的模块比较容易测试和维护。(3)耦合:对一个软件结构内不同模块之间互连程度的度量。a.设计目标:软件设计中追求尽可能松散耦合的系统。b.模块间耦合的类型:c.①数据耦合:两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据;属松散耦合。【【【系统中至少存在这种耦合】】】②控制耦合:一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一个模块的功能。【【【控制耦合增加了系统的复杂程度,通常是把它分解然后用数据耦合代替它】】】③特征耦合:把整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素。④公共环境耦合:两个或多个模块通过一个公共数据环境相互作用。⑤内容耦合:它是最高程度的耦合。d.模块化设计的原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。(4)内聚:标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。a.设计目标:高内聚。b.模块的内聚类型:.c.①偶然内聚:一个模块完成一组任务,这些任务彼此间即使有关系,关系也很松散。【【【缺点:可理解性差,可修改性差】】】②逻辑内聚:一个模块完成的任务在逻辑上属于相同或相似的一类。【【【缺点:增强了耦合程度(控制耦合)不易修改,效率低】】】③时间内聚④过程

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功