北京倾斜摄影三维建模软件中文版发表时间:2023-04-02 18:48
概述. 课程概述聚积uml及其相关的一些话题回首回头回忆回头回忆uml相关的符号与概念以电商订单相关营业为例,借助uml完成系统建模将uml酿成晋升建模效力,表达架构想惟的工具. 甚么是umlUnified Modeling Language 统一建模措辞,又称尺度建模措辞。是用来对软件密集系统进行可视化建模的一种措辞。措辞,也就是一个表达思惟的符号商定。. uml的成长与版本建模措辞呈此刻二十世纪年月,年月末最早火速成长,建模措辞达到了多种,百家争鸣后来,Rumbaugh 于年插手Booch的Rational,他们一路研究一种统一的编制一年后,Unified Method .出生避世经由他们三年的配合全力,UML.和UML.于年接踵面世。尔后UML草创人Booch等人,礼聘计较机界的知名人士与企业IBM,HP,Microsoft,Oracle等对UML进行评论,听取定见。年月,Rational向OMG(对象治理组织)提交了UML.年月,OMG发布领受UML,认定为尺度的建模措辞年发布了UML .年发布了UML .年月发布了UML .年推出UML.. uml可以做甚么从命名上分化:同、建模、措辞统一:没有端方不成方圆,它指定了一种尺度,一种束厄狭隘,使得巨匠的表达变得一致。它被OMG(ObjectManagement Group)所认可。建模:复杂营业系统建模,即成立软件系统模子。uml的草创人之一Booch,曾用建一座摩天算夜年夜楼来例如uml的需要性。简单系统下,无关紧要,系统复杂或除夜到必定水平,建模和文档成为系统周期里很是首要的一环。措辞:面向对象思惟的表达。彼此之间的沟通工具。一种遵循特定法例和模式组成的符号系统。. 进修uml的意义团队或架构设计互订交流,必定需要一种沟通措辞是一门手艺,没需要定用到,可是作为架构师理当知道有其他的表达编制,可是用习惯后,uml真的很便当易用. uml的争议不美观不美观概念一:uml是鸡肋,离法度楷模员真正需要的设计工具还差得很远。只有为数不多的法度楷模员操作这个工具交流设法,而没有用在具体工作中。不美观不美观概念二:uml设计相当的严谨与周全,在面向对象的系统架构上,可以便捷的表达你想要表达的一切设法,斑斓切无可替代。小我不美观不美观概念:一项手艺和工具,学会其实不难,需要的时辰能拿来用就好,艺不压身。. 切忌形式化不要把uml过度神化一个表达设法的工具而已当用则用,不要决心去套 理论篇. 关系关系是现实世界中事物与事物之间彼此关系的符号表达,抽象到面向对象理念上,除夜致分为种。.. 泛化(Generalization)界说:java里的extends,可用于接口与接口之间,或父子类之间单向,箭头指向父类,如Tiger指向Animal代码:.. 实现(Realization)界说:java里的implements,箭头指向接口单向,如Tiger扩年夜了Sleep接口,那么箭头指向Sleep代码:.. 依托(Dependency)界说:某个类或对象实例,依托于此外一个而存在,在其关头编制顶用到了对方假定一方属性发生变换,此外一方可能会收到影响凡是是单向,例如动物依托于食物,eat(Food food)类比在表结构上,更像是外键代码:编制参数,局部变量.. 关系(Association)界说:是一种具有的关系,双方没需要定属于统一类事物,箭头指向被具有者可以单向,也能够双向,例如Tiger与Zookeeper类比在表结构上,更像是存在中心表关系代码:成员变量.. 聚合(Aggregation)界说:单向,空心菱形肇端的箭头,箭头指向被具有者一种很弱的具有关系,A可以具有B,可是不是是离了B就没法保留群体与个此外关系,如小组包含组员代码:成员变量,多为集结.. 组合(Composition)界说:单向,实心菱形为肇端,箭头指向子模块一种整体与部门的关系,A是由B组成的,分隔B则不完全。单向,如人和四肢的关系代码:成员变量,多为集结.. 实例一张图涵盖所有的关系:.. 总结继续和实现几近不会弄混,一个上下父子关系,一个是类与接口组合与聚合要寄望,聚合为聚积,群体与个体。组合为组成,整体与部门关系和依托要寄望,关系凡是是同级别有相关性,这类相关性是持久存在的。依托为需求关系,一方需要依托此外一方,可能会是以外一方的改变而改变。关系的强弱顺次:继续=实现组合聚合关系依托. 图.. 概述uml中的图形很是多,按类型分为结构图和步履图,其中,最经常操作,最典型的为种,下面分隔来介绍。用例图:从用户角度描述系统功能。类图:描述系统中类的静态结构。对象图:系统中的多个对象在某一时刻的状况。状况图:是描述状况到状况节制流,用于表达系统状况的改变勾当图:描述了营业实现用例的工作流程,强调的是动作之间的跟尾序列图:对象之间的动态关系,强调对象发送动静的顺次协作图:描述对象之间的协助关系,强调对象之间的关系组件图:描述系统各个组件及其相关关系的静态视图放置图:界说系统中软硬件的物理系统结构.. 类图)声名面向对象系统建模中最经常操作和最首要的图,是界说其它图的根底主若是用来显示系统中的类、接口和它们之间的静态结构和关系的一种静态模子描述细化相关的属性和操作,是一个对营业模子面向对象化的过程,也是对系统的束厄狭隘可以直接构建可履行代码,但真正操作的场景相对较少)可用元素类:接口:关系:可操作上述中的除夜关系。)实例.. 对象图)声名对象图和类图一样反映系统的静态过程,但它表达的是一个现实场景。对象图显示某时刻对象和对象之间的关系。可算作一个类图的快照。对象图是类图的实例,所以几近操作与类图完全不异的标识。)可用元素对象:)关系对象图因为是运行在某个时刻节点的对象镜像,所以关系斗劲单一,描述的是类与类的实例之间。不触及接口关系:对象之间存在关系关系,如用户和订单依托:对象实例之间的依托关系,如商品对象依托店肆)图例)可用元素组件:描述的是系统的其中一个组成部门,一个完全的可自力处事的模块或单元,好比订单处事,ks里的一个pod部件:组件内可能细化为多个子模块端口:组件对外供给处事就必需透露对应的端口。如http rest处事默许的接口:部件组件之间的一种商定,分供给者和需求者同时揭示了某个部件供给出的功能)关系泛化:用于接口与接口之间存在的父子关系,组件之间也可能存在,但相对用的较少实现:接口和其实现者(供给处事的组件)之间关系:Require link Connector ,接口与挪用者(需要接口的组件)之间)图例.. 放置图(拓展))声名一种揭示运行时进行措置的节点和在节点上存在的组件设置设备放置的图。阐述了在现实操作中软件和它的运行气象的关系,而且描述了软件放置在硬件上的具体编制。)可用元素节点:起先单实例MVC架构下,节点可以认为是某台物理处事器,微处事及容器化下,物理处事器除夜多纳入编排治理,docker实例由系统在物理节点见自由调剂,组件没法锁定在某个固定物理节点上,这类气象下的node可以理解为一个容器,或ks中的pod。组件实例相当于组件里的实例化,类比于类和对象)关系依托:发生于组件之间,如用户组件依托于订单组件关系:node association,发生于节点之间,例如操作处事器需要关系mysql数据库)图例.. 用例图)声名用例图是用来描述系统功能的手艺,暗示一个系统顶用例与介入者及其关系的图首要用于需求分化阶段,和产物文档斗劲切近用例图相当于从用户的视角来描述和建模全数系统,分化系统的功能与步履。)可用元素介入者:操作系统的人,有若干良多若干好多种脚色就有若干良多若干好多介入者。用例:介入者可用做的工作)关系泛化:介入者之间可用泛化,例如用户与通俗会员;用例也可用泛化,如用户治理与改削密码关系:发生于介入者和用例之间,暗示该脚色可用有哪些用例(步履)依托:发生与用例之间,例如登录依托于注册)图例.. 交互图交互图分为序列图和协作图,二者既可以彼此转换而不丢失踪踪信息,又存在必定分歧。下面分隔讲再类比序列图)声名序列图首要用于遵循交互发生的一系列顺次,显示对象之间的动静或步履传递。序列图可以形象表达全数流程,和流程图有近似的处所,可是流程图偏营业逻辑,序列图则是系统面向对象化建模后,对应到对象上的交互过程。趋向于斥地者角度。)可用元素对象:供给功能和交互的类的实例介入者:同用例种的介入人,多为一段流程的倡议点时刻线:对象在全数交互流程中的生命周期动静:对象间需要发送和返回的动静,可以自己发给自己外部参考:序列图可以引入外部的一段作为参考,或介入序列中与当前图的元素交互片段:将某一段序列纳入片段治理,该片段像原子一样,发生某些整体的步履,例如轮回)关系不会用到除夜关系,彼此之间操作message交互。代表的是信息勾当。)图例)声名协作图与时序图近似,二者都是用对象间的交互来描述用例的。二者角度稍有不合,时序图强调交互的时刻挨次,协作图强调交互的空间结构。)可用元素介入者:系统介入的脚色对象:同时序图,系统中实例化的对象关系:对象间的关系关系动静:仰仗于关系而存在,承载了对象间要传递的信息)关系不会用到除夜关系,彼此之间操作message交互。代表的是信息勾当。)图例两种交互图可以彼此转化,类比以下:.. 状况机(拓展)状况机分为状况图和勾当图,状况图)声名描述一个实体基于事务反映的动态步履,它有两方面的,一是反映对象可能有哪些状况,二是这些状况之间是若何流转的,需要甚么样的前提下进入甚么样的状况。)可用元素状况:某一个时刻点,对象的状况转移:毗连状况之间,因为状况时可以彼此改变转移的分支汇合点:状况改变中可能发生分叉或交会,如确认收货后,双方互评发生分叉最早竣事:状况的肇端与终结同步点:需要多个分支状况都具有时操作。多用于并行协作措置的状况流转,如互评都完成后,订单才算终结)关系只有转移关系,暗示状况之间的改变)图例勾当图)声名勾当图用于企业的营业流程建模,是对内部勾当与勾当之间勾当弹作的表达勾当图类比流程图:勾当图存在分支与交会,可以表达并行存在的勾当,流程图多为是与否分支剖断勾当图类比状况图:不合,状况图强调步履的功能(下一个状况是甚么),勾当图在乎步履的动作(下一步干甚么)。二者可以理解为穿插配合,一动一静,勾当可能会触发下一步不合的状况。)可用元素勾当:表达系统中,或对象内的某一个可以发生的动作对象:勾当的发生者,或交互者流转:勾当的跳转,即下一步指向谁剖断:近似与流程图里的判决,遵循前提发生不合的流转同步:并行流转下的聚积,不合于流程图的处所肇端竣事:勾当的倡议与终结泳道:对UML勾当图中的勾当进行分组,统一类勾当在一个泳道上,清楚了然)关系只有流转,也就是勾当的跳转,暗示下一个勾当是啥)图例 实战篇. 经常操作工具.. Rational Rose老牌,赫赫驰誉,史上最驰誉的UML产物,甚至于除夜除夜都气象下,良多人将他齐截于UML工具,需要寄望的是,自从 Rational被IBM收购往后,Rational Rose已成为历史,作为UML.尺度的产物,此刻已不进级,可是够用。其替代品是IBM的其他产物,如IBM RSA。.. RSAIBM? Rational? Software Architect ,IBM的旗舰产物,是一个而又周全的操作法度楷模设计、建模和斥地工具,用于实现端到端的软件交付。经由过程和IBM其他产物的协调,撑持软件斥地的全生命周期斥地。可是也有它的短处错误,粗笨,复杂(除夜产物的通病).. Enterprise ArchitectSparx Systems 的旗舰产物。它笼盖了系统斥地的全数周期,除斥地类模子以外,还搜罗事务过程分化,操作案例需求,动态模子,组件和结构,系统治理,非功能需求,用户界面设计,测试和呵护等。总之你需要的根底都可以知足,价钱还廉价。性价比之选。.. StarUML开放源码的UML斥地工具,是由韩国主导斥地出来的产物。用Delphi写的,是个除夜神。需要付费,网站供给采办注册码,小巧简单而易用,与rose对比更是较着。.. VISIOVISIO可以理解为一种通用的绘图工具,它具有常见的各类图形,从VISIO版本才最早涉足软件分化设计到代码生成的全数功能,纯挚从绘图角度,有着无可对比的优势,UML图标仅仅是其中很少的一部门。益处是跟微软的office产物的能够很好兼容。可以把图形直接或内嵌到WORD的文档中。可是到代码的生成是撑持微软自家的产物如VB,C,ms sql 等(微软的一贯气概),假定仅是画uml图和除夜量的word文档表达,它可以知足你。.. PowerDesignerSybase的企业建模和设计解决方案。采纳模子驱动编制,将营业与IT连络起来,可辅佐放置有用的企业系统架构,并为研发生命周期治理供给强除夜的分化与设计手艺。将多种尺度数据建模手艺集成一体,并与IDE集成,典型的如Eclie 插件形式。PD给人的印象是数据库建模手艺,可是它可以完成uml的所有建模操作并映照到数据库和代码层面。并供给多种关系数据库的毗连撑持。.. 总结以上工具各有益弊,遵循自己现实气象和欢兴奋乐喜爱选择便可根底都涵盖软件建模的完全周期,uml只是他们的一部门功能任何一种都可以知足你进修和工作中uml建模的操作需求. 订单建模实战.. BC生意用例图用例图从订单系统操作人脚色解缆,反馈订单系统里面有哪些人,可以做哪些工作)营业需求:买家:浏览商品,下单、支出、签收卖家:开店,确认订单,发货,商品呵护双方:退货,换货,评价,保藏.. 订单模块类图订单类图从营业模子解缆,用面向对象思惟,订单营业中的模子抽象为一个个对象)元素:人物类:Seller,Buyer,User商品类:Shop,Product生意环节类:Cart,Order,Invoice,AliPay,WeichatPay,ICBCPay...生意环节接口:Pay促销相关类:DiscountPromotion,ReductionPromotion...促销接口:Promotion)关系:关系:Order→Seller,Buyer,Pay;Shop→Seller依托:Order→Cart→Promotion,Invoice;组合:Shop→Product聚合:Cart→Product泛化:Buyer,Seller→User实现:DiscountPromotion,ReductionPromotion→Promotion;AliPay,WeichatPay,ICBCPay→Pay.. 订单下单时的对象图对象图表达的是下订单的时刻,系统存在的对象及对象之间的关系关系。对象具有了现实的属性值)元素:与类图一致,可是接口将不复存在,而酿成现实实现类Cart生命周期终结,Invoice还没出生避世,Product,Promotion仰仗在了订单上对象上的属性具有了现实值,不再是泛化的类属性的概念)关系:对象之间酿成实例关系(Instance link),泛化和实现不再作。弱类型可操作依托,好比Order与打折的Promotion.. BC下单支出序列图序列图反映下单到支出完成这段时刻里,各个对象若何协作和交互,彼此之间需要传递甚么动静。)元素人物:Buyer对象:Product,Cart,Order,Promotion,Pay,AliPay(外部))时刻序列顺向:Buyer→遴选→Product→添加→Cart→促销结算→Promotion→下单→Order→支出→Pay→跳转→AliPay回路:Buyer←通知←Order←开单←Pay←回调←AliPay环路:Cart ←→增删商品.. 下单支出协作图协作图同序列图近似,可以由序列图转化而来。可是协作图反映的是交互关系,像是铺开的时序图)元素,同时序图人物:Buyer对象:Product,Cart,Order,Promotion,Pay,AliPay(外部))交互,同序列图关系动静. 总结一切皆工具,合适你的就是的矫捷变通,不要拘泥端方,端方是死的人是活的表达思惟才是方针,一切都是为了能说清楚你的设法,这也是措辞的素质不要为了绘图而绘图,uml不是必需的,可是有了它你的架构工作会变得更顺畅但愿uml能成为你架构工作的利器,晋升效力,解决问题。Thanks!
|
在线QQ
13102029636