zoukankan      html  css  js  c++  java
  • 敏捷软件开发_UML<一>

    敏捷软件开发_UML<一>

     所看书籍是:敏捷软件开发_原则、模式与实践_C#版(美)马丁著,这本书写的非常棒,感谢作者。该归纳总结的过程按照我读的顺序写。

    UML

     在建造桥梁,零件,自动化设备之前需要建模分析可行性,软件在编写之前也需要建立模型,看看类和逻辑的设计是否合理,这样的建模过程就是UML。

    类图

    类图就是来描述一个类本身或和其他类的调用关系。

    • +public
    • -private
    • #protected

    实现/泛化

    • 集成
    • 实现接口

    组合

    • 部分可以离开整体

    聚合

    • 部分不能离开整体

    关联

    • 持有对其他对象引用的实例变量

    依赖

    • 局部变量/方法的参数或则静态方法的调用

    注意
    • 关系的强弱:泛化/实现>组合>聚合>关联>依赖

    对象图

    表示系统执行的某个特定时刻的一组对象和关系,可以看成是内存快照。
    该图大部分是从相应的类图中推导而来没啥用。

    顺序图

    描述算法的实现,重点在于消息的顺序。比较常绘制的动态模型。

    例子

    • 对象下面画有横线,类没有,对象名:类
    • 垂下来的线为生命线
    • 中间矩形垂下来的矩形:激活,表示一个函数的执行时间
    • 虚线表示返回参与者并传回返回值
    • 箭头:消息。返回值:消息名称(参数)
    • 带圆圈的箭头:消息的参数

    注意

    • 循环:框起来 [for each id in idlist]
    • 容易被勿用和滥用

    协作图

    描述算法的实现,重点在于对象之间的关系

    状态图

    其实就是有限状态机(FSM)。

    例子:

    • 实心黑球:初始伪状态,从这个状态开始运转
    • 圆矩形:状态。上层放状态的名字,下层放一些特定动作和事件,表示进入或则退出时要做什么,
    • 箭头:迁移。上面有触发该迁移的事件名称和要执行的动作

    注意

    • entry和exit:标准事件,不管写不写都会触发
    • 超状态:几个状态迁移时间相同时,可以组成一个超状态。迁移时会出发超状态的entry和exit

    如何使用UML

    在使用UML的过程中,需要先通过行为优先的方式写出状态图,先是局部状态再是整体状态,抽象出会改变的,将每一种改变的类型实例化,中间再通过各种设计模式隔离

    行为优先

    从项目的功能入手,用户的交互入手写出每一种功能,大体的类有了后,再抽象出会改变的类,通过设计模式隔离

    检查结构

    检查每一种功能实现是否合理

    想象代码

    想想出代码的样子做微调

  • 相关阅读:
    Redis 是单进程单线程的?
    LeetCode-114. Flatten Binary Tree to Linked List
    Java HashMap源码分析
    转:zookeeper中Watcher和Notifications
    分布式服务框架
    LeetCode-330.Patching Array
    转:String StringBuffer StringBuilder区别
    最小堆代码实现
    数组的各类排序
    两步建立 ssh 反向隧道
  • 原文地址:https://www.cnblogs.com/lovexinyi/p/9707270.html
Copyright © 2011-2022 走看看