美文网首页架构
1.架构设计(什么是架构师及UML建模)

1.架构设计(什么是架构师及UML建模)

作者: 木子心语 | 来源:发表于2018-03-18 16:00 被阅读188次
架构师初体验.jpeg

自己从事iOS开发已经有3-4年了,从不懂架构设计,慢慢积累开发经验及业务学习。自己对架构有了新感觉,把自己了解的架构设计分享给大家,希望大家也能学习到架构的魅力。

什么是架构师.jpg

举个例子,比如说房屋的建造,需要设计师,把图纸设计出来。架构师就相当设计图纸的工程师。然而像工地打工的就相当普通程序员。

好了进入今天的正题

1.什么是UML建模?

  • UML (Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言
  • 用模型元素来组建整个系统的模型
  • 模型元素包括系统中的类、类和类之间的关联、类的实例相互配合实现系统的动态行为等
  • 举个例子:比如我们描述未来设计的房子?
    • 第一种方式,对房子建造设计描述(程序开发)
    • 第二种方式,进行画出房子的结构图 (UML建模语言)
  • UML对语义的描述使开发者能在语义上取得一致认识,消除了因人
    而异的表达方法所造成的影响。
UML图的构成部分
  • 事物(Things):在UML建模语言事物,你可以简单的认为是元素。比如我们说的汽车零件(轮子,方向盘等等)
  • 关系(Relationships):元素之间关系(类似于:汽车零件之间的关系)
  • 图(Diagrams): UML建模(类似于制造汽车,画汽车图)

这就是UML,原本您会觉得很高深,其实就这样。

2.UML怎么使用?

2.1-建模工具(下载地址:http://staruml.io/download)
StarUML.png
2.2-建模关系
  • 泛化关系--generalization(就是继承关系)
泛化关系-继承关系.png

图中左边是创建的父类Company,属性name
图中右边是创建的子类SonCompany,属性age.
当子类继承父类时,箭头指向父类,就是泛化关系,也就是所说的继承关系。

  • 实现关系--realization(在iOS中类似协议,在java中类似于接口)
实现关系--实现协议.png

图中左边 是接口及接口方法
图中右边是实现类
通过接口或者协议实现方法

  • 依赖关系--dependency
什么是依赖关系?
例如:已知A类和B类,在A类中引用B类,这种关系是`偶然性`,`临时性`,同时B类中发生了变化,
影响到A类,这种关系就称之为依赖关系。
依赖关系.png

比如:我早上去图书馆看书
我可以今天去看书,明天去看,不是天天去看书,体现了偶然性和临时性。如果这个图书馆不存在了,会影响到我,不能去看书了。

  • 关联关系(单向关联)--Directed Association
    关联关系其实本质就是依赖关系的特殊情况,两个类属于同一个层次
    例如:
    人看书,人若想看书,必须依赖书。而书不会给人带来依赖关系。
关联关系_单向关联.png
  • 关联关系-双向关联 --Association
    关联关系其实本质就是依赖关系的特殊情况
    比如:用户和订单(用户保存订单号,订单对应用户)
关联关系_双向关联.png
`1`表示:单个
`0-1`表示:可以是0,也可以是1
`1..*`:表示至少有一个
`0..*`:表示可以使0->无穷大
`*`:表示任意
  • 聚合关系(关联关系的特例)--Aggregation
    强调整体和部分
    整体和部分可以分离,各自有各自的生命周期,互不干扰,部分强调共享.

比如: 手机和电池,电池的生命周期不影响手机的生命周期.
如果电池坏了,是不是手机也需要换掉呢?答案是No.
再换一块电池就可以使用了.

聚合关系.png
  • 组合关系--Composition
    强调整体和部分
    整体和部分不可以分离,共享生命周期,整体生命周期结束意味部分生命周期结束
    比如:硬件和软件,公司和部门
    硬件不存在了,软件也不能用了.


    组合关系.png

3.UML建模模型图

  • 用例图--Use Case Diagram


    用例图.png

    自驾旅游,汽车加油对于自驾旅游是一种包含的关系(include);
    我们要吃饭是一种扩展关系(extend);
    司机和自驾旅游一种关联关系.

  • 类图--Class Diagram
    比如:公司类,科技有限公司


公司与科技有限公司之间的泛化关系,公司与京东之间的泛化关系.也成为继承关系.

  • 顺序图(时序图)--Sequence Diagram
    比如:微信支付的流程图


    时序图.png

4.总结

以上内容是对UML建模,UML使用,UML建模关系及UML建模模型图等内容的介绍.也许你已经了解到了UML建模的魅力.它可以让你清晰的了解架构操作及交互.
如果您想了解更多架构模式设计呢?
请继续关注我(Follow Me).
接下来是更精彩的模式设计.
如果您喜欢这篇文章,请记得点赞哦.
如果有什么问题?我们可以相互讨论.

相关文章

  • 1.架构设计(什么是架构师及UML建模)

    自己从事iOS开发已经有3-4年了,从不懂架构设计,慢慢积累开发经验及业务学习。自己对架构有了新感觉,把自己了解的...

  • 详解后端Java面试——OOA/D,UML,和XML

    点关注,不迷路;持续更新Java架构相关技术及资讯热文!!! 1、UML 是什么?常用的几种UML图? 统一建模语...

  • 设计模式

    设计模式 1. 工具 UML类图(统一建模语言) 类图是UML图中的一种, 推荐Processon, 在线建模工具...

  • 一、UML简介与用例图

    一、UML简介 1.什么是UML?可以干嘛? .统一建模语言 .面向对象的分析与设计 .项目结构用图像化的方...

  • Android 架构师之路 目录

    Android 架构师之路 目录 Android 架构师之路1 UML图之用例图Android 架构师之路2 UM...

  • 从java源码生成UML图

    1. 什么是UML 定义: 统一建模语言(英语:Unified Modeling Language,缩写 UML)...

  • UML图

    1.什么是UML?能干什么? UML:统一建模语言 面向对象的分析与设计 项目结构用图像化的方式表示:更容易让人理...

  • 一篇文章了解staruml的相关基础知识

    uml是架构师必备技能 staruml基本概念 staruml是有关OMG UML的应用工具 Project a ...

  • 关于UML你一定要了解的知识

    UML是什么 统一建模语言(UML)是一种可视化的建模语言,便于不同的人有效地交流设计结果。这篇文章中囊括了UML...

  • 架构师软件设计目录

    UML建模 设计模式 架构模式 功能性设计 性能设计 可用性设计 可靠性(容错性)设计 可维护性设计 可扩展性设计...

网友评论

    本文标题:1.架构设计(什么是架构师及UML建模)

    本文链接:https://www.haomeiwen.com/subject/zriofftx.html