“物品复活”软件开发
作业要求
大学生经常有些物品觉得扔掉可惜,不处理又觉得浪费自己的地方。请你编写一个物品“复活”软件
该程序允许添加物品的信息(物品名称,物品描述,联系人信息),删除物品的信息,显示物品列表,也允许查找物品的信息
你实现的程序可以采用命令行方式使用,但是鼓励提供GUI
程序实现完毕后,发布在Github上
进行PSP数据的统计,发布在你的技术博客上(内容请按照下表)
软件地址
“物品复活”软件
PSP时间统计表
PSP | 开发时间 | |
---|---|---|
Planning | 计划 | 3h |
- Estimate | - 明确需求、时间成本、依赖关系 | 3h |
Development | 开发 | 11h |
- Analysis | - 分析需求 | 30min |
- Design Spec | - 生成设计文档 | 30min |
- Design Review | - 设计复审 | 10min |
- Coding Standard | - 代码规范 | 10min |
- Design | - 具体设计 | 1h |
- Coding | - 具体编码 | 5.5h |
- Code Review | - 代码复审 | 10min |
- Test | - 测试 | 3h |
Record Time Spent | 记录用时 | 10min |
Test Report | 测试报告 | 30min |
Size Measurement | 计算工作量 | 10min |
Postmortem | 事后总结 | 10min |
Process Improvement Plan | 提出改进计划 | 10min |
PSP数据统计
计划
明确需求、时间成本、依赖关系:在该阶段主要对与“物品复活”软件功能相似的软件进行了调研,并在大方向上决定使用我所熟悉的python进行开发,决定了使用pyQt5制作GUI界面,决定使用PyCharm进行工程开发,在开发软件中配置好了库和git。(由于根据题意“显示物品列表”,既然可以将所有都显示出来,数据量应该不大,所有打算直接用.json文件存储数据。)
开发
分析需求:该阶段将软件所需的功能全部列出(添加,删除,显示,查找),并决定将每一条记录记成一个4键值的字典(id,名称,描述,联系人信息)。
生成设计文档:该阶段决定使用面向过程的开发方式(因为全局只有一个类),设计了各个事件之间的关系,并设计了软件的UI。
设计复审:该阶段用于思考设计中的纰漏。
代码规范:该阶段复习老师PPT中的规范。
具体设计:该阶段和“具体编码”阶段同时进行,通过螺旋式前进的方式实时更改方法之间的关系和GUI的设计。
具体编码:编。
代码复审:期间需要思考逻辑不周的地方,比如操作不规范是否有提示等实际问题,无关紧要的异常导致软件崩溃就不好了,有问题跳转到“具体编码”步骤。
测试:该阶段和“具体编码”阶段同时进行,测试代码是否满足要求。
记录用时
见上
测试报告
可以直接看视频:演示视频
计算工作量
如果不包括UI(UI在Qt Designer的可视化界面上设计好再转化为py文件)的话一共181代码,耗时1day多一点
事后总结
总体功能已经成功实现,不足在于:
- 如果采用数据库可以支持更大的数据容量(可惜我目前还未学习过数据库的相关知识)。
- 作为一共物品“复活”软件,有点交易性质,可能将数据保存在服务器上并提供给多个客户端可能会更好。
- 注释写的比较少,有待改进。
提出改进计划
可见上。