Tabla de contenido
1. Introducción a Visual_Paradigm
1. Introducción a la interfaz principal
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
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 Java
desarrollo, 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.Mac
VP
UML
Online
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.