动态建模是描述系统的动态行为,即系统中对象在执行过程中不同时间的交互情况。动态建模可以分为:顺序图,状态图,活动图,协作图等。
一、
顺序图,也叫时序图,强调消息时间顺序的交互图,一般时序图只表达每个步骤都正确的情况,对于可能出错的步骤可以用活动图表达。
顺序图的7种元素:角色actor,对象object,生命线lifeLIne,控制焦点activation,消息message,自关联消息,组合片段。
角色:系统角色,也可以是人或其他系统等正在的本开发系统之外的角色。用小人表示。
对象:参与交互的类的实例,为系统内部角色,对象之间可以发送和接收消息。位于时序图顶部,用矩形表示。
对象的3种表示方法:1、对象名和类名;2、只有对象名;3、只有类名。
生命线:时序图中每个对象下面都有一个垂直的虚线,这是对象的生命线,代表了对象的生命周期。
控制焦点:代表时序图中在对象的生命线上某段时间的执行的操作,以窄矩形表示。
消息:对象之间发送的消息分为3种:同步消息,异步消息,返回消息。
同步消息:消息发送者把消息传给消息接收者后,消息发送者停止活动,等待消息接收者返回消息或放弃控制,才会继续自己的工作。表示同步。
异步消息:消息发送者把消息传给消息接收者后,消息发送者继续自己的工作,不停止等待接收者的返回消息或控制,发送者与接收者是并发工作。
返回消息:表示调用返回。
自关联消息:方法的自身调用,或对象的某个方法调用了本身所在对象中的另一个方法。
二、
协作图,注重在对象参与交互时,对象之间如何进行连接和传递的什么消息,按时间和空间的顺序描述系统对象之间的交互过程,侧重于描述消息的组成关系。
协作图的组成元素:消息,链,消息。
对象:与顺序图中的对象类似,只是协作图中无法表示对象的创建和销毁,所以对象在图中的位置没有限制。
链:表示对象之间的关系,链是关联的一个实例。一般说,消息的发送者知道消息的接收者,接收者不知道发送者。
消息:与时序图中的消息一样,只是在协作图中需要给消息标上序号(一般就用数字表示),来表示消息的传递顺序。
三、
状态图,用于描述一个特定对象所有的可能状态,以及由于各种原因而引起对象在各个状态之间的转换。
状态图的元素:状态,转换,事件,动作和活动。
状态:对象生命周期的一种,有初态与终态之分。
转换:对象的俩种状态之间的关系。
事件:某一时间和空间发生的事,该事可能会造成对象状态的变化。
动作:一个可执行的原子操作。就是无法继续将该动作分解为更细的操作,该操作具有不可中断性和瞬时性,占据时间极短。
活动:状态中非原子操作,就是可以被分解为更细的操作,一般由一系列操作组成。
状态图的历史状态:在转换成某个复合状态时,(复合状态是一个大的状态由多个小状态组成)它会进入历史状态,不是进入复合状态中的第一个小状态而是会随机进入一个小状态根据上次历史。就比如在看视频时强制退出,再次进入时就会跳转到上次观看的位置,而不是重新播放。
深度历史状态:复合状态中有子状态,子状态中还要子子状态,转换 成复合状态时,会跳转到子状态或子子状态的随机状态。
四、
活动图:描述的活动的顺序,展现从一个活动到另一个活动的过程,实质上就是流程图。
活动图的元素:动作状态,活动状态,开始点,结束点,子活动状态。与状态图很类似。
活动图的3种不同画法:泳道,活动流,对象流。
泳道:活动图中区域划分,每一个泳道代表一个责任区域。
活动流:描述动作之间的有向关系,反映一个活动向另一个活动的转移。
对象流:反映对象之间的依赖关系,表示对象对活动的作用或活动对对象的影响。
状态图侧重于因为某个外部因素,造成对象自身状态的变化。活动图侧重于为了实现对象状态的转换,而实现的对象本身活动的转换。
静态模型图
一、
用例图:展现了开发系统的作用范围以及它能实现的功能,描述了系统与什交互和作用。
用例图元素:参与者,用例,关系,边界。
参与者:与顺序图中参与者类似,是具有行为的事物,一般是存在于开发系统之外。
用例:系统中执行的一系列动作,能清楚的描述出系统的交互过程。
关系:参与者,系统和用例之间的联系。主要有包含关系,扩展关系和泛化关系。
包含关系:一个用例的行为包含另一个用例的行为。与依赖类似,目的是减少用例本文的重复。
扩展关系:扩展用例可以在基础用例上扩展新的行为,但必须声明扩展点。用例图中某个步骤的用例所表示的动作过于复杂时,我们就可以把该动作单独拿出来写成一个用例。
泛化关系:俩个或多个用例在行为,结构和目的等方面存在共性时,可使用泛化操作。
包含关系强调一个用例是另一个用例的一部分。泛化关系强调一个用例是另一个用例的一种。
边界:确定系统边界,确实确定系统的作用范围,系统边界之外的与本系统有联系的就是参与者。
二、
构件图:描述的构件与构件之间的关系,显示的代码的结构。
构件图中有构件,构件是一个相对独立的可装配的物理块,一般作为一个独立的文件存在。可以被替换。
构件图中还有固定的接口:利益接口,实现构件与构件之间的建立联系,实现互相调用,构件与构件之间有依赖关系。
三、
部署图:显示系统中软件和硬件的物理架构。目的是显示系统中的物理硬件,以及如何将软件部署到硬件上,因为程序员需要保证开发的软件能够在合适的硬件上使用。