逻辑架构和层

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

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

软件架构

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

应用UML:包图

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

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

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

使用层进行设计

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

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

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

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

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

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

模型-视图分离原则

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

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

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

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

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

第13章 逻辑架构和UML包图相关推荐

  1. 第04章 逻辑架构【1.MySQL架构篇】【MySQL高级】

    第04章 逻辑架构 前言 推荐 第04章 逻辑架构 1. 逻辑架构剖析 1.1 服务器处理客户端请求 1.2 Connectors 1.3 第1层:连接层 1.4 第2层:服务层 1.5 第3层:引擎 ...

  2. java 包图_九步实现UML包图创建

    本文和大家一起讨论一下UML包图的概念,包是一个UML结构,它使得你能够把诸如用例或类之类模型元件组织为组.包被描述成文件夹,可以应用在任何一种UML图上. UML包图简介 一个"包图&qu ...

  3. [跟我学UML] UML包图中的包引入和包合并

    缩略语     UIS     UML Infrastructure Specification   UML基础结构规范     UML    Unifed Modeling Language     ...

  4. 系统架构-UML 包图

    经过了一个上午的讨论,对于UML的包图(系统架构图)又有了更深一层的理解. 第一个图: 简单解释:UI:界面层,BLL:业务逻辑层:DAL:数据处理层.FUN:封装了常用业务逻辑. 此图不合理原因: ...

  5. 第2章 逻辑架构设计

    业务需求是所有架构设计的依据.架构设计必然是从需求分析开始的. 1.怎么进行逻辑架构的分析? 答:解决思路是"粗 – 细 – 粗".首先从整体.大局.宏观的角度去思考问题,进行逻辑 ...

  6. [跟我学UML] UML包图中的包和命名空间

    本文基于UML规范,介绍了包图中的包和命名空间.此外,通过举例来帮助读者加深理解. ...请打开附件阅读全文. 转载于:https://blog.51cto.com/yunli/186628

  7. (软考笔记) —— 系统架构设计师 - UML建模与架构文档化

    文章目录 UML建模与架构文档化 UML 现状与发展 UML起源 UML 体系结构演变 UML 的应用与未来 UML基础 概述 用例和用例图 交互图 类图和对象图 状态和活动图 状态图 活动图 构件图 ...

  8. 9.1 什么是包图?

    9.1 什么是包图? 包图, UML 包图英文名字叫Package Diagram,Package的意思就是:把...打包. 包图就是对其它UML图进行"打包"的一种图,打包的目的 ...

  9. 23种设计模式【全】 包含:模式定义 使用场景 实现步骤 优缺点 模式区别 UML类图 示例代码 注意项等

    23种设计模式(全) ***项目地址***:[GitHub](https://github.com/yjhroot/design-pattern) 声明 模式分类(3大类) 创建型模式(共5种) 结构 ...

最新文章

  1. 自学成才翁_如何发挥自学成才的内在游戏
  2. php instr函数,oracle的instr函数用法
  3. Learn Jenkins the hard way (0) - Jenkins的罪与罚
  4. 身份证识别——iOS端实现身份证检测
  5. 对RESTful Web API的理解与设计思路
  6. Python range() 函数用法
  7. java线程wait()使一个线程一直运行,一直提供服务
  8. cmd mysql 报错_Mysql报错问题汇总
  9. mybatis源码解析 - 通过一个简单查询例子分析流程
  10. 已经学过51单片机,如何进阶?我来教你
  11. 音视频基本概念:分辨率、帧速率、码流、采样位深、采样率、比特率
  12. NO32、把数组排成最小的数(很好的一道题)
  13. 悦读 | 理想主义者的突围,读《曾国藩的正面与侧面》
  14. arcgis js(二)显示三维地图
  15. HTML5接入百度地图并搜索定位
  16. 短视频APP开发功能介绍
  17. 拼多多订单,商品详情,关键词API接口
  18. 数据结构笔记:选择排序
  19. 机器学习(一)——BP、RBF(径向基)、GRNN(广义回归)、PNN(概率)神经网络对比分析(附程序、数据)
  20. 推荐几款实用软件工具

热门文章

  1. 关于Integer的自动装箱与自动拆箱
  2. hi nova 9z参数 hi nova 9z评测
  3. iphone 4s插件的安装,问题及美化
  4. android sdk manager安装,Android SDK Manager安装过程
  5. Java8特性之Stream的常用方法:filter,map,sorted
  6. 软帝Java培训班第一周周记
  7. linux 查看硬盘使用情况
  8. 9月江苏计算机考试时间,2021年9月江苏计算机等级考试时间_2021年9月江苏计算机等级什么时候考试_课课家...
  9. 工作前 VS 工作后的变化
  10. 前端如何实现模块化开发?