项目名称: Item Revival Software
开发者: 唐卓皓 522080910024
开发语言: Python
开发框架: Tkinter (用于图形用户界面)
主要功能: 管理物品信息,包括添加、删除、显示、和搜索物品信息。
1. 计划 (Planning)
- 估算时间和资源需求: 本项目预计开发时间为2周,主要开发人员1人。资源需求包括Python解释器和Tkinter库,无其他外部依赖。
- 依赖关系说明: 项目依赖于Python标准库的Tkinter模块,用于创建图形用户界面。代码实现不依赖其他第三方库。
- 开发目标: 开发一个简洁的物品管理工具,帮助用户存储和查询物品信息,解决大学生在处理闲置物品方面的难题。
2. 开发 (Development)
- 需求分析:
- 目标用户:大学生和有管理物品需求的用户。
- 功能需求:用户可以添加物品名称、描述、和联系方式,能够查看物品列表,并能按名称搜索物品。
- 非功能需求:软件界面应简洁,操作流畅,响应迅速。
- 生成设计文档 (Design Spec):
- 界面设计:使用Tkinter创建主要界面,包括名称输入框、描述输入框、添加按钮、删除按钮、搜索框和列表显示区域。
- 数据存储:使用列表结构存储物品信息。
- 主要功能模块:GUI界面模块、添加物品模块、删除物品模块、搜索功能模块。
- 设计复审 (Design Review):
- 本设计方案经过初步自我评审,主要在功能实现和用户交互方面进行优化。
- 编码规范 (Coding Standard):
- 遵循Python PEP 8编码规范,包括命名风格、注释风格、代码缩进等。
- GUI元素命名清晰、逻辑层次分明,如
name_label
表示物品名称标签,name_entry
表示名称输入框。
- 具体设计 (Design):
- 项目整体采用面向对象设计,主要通过
RevivalApp
类实现功能,将界面和逻辑分离。 - 主界面使用网格布局,确保元素排布整齐,用户体验友好。
- 项目整体采用面向对象设计,主要通过
- 具体编码 (Coding):
- 使用
tkinter
创建图形界面,构建类RevivalApp
来实现应用的主要功能。 - 编写了创建UI元素的函数
create_widgets
,添加物品、删除物品和搜索功能均在类方法中实现。
- 使用
- 代码复审 (Code Review):
- 代码经过自我检查,保证无明显逻辑错误和语法错误。后续建议通过GitHub等平台进行进一步的代码评审。
- 测试 (Test):
- 目前主要为手动测试,包括以下测试场景:
- 输入物品名称和描述后点击“添加”,检查是否成功添加到列表。
- 在搜索框中输入名称并搜索,查看是否准确返回结果。
- 删除功能测试:在列表中选择物品后删除,确保项目列表更新。
- 后续可增加自动化测试,如使用
unittest
模块编写单元测试。
- 目前主要为手动测试,包括以下测试场景:
3. 记录用时 (Record Time Spent)
- 开发过程用时记录:
- 项目需求分析:1小时
- 设计文档编写:2小时
- 编码实现:5小时
- 手动测试和调试:3小时
- 总用时:11小时
4. 测试报告 (Test Report)
-
测试结果
:
- 添加功能:通过
- 删除功能:通过
- 搜索功能:通过
- 界面响应速度:通过
-
问题记录: 无明显问题,但在搜索时,建议优化匹配机制以支持模糊搜索。
5. 计算工作量 (Size Measurement)
- 代码行数: 约150行代码。
- 模块数量: 3个主要功能模块(添加、删除、搜索)。
- 复杂度: 低复杂度,适合小型项目。
6. 事后总结 (Postmortem)
- 总结: 项目整体开发顺利,基本实现了预期功能,符合项目需求。但手动测试耗时较多,后续可考虑增加自动化测试以提高开发效率。
- 不足: 缺少单元测试,缺乏详细的文档说明。
7. 提出过程改进计划 (Process Improvement Plan)
-
改进建议
:
- 添加自动化测试,提高测试效率,减少手动测试时间。
- 优化代码结构,将GUI逻辑和业务逻辑进一步分离,增强可维护性。
- 增加日志功能,记录用户操作和异常信息,便于调试和维护。
- 考虑使用SQLite数据库或CSV文件存储数据,以便在应用重启后仍能保留物品信息。
- 设计和编写详细的用户手册,方便用户了解操作步骤。