软件工程week2课程作业|“物品复活“软件开发

KoJail / 2024-10-08 / 原文

“物品复活”软件开发

作业要求

大学生经常有些物品觉得扔掉可惜,不处理又觉得浪费自己的地方。请你编写一个物品“复活”软件
该程序允许添加物品的信息(物品名称,物品描述,联系人信息),删除物品的信息,显示物品列表,也允许查找物品的信息
你实现的程序可以采用命令行方式使用,但是鼓励提供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多一点

事后总结

总体功能已经成功实现,不足在于:

  1. 如果采用数据库可以支持更大的数据容量(可惜我目前还未学习过数据库的相关知识)。
  2. 作为一共物品“复活”软件,有点交易性质,可能将数据保存在服务器上并提供给多个客户端可能会更好。
  3. 注释写的比较少,有待改进。
提出改进计划

可见上。