Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

需求管理系统 (Requirement Management System)

基于 Java Swing 与 MySQL 的桌面端需求管理系统,支持 RBAC 权限控制、项目与需求全生命周期管理。

版本: v2.0.0
主入口: RequirementManagementSystem2


功能概览

模块 说明
用户认证 登录、注册,启动时检测数据库连接状态
需求管理 需求的创建、编辑、查看、确认及状态流转
项目管理 项目信息维护与变更记录
用户管理 用户信息维护、角色分配
权限管理 (RBAC) 基于角色的访问控制,支持模块级操作权限
数据范围 按角色限制数据可见范围(全部 / 部门 / 个人)
角色约束 互斥角色、数量限制、时间约束等高级 RBAC 规则
角色继承 子角色继承父角色权限
系统管理 权限配置、系统设置、数据备份、审计日志
需求追溯 需求与设计、代码、测试用例等产物的关联追踪
变更记录 需求、用户、项目、系统等操作的变更审计

需求状态流转

NEWANALYSISCONFIRMEDIN_DEVDONE / CANCELLED

内置角色(示例)

角色 典型权限
系统管理员 全部功能,含用户/项目/需求管理及系统配置
需求管理人员 需求管理相关操作
需求开发人员 以查看为主,权限由 RBAC 配置决定

技术栈

  • 语言: Java(JDK 8+)
  • 界面: Java Swing
  • 数据库: MySQL 8.x
  • 驱动: MySQL Connector/J 9.4.0
  • 构建方式: IntelliJ IDEA 原生 Java 模块(无 Maven / Gradle)

项目结构

xuqiu0/
├── src/                          # 源代码
│   ├── RequirementManagementSystem2.java   # 主程序入口
│   ├── LoginGUI_Fixed.java                 # 登录界面
│   ├── RequirementManagementGUI.java       # 主界面
│   ├── DatabaseConfig.java                 # 数据库连接配置
│   ├── RBACService.java                    # RBAC 权限服务
│   ├── *DAO.java                           # 数据访问层
│   ├── *.java                              # 实体与业务模型
│   └── test/SimpleTest.java                # 数据库连接测试
├── lib/
│   └── mysql-connector-j-9.4.0.jar         # MySQL JDBC 驱动
├── xuqiu0.iml                    # IntelliJ 模块配置
└── README.md

环境要求

  1. JDK 8 或更高版本
  2. MySQL 8.x 服务已启动
  3. 已创建数据库 requirement_db,并完成表结构与初始数据导入
  4. IntelliJ IDEA(推荐)或其他支持 Java 的 IDE

本项目未包含 SQL 初始化脚本,请确保目标数据库 requirement_db 中已存在所需表(如 UserRolePermissionRequirementProject 等)。


快速开始

1. 配置数据库

编辑 src/DatabaseConfig.java,修改连接信息:

private static final String URL = "jdbc:mysql://127.0.0.1:3306/requirement_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai";
private static final String USER = "root";
private static final String PASSWORD = "your_password";

2. 使用 IntelliJ IDEA 运行

  1. 用 IDEA 打开项目根目录
  2. 确认 lib/mysql-connector-j-9.4.0.jar 已添加为项目依赖(模块文件 xuqiu0.iml 中已配置)
  3. 运行 RequirementManagementSystem2main 方法

调试模式启动(额外执行环境与数据库检查):

java RequirementManagementSystem2 debug

3. 命令行编译运行

在项目根目录执行:

# 编译
javac -encoding UTF-8 -cp "lib/mysql-connector-j-9.4.0.jar" -d out src/*.java src/test/*.java

# 运行
java -cp "out;lib/mysql-connector-j-9.4.0.jar" RequirementManagementSystem2

Linux / macOS 下 classpath 分隔符使用 : 而非 ;

4. 测试数据库连接

可单独运行连接测试:

java -cp "out;lib/mysql-connector-j-9.4.0.jar" test.SimpleTest

测试账号

程序启动后,控制台会打印可用测试账号:

角色 用户名 密码
管理员 admin admin123
需求经理 manager1 manager123
开发人员 dev1 dev123

权限模型说明

系统采用 RBAC(基于角色的访问控制) 架构:

User ── UserRole ── Role ── RolePermission ── Permission
                      │
                      ├── RoleDataScope ── DataScope
                      ├── RoleConstraint(互斥 / 数量 / 时间)
                      └── RoleInheritance(角色继承)
  • 模块权限:module_name + action 控制操作(如 REQUIREMENT.viewSYSTEM.manage_permissions
  • 数据范围: ALL(全部)> DEPARTMENT(部门)> SELF(个人),取用户最高范围
  • 界面适配: 主界面根据当前用户权限动态显示/隐藏功能选项卡与按钮

主要源文件说明

文件 职责
RequirementManagementSystem2.java 应用入口,初始化外观并启动登录界面
LoginGUI_Fixed.java 登录、注册及数据库状态展示
RequirementManagementGUI.java 主界面,集成各业务模块
RBACService.java 权限校验、数据范围过滤、角色约束检查
RequirementDAO.java 需求 CRUD 与查询
UserDAO.java 用户管理与角色分配
ProjectDAO.java 项目管理
RequirementService.java 需求业务逻辑

常见问题

Q: 启动时提示数据库连接失败?

  • 确认 MySQL 服务已启动
  • 确认数据库 requirement_db 已创建
  • 检查 DatabaseConfig.java 中的 URL、用户名、密码是否正确
  • 确认 lib/mysql-connector-j-9.4.0.jar 在 classpath 中

Q: 登录后部分功能不可见?

  • 这是 RBAC 的正常行为,功能可见性取决于当前用户角色及其权限配置
  • 使用 admin 账号可访问完整功能

Q: 界面中文显示异常?

  • 编译时使用 -encoding UTF-8
  • 确保系统已安装「微软雅黑」等中文字体

许可证

本项目为学习与课程实践用途,未指定开源许可证。如需二次分发,请先与项目维护者确认。

About

Demand & Management System for computer software development. XJTUSE SSAD project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages