软件工程导论第五版复习资料Word格式.docx
《软件工程导论第五版复习资料Word格式.docx》由会员分享,可在线阅读,更多相关《软件工程导论第五版复习资料Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
2)用户对已完成的软件不满意的现象时有发生。
3)软件产品的质量往往是靠不住的。
4)软件常常是不可维护的。
5)软件通常没有适当的文档资料。
文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。
6)软件成本在计算机系统总成本中所占比例逐年上升。
特别是软件维护成本迅速增加,已经占据软硬件总成本的40%~75%。
7)开发生产率提高的速度远跟不上软件需求。
4、软件工程及软件工程的特性
软件工程是用工程、科学和数学的原则与方法开发、维护计算机软件的有关技术和管理方法。
软件工程的特性:
1)软件工程关注于大型程序的构造
2)软件工程的中心课题是控制复杂性
3)软件经常变化
4)开发软件的效率非常重要
5)和谐地合作是开发软件的关键
6)软件必须有效地支持它的用户
7)在软件工程中是由具有一种文化背景的人替具有另一种文化背景的人创造产品
5、软件工程的基本原理
用分阶段的生存周期计划严格管理
坚持进行阶段评审
实行严格的产品控制
采用现代程序设计技术
结果应能清楚地审查
开发小组的人员应少而精
承认不断改进软件工程实践的必要性
6、软件生存周期
一个软件从得出开发要求开始直到该软件报废为止的时期。
软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。
7、瀑布模型
模型严格按照软件生存周期各个阶段来进行开发,上一阶段的输出即是下一阶段的输入,并强调每一阶段的严格性。
它规定了各阶段的任务和应提交的成果及文档,每一阶段的任务完成后,都必须对其阶段性产品(主要是文档)进行评审,通过后才能开始下一阶段的工作。
因此,它是一种以文档作为驱动的模型。
瀑布模型特点
1)阶段间具有顺序性和依赖性
2)推迟实现的观点
3)质量保证的观点
第二章可行性研究
1、可行性研究的任务
概括地讲,可行性研究包括两大部分的分析研究,分别是
分析建立系统的必要性
分析建立系统的可能
具体,主要任务
1)进一步分析和澄清问题定义。
2)导出系统的高层逻辑模型。
从系统逻辑模型出发,探索若干种系统实现方案。
对每种方案都至少要从下述几方面研究其可行性:
a.经济可行性
b.技术可行性
c.法律可行性
d.操作可行性
3)对以后的行动提出建议选择一种最佳方案,并为系统制定一个初步的开发计划。
2、可行性研究的步骤
1)复查系统规模和目标。
2)研究现有的系统。
3)导出新系统高层逻辑模型。
4)进一步定义问题
5)导出和评价供选择的解法。
6)推荐行动方针
7)草拟开发计划
8)书写文档提交审查。
3、系统流程图(不要求画图)
系统流程图是概括地描绘物理系统的传统工具。
4、数据流图(要求画图)
数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。
数据流图是系统逻辑功能的图形表示,即使不是专业的计算机技术人员也容易理解它,因此是分析员与用户之间极好的通信工具。
在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。
5、数据字典
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。
6、成本效益分析
1)货币的时间价值:
指同样数量的货币随时间的不同具有不同的价值。
一般货币在不同时间的价值可用年利率来折算。
设:
i表示年利率,现在存入P元,n年后的价值为F元,
则有:
F=P(1+i)n
如果n年后能收入F元,这些钱折算成现在的价值称为折现值,折现公式为:
P=F/(1+i)n
2)纯收入。
是指在整个生存周期系统的累计收入的折现值PT与总成本折现值ST之差,以T表示,则有:
T=PT–ST
3)投资回收率。
P=F1/(1+j)+F2/(1+j)^2+…+Fn(1+j)^n
P:
现在的投资额Fi:
第i年底的效益(i=1,2,3,…,n)
n:
系统使用寿命j:
投资回收率
第三章需求分析
1、需求分析的任务
确定对系统的综合要求
1)功能需求
2)性能需求
3)可靠性和可用性需求
4)出错处理需求
5)接口需求
6)约束
7)逆向需求
8)将来可能提出的要求
分析系统的数据要求
导出系统的逻辑模型
修正系统开发计划
2、与用户沟通获取需求的方法
访谈:
正式的,非正式的
面向数据流自顶向下求精
简易的应用规格说明技术
快速建立软件原型
3、状态转换图
状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。
此外,状态图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。
1)符号
初态用实心圆表示。
终态用一对同心圆(内圆为实心圆)表示。
中间状态用圆角矩形表示。
状态图中两个状态之间带箭头的连线称为状态转换,箭头指明了转换方向。
2)活动表的语法格式:
事件名(参数表)/动作表达式
3)事件表达式的语法如下:
事件说明[守卫条件]/动作表达式
其中,
事件说明的语法为:
事件名(参数表)。
4、层次方框图(在需求分析阶段使用)
层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。
5、Warnier图(在需求分析阶段使用)
Warnier图也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。
用Warnier图可以表明信息的逻辑组织
6、IPO图(在需求分析阶段使用)
IPO图是输入、处理、输出图的简称,它是美国IBM公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。
7、验证软件需求
验证需求的一致性:
所有需求必须是一致的
验证需求的实现性:
指定需求式可以实现的。
对现有硬件很好预测,但软件技术很难预测,只能根据现有技术水平出发判断需求的实现性
验证需求的完整性和有效性:
完整性,规格说明书应该包括用户所需的每个功能的性能。
有效性,需求是正确有效的,确实能解决用户面对的问题。
第五章总体设计(概要设计)
1、总体设计过程
1)设想供选择的方案2)选取合理的方案
3)推荐最佳方案4)功能分解
5)设计软件结构6)设计数据库
7)制定测试计划8)书写文档9)审查和复审
2、设计原理(模块化、抽象、逐步求精、信息隐藏与局部化)(小概念)
模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
抽象是控制复杂性的基本策略。
“抽象”要求人们将注意力集中在某一层次上考虑问题,而忽略那些低层次的细节。
软件设计过程应当是在不同抽象级别上考虑和处理问题的过程。
软件工程过程的每一步都是对较高一级抽象的解作一次进一步具体化的描述。
在上述由高级抽象到低级抽象的转换过程中,伴随着一连串的过程抽象和数据抽象
抽象与求精是一对互补的概念。
抽象使得设计者能够说明过程和数据,同时却忽略低层细节。
事实上,可以把抽象看作是一种通过忽略多余的细节同时强调有关的细节,而实现逐步求精的方法。
求精则帮助设计者在设计过程中逐步揭示出低层细节。
这两个概念都有助于设计者在设计演化过程中创造出完整的设计模型。
信息隐藏原理指出:
应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。
所谓局部化是指把一些关系密切的软件元素物理地放得彼此靠近。
在模块中使用局部数据元素是局部化的一个例子。
显然,局部化有助于实现信息隐藏。
3、模块独立原理
开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立。
换句话说,希望这样设计软件结构,使得每个模块完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单。
4、耦合和内聚
模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。
耦合衡量不同模块彼此间互相依赖(连接)的紧密程度;
内聚衡量一个模块内部各个元素彼此结合的紧密程度。
以下分别详细阐述。
尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。
设计软件时,应该能够识别内聚度的高低,并通过修改设计尽可能提高模块内聚度,从而获得较高的模块独立性。
5、启发规则
1)改进软件结构提高模块的独立性
2)模块规模应该适中
3)深度、宽度、扇出和扇入都应适当
4)模块的作用范围应在控制范围之内
5)力争降低模块接口的复杂程度
6)设计单入口单出口的模块
7)模块功能应该可以预测
6、描绘软件结构的图形工具(层次图、HIPO图、结构图)
层次图用来描绘软件的层次结构。
虽然层次图与需求分析中介绍的描绘数据结构的层次方框图相同,但是表现的内容却完全不同。
层次图中的一个矩形框代表一个模块,方框间的连线表示调用关系而不像层次方框图那样表示组成关系。
HIPO图是美国IBM公司发明的“层次图加输入/处理/输出图”的英文缩写。
为了能使HIPO图具有可追踪性,在H图(层次图)里除了最顶层的方框之外,每个方框都加了编号。
Yourdon提出的结构图是进行软件结构设计的另一个有力工具。
结构图和层次图类似,也是描绘软件结构的图形工具,图中一个方框代表一个模块,框内注明模块的名字或主要功能;
方框之间的箭头(或直线)表示模块的调用关系。
在结构图中通常还用带注释的箭头表示模块调用过程中来回传递的信息。
如果希望进一步标明传递的信息是数据还是控制信息,则可以利用注释箭头尾部的形状来区分:
尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息。
7、面向数据流的设计方法
⏹变换分析
变换分析是一系列设计步骤的总称,经过这些步骤把具有变换流特点的数据流图按预先确定的模式映射成软件结构。
1)重画数据流图;
确定其具有变换流特征。
2)在数据流图上区分系统的逻辑输入、逻辑输出和中心变换部分
3)进行一级分解,设计系统模块结构的顶层和第一层
4)进行二级分解,设计输入、中心变换、输出部分的中、下层模块
⏹事务分析
与变换分析一样,事务分析也是从分析数据流图开始,自顶向下,逐步分解,建立系统的结构图。
主要区别由数据流图到软件结构