Diagrama de clase de diagrama de secuencia de generación inversa de código: práctica de Visual_Paradigm

Tabla de contenido

prefacio

1. Introducción a Visual_Paradigm

1. Introducción a la interfaz principal

 2. Introducción a la función

2. Generación de diagramas de secuencia basados ​​en código

1. Crear un nuevo proyecto de VP

 2. Generación inversa del diagrama de secuencia

Tres, generación de diagrama de clase VP

1. Generar la entrada principal

 4. Generación de modelos de ER de datos

1, secuencia de comandos SQL

2. Generación inversa ER

 Resumir


prefacio

        No sé si los socios de I+D encontrarán tal demanda en su trabajo diario. Debido a algunos factores objetivos, nuestro proyecto ha llegado al final de la etapa de desarrollo y se requiere la aceptación del proyecto, pero aún no se han realizado algunos trabajos de diseño al comienzo del proyecto, como el diagrama de secuencia, diagrama de clase y modelo de base de datos requerido en la etapa de diseño detallado, diagrama ER, etc. En este punto, por supuesto que podemos elegir empezar desde cero, después de todo, es solo un diagrama UML, ¿verdad? Solo necesita agregar algo de carga de trabajo, siempre que le dé tiempo, definitivamente se realizará, por lo que los estudiantes de I + D comenzaron un poco de bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla, bla bla. Otro se basa en los resultados existentes, como el código. ¿Existen herramientas o métodos que puedan generar diagramas UML de manera inversa, como diagramas de secuencia y diagramas de clase basados ​​en el código?

        Este artículo lo llevará a resolver este problema y recomendará un software de generación de accesos directos UML que se puede usar en el trabajo diario. Para ayudarlo a generar documentos rápidamente, el blog tomará el lenguaje Java como ejemplo, centrándose en cómo realizar diagramas de secuencia retrospectivos y diagramas de clase basados ​​en Visual_paradigm, e introducirá la construcción rápida de modelos ER basados ​​en scripts SQL. No solo proporciona una solución para los documentos de diseño del proyecto inicial en la etapa posterior del proyecto, sino que también ayuda a los programadores junior a comprender profundamente la lógica de ejecución y la secuencia de llamadas del código desde la perspectiva de UML, que es una excelente manera de leer y comprender el código fuente. Si te es útil, bienvenido a dejar un mensaje en el área de comentarios para el intercambio. La redacción es apresurada y, al mismo tiempo, limitada por mi experiencia, algunas de las opiniones son inapropiadas. Por favor, critique y corrija.

1. Introducción a Visual_Paradigm

        Visual_Paradigm (VP para abreviar) es una herramienta de diseño de nivel empresarial que incluye modelado de sistemas, diagramación, colaboración en equipo y muchas otras funciones. Basado en Javadesarrollo, código abierto y multiplataforma, proporciona clientes de plataforma como Windows, Linux, etc. El fondo es muy profundo. La primera versión se lanzó en 2002. Pertenece a una antigua marca de modelos. En la etapa inicial, solo tenía funciones de modelado, pero se ha mejorado y actualizado continuamente en los últimos años. El posicionamiento no solo es limitado. Y también desarrollar vigorosamente el dibujo en línea, el dibujo actualmente necesita pasar por encima de la pared para acceder.MacVPUMLOnline

        Este software es un software comercial, que se puede probar directamente para uso personal. Tiene todas las funciones básicas, pero las funciones avanzadas tienen cierto impacto. Aquí, se utiliza la versión Visual_Paradigm_CE_17_0_20230201_Win64.exe.

1. Introducción a la interfaz principal

        Si encuentra que su software ha caducado durante el proceso de inicio del programa, no importa, simplemente haga clic en el botón en el cuadro rojo en la imagen a continuación para continuar usándolo, y los amigos que tienen suficiente dinero también pueden solicitar el pago.

 2. Introducción a la función

        De hecho, no vamos a dar una introducción completa a las funciones de VP aquí.Después de instalar el software, puede familiarizarse con él y comprenderlo a través de una prueba. Aquí hay solo una breve introducción, para que los lectores puedan tener una comprensión simple.

 

UX: se utiliza principalmente para el diseño de uso del usuario, como el diseño de páginas para dispositivos móviles o PC, para ayudar a los usuarios a explicar mejor cómo usar el sistema y se puede comparar con Axure. (Le invitamos a consultar sobre la diferencia entre UX y CX)

CX: la experiencia del cliente, o CX, cubre una red más amplia y abarca todas las interacciones que un cliente tiene con cada aspecto de un negocio, incluidos productos específicos dentro de una marca o servicios específicos que brindan. De esta manera, CX puede envolver la experiencia del usuario. Varias empresas contratan diseñadores de CX para analizar y evaluar cómo se sienten los clientes acerca de su marca en su conjunto y mejorar la forma en que los clientes interactúan con ellos. CX tiene en cuenta lo que piensan los clientes sobre la estrategia publicitaria de una organización, la reputación de la marca, el servicio al cliente, los precios, los métodos de entrega, la disponibilidad del producto y el proceso general de ventas. Puede obtener más información en esta Guía de introducción a la experiencia del cliente (CX).

Diseño de sistemas: cubre principalmente todos los aspectos de UML, todos los gráficos. Por ejemplo, diagramas de casos de uso, diagramas de clases, diagramas de secuencia, diagramas de estado, diagramas de actividades, diagramas de componentes, etc., los diagramas de diseño UML básicos comúnmente utilizados se completan aquí.

Diseño de Negocios: Proporcionar principalmente el diseño e implementación de los principales diagramas de flujo de negocios.

Visualización de datos: visualización de datos, aquí también proporciona varios tipos de gráficos para lograr un análisis visual de los datos. Puede comparar Echarts, los productos de visualización de datos de DataV.

2. Generación de diagramas de secuencia basados ​​en código

        El código de muestra utilizado aquí toma a Ruoyi como ejemplo, y el lenguaje de desarrollo es principalmente JAVA. Otros lenguajes de programación aún no están involucrados, pero deberían ser compatibles. Acerca de Ruoyi no se describirá en detalle aquí, hay una introducción más detallada en el sitio web de código abierto.

1. Crear un nuevo proyecto de VP

        Para gestionar de forma centralizada la información del mapa generado, creamos un nuevo proyecto en el software VP. En la interfaz principal de VP, haga clic en la página de la pestaña del proyecto, haga clic en el botón Agregar y aparecerá la página Agregar. Después de completar la información relevante, se completa la creación del proyecto.

 Después de ingresar la información, haga clic en Crear proyecto en blanco para completar. Puede ver el directorio del proyecto vp en el árbol de directorios a la izquierda.

 2. Generación inversa del diagrama de secuencia

        Use la función de código de programa en la página de la pestaña de la herramienta, seleccione el último menú desplegable, Instant Reverse Java to Sequence Diagram.

 En la siguiente interfaz, seleccione el directorio de código donde se debe generar el diagrama de secuencia.Tomando Ruoyi como ejemplo, el directorio src.java se selecciona aquí.

 Después de confirmar, haga clic en Siguiente para ingresar a la interfaz de selección de métodos, seleccione el método que se generará y haga clic en Finalizar.

         Después de hacer clic en Finalizar, puede ver el siguiente diagrama de secuencia, ¿no es muy conveniente?

 El siguiente es el código fuente de edición, que es conveniente para que todos lo comparen. El código de Controller aún es simple. Echemos un vistazo al código de lógica de negocios de Servcie.

/**
* 修改菜单
*/
@RequiresPermissions("system:menu:edit")
@GetMapping("/edit/{menuId}")
public String edit(@PathVariable("menuId") Long menuId, ModelMap mmap)
{
     mmap.put("menu", menuService.selectMenuById(menuId));
     return prefix + "/edit";
}

/**
* 修改保存菜单信息
* 
* @param menu 菜单信息
* @return 结果
*/
@Override
public int updateMenu(Menu menu)
{
   menu.setUpdateBy(ShiroUtils.getLoginName());
   return menuMapper.updateMenu(menu);
}

Tres, generación de diagrama de clase VP

        De hecho, VP no solo puede realizar la generación de diagramas de secuencia, sino también admitir la generación de diagramas de clase. También tome el código de Ruoyi como ejemplo.

1. Generar la entrada principal

        En el menú de la izquierda del proyecto VP, seleccione el directorio a generar. Aquí, el paquete Menu se genera como ejemplo.

 Haga clic derecho en el "menú" de ingeniería inversa para agregar un diagrama de clase para ingresar a la interfaz de generación.

 4. Generación de modelos de ER de datos

        En el proceso de diseño de programas, el modelo ER de la base de datos relacional también es un modelo muy importante, y también se requiere el modelado y la expresión del modelo ER. ¿Cómo generar modelos basados ​​en sentencias SQL existentes? VP también proporciona una capacidad de generación tan rápida.

1, secuencia de comandos SQL

        El script SQL aquí usa el SQL de demostración que viene con Ruoyi. El script principal (sección) se ve así:

- ----------------------------
-- 1、部门表
-- ----------------------------
drop table if exists sys_dept;
create table sys_dept (
  dept_id           bigint(20)      not null auto_increment    comment '部门id',
  parent_id         bigint(20)      default 0                  comment '父部门id',
  ancestors         varchar(50)     default ''                 comment '祖级列表',
  dept_name         varchar(30)     default ''                 comment '部门名称',
  order_num         int(4)          default 0                  comment '显示顺序',
  leader            varchar(20)     default null               comment '负责人',
  phone             varchar(11)     default null               comment '联系电话',
  email             varchar(50)     default null               comment '邮箱',
  status            char(1)         default '0'                comment '部门状态(0正常 1停用)',
  del_flag          char(1)         default '0'                comment '删除标志(0代表存在 2代表删除)',
  create_by         varchar(64)     default ''                 comment '创建者',
  create_time 	    datetime                                   comment '创建时间',
  update_by         varchar(64)     default ''                 comment '更新者',
  update_time       datetime                                   comment '更新时间',
  primary key (dept_id)
) engine=innodb auto_increment=200 comment = '部门表';

-- ----------------------------
-- 初始化-部门表数据
-- ----------------------------
insert into sys_dept values(100,  0,   '0',          '若依科技',   0, '若依', '15888888888', '[email protected]', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(101,  100, '0,100',      '深圳总公司', 1, '若依', '15888888888', '[email protected]', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(102,  100, '0,100',      '长沙分公司', 2, '若依', '15888888888', '[email protected]', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(103,  101, '0,100,101',  '研发部门',   1, '若依', '15888888888', '[email protected]', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(104,  101, '0,100,101',  '市场部门',   2, '若依', '15888888888', '[email protected]', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(105,  101, '0,100,101',  '测试部门',   3, '若依', '15888888888', '[email protected]', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(106,  101, '0,100,101',  '财务部门',   4, '若依', '15888888888', '[email protected]', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(107,  101, '0,100,101',  '运维部门',   5, '若依', '15888888888', '[email protected]', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(108,  102, '0,100,102',  '市场部门',   1, '若依', '15888888888', '[email protected]', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(109,  102, '0,100,102',  '财务部门',   2, '若依', '15888888888', '[email protected]', '0', '0', 'admin', sysdate(), '', null);


-- ----------------------------
-- 2、用户信息表
-- ----------------------------
drop table if exists sys_user;
create table sys_user (
  user_id           bigint(20)      not null auto_increment    comment '用户ID',
  dept_id           bigint(20)      default null               comment '部门ID',
  login_name        varchar(30)     not null                   comment '登录账号',
  user_name         varchar(30)     default ''                 comment '用户昵称',
  user_type         varchar(2)      default '00'               comment '用户类型(00系统用户 01注册用户)',
  email             varchar(50)     default ''                 comment '用户邮箱',
  phonenumber       varchar(11)     default ''                 comment '手机号码',
  sex               char(1)         default '0'                comment '用户性别(0男 1女 2未知)',
  avatar            varchar(100)    default ''                 comment '头像路径',
  password          varchar(50)     default ''                 comment '密码',
  salt              varchar(20)     default ''                 comment '盐加密',
  status            char(1)         default '0'                comment '帐号状态(0正常 1停用)',
  del_flag          char(1)         default '0'                comment '删除标志(0代表存在 2代表删除)',
  login_ip          varchar(128)    default ''                 comment '最后登录IP',
  login_date        datetime                                   comment '最后登录时间',
  pwd_update_date   datetime                                   comment '密码最后更新时间',
  create_by         varchar(64)     default ''                 comment '创建者',
  create_time       datetime                                   comment '创建时间',
  update_by         varchar(64)     default ''                 comment '更新者',
  update_time       datetime                                   comment '更新时间',
  remark            varchar(500)    default null               comment '备注',
  primary key (user_id)
) engine=innodb auto_increment=100 comment = '用户信息表';

2. Generación inversa ER

        En la página de la pestaña, seleccione el menú desplegable de ingeniería inversa DB, DDL.

         Después de seleccionar el sql que se generará, debe prestar atención a la configuración de la versión de la base de datos y la información de codificación, especialmente la información de codificación. Si la configuración de codificación es incorrecta, es posible que no se genere el modelo o que haya caracteres distorsionados.

 

        Después de hacer clic en el botón Aceptar, el modelo ER de toda la base de datos se generará en la página principal, ¿no es muy conveniente?

 Resumir

        Lo anterior es el contenido principal de este artículo. Este artículo explica principalmente en detalle una herramienta de software de generación rápida UML para ayudar a la generación rápida de documentos. Tomando el lenguaje Java como ejemplo, se enfoca en cómo realizar diagramas de secuencia retrospectivos y diagramas de clase basados ​​en en Visual_paradigm y modelos ER basados ​​en scripts SQL Una introducción a las compilaciones rápidas.

Supongo que te gusta

Origin blog.csdn.net/yelangkingwuzuhu/article/details/132187163
Recomendado
Clasificación