《需求分析与系统设计》第六章讲的是继续第五章中讨论的思想和观点,进一步的是在第六章系统设计基础中是从设计的角度出发讨论所关注的事情,并将深入解释哪些与分析关系不大的问题。
系统设计包含了两个主要的方面,就是体系结构设计和详细设计。对于体系结构设计,我们就是对软件体系结构进行研究。关于这方面,作者为我们介绍了好几种体系结构。作者先为我们讲述了分布式体系结构,让我知道了客户机和服务器是属于逻辑概念,客户机是一个用来请求服务器过程的计算过程,服务器是一个为客户机的请求提供服务的计算过程。在现阶段的我们,一般都是将客户机和服务器安装在自己的一个电脑上的。然后作者讲了三层体系结构,在第五章中讲到的BCE(边界-控制-实体)方法中就应用并且对应了三层体系结构。在客户机(边界)和服务器(实体)之间引入一个分离的应用逻辑中间层(控制)。之后就是数据库的编程,客户机端的程序与服务器端的数据库交互来实现用户操作实现的信息。在应用和数据库的交互中,我们需要编程的部分就包括:用户界面,表现逻辑,应用功能,完整性逻辑以及数据存取。对于编程者方面,这就是我们要做了。这其中还包括着对用户使用的一些标准和习惯,还有客户机的功能稳定。在软件体系结构里面作者还提到复用策略和系统物理部分的构件。复用是影响体系结构设计以及详细设计的一个主要因素。选择在工具包复用,构架复用和模式复用三者中进行。来自外部资源的复用必须与内部的包、构件、类、接口的设计排比起来。这章中,作者着重又为我们讲述了“协作”,详细设计集中就在协作上。一个协作指明一个用例或一个操作的实现。一个协作建模了对象之间的消息传递,要考虑的问题包括重载、一名多用、重复、模板、自消息、异步消息、和回调。协作的结构化方面在类图中建模,而行为方面在协作途中建模。