前言
之所以开设“前人种树”专栏,是因为笔者十分推崇某位牛马前辈,当初刚入学对实验一筹莫展时偶然接触到这位前辈分享的材料,且不说对我有没有帮助,反正从那以后我经常看他分享的实验材料。慢慢地看多了之后才发现,原来这位前辈发材料的初衷可能没有我想的那么高尚,不是为了作为前人种树让后来人乘凉的,纯纯为了炫耀。为什么这么说呢?因为基本上他所有的公开分享的材料,都是要么缺斤少两,要么就在某个细节上把原来正确的改成错的。而他收费恰米的材料,都是完全正确可以直接拿来用的。
所以我呢,就把自己的实验材料也做个分享,不缺斤少两,更不故意把对的改成错的让后面的学弟们找半天,故意捉弄人嘛这不是?【楽】希望我这个种树的前人能对后人们有些许帮助,也希望各位是在弄懂我的东西后才去套用甚至自创。
本实验,是笔者大学本科四年的最后一个专业必修课程的结课实验,成绩不参与评优保研(因为这时候时间已经过了,一切已经尘埃落定),一般来说不论是要升学还是就业,对方单位要求你出示的成绩单之类的档案,都只要求前6个学期即大一至大三学年的成绩or排名。所以本实验成绩其实没那么重要,只要及格能拿到学分顺利毕业了就行,所以笔者昨晚验收的时候,就看见几个之前积极争优的学霸大佬这次一反常态、急着验收走人哈哈,这才是聪明人,看得开看得通透明白,花最少的功夫做最高效的事。再插句题外话,事实上,不止这个实验,大四所有的成绩都不参与评优评先保研就业等。(后记:得了个优,感谢老师的认可。最近发生了一些很不好的事情,恶劣到对我的世界观产生了极大的触动,这个社会比我预想的还要更不公平。。感谢老师在这个时候给了我这么一个算是小小的安慰吧。生活还要继续,我得承担起责任,努力成为一个男人,还得向前看,积极生活,加油!)
言归正传,这个实验是个人实验,你作为项目经理,但是要模拟整个项目开发团队,对项目进行全生命周期的跟踪管理,其余团队成员是你虚拟创建的,开发项目是从老师给的实验任务书里的十余项里自选其一,笔者选择的是“电业局收费管理系统”。
注意,这次实验的重点在于管理,而非以往实验的编码开发。。要用到的工具是:
- Project:用于项目跟踪管理(本地端)
- PingCode/Coding:用于项目跟踪管理(云端)
- Gitee:远程仓库,用于协同开发,共享项目资源如代码、文档等
- Ant:用于自动化部署、测试等(可选,笔者有做,见下文)
PS:以上1、2两项的甘特图WBS应保持一致。
至于验收,就是把以上用到的工具做的所有内容展示给老师看就行,做了什么就展示什么,做了的别漏讲,没做的也别吹,都对成绩定档有影响。
又:因直接把报告复制过来的时候发现格式会变的乱七八糟,所以大部分内容用截图的方式展示。讲解视频小破站传送点
首先看下最后应该提交的内容,其中《A1实验报告》、.mpp后缀格式文件(即Project文件)两项是必须提交的,其余可选:
-
实验任务书:
《软件项目管理》综合实验
任 务 书
- 目的与要求
- 本实验是在学习《软件项目管理》课程后,为培养学生解决问题和实际动手能力而设置的实践环节。通过本环节,使学生拥有初步的管理软件项目的能力,包括人员分配、项目计划、任务指派、项目追踪与监控、协同开发、项目的配置等;为以后的职业发展提前打下良好的基础。
- 通过实验,增强学生协同开发软件时的团队合作精神和思维模式。
- 通过对一个中小型软件系统全面的管理,可以培养学生对项目质量、项目范围、项目进度、项目成本、项目协同、项目追踪与监控、人力资源安排与沟通等方面的能力。本实验是一门涉及软件工程、系统分析与设计等多课程的综合实验。
- 主要内容
三、 进度计划
序号 | 设计(实验)内容 | 完成时间 | 备注 |
1 | 理解拟管理的软件项目的业务要求,确定管理软件,编制项目管理总体规划;软件项目启动管理 | 2024/10/21 | |
2 | 制定软件项目计划 | 2024/10/23 | |
3 | 软件项目跟踪与监控 | 2024/25 | |
4 | 软件项目协同开发;软件项目收尾管理 | 2024/10/31 | |
5 | 系统的完善与验收 | 2024/11/6 |
- 设计(实验)成果要求
- 根据选定的项目,完成项目组织的建设,包括分配角色、明确职责;
- 使用Project+PingCode+SVN/Git、或者Project+coding(腾讯云)完成所选定项目的计划、跟踪、监控、协同开发和收尾等管理工作;在此基础上完成实验报告。
五、 考核方式
- 在微机上检查软件项目的管理情况;
- 实验报告的检查。
六、 题目附录
学生姓名:
指导教师:廖尔崇
实验报告:
4.项目章程
项目名称 | 电业局收费管理系统 | ||
项目编号 | DYJSF | 保密级别 | |
项目启动日 | 2024年10月20日 | 项目结束日 | 2025年3月19日 |
项目经理 | 项目经理的联系方式 | TEL:1111111111111 Email:111111111@qq.com | |
批准人 | 廖老师 | 批准时间 | |
版本号 | v7.0 | ||
更新时间 | 2025年3月7日 | 更新原因 | 版本迭代 |
- 项目背景
随着信息化、数字化时代的到来,电业局收费管理摆脱传统的人工登记纸质记账簿的方式,采用计算机数字化管理系统软件对海量的用户电力信息进行操作、管理。
- 项目的进度、预算信息
项目启动于2024年10月20日,计划结束于2025年3月19日。
项目成本主要来自于人工成本,估算花费约为24.2万元。材料成本为高性能服务器和高性能网络,为支持最多1w人同时在线。
- 项目目标
开发一个中小型的电业局收费管理系统,可以适应极端情况下1w人同时使用。
- 项目的关键利益相关人
姓名 | 角色 | 职责 | 联系方式 |
*** | 项目发起人 | 项目经理 | 11111111111 |
刘华华 | 开发工程师 | ||
哈哈哥 | 开发工程师 | ||
姗姗姐 | 前端工程师 | ||
周星星 | 测试工程师 | ||
迪克 | 运维工程师 |
- 签名
(各利益相关人签字)
- 评述
······
······
5.项目范围说明书/需求规格说明书
- 项目背景
随着信息化、数字化时代的到来,电业局收费管理摆脱传统的人工登记纸质记账簿的方式,采用计算机数字化管理系统软件对海量的用户电力信息进行操作、管理。
- 项目目标
开发一个中小型的电业局收费管理系统,可以适应极端情况下1w人同时使用。具备以下主要功能:
- 用户信息管理
- 电表/电量数据管理
- 电价数据管理
- 电费计算
- 报表和统计
关键功能:
- 电表/电量数据管理
- 电价数据管理
- 电费计算
- 报表和统计
- 项目范围
- 该系统将开发为分布式部署Web应用程序,以便用户通过互联网共同使用。
- 数据将被存储在1个主数据库中,并至少用2个次数据库做备份容灾,用于持久化和查询。
- 用户将被分为不同的角色,包括超级管理员、一般管理员和用电用户,每个角色拥有不同权限。
- 项目的每个迭代版本将递进增加一个项目阶段,上述功能模块主要集中在第四版本开发阶段发布的迭代,未来的版本可以考虑添加更多功能。
- 项目交付物
- 完整的电业局收费管理系统,包括前、后端。
- 详细的用户手册,解释如何使用系统。
- 系统的源码和文档,以便进行维护和升级。
- 项目结束时的技术支持和培训。
- 项目时间表
开始日期:2024年10月21日
结束日期:2025年3月19日
- 项目团队
项目经理:***
开发工程师:刘华华、哈哈哥
前端工程师:姗姗姐
测试工程师:周星星
运维工程师:迪克
- 项目风险
- 技术挑战:可能会出现与技术相关的困难,如内存缓冲技术、高性能网络拓扑的优化等。
- 时间限制:项目时间表可能会受到时间限制的影响。
6.开发模型确立:敏捷模型
7.工作量、成本估算
采用基于WBS的自上而下的估算方法:
项目启动阶段:15,000¥
需求分析阶段:12,000¥
系统设计阶段:110,000¥
开发阶段:65,000¥
测试阶段:10,000¥
文档编写阶段:20,000¥
部署阶段:120,000¥
共计:352,000¥
实际成本度量如下:
9.WBS
1 项目启动阶段 |
1.1 售前阶段 |
1.1.1 提供《技术白皮书》和现场的技术介绍,了解项目需求 |
1.1.2 提交《项目可行性研究报告》 |
1.1.3 提交《项目开发计划》 |
1.1.4 提交《项目风险管理计划》 |
1.1.5 通过公司的立项评审 |
1.1.6 进行项目前期开发(制作需求模板、功能演示系统、关键技术分析和试验等) |
1.1.7 向用户提交《系统建设建议书》 |
1.2 招标和合同签订阶段 |
1.2.1 制作标书,参加投标和答标活动 |
1.2.2 中标后,根据商务谈判的结果,制作合同副本 |
1.2.3 合同签订 |
1.3 项目前期准备阶段 |
1.3.1 制定项目经理、子项目经理/技术经理,成立项目组 |
1.3.2 完成《工作任务分解(WBS)》 |
1.3.3 划分接口人员责任 |
1.3.4 提交《项目进度计划》 |
1.3.5 提交《项目成本预算》 |
1.3.6 提交《风险控制计划》 |
1.3.7 以上项目计划提交公司评审,并形成《项目任务责任书》下达 |
1.4 完成项目启动 |
2.1 分析用户需求 |
2.1.1 与用户一起分析需求,并形成用自然语言表述的《需求说明书》,由用户确认 |
2.1.2 将用户确认的《需求说明书》,转化为用计算机术语描述的《系统需求规范书》 |
2.1.3 提交《系统需求规范书》,进行评审 |
2.2 形成《集成测试计划》,提交公司评审 |
2.3 完成需求分析 |
3 系统设计阶段 |
3.1 系统总体设计 |
3.2 接口设计 |
3.2.1 用户接口 |
3.2.1.1 电力用户注册 |
3.2.1.2 电力用户变更 |
3.2.1.3 电力用户注销 |
3.2.2 外部接口 |
3.2.2.1 报表数据导出 |
3.2.2.2 本月电表数据导入 |
3.2.3 内部接口 |
3.2.3.1 电表数据接口 |
3.2.3.2 电量提取接口 |
3.2.3.3 电费提取接口 |
3.3 各模块设计 |
3.3.1 用户管理模块设计 |
3.3.2 电量管理模块设计 |
3.3.3 电价管理模块设计 |
3.3.4 电费计算模块设计 |
3.3.5 报表和统计模块设计 |
3.4 系统数据结构设计 |
3.4.1 逻辑结构设计要点 |
3.4.2 物理结构设计要点 |
3.5 完成系统设计 |
4 开发阶段 |
4.1 审阅功能规范 |
4.2 确定各个子系统设计参数 |
4.3 分派任务给开发人员 |
4.4 编写前端界面 |
4.5 编写登录模块 |
4.6 编写用户管理模块 |
4.7 编写电量管理模块 |
4.8 编写电价管理模块 |
4.9 编写电费计算模块 |
4.10 编写报表和统计模块 |
4.11 开发人员初步测试 |
4.12 完成开发 |
5 测试阶段 |
5.1 根据产品规范制定单元测试计划 |
5.2 根据产品规范制定整体测试计划 |
5.3 找出不符合产品规范的异常 |
5.4 修改代码 |
5.5 重新测试修改后的代码 |
5.6 完成测试 |
6 文档编写阶段 |
6.1制定帮助文档 |
6.2编写帮助文档 |
6.3审阅帮助文档 |
6.4根据反馈修改帮助文档 |
6.5制定用户手册规范 |
6.6编写用户手册规范 |
6.7审阅用户手册规范 |
6.8根据反馈修改用户手册规范 |
6.9完成文档编写 |
7 部署阶段 |
7.1确定部署策略 |
7.2获得部署所需资源 |
7.3培训技术支持人员 |
7.4部署前端 |
7.5部署后台 |
7.6完成部署 |
10.甘特图及其优化
分别在Project、PingCode平台对该项目进行跟踪管理。其中,还在Project先对项目规划进行了优化,之后通过导出Excel文档中转到PingCode平台上:
15.变更申请表(4个)
电业局收费管理系统 | ||
请求号 | 1 | 日期:2024年10月22日 |
变更需求 | 要求最高支持10000人同时在线 | |
影响分析 | 硬件上需要考虑使用高性能服务器负载,同时需要高性能的网络 开发中需要使用内存缓存技术,将在短时间内可能被高概率访问的数据存在用户内存中 ,减少数据库访问次数,减小服务器压力 使用数据库连接池技术,避免大量开销 对于代码要进行优化,减少不必要的浪费 |
进度影响 | 提高性能测试要求。在开发中使用相应技术 | |
工作量影响 | 7个工作日 | |
状态 | 已完成 | |
电业局收费管理系统 | ||
请求号 | 2 | 日期:2024年10月26日 |
变更需求 | 要求增加拥有全部权限的超级管理员,使之能与一般管理员区分开 | |
影响分析 | 增加一个模块的开发 | |
进度影响 | 在系统编码阶段增加一个新任务,编写管理员父类, 编写超级管理员模块并与原来的一般管理员模块继承它 | |
工作量影响 | 2个工作日 | |
状态 | 已完成 |
电业局收费管理系统 | ||
请求号 | 3 | 日期:2024年10月30日 |
变更需求 | 增加修改电费计算规则模块,使之能灵活修改适应未来可能的计算规则变化 | |
影响分析 | 开发电费计算模块时需要更重视解耦、可拓展性 | |
进度影响 | 在系统编码阶段新增抽象规则类,并在编写现有电费计算模块时预留接口 | |
工作量影响 | 9个工作日 | |
状态 | 已发布 |
电业局收费管理系统 | ||
请求号 | 4 | 日期:2024年11月5日 |
变更需求 | 导出报表模板局部变更 | |
影响分析 | 修改报表导出模板的UI信息即可 | |
进度影响 | 在系统编码阶段修改报表导出模板的UI信息即可 | |
工作量影响 | 1个工作日 | |
状态 | 已发布 |
16.TOP5风险表
本周 | 上周 | 总周数 | 风险 | 风险解决的情况 |
1 | 2 | 7 | 数据丢失 |
|
2 | 4 | 4 | 安全漏洞 |
|
3 | 5 | 5 | 技术团队能力不足 | 进行进修培训 |
4 | 8 | 5 | 开发人员之间的沟通问题 | 管理人员统一问题,在讨论会上集中解决 |
5 | 12 | 6 | 系统性能问题 |
|
17.沟通计划表
项目干系人 | 验收老师 | 项目开发团队 |
沟通方法 | 1、确保完成主要的验收标准和要求,以确保在项目完成后能够满足老师的期望 2、定期举行进度更新会议,以保持老师对项目的最新了解,并获取反馈意见 3、提供可靠的联系方式,以便随时交流项目的相关事宜 |
|
三、课程设计(综合实验)总结或结论
在软件项目管理课程设计中,我学习了PingCode、Gitee、Project和Ant等工具,它们在项目优化和跟踪管理方面发挥了重要作用。我开始思考如何将这些工具应用到实际项目中,提高团队工作效率。
我利用PingCode创建项目看板,分配任务,使用Gitee进行代码管理,确保代码质量。通过Project制定项目计划,监控进度,及时调整资源和任务优先级。
结合使用这些工具,项目管理变得更高效和透明。团队沟通顺畅,成员对项目进度和任务有清晰认识。
实践中遇到挑战,如工具使用与团队适应性平衡,数据同步问题。我思考解决方案,比如提供培训、制定使用规范,寻找支持API集成的工具。
我认识到,软件项目管理不仅是工具使用,更重要的是建立适合团队的管理流程和文化。工具是辅助,关键在于团队协作和项目全局把控。
这次课程设计让我深刻体会到软件项目管理的复杂性和挑战性,以及工具在提高管理效率方面的重要性。我相信,随着经验积累和技能提升,我能更好地运用这些工具,为未来项目管理提供支持。
四、参考文献
[1] 宁涛, 刘向东. 软件项目管理. 清华大学出版社, 第二版. 2011年4月
附录(设计流程图、程序、表格、数据等)
注:根据课程设计、综合实验的内容将标题任选其一。