举例你对结构化方法和面向对方法这两种不同的软件开发方法的理解2
发布网友
发布时间:2023-10-19 15:03
我来回答
共1个回答
热心网友
时间:2024-11-17 03:10
我觉得按这两种分析和设计方法最后得到的代码应该极为类似以至于难以看出系统分析的风格。结构化方法分析过程如下:
1、总结出系统应有的功能,对一个功能,从功能完成的过程考虑,将各个过程(或说小的功能(难以再分解))列出,标识出过程转向和传递的数据。这样,可以将所有的过程都画出来。
2、细化数据流。确定应该记录的数据。
3、分析各过程之间的耦合关系,合理地进行模块划分以提高它们之间的内聚性。实际上,对于这个练习,可以使模块具有信息内聚性。
而面向对象方法分析过程如下:
1、总结出系统应有的功能,从功能完成的过程考虑,描述每个功能的完成过程。对应UML的USECASE和SEQUENCE。
2、开始寻找定义对象,并归纳各对象应记录的属性,对象的状态及转换关系在这里定义。这一步的对象和第一步画SEQUENCE所带入的对象有联系但更重要的是区别。
3、从功能完成的过程考虑,区分所需要的各个功能。再根据定义出的对象,将功能分配到对象上。由于第一步的关系,在这个练习中,这一步相对简单。
4、根据前3步的结果,如果需要的话,应该重新画SEQUENCE。特别是希望UML图对编程能更有帮助时。由于我只做了系统分析,没有编程,所以这一步没有做。
对于自己做的这个练习,我想比较其中体现的两种方法的异同:
1、总结系统应具备的功能的时候,都是根据题目的描述,一条一条总结归纳得到的。对结构化方法,就是画数据流图。对面向对象方法,就是USECASE和SEQUENCE。实际上,在工作中使用时,一般还需要ACTIVITY图。
2、确定应该记录的数据。对结构化方法,就是细化数据流,并整理出一个一个的表。对面向对象方法,就是寻找和定义对象,并归纳各对象应记录的属性。一般O-R关系转换都是套用流行的方法,可能有些组织对此都有规定。
3、模块的组织。如果实在是要避免歧义的话,应该说成是“将数据和功能分配到不同的文件中,用文件来合理地组织代码”。对结构化方法,就是划分模块,每个模块应该包含哪些文件以及每个文件的内容。对面向对象方法,就是在已有对象的基础上,将功能分配到对象上。相比较结构化方法,面向对象在这里强制要求:将数据和功能分配到不同的文件中时,是以数据为中心。事实上,使用结构化方法划分模块时,如果希望模块具有信息内聚性,那么,也是以数据为中心。“有信息内聚性的模块,本质上是抽象数据类型的实现
4、接下来就应该是编程了。
以上列出了两个例子,其意图在于说明某些情况下,我们进行系统分析时,当我们希望模块有信息内聚性时,结构化方法和面向对象的方法得到的过程和结果不会有很大差别。