Files
hypersql/software_process_model.md
2026-05-10 14:17:22 +08:00

7.5 KiB

HyperSql 软件开发过程模型

1. 软件开发过程模型选择

本项目 HyperSql 采用 增量迭代模型 进行开发。

增量迭代模型是指将软件系统划分为多个相对独立的功能增量,每个增量都经过需求分析、设计、编码、测试和反馈优化等过程,最终逐步形成完整的软件系统。

HyperSql 是一个基于 Java 24、JavaFX 和 Maven 的轻量级 SQLite 图形化管理工具。项目开发过程中,先完成数据库连接、表结构浏览、表数据查看和 SQL 执行等核心功能,再逐步增加数据库文件管理、表管理、分页显示、数据行编辑、表结构安全编辑、备份恢复、界面优化和 AI 辅助 SQL 生成等增强功能。

2. 选择增量迭代模型的原因

HyperSql 选择增量迭代模型,主要有以下原因:

  1. 功能模块清晰

    • HyperSql 可以划分为数据库文件管理、数据库连接、表/视图浏览、表结构查看、表结构安全编辑、表数据分页查看、SQL 执行、表管理、数据行编辑、备份恢复和 AI SQL 生成等模块。
  2. 适合 GUI 软件开发

    • JavaFX 图形界面需要不断调整布局和交互方式。采用迭代开发,可以在每个阶段完成可运行版本,并根据测试结果优化用户体验。
  3. 降低开发风险

    • 先完成基础功能,再开发复杂功能,可以避免一开始实现过多内容导致项目失控。
    • 对 SQLite 表结构编辑和 AI SQL 生成这类有安全边界的功能,可以在后续迭代中逐步控制范围。
  4. 便于阶段性展示

    • 每个迭代版本都能形成可运行的软件,方便课程汇报、阶段检查和最终演示。
  5. 适合课程项目周期

    • 在有限时间内优先保证核心功能可用,再根据进度实现扩展功能。

3. HyperSql 当前迭代版本与进展

迭代版本 主要目标 主要功能 当前状态
V0.1 项目准备与原型设计 明确需求、完成过程模型/可行性分析/需求分析、搭建 Maven + JavaFX 项目结构 已完成
V1.0 基础数据库管理 打开本地 SQLite 数据库、建立连接、显示数据库文件路径、关闭数据库连接 已完成
V1.1 数据库结构浏览 显示表/视图列表,查看字段名、类型、主键、默认值等信息 已完成
V1.2 表数据查看与 SQL 执行 查看表数据,输入并执行 SQL,显示查询结果或更新结果 已完成
V1.3 分页显示优化 表数据按每页 100 行分页显示;SQL 查询结果区按每页 100 行分页显示 已完成
V1.4 数据库文件管理增强 新建 SQLite 数据库文件、删除当前数据库文件 已完成
V1.5 表管理功能 通过简洁 UI 创建表;删除选中普通表;删除前进行确认 已完成
V1.6 交互与缺陷修复 修复表/视图选择时数据与结构不同步问题;刷新表列表时保留当前选中表;SQL 结果区启动时保持空状态 已完成
V1.7 数据行增删改查 在表数据界面新增、修改、删除数据行;在可识别单表 SQL 结果中支持编辑 已完成
V1.8 表结构安全编辑 支持 SQLite 原生安全的重命名表、新增字段、重命名字段 已完成
V1.9 备份与恢复 数据库文件备份、从备份恢复数据库,恢复前进行确认并重新打开数据库 已完成
V2.0 界面整理优化 整理菜单和工具栏,将高频操作保留在工具栏,将危险或低频操作放入菜单 已完成
V2.1 AI 辅助 SQL 生成 根据表结构和用户自然语言需求调用 OpenAI 兼容接口或 Anthropic Claude 生成 SQL 已完成
V2.2 测试与优化 编译验证、启动验证、功能回归和最终演示准备 持续进行

4. 单次迭代流程

每一个功能迭代都按照以下流程进行:

需求细化
   ↓
界面与功能设计
   ↓
编码实现
   ↓
功能测试
   ↓
问题修复
   ↓
版本集成
   ↓
小组评审与反馈

具体说明

  1. 需求细化

    • 明确本次迭代要完成的功能和边界。例如创建表功能要求有简洁易用的 UI,而不是只让用户手写 SQL。
    • 对 AI SQL 生成明确了 API Key 只在本次运行中保存,同时支持 OpenAI 兼容接口和 Anthropic Claude。
  2. 界面与功能设计

    • 设计 JavaFX 界面布局和功能交互流程。例如主界面采用左侧表/视图列表、右侧表数据/表结构/SQL 执行区域的布局。
    • 对菜单和工具栏进行整理,保留常用操作入口,减少界面拥挤。
  3. 编码实现

    • 使用 Java 24、JavaFX、SQLite JDBC 和 Maven 完成功能开发。
    • 使用 JDK 自带 HttpClient 和 Jackson 实现 AI API 调用与 JSON 解析。
  4. 功能测试

    • 测试数据库连接、表结构读取、分页显示、SQL 执行、创建数据库、删除数据库、创建表、删除表、备份恢复、AI 设置和 AI SQL 生成等功能是否正确。
  5. 问题修复

    • 根据测试结果修复异常、界面错误和逻辑问题。例如修复刷新表列表后错误切换到第一张表的问题。
  6. 版本集成

    • 将本次迭代功能整合到主程序中,保证新功能不会影响已有功能。
  7. 评审与反馈

    • 检查功能完成情况,并决定下一次迭代内容。

5. 增量迭代模型在 HyperSql 中的体现

目前 HyperSql 的开发过程已经体现出增量迭代模型的特点:

  1. 先完成核心功能

    • 项目首先实现了 SQLite 数据库打开、表/视图列表显示、表结构查看、表数据查看和 SQL 执行,保证系统能够运行和演示。
  2. 逐步增强可用性

    • 在基础数据查看功能完成后,进一步加入了表数据分页和 SQL 结果分页,避免大结果集造成界面显示压力。
  3. 根据实际测试补充功能

    • 因为用户没有现成数据库文件,项目增加了新建数据库和删除数据库功能,方便测试和演示。
  4. 通过反馈修复问题

    • 在使用过程中发现表/视图选择、刷新逻辑和 SQL 结果初始状态存在体验问题后,及时进行了修复,保证表数据和表结构能够同步更新,刷新表列表时保留当前选择,SQL 结果区启动时保持空状态。
  5. 逐步扩展编辑能力

    • 在只读浏览功能完成后,继续实现了数据行新增、修改、删除,并基于 SQLite 原生 ALTER TABLE 能力实现了重命名表、新增字段、重命名字段。
  6. 完善数据安全能力

    • 在数据库文件管理基础上增加备份和恢复功能,恢复前进行确认,并在恢复后重新打开数据库,降低数据丢失风险。
  7. 增加智能辅助能力

    • 在 SQL 执行功能稳定后,增加 AI 辅助 SQL 生成。系统只发送数据库结构,不发送表数据;生成的 SQL 只填入输入框,不自动执行,由用户检查后手动运行。

6. 总结

HyperSql 采用增量迭代模型进行开发是合适的。当前项目已经完成了 SQLite 数据库管理工具的核心可运行版本,包括数据库文件管理、表/视图浏览、表结构查看、表数据分页查看、SQL 执行分页显示、创建表、删除表、数据行增删改查、SQLite 支持范围内的表结构安全编辑、数据库备份恢复和 AI 辅助 SQL 生成等功能。

后续开发可继续沿用增量迭代方式,重点进行功能测试、异常场景验证、界面细节优化和最终课程演示材料整理。