ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:1.09MB ,
资源ID:20899783      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20899783.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程考研资料全Word格式文档下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件工程考研资料全Word格式文档下载.docx

1、需求模糊的系统可能不满足用户需求。线性模型太理想化太单纯,不再适合现代的软件开发模式,几乎被 淘汰。但是“线性”是人们最容易掌握并能熟练应用的思想方法。2)快速原型模型:a.快速开发工具b.循环c.低成本。优点:关注满足客户需求。缺点:快速原型部结构并不重要,重要的是迅速构建原型,并迅速修改, 以反应客户需求。可能导致系统设计差,效率低,难于维护。一旦需 求确定,往往快速原型将被抛弃。3)增量模型(渐增模型):开发早期反馈及时(分批逐步的向用户提交产品,用户可完成部分工 作),易于维护。需要非常好的体系结构,如果体系结构不够强壮可能导致设计差,效 率低。 4)螺旋模型:瀑布模型+快速原型+风险

2、分析;迭代过程由风险驱动,支持现有软件的重用。软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会 带来更大的风险。适用围:只适用于大规模软件项目,特别是部项目。 5)喷泉模型:a.主要用于支持面向对象开发过程,支持软件复用和生存期中多 项开发活动的集成。 b.体现了软件创建所固有的迭代和无间隙的特征,在各项开发活 动,即分析、设计和编码之间不存在明显的边界。减少了不一致性,降低了出错的可能性。第二章可行性研究1、可行性研究的任务:可行性研究的目的不是解决问题,而是用最小的代价在尽可能短的时间确 定问题是否能够解决,是否值得去解决。从四方面研究每种解法的可行性: (1)技术可行性:(2

3、) 经济可行性:(3) 操作可行性:(4)法律、社会效益可行性。2、可行性研究的过程:(1)复查系统规模和目标(2)研究目前正在使用的系统(3)导出新系统的高层逻 辑模型(4)进一步定义问题(5)导出和评价供选择的解法(6)推荐行动方针(7) 草拟开发计划(8)书写文档提交审查。3、系统的流程图:(1)定义:是概括地描绘物理系统的传统工具。 (2)基本思想:用图形符号以黑盒子形式描绘组成系统的每个部件。 #【系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理 的控制过程,是物理数据流图而不是程序流程图。】# (3)系统流程图常用符号:4、系统的数据流图:是一种图形化技术

4、,它描绘信息流和数据从输入移动到输出的过程中 所经受的变换。#【数据流图是系统逻辑功能的图形表示,即使不是专业的计算机技术人员也容易理解它, 因此是分析员与用户之间极好的通信工具。 (2)数据流图的常用符号: 或 数据源点/终点 或 数据加工处理 或 数据存储(文件) (静态数据) 数据流(动态数据) *例子:处理事务的功能进一步分解后的数据流图* (3)作数据流图的目的和用途:a.画数据流图的基本目的是利用它作为交流信息的 工具。 b.数据流图的另一个主要用途是作为分析和设计 的工具。5、数据字典的容:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。 数据字典由下列4类

5、元素的定义组成: (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、数据字典的实现

6、过程:数据字典几乎总是作为CASE“结构化分析与设计工具”的一部分实现的。 #大型软件系统:人工维护数据字典几乎不可能;小型软件系统:建议采用卡 片形式书写数据字典(包含的信息:名字、别名、描述、定义、位置)#9、成本/效益分析:1)成本估计:a.代码行技术:软件的成本=每行代码的平均成本*行数; b.任务分解技术:最常用的办法是按开发阶段划分任务(各部分求和); c.自动估计成本技术:采用自动估计成本的软件工具可以减轻人的劳 动,并且使得估计的结果更客观。2)成本/效益分析的方法:a.货币的时间价值: F=P(1+i)n b.投资回收期:使累计的经济效益等于最初的投资所需要 的时间。(投资回

7、收期越短,获得利润越快) c .纯收入:在整个生存期之系统的累计经济效益(折合 成现在值)与投资之差。 d.投资回收率:衡量投资效益的大小。 P=F1/(1+j)+F2/(1+j)2+Fn/(1+j)n第三章需求分析1、需求分析的任务:1)确定对系统的综合要求2)分析系统的数据要求(通常采用建立数据模型的方法); 即:准确地回答:“系统必须做什么?”2、获得需求的主要方法:1)访谈:访谈是使用最早的、迄今仍然最广泛的一种需求分析技术; 2)面向数据流自顶向下求精:结构化分析方法就是面向数据流自顶向下逐步 求精进行需求分析的方法; 3)简易的应用规格说明技术:又称面向团队的需求收集法;开发者和用

8、户不分彼此,齐心协力,密切合作;即时讨论并求精; 4)快速建立软件原型:a.方法和工具: (1)第四代技术(4GT);(2)可重用的软 件构件;(3)形式化规格说明和原型环境。b.特点:(1)快速;(2)容易修改。 c.优点:d.缺点:3、分析建模:根据结构化分析准则,需求分析过程应该建立3种模型 数据模型(实体-联系图E-R) 功能模型(数据流图DFD) 行为模型(状态转换图STD)4、实体联系图:1)描绘数据对象及数据对象之间的关系,用于建立数据模型。数据对象:可以由一组属性来定义的实体。 2)数据模型包括 数据对象的属性 :定义了数据对象的性质。 一对一 数据对象的联系:数据对象彼此之间

9、相互连接的方式。 一对多 多对多 3)例子:5、状态转换图:1)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。 2)状态转换图的3部分:a.状态:(1)状态:任何可以被观察到的系统行为模式,一个状态代表系统的一种 行为模式。 (2)状态图中定义的状态主要有:初态(初始状态)、终态(最终状态)和 中间状态。在一状态图中只能有一个初态,而终态则可以有0至多个。b.事件:引起系统做动作或(和)转换状态的控制信息。c.符号:(1)初态:用实心圆表示;(2)终态:用一对同心圆表示;(3)中间状态: 用圆角矩形表示。 (必选) (可选) (可选) 层次方框图(重要)6、其他图形工具: IP

10、O图(重要) Warnier图(不重要) 1)层次方框图:用树形结构的一系列多层次的矩形框描绘数据的层次结构。2)IPO图:是输入、处理、输出图的简称,能够方便地描绘输入数据、对数据的处理和 输出数据之间的关系。算法的初级描述。 改进 IPO图 改进的IPO图 验证需求的一致性7、验证软件需求的方法 :验证需求的现实性 验证需求的完整性和有效性8、验证软件需求分析的工具:PSL/PSA(问题述语言/问题述分析程序)系统。改进了文档质量,能保证文档具有完整性、一致性和无二义性,从而可 以减少管理和维护的费用;数据存放在数据库中,便于增加、删除和更改。第四章总体设计1、总体设计/概要设计/初步设计

11、的目的:“概括地说,系统应该如何实现?”How to do?2、总体设计过程:1)通常由两个主要阶段组成: a.系统设计阶段,确定系统的具体实现方案; b.结构设计阶段,确定软件结构; 2)典型的总体设计过程包括9个步骤: 1. 设想供选择的方案 2. 选取合理的方案 3. 推荐最佳方案 4. 功能分解:先进行结构设计(总体设计阶 段),然后过程设计(详细设计阶段); 5. 设计软件结构:可以用层次图或结构图 来描绘; 6. 设计数据库 7. 制定测试计划 8. 书写文档 9. 审查和复审3、总体设计原理:1)模块化:把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能, 这些模块集

12、成起来构成一个整体,可以完成指定的功能满足用户的需求。 (1)优点:使软件结构清晰;使软件容易测试和调试;能够提高软件的可修改性。 【模块是构成程序的基本构件。】 2)抽象:抽出事物的本质特性而暂时不考虑细节(忽略差异,集中相似在一起)。 3)逐步求精:是人类解决复杂问题时采用的基本方法,是一种自顶向下的设计策略。 4)信息隐藏和局部化:局部化有助于实现信息隐藏。 5)模块独立:是模块化、抽象、信息隐藏和局部化概念的直接结果。 (1)度量模块独立程度的两个定性标准:聚和耦合。 (2)为什么模块的独立性很重要? a.有效的模块化(即具有独立的模块)的软件比较容易开发出来。 b.独立的模块比较容易

13、测试和维护。 (3)耦合:对一个软件结构不同模块之间互连程度的度量。 a.设计目标:软件设计中追求尽可能松散耦合的系统。 b.模块间耦合的类型: c. 数据耦合:两个模块彼此间通过参数交换信息,而且交换的信息 仅仅是数据;属松散耦合。 【系统中至少存在这种耦合】控制耦合:一个模块通过传送开关、标志、名字等控制信息,明显地 控制选择另一个模块的功能。 【控制耦合增加了系统的复杂程度,通常是把它分解然后用数据耦 合代替它】特征耦合:把整个数据结构作为参数传递而被调用的模块只需要使用 其中一部分数据元素。公共环境耦合:两个或多个模块通过一个公共数据环境相互作用。容耦合:它是最高程度的耦合。 d.模块

14、化设计的原则: 尽量使用数据耦合,少用控制耦合和特征耦合, 限制公共环境耦合的围,完全不用容耦合。 (4)聚:标志一个模块各个元素彼此结合的紧密程度,它是信息隐藏和局部 化概念的自然扩展。高聚。 b.模块的聚类型: . c.偶然聚:一个模块完成一组任务,这些任务彼此间即使有关系,关 系也很松散。 【缺点:可理解性差, 可修改性差】逻辑聚:一个模块完成的任务在逻辑上属于相同或相似的一类。增强了耦合程度(控制耦合)不易修改,效率低】时间聚过程聚通信聚顺序聚功能聚: 模块所有处理元素属于一个整体,完成一个单一的功能。 【功能聚是最高程度的聚】 d.设计目标:强聚、弱耦合,获得较高的模块独立性。4、启

15、发规则:利用长期实践中积累的丰富经验来改进软件设计,提高软件质量。 1)几条启发式规则: (1) 改进软件结构提高模块独立性; (2) 模块规模应该适中; (3) 深度、宽度、扇出和扇入都应适当; a. 深度:表示软件结构中控制的层数。 b. 宽度:是软件结构同一个层次上的模块总数的最大值。 c. 扇出:一个模块直接控制(调用)的模块数目。 d. 扇入:表明有多少个上级模块直接调用它。 【设计得很好的软件结构通常:顶层扇出比较高,中层扇出较低,底层扇入 到公共的实用模块中去(底层模块有高扇入)】 (4) 模块的作用域应该在控制域之; (5) 力争降低模块接口的复杂程度; (6) 设计单入口单出

16、口的模块; (7) 模块功能应该可以预测;5、描绘软件结构的图形工具:1)层次图(H图):(1)用来描绘软件的层次结构; (2)一个矩形框代表一个模块,方框间的连线表示调用关系; (3)适于在自顶向下设计软件的过程中使用。 H图 在H图基础上的修改 HIPO图 2) HIPO图:(1)是美国IBM公司发明的“层次图输入/处理/输出图”的英文缩写。 3)结构图(SC):(1)Yourdon提出的描绘软件结构的图形工具,和层次图类似; (2)箭头(或直线)表示模块的调用关系。 (3)带注释的箭头表示模块调用过程中来回传递的信息: a. 尾部是空心圆表示传递的是数据; b. 实心圆表示传递的是控制信

17、息。 (4) 附加符号:a. 选择调用 b.循环调用 判定为真时调用A,为假时调用B 模块M循环调用模块A、B、C6、面向数据流的设计方法:目标:给出设计软件结构的一个系统化的途径。结构化设计方法(简称SD方法):即基于数据流的设计方法。 1)概念:把信息流(数据流)映射成软件结构。 (1) 变换流:信息沿输入通路进入系统,同时由外部形式变换成部形式,进入 系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外 部形式离开软件系统。(2) 事务流:数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。 变换流 事务流 2) 变换分析:经过一系列设计步骤把

18、具有变换流特点的数据流图按预先确定的 模式映射成软件结构。交换流输入流输出流 3)事务分析:数据流具有明显的事务特点(事务中心)时,采用事务分析方法。4)设计优化:先使它能工作,然后再使它快起来。 5)软件开发方法主要有: 面向数据流的结构化方法 传统开发方法 面向数据结构的Jackson方法(见第6章) 面向对象方法(见第9-12章)第五章详细设计1、详细设计阶段的根本目标:确定应该怎样具体地实现所要求的系统。2、结构程序设计: 1)如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每 个代码块只有一个入口和一个出口,则称这个程序是结构化的。 2)三种基本的控制结构

19、:3、人机界面设计: 1)在设计人机界面的过程中,有下述4个问题:系统响应时间:从用户完成某个控制动作到软件给出预期的响应之间的这段时间。 用户帮助设施:常见的帮助设施可分为集成的和附加的两类。 出错信息处理:(无) 命令交互:菜单+键盘输入。4、过程设计工具:1)程序流程图:直观、容易掌握,且历史“久”, 使用广泛。本质上不具备逐步求精的特点;用箭头代表控制流,转移控制太方便; 不易表示数据结构。 2)盒图(N-S图): 概念:是一种符合结构化程序设计原则的图形描述工具,用方框图代替传统的流程图。 特点:(1) 功能域明确,可以从盒图上一眼就看出来。 (2) 不可能任意转移控制。 (3) 很

20、容易确定局部和全程数据的作用域。 (4) 很容易表现嵌套关系,也可以表示模块的层次结构。 3)PAD图(问题分析图):用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。(1) 使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序。 (2) PAD图所描绘的程序结构十分清晰。 (3) 用PAD图表现程序逻辑,易读、易懂、易记。 (4) 容易将PAD图转换成高级语言源程序。 (5) 即可用于表示程序逻辑,也可用于描绘数据结构。 (6) PAD图的符号支持自顶向下、逐步求精方法的使用。 4)判定表:当算法中包含多重嵌套的条件选择时,判定表能够清晰地表示复杂的条件组合

21、与 应做的动作之间的对应关系。 5)判定树:它是判定表的变种。 判定树和判定表的优缺点: 注:判定表与判定树并不适用于作 为一种通用的设计工具,通常用于辅助测试。5、面向数据结构的设计方法: 1) 定义:根据数据结构设计程序处理过程的方法。 目标:得出对程序处理过程的描述。 步骤:使用面向数据流的方法设计软件结构使用面向数据结构的方法来设计每个模块 的处理过程。 代表:Jackson方法和Warnier方法是最著名的两个面向数据结构的设计方法。 2) Jackson图:(1)优点:a. 便于表示层次结构,而且是对结构进行自顶向下分解的有力工具。 b. 形象直观可读性好。 c. 既能表示数据结构

22、也能表示程序结构。 (2)三种类型: (3)Jackson方法的步骤:分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。找出输入数据结构和输出数据结构中有对应关系的数据单元。从描绘数据结构的Jackson图导出描绘程序结构的Jackson图。列出所有操作和条件,并且把它们分配到程序结构图的适当位置。用伪码表示程序。 3)程序复杂程度的定量度量: (1)概念:程序的复杂性主要指模块程序的复杂性。(2)McCabe方法:根据程序控制流的复杂程度定量度量程序的复杂程度。其结果称为程序 的环形复杂度。方法:先画出流图,然后用该图的环路数作为程序复杂性的度量值。流图组成: 圆

23、:结点(一个圆代表一条或多条语句)。 箭头线:边。计算环形复杂度的方法: a. 环形复杂度=流图中的区域数。 b. 环形复杂度V(G)=E-N+2,其中E是边数,N是结点数。 c. 环形复杂度V(G)=P+1,其中P是判定结点数。例子: 【实践表明,模块规模以V(G)10为宜,V(G)=10是模块规模的一个更科学 更精确的上限。 3)Halstead方法:根据程序中可执行代码行的运算符和操作数(运算对象)的个数来计 算程序的复杂性。n1:程序中不同运算符的个数 n2:程序中不同操作数(运算对象)的个数 N1:程序中实际出现的运算符总个数 N2:程序中实际出现的操作数(运算对象)总个数 N(程序

24、长度)=N1+N2 H(程序预测长度)=n1log2n1+n2log2n2 E:预测程序中包含错误的个数 E=Nlog2(n1+n2)/3000第六章实现1、编码风格: 1)源程序代码的逻辑简明清晰、易读易懂是好程序的一个重要标准。 2)程序部的文档:包括恰当的标识符、适当的注解和程序的视觉组织等(例:次数times)。数据说明:数据说明的次序应该标准化,能够加速测试、调试和维护的过程。语句构造:每个语句都应该简单而直接。输入输出:对所有输入数据都进行检验;保持输入格式简单。效率:主要指处理机时间和存储器容量两个方面。 【不要牺牲程序的清晰性和可读性来不必要地提高效率。】 2、测试的定义和目标

25、:测试是为了发现程序中的错误而执行程序的过程;好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;成功的测试是发现了至今为止尚未发现的错误的测试。 2)软件测试:为了发现错误而执行程序的过程。(是为了证明程序有错,而不是证明程序无错)3、单元测试: 1)集中检测软件设计的最小单元模块(主要使用白盒测试技术)。 2)测试重点:4、集成测试过程及方法: 1)是测试和组装软件的系统化技术,主要目标是发现与接口有关的问题。 2)由模块组装成程序有两种方法:非渐增式测试方法;渐增式测试方法(被普遍采用的)。 3)渐增式测试方法:自顶向下集成策略(被普遍采用):可以使用深度优先或宽度优先策略。自底向

26、上集成策略:不同集成测试策略的比较:5、白盒、黑盒测试技术:1)白盒测试(结构测试)两种:逻辑覆盖、控制结构测试。 a. 逻辑覆盖:是对一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通 路测试。(语句 判定 条件 判定 条件组合 点 边 路径)覆盖 b. 控制结构测试:基本路径测试:条件测试:着重测试程序中的每个条件。(BRO测试:)容易度量条件的测试覆盖率;程序条件的测试覆盖率可指导附加测试的设计。BRO测试 是由K.C.Tai提出的一种条件测试策略。 (3)循环测试:循环测试是一种白盒测试技术,专注于测试循环结构的有效性。包括:、简单循环; 、嵌套循环; 、串接循环。 2)黑盒测试(功能测试): 3种方法 等价划分 边界值分析 错误推测 【黑盒测试着重测试软件功能,是与白盒测试互补的测试方法。等价划分: 例1、某报表处理系统要求用户输入处理报表的日期,日期限制在2003

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1