第13章 逻辑架构和UML包图

逻辑架构和层

逻辑架构是软件类的宏观组织结构,它将软件类组织为包(或命名空间)、子系统和层等。

层是对类、包或子系统的分组,具有对系统主要方面加以内聚的职责。通常包括:1.用户界面。2.应用逻辑和领域对象(表示领域概念的软件对象)。3.技术服务(提供支持性技术服务的常用对象和子系统)。

软件架构

架构是一组重要决策,其中涉及软件系统的组织,对结构元素及其组成系统相关接口的选择,这些元素特定于其相互协作的行为,这些结构和行为元素到规模更大的子系统的组成,以及指导该组织结构(这些元素及其接口、协作和组成)的架构风格。

应用UML:包图

UML包图通常用于描述系统的逻辑架构——层、子系统、包等。层可以建模为UML包。UML包能够组织任何事物:类、其他包、用例等。

1.依赖线:用于表示包之间的依赖性(耦合),箭头指向被依赖的包;

2.UML包代表命名空间,因此诸如Date类可以定义于两个UML包内,完全限定的名称:java::util::Date,表示名为java的包嵌套名为util的包,后者包含Date类。

第13章 逻辑架构和UML包图_第1张图片

使用层进行设计

使用层进行设计,将系统的大型逻辑结构组织为独立的、职责相关的离散层。

1.内聚职责,关系分离(基本架构原则):同一层内的对象在职责上应该具有紧密关联,不同层中对象的职责则不应该混淆,例如UI层中的对象应该关注于UI工作,如创建窗口和小部件等,应用逻辑或领域层中的对象应该关注应用逻辑,例如计算总额或税金等。

2.将代码组织映射为层和UML包。

第13章 逻辑架构和UML包图_第2张图片

3.使用对象设计应用逻辑的方法:创建软件对象,使其名称和信息类似于真实世界的领域,并且为其分配应用逻辑职责。以这种方式设计对象,则可以将应用逻辑层更准确地称为架构的领域层,即包含领域对象,处理应用逻辑的层。

4.领域层和领域模型之间的关系:领域层是软件的一部分,领域模型是概念角度分析的一部分,它们是不同的,但是利用来自领域模型的灵感创建领域层,我们可以获得在实现世界和软件设计之间的低表示差异。

5.层、层和分区:架构中的层表示对系统在垂直方向的划分,而分区则表示对层在水平方向进行划分,形成相对平行的子系统。

第13章 逻辑架构和UML包图_第3张图片

模型-视图分离原则

1.原则1:不要将非UI对象直接与UI对象连接或耦合。

2.原则2:不要在UI对象方法中加入应用逻辑。例如计算金额。

3.观察者模式是对该原则的合理扩展,领域对象只能通过接口向视图的UI对象发送消息。基于该模式,领域对象不知道UI对象的存在,也不知道它的具体窗口类。领域对象只需要发送消息给实现了监听功能接口的对象。更进一步的应用是,领域类封装了与应用逻辑相关的信息和行为。窗口类则负责输入和输出。

系统顺序图、系统操作和层之间的关系

系统顺序图描述了系统操作,隐藏了特定的UI对象,然而捕获系统操作请求的对象通常是系统UI层的对象,从UI层发送到领域层的消息将是系统顺序图中所描述的消息,例如enterItem。

第13章 逻辑架构和UML包图_第4张图片









你可能感兴趣的:(UML和模式应用读书笔记)