astah UML 先画图、后编程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ZYC88888/article/details/81241176

 


分享Astah professional 7.2下载和破解:

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

1、免费的community版本

链接:http://pan.baidu.com/s/1kVch3oj 密码:3o49

2、专业版

链接:http://pan.baidu.com/s/1slzBKip 密码:lwjn

专业版破解文件

链接:http://pan.baidu.com/s/1pLBlgDH 密码:u9x7

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

使用


  • UseCase Diagram(用例图图形)

    这里写图片描述

  • 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

    建立接口

    package com.mengyunzhi.service;
    
    import com.mengyunzhi.repository.Klass;
    
    /**
     * Created by panjie on 17/4/7.
     */
    public interface KlassService {
        Klass add(String name, Long teacherId);
        Klass get(Long id);
        void delete(Long id);
        Klass update(Long id, String name, Long teacherId);
    }

    创建实现类

    package com.mengyunzhi.service;
    
    import com.mengyunzhi.repository.Klass;
    
    /**
     * Created by panjie on 17/4/13.
     */
    public class KlassServiceImpl implements KlassService {
        @Override
        public Klass save(String name, Long teacherId) {
            return null;
        }
    
        @Override
        public Klass get(Long id) {
            return null;
        }
    
        @Override
        public void delete(Long id) {
    
        }
    
        @Override
        public Klass update(Long id, String name, Long teacherId) {
            return null;
        }
    }

    创建C层

    package com.mengyunzhi.controller;
    
    import com.mengyunzhi.repository.Klass;
    import com.mengyunzhi.service.KlassService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.*;
    
    /**
     * Created by panjie on 17/4/13.
     */
    @RestController
    @RequestMapping("/klass")
    public class KlassController {
        @Autowired
        private KlassService klassService;
    
        @PostMapping("/")
        public Klass save(@RequestParam String name, @RequestParam Long teacherId) {
            return klassService.save(name, teacherId);
        }
    
        @GetMapping("/{id}")
        public Klass get(@PathVariable Long id) {
            return klassService.get(id);
        }
    
        @DeleteMapping("/{id}")
        public void delete(@PathVariable Long id) {
            klassService.delete(id);
            return;
        }
    
        @PutMapping("/{id}")
        public Klass update(
                @PathVariable Long id,
                @RequestParam String name,
                @RequestParam Long teacherId) {
            return klassService.update(id, name, teacherId);
        }
    }

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

  • 1 流程图  

            右键 _ create Diagrm _ add Flowchart _ New Flowchart

        技术分享

    2 时序图

            Create Diagram _ Add Sequence Diagram

     

            技术分享

     

    3  静态类图

            Create Diagram _ Add Class Diagram

        技术分享

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试