架构设计之逻辑架构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

架构设计之-逻辑架构

逻辑架构=模块划分+接口定义+领域模型

逻辑架构关注职责划分和接口定义。不同粒度的职责需要被关注,它们可能是逻辑层、功能子系统、模块、关键类等。不同通用程度的职责要分离,分别封装到专门模块、通用模块或通用机制中。

图-1 逻辑架构的设计内容

【设计任务】一、模块划分

面对“技术复杂性”和“管理复杂性”这样的双重困难,以架构为中心的开发方法是有效的途径。软件架构从大局着手,就技术方面的重大问题作出决策,构造一个具有一定抽象层次的解决方案,而不是将所有细节统统展开,从而有效地控制了“技术复杂性”。

通过

定义“如何划分模块、模块间如何通过接口交互”,架构提供了团队开发的基础,如图2所示,可以把不同模块分配给不同小组分头开发,接口就是小组间合作的“契约”,每个小组的工作覆盖了“整个问题的一部门”。这样一来,模块的技术细节被局部化到了小组内部,内部的细节不会成为小组间协作沟通的主要内容,也就理顺了沟通的层次。另外,对“人尽其才”也有好处,不同小组的成员需要精通的技术各不相同。

图2 软件架构奠定团队开发基础

模块划分是架构师的看家本领,有多种手段可以促进合理划分模块:

1、从需求层面的“功能树”,启发“功能模块”的划分

2、水平分层,促进模块分解

3、通用模块和通用机制的识别

4、现代的用例驱动的模块划分过程

5、传统的模块化分思维

6、……

【设计任务】二、接口定义

正确的设计思路是“协作决定接口”。架构师设计接口时,要考虑的重点是“为了实现软件系统的一系列功能,这个软件单元要和其他哪些单元协作、如何协作”。此时,可以使用(一组)序列图辅助进行设计。

【设计任务】三、领域模型细化

逻辑架构设计的粒度,一般推荐设计到模块一级,但如下4种“关键类”可以在架构设计时就明确:

1、接口定义类

2、Facade实现类

3、核心控制类

4、另外,就是对系统可扩展性有根本影响的构成领域模型的那些类

相关文档
最新文档