博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
敏捷软件开发_UML<一>
阅读量:4879 次
发布时间:2019-06-11

本文共 998 字,大约阅读时间需要 3 分钟。

敏捷软件开发_UML

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

UML

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

类图

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

  • +public
  • -private
  • #protected

实现/泛化

  • 集成
  • 实现接口

SoWkIImgAStDuNBDBSZ9hqnDLOZJrLK8Jin9BCfCJO49SdawbPQKvESfsDJewIb0s2wPYJcfHLmEgNafGFq0

组合

  • 部分可以离开整体

SoWkIImgAStDuN9EB59GCbHIoDVLjLDGCb5I2Cz8JSrHi598J4ylIarFBCdCp-DoICrB0Ie60000

聚合

  • 部分不能离开整体

SoWkIImgAStDuNBAB4fHK39KKj3IrRLJK39IKd3BpozHi598piyhISpCA-PoICrB0Qe40000

关联

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

SoWkIImgAStDuGh8oCzBLT3LjLDGCZHLKd0gBId9p-DoICrB0Se20000

依赖

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

SoWkIImgAStDuGejI4aiILNGqxDJS77oICqfI2tYSaZDIm7A0G00

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

对象图

表示系统执行的某个特定时刻的一组对象和关系,可以看成是内存快照。

该图大部分是从相应的类图中推导而来没啥用。

顺序图

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

例子

Bhj5Fzg.png

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

注意

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

协作图

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

状态图

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

例子:

bP6zJiCm481tFuLdf2gT63AWJYmWKQc21J5OyJMnvCJepYRmzfmjHvGuBc9AyjrtFtSva5VemsW5TSg2lDtlvMoq7yJhpPlSxUxa4TtuxitKdnq-kjvCeY2obJ1v_6feS7CYfmu1AkQdySrWD5mNO-iNPOrM4JyJ8EVQ66eoXWZ5ok6qH7B2HtmNFsHpeLJN1RzHIoRXNXaBkZsdXxX4gxKZ3GXvgL_YilK99btLQlCXS9j2ZALOEogYsQ5ksU-TNpx5EfndPRgWxRF_hsoPS7cjGY_kLjwZab4_u9yJdKBN0H5N8MuijgF5L9dd9fMarM0PNzk4nol_yDD3jK7DFx0VHliD

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

注意

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

如何使用UML

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

行为优先

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

检查结构

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

想象代码

想想出代码的样子做微调

转载于:https://www.cnblogs.com/lovexinyi/p/9707270.html

你可能感兴趣的文章
if语句三种形式
查看>>
“取反”运算符
查看>>
进位标志位
查看>>
Redis配置集群二(window)
查看>>
团队模式
查看>>
springboot-定时任务-单线程
查看>>
数据库原理实验指导书
查看>>
正射影像(转载)
查看>>
C#基础积累(三)值类型和引用类型
查看>>
ADB使用笔记 (基础篇) - 2018年2月24日15:44:10
查看>>
2013杭州现场赛B题-Rabbit Kingdom
查看>>
正则表达式之字符串验证
查看>>
python与图灵机器人交互(ITCHAT版本)
查看>>
[转载][HTML-meta标签连载之一]关于 HTTP meta 的 X-UA-Compatible 说明
查看>>
crontab定时任务2_net
查看>>
UI组件
查看>>
maven自动部署到tomcat的问题
查看>>
dsLinq.Count() 引发了“System.NullReferenceException”类型的异常
查看>>
noip2000 进制转换
查看>>
关于vs2008如何查看SharePoint
查看>>