软件计划文档
系统概述
本系统是一个前后端分离的Web应用程序,前端主要使用Vue
开发,后端主要提供了SpringBoot
/Gin
实现,并提供了docker-compose
一键部署的支持,详见:SE2022-Qiaqia/docker。
软件开发模型
软件生命周期 | 是否首先定义好所有的需求 | 是否有多个开发周期 | 是否有中间软件 |
---|---|---|---|
敏捷开发 | ✔️ | ✔️ | ❌ |
项目估算
模块划分及规模估算
模块名称 | 模块规模 |
---|---|
用户模块 | 易,主要限于用户数据表,主要操作为修改信息等。 |
认证/授权模块 | 难,涉及到多个表,需要针对操作进行划分。 |
选课撤课模块 | 中,涉及到用户表和选课表等,需考察时间段等。 |
课程查询模块 | 难,涉及到各种表:学期、教师、学院等,需要复杂的条件查询。 |
进度估计
阶段与任务内容 | 开始日期 | 结束日期 | 状态 |
---|---|---|---|
Stage1 | |||
项目选题、人员分工 | 2022-03-14 | 2022-03-19 | ✔️ |
需求确定 | 2022-03-20 | 2022-03-27 | ✔️ |
Stage2 | |||
界面设计 | 2022-03-28 | 2022-04-15 | ✔️ |
数据库设计 | 2022-03-28 | 2022-04-05 | ✔️ |
后端API设计 | 2022-04-07 | 2022-04-15 | ✔️ |
文档撰写 | 2022-03-28 | 2022-04-15 | ✔️ |
Stage3 | |||
后端API实现、单元测试 | 2022-04-16 | 2022-05-16 | ✔️ |
前端API对接 | 2022-04-16 | 2022-05-16 | ✔️ |
用户测试、跟进 | 2022-04-16 | 2022-05-16 | ✔️ |
Stage4 | |||
最终测试 | 2022-05-17 | 2022-06-01 | ✔️ |
完善系统 | 2022-05-17 | 2022-06-01 | ✔️ |
文档完善 | 2022-05-17 | 2022-06-01 | ✔️ |
参考图例:
📝 🏃 ✔️ 计划中 进行中 已完成
WARNING
每个阶段都包括了文档跟进。
工作量估算
阶段 | 阶段工作量估计占总工作量百分比 | 工作量(人×天) |
---|---|---|
软件计划 | 2.5% | 10.5 |
需求调研 | 2.5% | 10.5 |
需求分析 | 5% | 21 |
需求设计 | 5% | 21 |
详细设计 | 5% | 21 |
编码 | 40% | 168 |
测试 | 30% | 126 |
部署及验收 | 10% | 42 |
合计 | 100% | 420 |
成本估算
对比了功能类似,工作量相近的选课系统,总计70360每人每月。
人力(人) | 时间(天) | 成本(元) | 总计(元) | |
---|---|---|---|---|
项目范围规划 确定项目范围 | 2 | 1 | 500 | 1200 |
定义预备资源 | 1 | 1 | 300 | |
获得核心资源 | 1 | 1 | 400 | |
分析/软件需求 行为需求 | 1 | 2 | 600 | 1100 |
用户界面设计 | 1 | 1 | 600 | |
数据需求分析 | 1 | 1 | 200 | |
编写需求规格说明书 | 1 | 1 | 200 | |
制定交付期限 | 1 | 0.5 | 100 | |
用户界面设计 | 2 | 2 | 800 | 1800 |
数据库设计 | 1 | 2 | 400 | |
功能详细设计 | 1 | 2 | 400 | |
审阅和修改功能规范 | 1 | 1 | 200 |
人力资源安排
参见项目人员分工
开发环境
硬件环境
- CPU: Intel Ice Lake(2.7GHz/3.3GHz)
- RAM: 2GB
软件环境
- 操作系统:Windows 10
- IDE&Editor:VS Code, IntelliJ IDEA,GoLand
- JDK:JDK11
- Golang: 1.18.3
测试环境
详见测试计划文档。
风险评估和控制
风险描述 | 降低风险描述 |
---|---|
用户身份认证机制存在缺陷,如用户的身份验证仅靠密码识别。 | 一般采用用户名称和密码的形式进行身份认证。只有数据库已保存该用户的记录,并且该用户具有合法访问选课系统的权限才能登陆 |
服务器的硬件故障 | 定期或不定期进行备份,防止系统遇到 不可控制的意外事故。 |
网络上的各种对数据库及个人终端的攻击 | 服务器前端应安装防火墙和入侵系统检测来保护服务器。 |
数据在传输中受到泄露,更改,破坏 | 对敏感数据在进入网络传输前进行加密。 |
管理人员操作不当导致系统漏洞 | 建立完善的安全管理策略,逻辑安全策略,定期对安全策略的实施过程和结果进行分析。 |
测试计划
详见测试计划文档。
评审计划
选课系统各阶段的评审内容如下表
评审活动名称 | 评审对象 | 评审人员 | 评审活动时间 |
---|---|---|---|
需求调研评审 | 需求规定 | 用户,客户,软件开发人员 | 2022-03-21 |
软件需求评审 | 需求文档 | 用户,客户,软件开发人员 | 2022-03-21 |
概要设计评审 | 概要设计说明书 | 用户,客户,软件开发人员 | 2022-03-26 |
详细设计评审 | 详细设计说明书 | 用户,客户,软件开发人员 | 2022-04-18 |
测试阶段评审 | 软件测试计划 | 用户,客户,软件开发人员 | 2022-05-05 |
验收评审 | 成套文档 | 用户,客户,软件开发人员 | 2022-05-12 |
质量保证计划
项目QA人员组成:客户和软件开发人员
QA任务 | 计划日期 | 活动形式 | QA人员 | 项目组参与人员 |
---|---|---|---|---|
需求分析评审 | 2022-04-21 | 评审会 | 客户和软件开发人员 | 软件开发人员 |
系统总体设计评审 | 2022-04-21 | 评审会 | 客户和软件开发人员 | 软件开发人员 |
详细设计评审 | 2022-04-26 | 评审会 | 客户和软件开发人员 | 软件开发人员 |
代码评审 | 2022-05-18 | 评审会 | 客户和软件开发人员 | 软件开发人员 |
测试评审 | 2022-06-05 | 评审会 | 客户和软件开发人员 | 软件开发人员 |
系统测试 | 2022-06-12 | 评审会 | 客户和软件开发人员 | 软件开发人员 |