系统设计概论

来源:互联网 发布:数控车削编程有趣的 编辑:程序博客网 时间:2024/05/17 22:53

1.分层系统软件体系结构

        1)简介

                层次系统风格将对软件结构组织成一个层次结构,一个分层系统组织的,每层对上层提供服务,同时对下层来讲也是一个服务的对象。在一些分层系统中,内部的层只对相邻的层可见。除了相邻的外层或经过挑选用于输出的特定函数外,内层都被隐藏起来,这种风格支持基于可增加抽象层的设计。由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。

        2)分层系统有以下优点

                支持基于抽象程度递增的系统设计。这允许设计者可以将一个复杂系统设计按递增的步骤进行分解。

                支持扩充。因为每层至多和与相邻的上层和下层交互,所以改变某层的功能最多只会影响与之相邻的其它两层。

                支持重用。与抽象数据类型一样,只要对相邻层提供同样的接口,每层有很多不同的可相互替代的实现方法。可能出现对于标准的层接口的定义可以有不同的实现方法。

        3)分层系统体系结构存在的缺点

                并不是每个系统都可以很容易地划分为两层的模式。甚至即使一个系统可在逻辑上进行分层,单可能出于性能的考虑需要在逻辑上与处于高层的函数和处于低层的实现之间建立紧密的联系。

                很难找到一个合适的、正确的层次抽象方法。分层设计作为一个设计的理念方法,在软件设计中得到越来越广泛的应用,特别是在复杂大型软件的开发项目中。即使是在中小型软件的开发过程中,也要合理的把系统划分为几个层次,把服务接口一步步地建立起来。

        4)系统在进行软件层次设计时应遵循如下三个基本原则

                实现和接口分离原则,这是对所有模块接口的一个通用原则。不同的层级实际上是不同的模块,只不过这些模块在逻辑关系上有上下的依赖关系。在这个分离原则之下,层次之间的互换性就可以得到保证。对于一般的软件设计来说,最常见的是抽象层,即把应用部分与一些具体的实现分离开来。

                单向性原则,软件的分层应该是单向的,即只能上层调用下层,反过来通常是不行的。因为上层调用下层,结果是上层离不开下层,但下层可以独立地存在;如果下层同时调用上层,上下层就紧密地耦合在一起,谁也离不开谁,形成了软件中的共生现象,导致模块的互换性和可重用性就得不到保证。

                服务接口的粒度提升原则,每层的存在应该是为了完成一定的使用,从软件设计和程序编写的角度来讲,应该向上层提供更加方便快捷的服务接口。简单重复下一层功能的层是没有意义的,一般越往上层的应用同具体的数据库引擎分离开来。在此之上,建立业务对象层,把具体的业务逻辑反映到该层次上,在往上是交互的用户界面等。

        5)总结

                多层结构系统具有良好的可拓展性、可维护性和稳定的系统质量,同时,可以提高软件的可重用性,节省项目的开发时间。在开发中,具体采取几层结构,可根据系统的业务繁简程度灵活运用。



0 0
原创粉丝点击