UML学习概述 2021.07.16

      写在前面:最近在做技术设计,自己画的时序图,发现好多不对的地方,以及对业务的抽象能力也需要加强。感觉自己很有必要加强下这方面的训练,首先就从UML开始吧。

      今天查了一些关于UML的文章,发现总是零零散散的,不太系统,所以就找了一本书《UML精粹:标准对象建模语言简明指南:第3版》,作者是个外国人 Fowler, M。本书是一本思想大于教条的好书,作者的目标就是:寻求UML最有用的部分,而且就告诉你这部分。闲言少叙,正式开始。

      什么是UML?

      UML 是一种为面向对象开发系统的产品进行说明、可视化、和编制文档的标准语言。

      UML 作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。

     说白了 就是统一建模语言。      

      UML 的目标:

      UML 的目标就是 UML 被定义为一个简单的建模机制,帮助我们按照实际情况或者按照我们需要的样式对系统进行可视化,提供一种详细说明系统的结构或行为的方法,给出一个指导系统构造的模板,对我们所做出的决策进行文档化。

    面向对象的分析与设计

    面向对象的分析与设计的目的可以描述为:

  • 确定一个系统中的对象.

  • 确定它们之间的关系.

  • 做一个设计,使用面向对象的语言可以转换为可执行文件.

步骤可以被定义为:

Analysis --> Design --> implementation using languages

以上三点可以详细描述:

  • 在面向对象的分析,最重要的目的是确定对象和描述他们以适当的方式。如果这些对象的有效识别,那么接下来的设计工作是很容易的。对象应确定职责。职责是对象所执行的功能。每一个对象具有某种类型的要执行的责任。当这些责任协作系统的目的达成。

  • 第二阶段是面向对象的设计。在这个阶段的重点是要求及其履行情况。在这一阶段中的对象根据其预期的关联协作。协作完成设计也完成了。

  • 第三阶段是面向对象的执行。在这个阶段,设计采用面向对象语言,如 php,go 等。

     UML 在面向对象设计中的作用:

    UML是一种建模语言,重点是面向对象的软件应用建模。因此面向对象的设计和UML之间的关系是非常重要的。在正确的进行了面向对象分析与设计完成后,下一步是很容易的,从面相对象的设计输入到UML图中。

     UML基本元素:

  先大概了解下UML的一些基本元素

  • 三个基本模块:事务,关系,图。
  • 四种事务   
    1. 结构事务:类,接口,协作,用例,活动类,组件,节点。
    2. 行为事务:交互,状态机。
    3. 分组事务:包
    4. 注释事务:注释。
  • 四种关系
    1. 依赖
    2. 关联
    3. 实现
    4. 泛化
  • 十种图
    1. 用例图
    2. 类图
    3. 对象图
    4. 包图
    5. 部署图
    6. 活动图
    7. 状态图
    8. 时序图
    9. 协作图
    10. 组件图

    之前一直以为 UML就是类图,今天才发现其实UML包含了很多,我们常画的时序图,也是UML的一种,作者书中主要讲解的是 类图 跟 时序图,因为这俩种可以满足我们日常工作的很多需求,但是感觉状态图我们也是总用,接下来,主要学习画类图,时序图(序列图),以及状态图

      最后附上作者的一段话。

    从远古时代起,最有才华的架构师和最有天赋的设计人员就都知道吝啬定律。吝啬定律不管表述得像悖论(少就是多),还是佛家心法(禅心即初心),它的智慧是永恒的:把每一件事情减少到实质,这样就可以使其功能更好地发挥出来。从金字塔到悉尼歌剧院,从冯·诺依曼架构到UNIX和Smalltalk,最好的架构师和设计人员都努力遵从宇宙的这条永恒原则。

     不太懂吝啬定律,百度后附上解释。

    吝啬定律也即是奥卡姆剃刀原理,又称“奥康的剃刀”。一个理论或者猜想(所有理论一开始都是猜想)所需要的前提每多一条,这个理论或猜想的适用性或者说其适用域就减少一分,稍微变动任何一点条件都会让其不成立。三个点构成一个面无需证明,4个点,5个点,6个点,也有可能构成一个面,但是每多一点,不共面的概率就飞速上升。一个定理的前提支撑太多,这些前提同时成立的可能性就越小,小到0就无法成立,为1则成为特例不成理论。而且有些前提又依赖于更多前提,这就让这个理论的适用域趋于空集。

剃刀原理基本就是这个意思。

     同样我们做系统设计,依赖的越少,系统越稳定。如无必要,勿增实体

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值