astah UML 先画图、后编程

摘要:
在UML中,它由一条带大空心箭头的有向实线表示。指向父类关联的箭头是一种结构关系,表示一个对象和另一个对象之间的连接。关联关系有两种非常重要的形式,即聚合关系和组合关系。

分享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)关系。

    astah UML 先画图、后编程第5张

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

    astah UML 先画图、后编程第6张

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

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

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

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

    astah UML 先画图、后编程第7张

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

    astah UML 先画图、后编程第8张

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

    astah UML 先画图、后编程第9张

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

    astah UML 先画图、后编程第10张

    第三节:先画图、后编程

    作为初学者,我们的开发,往往是这样的,在心中画好了时序图,然后开始编码。如果你也是这个习惯,那么足以证明你就是我刚刚描述的初学者。但有些小的项目,只有简单的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

        技术分享

免责声明:文章转载自《astah UML 先画图、后编程》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SQL server挂了之后关于Cadence OrCad 16.6的破解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用Roslyn的C#语言服务实现UML类图的自动生成

最近在项目中实现了一套基于Windows Forms的开发框架,个人对于本身的设计还是比较满意的,因此,打算将这部分设计整理成文档,通过一些UML图形比如类图(Class Diagram)来描述整个框架的设计。然而,并没有找到一款合适的UML设计工具,商用版的功能强大,但即便是个人许可,一个License也不下千元;免费社区版的UML工具中,draw.io...

UML 基础: 类图

简介:来自Rational Edge:在 UML 2 中,作为新结构图类型的最重要实例,类图可以在整个软件开发生命周期中,被分析师,业务建模人员,开发者和测试者使用的。本文提供了全面的介绍。 这是关于统一建模语言、即UML 里采用的基本图的一系列文章的一部分。在我 先前关于序列图的文章 里,我把重点从 UML 1.4 版,转移到 OMG的采用UML 2....

UML实践详细经典教程

面向对象的问题的处理的关键是建模问题。建模可以把在复杂世界的许多重要的细节给抽象出。许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML的精彩之处。 UML中有九种建模的图标,即: 用例图 类图 对象图 顺序图 协作图 状态图 活动图 组件图 配置图 本课程中的某些部分...

【UML】工具Astah学习记录(一)类图

Astah社区免费版工具下载地址: 链接:https://pan.baidu.com/s/1jIIjtqQ 密码:c9d4 1.安装工具,默认安装即可,略。 2.进入工具: 3.创建文件(File->new): 4.右键创建类图: 进入到如下界面: 5.创建一个类: 6.如下,创建一个Person类,点击橙色的菱形可以创建属性,点击绿色的长...

MarkDown语言

目录 1、Markdown简介 2、辅助线 1)中划线语法 2)下划线语法 3、字体、字号 1)改变字体 (1)修改局部字体 (2)常用字体 2)改变字号 (1)使用 标签 size 属性修改局部字号 (2)使用 和 标签修改局部字号 3)全局字体、字号的设置 4、前背景、背景色 1)前背景 2)背景色 3)图片背景色...

在eclipse中画类图

学习设计模式的时候,希望能够画出类图,理清关系。但是StarUML还有重新去写类名、属性、方法等,不是很方便。网上给出了安装插件的方法额,就可以直接在eclipse中拖拽类,很方便。但是网上给出的插件地址失效了,现在做出如下整理: 1.安装GEF。eclipse->Help->Install new software GEF的地址是:http...