UML 学习总结
在很久很久之前(头发依然茂密的时候),我认为编程的核心是代码,UML并不重要,真是头发多见识短 ^_^。
UML是什么
UML是Unified Modeling Language,统一建模语言;通过一系列图形来对软件进行描述。
为什么是图形而不是文字呢?
相比文字,图形更加直观,不会产生歧义。
小黄鸭图片可以让所有看到图片的人明白小黄鸭是什么;但是假如使用文字,一只通体金黄的小鸭子😢,n个人很可能会理解出n个小黄鸭。
UML都有哪些图
用例图(Use Case Diagrams)
对象图(Object Diagrams)
类图(Class Diagrams)
组件图(Component Diagrams)
包图(Package Diagrams)
部署图(Deployment Diagrams)
协作图(Collaboration Diagrams)
序列图(Sequence Diagrams)
活动图(Activity Diagrams)
状态图(State Diagrams)
竟然有10种图,不过不要怕,它们是有迹可循的。
用例图、对象图、类图、组件图、包图、部署图表现的是关系,类、对象、数据结构之间的关系,来描述软件中不变的逻辑结构,是静态的。
协作图、序列图、活动图、状态图表现的是变化,执行流程、实体状态变化,来描述软件执行过程中的变化,是动态的。
静态图
用例图
用例图主要用于需求分析阶段;在需求分析阶段,我们要找到系统组成元素,参与者、用例、以及两者之间的关系。
参与者首先是系统之外的存在,可以是人或者事件乃至设备,和系统存在关联。
用例指的是参与者在系统中活动的集合。
拿支付宝转账举例,转账就是一个用例,这个用例关联这2个参与者,转账者和被转账者。
对象图
对象图展示了某一时刻一组对象之间的关系,如同突然给对象拍了一张照片。
类图
类图展示了一组类、接口之间的关系,类图和对象图一起建立出软件的对象模型。
组件图
软件是由一个个组件组成的,类似一辆汽车,包含了动力模块、控制模块等等不同的模块。
而组件图用来描述组件之间的关系。
部署图
部署图用来展示系统该如何进行部署,整体系统架构是什么样子的。
动态图
序列图
序列图用来表示用例中的行为,在这个行为中对象之间互相交互,达成最终行为。
活动图
活动图用来描述具体动态执行过程中的逻辑,相比序列图,更加完善。
状态图
状态图用来描述一个对象在不同情况下状态的变更。
评论