zoukankan      html  css  js  c++  java
  • Uml 建模 一(类图建模和startuml的使用)

    本文将分三个部分介绍Uml建模:Uml建模的作用、类图、startuml的使用

    Uml的作用

       本文以java为例介绍Uml,在当前的软件开发中大多数使用面向对象开发(OO),面向对象的就是将现实世界中的对象,行为,关系等模拟化到软件系统中。当在开发一个软件系统的时候,不会一开始直接编程。这样做的后果就是没有经过详细的设计,导致后期某些业务逻辑基于现有的系统不能开发。所以对于软件系统的设计尤其重要。对于系统的设计分为两部分:1.需求分析人员根据现实业务场景,梳理出业务关系。(eg:一个老师带一个班的课程)2.软件设计师设计出对应的对象关系,行为,状态等(一个老师类,一个学生类 ,多多关系)。UML建模是将现实世界的业务抽象到软件系统中,通过图形的方式勾勒出整个系统,在UML中可以清晰的了解所有模块之间的关联关系。

    一:Uml 建模三种模型

    类模型:描述系统内部对象及其关系的静态结构。类模型由类图构建,类图中节点表示类,类与类之间的关联关系用不同含义的弧标识。

    状态模型:描述对象随着时间迁移发生了哪些变化。状态模型使用状态图确定并实现控制。状态图的节点是状态,弧是由时间引发的状态间的转移。

    交互模型:描述系统中对象如何协作完成更为宽泛的任务。用例:关注系统的功能,即系统为用户做了哪些事情。顺序图:显示交互对象以及发生交互的时间顺序。活动图:描述重要的处理步骤。

    二:面向对象建模离不开最基础的面向对象的特性:抽象,继承,封装,多态,这些特性都会表现在类图上,对象可以被实例化,实例化的对象的属性,操作,类型模拟具体的对象特征。

    三:类模型的特征

    1.关联关系(Associated):描述在对象之间在物理上或者概念上的联系。关系方向是双向的,人和工具的关联,人使用工具工作。人和工具是多对多的关系。

    表示关联关系的符号:1..5(1~5),* (表示多的意思),+(表示类是public修饰的)

    关联中还有一种自关联:自己关联自己,常见的在树形结构中,例如组织关系

    一个子机构可以有多个父结构,一个父结构可以有多个子机构

    2.泛化(generalization)指一个父类与其一个或多个子类之间的关系。子类继承父类的特性,还可以表现出更宽泛的特征。

     

    :String(生命属性的类型),+(表示public) - (private)#(protected) ~(package)    eat() (吃饭的方法)

    3.实现(realization):接口是操作的集合,实现类继承接口,将接口声明的抽象操作具体化。例如:动物都有吃的动作,人是吃饭,猴子吃水果。

    默认的接口图形是原型,在这里我再startUml 中修改了它的展现方式

    4.聚合(aggregation)关系是一种弱关联。一个聚集对象有多个部件构成,部件是聚集的一部分。例如:车和轮胎的关系,轮胎没了,车依然存在。聚合具有传递性,A聚合B,B聚合C ,A聚合C,并且也具有反聚合性,A聚合C,C不能聚合A

    这里以四轮车为例:一辆车由四个轮子聚合

     5.组合(compostion):有两个恩爱的约束条件,一个组成部件至多属于一个装配件。而且一个组成部件一旦被分配给装配件,它就会和装配件有着相同的生命周期。装配件消亡,组成件也将随之消亡。例如:人和胳臂,人消失了,胳臂也不复存在,又例如:程序员没了代码就会死。这种关系要比聚合更强。这里也是用实心菱型表示。

    6.单项关联(directedAssociation):没有生命周期的限制,一个引用另外一个

    一个人有多辆车

    7.依赖(dependency):物体与物体之间产生的依赖关系,例如:人依赖空气和水

    所有的关联关系:

      一个动物的接口被人类所实现(realization),人这个类被男人和女人两个类所泛化(generalization),人类依赖(dependency)水和空气而存活,人类的胳臂和腿才能组合(compostion)成人类,缺一不可,人类消亡,胳臂和腿已经消亡.人类可以开一辆车或者多辆车(directedAssociation),多个车轮聚合(aggregation)成车的一部分,人类可以自关联,人类的父亲,孩子。人类也可以双向关联(association)

    四:startUml的使用

    1.下载startUml之后双击打开,点击default approach.

    2.若左侧的工具栏没有显示,则点击view-->toolbox 在前面勾选,勾选model explorer。

    3.找到Model explorer-->design model 右键点击 add--->选择package或者class

    选中之后修改名称

    3.拖拽这个类到文本框中进行编辑

    4.连接关联关系,直接拖拽

    5.直接添加的接口是圆形图标,要想设置成方格的形式Format-stereotype dispaly-textual

     6.选中类或者接口点击这两个按钮既可以显示属性和行为(方法)

     

  • 相关阅读:
    BZOJ 1040 (ZJOI 2008) 骑士
    BZOJ 1037 (ZJOI 2008) 生日聚会
    ZJOI 2006 物流运输 bzoj1003
    ZJOI 2006 物流运输 bzoj1003
    NOI2001 炮兵阵地 洛谷2704
    NOI2001 炮兵阵地 洛谷2704
    JLOI 2013 卡牌游戏 bzoj3191
    JLOI 2013 卡牌游戏 bzoj3191
    Noip 2012 day2t1 同余方程
    bzoj 1191 [HNOI2006]超级英雄Hero——二分图匹配
  • 原文地址:https://www.cnblogs.com/blogxiao/p/9513883.html
Copyright © 2011-2022 走看看