【项目新功能开发篇】需求分析和开发设计

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过大学刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产生了写一个博客专栏想法,介绍当前互联网企业JAVA项目开发如何快速入门。

本文收录于《30天企业JAVA项目开发实战入门》专栏,该专栏内容以当前互联网软件企业中的项目实战为线索,介绍企业JAVA项目开发中涉及到的开发流程、技术、工具、规范要求等等。帮助想从事JAVA开发的大学生或新人,更快的、更好的入门JAVA后端开发工作。

文章目录

    • 一、前言
    • 二、需求分析和开发设计
        • (1)需求分析
        • (2)接口设计
        • (3)数据存储设计
    • 三、总结

一、前言

由于本专栏项目实战学习,是以若依开源项目RuoYi-Cloud为示例。所以,本文介绍一下若依开源项目RuoYi-Cloud中若依管理后台系统的新功能开发,如何做需求分析和开发设计,以管理后台系统中的兴趣爱好管理模块开发为示例。

  • 若依项目RuoYi-Cloud简介

    若依项目RuoYi-Cloud 是一个 Java EE 企业级的开源免费的快速开发平台,是一个基于Spring Boot、Spring Cloud & Alibaba的微服务的权限管理系统。如果想快速的开发一个Java EE 企业级项目,可以在若依项目的基础上,开发定制自己的项目。尤其是如果要开发一个后台管理系统,由于若依开源项目中已经内置完整的权限管理模块,所以能够更加快速的完成项目的开发工作;

  • 若依项目RuoYi-Cloud技术选型

    采用前后端分离的模式,微服务版本前端基于 Vue/Element UI ;
    ​ 后端采用Spring Boot、Spring Cloud & Alibaba微服务架构;
    ​ 注册中心、配置中心选型Nacos,权限认证使用Redis;
    ​ 流量控制框架选型Sentinel,分布式事务选型Seata;

  • 若依项目官方网站和文档地址

    若依官网地址:https://www.ruoyi.vip/
    若依演示地址:https://vue.ruoyi.vip/login
    技术文档地址:https://doc.ruoyi.vip/ruoyi-cloud/
    代码下载地址:https://gitee.com/y_project/RuoYi-Cloud

二、需求分析和开发设计

  • 在若依项目RuoYi-Cloud中,开发新的功能模块,如何进行需求分析和开发设计呢?

这里以兴趣爱好管理模块开发为示例,介绍如何进行需求分析和开发设计。其中,开发设计,一般包括接口设计和数据存储设计。

(1)需求分析

​ 首先,要了解兴趣爱好管理模块包括哪些功能。一般在实际项目中,通过召开需求会议的方式,产品人员会给开发人员,介绍产品的功能需求。

兴趣爱好管理模块主页面设计如下:
在这里插入图片描述
兴趣爱好管理模块新增页面设计如下:
在这里插入图片描述
兴趣爱好管理模块修改页面设计如下:
在这里插入图片描述
兴趣爱好管理模块导出Excel字段内容设计如下:
在这里插入图片描述

从以上设计页面可知,兴趣爱好管理模块包括如下功能;

  • 新增:通过新增功能,可以新增一条兴趣爱好记录。其中,新增的内容字段信息包括兴趣爱好编码、兴趣爱好名称、显示顺序、备注;
  • 修改:通过修改功能,可以修改兴趣爱好记录。其中,可以修改的内容字段信息包括兴趣爱好编码、兴趣爱好名称、显示顺序、备注;
  • 删除:通过删除功能,可以删除一条或多条兴趣爱好记录;
  • 查询:通过查询功能,可以根据用户输入的查询条件,查询符合条件的兴趣爱好记录列表;其中,查询条件字段信息包括兴趣爱好编码、兴趣爱好名称、显示顺序;查询的列表信息字段包括兴趣爱好ID、兴趣爱好编码、兴趣爱好名称、显示顺序、状态、备注;
  • 导出:通过导出功能,可以把查询出来的兴趣爱好记录,导出为Excel文档格式;其中,导出的字段信息包括兴趣爱好编码、兴趣爱好名称、显示顺序、状态;
  • 重置:通过重置功能,可以重置查询条件;
(2)接口设计

需求分析完成后,进行后端API接口设计。通过API接口设计,确定API接口的名称、请求URL地址、请求方式、入参、返回值等信息;

  • 接口名称:查询兴趣爱好信息列表
    请求URL地址:/system/interest/list
    请求方式:get
    入参:兴趣爱好编码、兴趣爱好名称、显示顺序
    返回值:兴趣爱好ID、兴趣爱好编码、兴趣爱好名称、显示顺序、状态、备注

  • 接口名称:查询兴趣爱好信息详细
    请求URL地址:/system/interest/{ interestId}
    请求方式:get
    入参:兴趣爱好ID
    返回值:兴趣爱好ID、兴趣爱好编码、兴趣爱好名称、显示顺序、状态、备注

  • 接口名称:新增兴趣爱好信息
    请求URL地址:/system/interest
    请求方式:post
    入参:兴趣爱好编码、兴趣爱好名称、显示顺序、备注
    返回值:无

  • 接口名称:修改兴趣爱好信息
    请求URL地址:/system/interest
    请求方式:put
    入参:兴趣爱好ID、兴趣爱好编码、兴趣爱好名称、显示顺序、备注
    返回值:无

  • 接口名称:删除兴趣爱好信息
    请求URL地址:/system/interest/{ interestId}
    请求方式:delete
    入参:兴趣爱好ID字符串
    返回值:无

  • 接口名称:导出兴趣爱好信息列表
    请求URL地址:/system/interest/export
    请求方式:export
    入参:兴趣爱好编码、兴趣爱好名称、显示顺序
    返回值: 兴趣爱好编码、兴趣爱好名称、显示顺序、状态

(3)数据存储设计

之后,进行数据存储设计。计划将兴趣爱好信息记录数据存储在MySQL数据库的兴趣爱好信息表sys_interest中;

其中,兴趣爱好信息表sys_interest结构设计如下:
在这里插入图片描述

兴趣爱好信息表sys_interest创建表的脚本内容如下:

CREATE TABLE `sys_interest` (
 `interest_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '兴趣爱好ID',
 `interest_code` varchar(64) NOT NULL COMMENT '兴趣爱好编码',
 `interest_name` varchar(128) NOT NULL COMMENT '兴趣爱好名称',
 `interest_sort` int(4) NOT NULL COMMENT '显示顺序',
 `status` char(1) NOT NULL DEFAULT '0' COMMENT '状态(0正常 1停用)',
 `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
 `create_time` datetime DEFAULT NULL COMMENT '创建时间',
 `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
 `update_time` datetime DEFAULT NULL COMMENT '更新时间',
 `remark` varchar(500) DEFAULT NULL COMMENT '备注',
 PRIMARY KEY (`interest_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COMMENT='兴趣爱好信息表';

三、总结

以上,介绍一下若依开源项目RuoYi-Cloud中若依管理后台系统的新功能开发,以兴趣爱好管理模块开发为示例,如何做需求分析和开发设计。

如果您对文章中内容有疑问,欢迎在评论区进行留言,我会尽量抽时间给您回复。如果文章对您有帮助,欢迎点赞、收藏。您的点赞,是对我最大的支持和鼓励,谢谢 :-)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/520277.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode(HOT100)——链表篇

1、相交链表 本题思路就是定义两指针,指向两链表的同一起跑线,然后共同往前走,边走边判断两链表的节点是否相等, 代码如下: /*** Definition for singly-linked list.* public class ListNode {* int val;* L…

最新在线工具箱网站系统源码

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 系统内置高达72种站长工具、开发工具、娱乐工具等功能。此系统支持本地调用API,同时还自带免费API接口, 是一个多功能性工具程序,支持后台管理、上…

算法设计与分析实验报告c++java实现(ACM面试题、字符串匹配算法、循环赛日程安排问题、分治法求解最大连续子序列和、动态规划法求解最大连续子序列和)

一、 实验目的 1.加深学生对算法设计方法的基本思想、基本步骤、基本方法的理解与掌握; 2.提高学生利用课堂所学知识解决实际问题的能力; 3.提高学生综合应用所学知识解决实际问题的能力。 二、实验任务 1、【ACM、…

jmeter下载与使用

下载 官网下载地址:Apache JMeter - Apache JMeter™ 由于jmeter是由java语言编写的,所以要先安装jdk1.8或者以上的版本 配置环境变量 配置classpath环境变量 %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HO…

深入理解 SQL 中的数据集合和数据关联

引言 在数据库管理系统中,数据集合和数据关联是 SQL 查询中常见的概念。它们是构建复杂查询和分析数据的基石。本文将深入探讨 SQL 中的数据集合和数据关联,包括它们的概念、常见用途以及实际示例。 首先引入一下数学中的集合 集合的基本概念&#x…

【Kafka】聊聊如何做Kafka集群部署方案

实际业务问题 在实际的业务中,因业务方要求,每天从三方拉取一定100W用户的三方数据,具体就是 提供uid,然后每天进行离线跑批。前期是部署多个jar实例,然后将名单拆分成多分,然后python脚本读取uid&#xf…

基于spark分析以springboot为后段vue为前端的大学生就业管理系统

基于spark分析以springboot为后段vue为前端的大学生就业管理系统 大学生就业管理系统是一个针对高校毕业生就业信息管理的有效工具,它能够帮助学校和学生更好地管理就业数据,提供数据驱动的决策支持。本文将介绍如何通过爬虫采集数据,利用Spark进行数据分析处理,再结合Spr…

【cpp】快速排序优化

标题:【cpp】快速排序 水墨不写bug 正文开始: 快速排序的局限性: 虽然快速排序是一种高效的排序算法,但也存在一些局限性: 最坏情况下的时间复杂度:如果选择的基准元素不合适,或者数组中存在大…

【C++】c++11新特性(一)

目录 { }列表初始化 内置类型---对单值变量及数组的初始化 列表初始化时进行的类型转换 自定义类型---对类对象或结构的初始化 initializer_list 1. 定义接受 initializer_list 参数的构造函数 2. 在函数中使用 initializer_list 参数 3. 使用 initializer_list 与 vect…

教你网络安全

如今,组织的信息系统和数据面临着许多威胁。而人们了解网络安全的所有基本要素是应对这些威胁的第一步。 网络安全是确保信息完整性、机密性和可用性(ICA)的做法。它代表了应对硬盘故障、断电事故,以及来自黑客或竞争对手攻击等防御和恢复能力。而后者包…

Android14应用启动流程(源码+Trace)

1.简介 应用启动过程快的都不需要一秒钟,但这整个过程的执行是比较复杂的,无论是对手机厂商、应用开发来说启动速度也是核心用户体验指标之一,本文采用Android14源码与perfetto工具进行解析。 源码参考地址:Search trace分析工…

基于单片机多功能MP3播放器系统设计

**单片机设计介绍,基于单片机多功能MP3播放器系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机多功能MP3播放器系统设计是一个结合了硬件和软件设计的复杂项目。以下是对该系统设计的概要描述&#…

初识二叉树和二叉树的基本操作

目录 一、树 1.什么是树 2. 与树相关的概念 二、二叉树 1.什么是二叉树 2.二叉树特点 3.满二叉树与完全二叉树 4.二叉树性质 相关题目: 5.二叉树的存储 6.二叉树的遍历和基本操作 二叉树的遍历 二叉树的基本操作 一、树 1.什么是树 子树是不相交的;…

Github 2024-04-06Rust开源项目日报Top10

根据Github Trendings的统计,今日(2024-04-06统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10HTML项目1Dart项目1RustDesk: 用Rust编写的开源远程桌面软件 创建周期:1218 天开发语言:Rust, Dart协议类型:GNU Affero General …

docker + miniconda + python 环境安装与迁移(详细版)

本文主要列出从安装dockerpython环境到迁移环境的整体步骤。windows与linux之间进行测试。 简化版可以参考:docker miniconda python 环境安装与迁移(简化版)-CSDN博客 目录 一、docker 安装和测试 二、docker中拉取miniconda&#xff…

C语言--指针终章

目录 1. sizeof和strlen的对⽐ 1.1 sizeof 1.2 strlen 1.3 sizeof 和 strlen的对⽐ 2. 数组和指针的理解——题目理解 2.1.sizeof 代码1: 代码2: 代码3: 代码4: 代码5(二维数组): 2.2…

【蓝桥杯-单链表-网络寻路】

蓝桥杯-单链表-网络寻路 单链表基本操作操作一:向链表头插入一个数操作二:在第 k个插入的数后插入一个数操作三:删除第 k个插入的数后面的一个数; P8605 [蓝桥杯 2013 国 AC] 网络寻路 单链表基本操作 初始化有关操作 // head 表示头结点的…

Debian12 使用 nginx 与 php8.2 使用 Nextcloud

最近将小服务器升级了下系统,使用了 debian12 的版本,正好试试 nginx 和 php-fpm 这种方式运行 Nextcloud 这个私有云的配置。 一、基本系统及应用安装 系统:debian12 x86_64 位版本最小安装,安装后可根据自己需求安装一些工具&…

如何优化TCP?TCP的可靠传输机制是什么?

在网络世界中,传输层协议扮演着至关重要的角色,特别是TCP协议,以其可靠的数据传输特性而广受青睐。然而,随着网络的发展和数据量的激增,传统的TCP协议在效率方面遭遇了挑战。小编将深入分析TCP的可靠性传输机制&#x…

【C++初阶】 vector 在OJ中的使用

前言: 🎯个人博客:Dream_Chaser 🎈博客专栏:C 📚本篇内容:只出现一次的数字 和 杨辉三角 OJ 目录 一、只出现一次的数字 题目描述: 二、杨辉三角OJ 题目描述: 一、只…