工程导论(二)

需求分析:分析方法都应该遵守以下准则:
1/ 必须理解并且描述问题的信息域,根据这条准则建立数据模型。
2/ 必须定义软件应该完成的功能,这条准则要求建议功能模型。
3/ 必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。
4/ 必须对描述信息,功能和行为的模型进行分解,用层次的方式细节。

需求分析的任务有什么?
功能需求 性能需求 可靠性和可用性分析需求 出错处理需求 接口需求 约束 逆向需求 将来可能提出的要求

与用户沟通获取需求的方法:
1,访谈 2,面向数据流自顶向下求精 3,简易的应用规格说明技术 4,快速建立软件原则

图形工具:
层次方框图 Warnier图 IPO图
1 层次方框图
层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。
例如,描绘一家计算机公司全部产品的数据结构可以用下图层次方框图表示。
这家公司的产品由硬件、软件和服务3类产品组成,软件产品又分为系统软件和应用软件,系统软件又进一步分为操作系统、编译程序。

2 warnier图
和层次方框图类似,Warnier图也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。
用Warnier图可以表明信息的逻辑组织,也就是说,它可以指出一类信息或一个信息元素是重复出现的,也可以表示特定信息在某一类信息中是有条件地出现的。

3 IPO图
IPO图是输入、处理、输出图的简称,它是由美国IBM公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。

内聚和耦合:
耦合:是对一个软件结构内各个模块之间相互依赖程度的度量;耦合的强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。

内聚:则标志一个模块内各个元素彼此结合的紧密程度;内聚从功能角度衡量模块内的联系,好的内聚模块应当恰好做一件事。

需求的原则是:强内聚,弱耦合。然而在实际需求过程中,往往会因为技术驱动,导致需求间耦合很紧,不利于后期有效地迭代开发。有效的解决办法是按流程、和业务梳理需求。

1.首先,模块是一系列语句组成的,由标识符组成的边界元素来界定的。比如面向对象语言中的一个类、一个方法;也如面向过程中的函数。

2.内聚,所谓的内聚是指模块内的交互程度,内聚又分为一下几种:
偶然性内聚:组件的部件是不相关的,只是简单地绑定成单个组件。
不足:程序的可读性和复用性差

逻辑性内聚:把相似的功能(类如输入,错误处理)放在一块,通过传递一个参数来决定是哪一个功能来执行。
不足:接口可读性差,代码复用性低

时间性内聚:所有的语句在同一时刻被激活,就像电脑关机的时候,其他所有的程序都要被关闭。
不足:模块内的关联不高,而与模块外的关联却很高,所以在维护的时候工作量会 比较大。

过程性内聚:简单地把一系列过程关联在一起
不足:代码的复用性比较差
通信性内聚:操作相同的输入数据或者输出相同的输出数据,可能产生多种功能。
不足:代码的复用性不高

顺序内聚:从一个部分的输出作为另一部分的输入。可能包含几个功能或部分不同的功能。
不足:代码的复用性不高

信息聚合:执行多个功能,每个函数都有自己的入口点,每个函数都有独立的代码,所有的功能都在相同的数据结构上执行。不同于逻辑衔接,因为功能没有交织在一起。

功能内聚:每一部分都需要执行一个单一的功能。例如,计算平方根或排序数组。通常在其他情况下可重复使用。维修容易。
(以上几种内聚程度由低到高)

耦合:耦合是指模块之间的交互程度
内容耦合:如果一个模块直接操作操作另外一个模块中的内容。
公共耦合:就像一个类中的全局变量类中的模块都直接操作这个全局变量
控制耦合:通过控制标志(作为参数或变量),一个模块控制另一个模块的处理步骤的顺序。
印记耦合:如果一组模块通过参数表传递记录信息,就是印记耦合。事实上,这组模块共享了这个记录,它是某一数据结构的子结构,而不是简单变量。这要求这些模块都必须清楚该记录的结构,并按结构要求对此记录进行操作。在设计中应尽量避免这种耦合,它使在数据结构上的操作复杂化了
数据耦合:如果一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合。由于限制了只通过参数表传递数据,按数据耦合开发的程序界面简单、安全可靠。因此,数据耦合是松散的耦合,模块之间的独立性比较强。在软件程序结构中至少必须有这类耦合。
以上所有的耦合度有高到低,越低的耦合越好。

启发规则有哪些?
1/改进软件结构提高模块儿独立性。
2/模块规模应该适中
3/深度,宽度,扇入和扇出都应该适当
4/模块儿的作用域应该在控制域内。
5/力争降低模块儿接口的复杂度
6/设计单入口和单出口的模块儿。
7/模块儿功能应该预测。

面向数据流的设计方法?

交换流:信息沿输入通路进入系统,同时由外部形势变换为内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。

事务流:沿传入路径进入系统,由外部形式变换位内部形式后到达事务中心,事务中心根据数据项计值结果从若干动作路径中选定一条执行。

变换分析
变换分析是一系列设计步骤的总称,经过这些步骤把具有交换流特点的数据流图按预先确定的模式映射成软件结构。

1.变换流
信息沿输入通路进入系统,由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。当数据流图具有这些特征时,这种信息流就叫作变换流。

2.事务流
数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。这类数据流应该划为一类特殊的数据流,称为事务流。
(1)接收输入数据(输入数据又称为事务)。
(2) 分析每个事务以确定它的类型。
(3) 根据事务类型选取一条活动通路.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值