UML介绍(含UML工具)

分享Astah professional 7.2下载和破解:java

官方下载地址:http://astah.net/downloadweb

一、免费的community版本spring

连接:http://pan.baidu.com/s/1kVch3oj 密码:3o49编程

二、专业版app

连接:http://pan.baidu.com/s/1slzBKip 密码:lwjnide

专业版破解文件编码

连接:http://pan.baidu.com/s/1pLBlgDH 密码:u9x7idea

破解方法:解压下载的文件,将astah-pro.jar拷贝的软件安装根目录覆盖原文件便可。.net

使用


  • UseCase Diagram(用例图图形)3d

    这里写图片描述

  • Activity Diagram(活动图图形)

    这里写图片描述

  • Class Diagram(类图图形)

    这里写图片描述

  • Sequence Diagram(序列图图形)

    这里写图片描述

  • 在类图中一共包含了如下几种模型元素,分别是:类(Class)、接口(Interface)、依赖(Dependency)关系、泛化(Generalization)关系、关联(Association)关系以及实现(Realization)关系。

    接口是在没有给出对象的实现和状态的状况下对对象行为的描述。接口是一种特殊的类,全部接口都是有构造型<<interface>>的类。在UML中,接口使用一个带有名称的小圆圈来进行表示,而且能够经过一条Realize(实现关系)线与实现它的类相链接

    依赖表示一个模型元素(客户方)须要另外一个模型元素(供应方)来达到某种目的,供应方的修改会影响客户方的执行结果。

    依赖关系暗示着一个客户方若是没有供应方的支持是不完整的。

    例如,当给一个雇员计算工资的时候,须要使用计算器。

    UML中,依赖关系用一个从使用者指向提供者的虚箭头表示:

    泛化(继承)关系用来描述类的通常和具体之间的关系——is a kind of。
    UML中,用一条带有空心大箭头的有向实线表示,箭头指向父类

     

    关联关系是一种结构关系,指出了一个事物的对象与另外一个事物的对象之间的链接。
    导航性:若A指向B(导航性) 则B为A的成员变量。

     关联关系有两种很是重要的形式,分别是汇集(Aggregation)关系和组成(Composition)关系。

    第三节:先画图、后编程

     

    做为初学者,咱们的开发,每每是这样的,在心中画好了时序图,而后开始编码。若是你也是这个习惯,那么足以证实你就是我刚刚描述的初学者。但有些小的项目,只有简单的CRUD,因此咱们排斥画图,这也是能够理解的。个人作法是这样:

  • 在纸上画功能实现的时序图.
  • 按时序图编码.
  • 将java文件转化为类图文件.
  • 在软件中使用转换好的类图文件画出时序图.
  • POST 数据增长
    GET 数据查询
    DELETE 数据删除
    PUT 数据更新
    PATCH 数据更新(部分字段)

    总结

    咱们由时序图总结中类图,并使用astahidea将图表(java代码)快速的转化(逆向转化)成了java代码(图表)。

    是的,在教程中我也是这么作的。

    时序图

    /SpringMVC/assets/image/chapter3/14.png/SpringMVC/assets/image/chapter3/15.png/SpringMVC/assets/image/chapter3/16.png/SpringMVC/assets/image/chapter3/17.png

    类图

    /SpringMVC/assets/image/chapter3/18.png

    创建接口

     
    1. package com.mengyunzhi.service;

    2.  
    3. import com.mengyunzhi.repository.Klass;

    4.  
    5. /**

    6. * Created by panjie on 17/4/7.

    7. */

    8. public interface KlassService {

    9. Klass add(String name, Long teacherId);

    10. Klass get(Long id);

    11. void delete(Long id);

    12. Klass update(Long id, String name, Long teacherId);

    13. }

    建立实现类

     
    1. package com.mengyunzhi.service;

    2.  
    3. import com.mengyunzhi.repository.Klass;

    4.  
    5. /**

    6. * Created by panjie on 17/4/13.

    7. */

    8. public class KlassServiceImpl implements KlassService {

    9. @Override

    10. public Klass save(String name, Long teacherId) {

    11. return null;

    12. }

    13.  
    14. @Override

    15. public Klass get(Long id) {

    16. return null;

    17. }

    18.  
    19. @Override

    20. public void delete(Long id) {

    21.  
    22. }

    23.  
    24. @Override

    25. public Klass update(Long id, String name, Long teacherId) {

    26. return null;

    27. }

    28. }

    建立C层

     
    1. package com.mengyunzhi.controller;

    2.  
    3. import com.mengyunzhi.repository.Klass;

    4. import com.mengyunzhi.service.KlassService;

    5. import org.springframework.beans.factory.annotation.Autowired;

    6. import org.springframework.web.bind.annotation.*;

    7.  
    8. /**

    9. * Created by panjie on 17/4/13.

    10. */

    11. @RestController

    12. @RequestMapping("/klass")

    13. public class KlassController {

    14. @Autowired

    15. private KlassService klassService;

    16.  
    17. @PostMapping("/")

    18. public Klass save(@RequestParam String name, @RequestParam Long teacherId) {

    19. return klassService.save(name, teacherId);

    20. }

    21.  
    22. @GetMapping("/{id}")

    23. public Klass get(@PathVariable Long id) {

    24. return klassService.get(id);

    25. }

    26.  
    27. @DeleteMapping("/{id}")

    28. public void delete(@PathVariable Long id) {

    29. klassService.delete(id);

    30. return;

    31. }

    32.  
    33. @PutMapping("/{id}")

    34. public Klass update(

    35. @PathVariable Long id,

    36. @RequestParam String name,

    37. @RequestParam Long teacherId) {

    38. return klassService.update(id, name, teacherId);

    39. }

    40. }

    让咱们共同复习一遍各个请求方式默认对应的操做

  • 1 流程图  

            右键 _ create Diagrm _ add Flowchart _ New Flowchart

        技术分享

    2 时序图

            Create Diagram _ Add Sequence Diagram

     

            技术分享

     

    3  静态类图

            Create Diagram _ Add Class Diagram

        技术分享

--------------------- 本文来自 ZhaoYingChao88 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/ZYC88888/article/details/81241176?utm_source=copy