首页 > 其他分享 >软件工程课程项目“物品复活“软件开发v1.0

软件工程课程项目“物品复活“软件开发v1.0

时间:2024-11-03 19:23:54浏览次数:1  
标签:功能 软件开发 代码 分钟 v1.0 软件工程 文档 物品 设计

项目地址:https://github.com/specture724/ItemReviveApp

作业要求

大学生经常有些物品觉得扔掉可惜,不处理又觉得浪费自己的地方。请你编写一个物品“复活”软件
该程序允许添加物品的信息(物品名称,物品描述,联系人信息),删除物品的信息,显示物品列表,也允许查找物品的信息
你实现的程序可以采用命令行方式使用,但是鼓励提供GUI
程序实现完毕后,发布在Github上
进行PSP数据的统计,发布在你的技术博客上(内容请按照下表)

PSP分析报告

PSP 分析文档

项目代码量:150 行 Python 代码
开发目标:编写、调试并完善一段 Python 代码,符合项目需求并通过测试。

1. 计划阶段 (Planning)
  • 任务:明确需求和相关因素,估算时间、成本和依赖关系。
  • 时间估计:30 分钟
  • 说明:分析 ItemReviveApp.py 项目的基本功能(增,删,查),用户界面设计、数据管理和基本的增删查功能需求。预估项目代码量(约 150 行),并分配各阶段的开发时间。
2. 开发阶段 (Development)
2.1 需求分析 (Analysis)
  • 任务:分析代码的具体需求,包括输入、输出、功能和边界条件。
  • 实际时间:20 分钟
  • 说明:明确应用的主要功能:允许用户添加物品信息、删除物品、显示所有物品、按名称查找物品,并通过双击查看物品详情。需求中包含对数据持久化(保存至 JSON 文件)、界面交互(Listbox 列表显示)等具体要求。
2.2 设计文档生成 (Design Spec)
  • 任务:编写设计文档,详细描述代码的实现方式、主要模块和关键算法。
  • 实际时间:30 分钟
  • 说明:在设计文档中确定应用的各个模块,包括数据加载与保存(通过 JSON 文件)、界面组件(Listbox 和按钮等)、增删查功能实现,以及双击显示详细信息的功能。定义模块间的接口和功能调用顺序,确保各模块可以协同工作。
2.3 设计复审 (Design Review)
  • 任务:复查设计文档,确保设计合理,发现潜在问题。
  • 实际时间:15 分钟
  • 说明:复查设计文档,检查各模块的接口和交互是否合理,确保数据存储、界面交互等细节设计正确无误。特别确认双击查看详情的功能逻辑,以避免数据在查找过滤后显示错误的情况。
2.4 代码规范 (Coding Standard)
  • 任务:为开发制定合适的代码规范,包括命名、注释、代码格式等。
  • 实际时间:10 分钟
  • 说明:确定代码风格,如函数和变量命名规范、注释标准、缩进等,确保代码在增删查、数据持久化、界面更新等操作中保持一致性。为 tkinter 界面组件和功能模块的命名制定规则,便于代码的可读性和后续维护。
2.5 具体设计 (Design)
  • 任务:根据设计文档进行详细设计,准备编码。
  • 实际时间:25 分钟
  • 说明:在详细设计中,将整体界面划分为功能区域:物品列表显示区(Listbox)、操作按钮区(添加、删除、查找、显示所有)和详细信息窗口设计。并详细规划数据的加载和保存逻辑,以确保操作完成后数据会更新到 items.json 文件中。
2.6 编码 (Coding)
  • 任务:根据设计文档实现代码,编写具体功能模块。编码先实现了基于命令行的原始版本,后面将其改为GUI
  • 实际时间:90 分钟 = 30 分钟命令行版本 + 60 分钟GUI版本
  • 说明:完成项目的代码实现,包括主程序结构、各功能按钮的实现、双击查看详情的功能、数据加载和保存的实现(JSON 文件读写)等。确保每个功能模块独立、清晰,并在代码中加入注释,便于后续调试和维护。
2.7 代码复审 (Code Review)
  • 任务:复查代码,确保代码符合规范,检查潜在问题。
  • 实际时间:15 分钟
  • 说明:复查代码的逻辑,检查输入处理、异常处理、数据更新(保存至 JSON 文件)是否正确,确保所有功能模块在不同情况下(如搜索状态和非搜索状态)均能正确工作。重点检查双击查看详情功能在搜索后是否能够显示正确的数据。
2.8 测试 (Test)
  • 任务:对代码进行自测和修正,确保代码符合功能需求。
  • 实际时间:45 分钟
  • 说明:对应用进行全面测试,包括基本功能(增、删、查)和界面交互的正确性。特别测试双击查看详情是否能在搜索结果中正确显示详细信息,确认数据在 JSON 文件中的正确性。修复在测试中发现的 3 个缺陷,分别涉及输入处理、数据持久化和查找功能逻辑。
3. 时间记录 (Record Time Spent)
  • 任务:记录每个阶段的时间,方便后续分析和优化。
  • 总时间:280 分钟
4. 测试报告 (Test Report)
  • 任务:记录测试结果和缺陷修复情况,确保代码质量。
  • 缺陷数:3 个
  • 缺陷修复时间:15 分钟
  • 说明:在测试中发现 3 个缺陷,涉及输入处理、边界条件和异常处理,修复时间为 15 分钟。
5. 代码量统计 (Size Measurement)
  • 任务:统计代码行数(LOC)。
  • 代码行数:150 行
6. 事后总结 (Postmortem)
  • 总结:本项目按时完成了功能实现,并进行了多次复查和修复,最终通过了测试。
  • 改进点
    • 加强需求分析阶段,尽早识别潜在的边界情况。
    • 在编码前确保设计文档详细到位,以减少编码过程中的不确定性。
7. 过程改进计划 (Process Improvement Plan)
  • 改进建议
    • 提高设计阶段的时间分配,确保所有细节在编码前准备好。
    • 加强测试阶段的缺陷预防,通过更早的设计复查和代码复审减少后续的修复工作量。

此 PSP 分析文档可以帮助您评估项目的开发过程,总结经验并制定未来的改进措施,以提升开发效率和代码质量。

标签:功能,软件开发,代码,分钟,v1.0,软件工程,文档,物品,设计
From: https://www.cnblogs.com/specture/p/18523795

相关文章

  • 华为校招三轮面经:通用软件开发工程师
      本文介绍2024届秋招中,华为技术有限公司的通用软件开发工程师岗位的3场面试基本情况、提问问题等。  2023年07月投递了华为技术有限公司的通用软件开发工程师岗位,所在部门为海思半导体与器件业务部。目前完成了一面、二面与三面等全部流程,在这里记录一下3场面试的经历。此外......
  • 5-w1r3s.v1.0
    kali:192.168.11.128靶机:192.168.11.134nmap扫描nmap-sT-sV-O-sC-p-192.168.11.13421端口发现ftp可以匿名登录还有三个目录将文件下载到kaliwget-r-A.txt-nd-np-P/home/kaliftp://Anonymous:[email protected]/-r:开启递归下载。-A.txt:......
  • 软件工程 - 如何平衡代码质量和项目进度 - 论CICD的重要性
    共同愿景在软件工程的视角里,代码质量与项目进度是朝向同一个方向的作用力,彼此之间互相促进,它们拥有同一个愿景:保质保量的完成项目。项目周期内,团队时间的分配上维度上也不是矛盾的,是彼此分工不同,但相辅相成。通过均衡科学分配代码质量时间与项目开发时间,让项目的左膀右臂......
  • Item Revival Software软件工程师任务清单
    项目名称:ItemRevivalSoftware开发者:唐卓皓522080910024开发语言:Python开发框架:Tkinter(用于图形用户界面)主要功能:管理物品信息,包括添加、删除、显示、和搜索物品信息。1.计划(Planning)估算时间和资源需求:本项目预计开发时间为2周,主要开发人员1人。资......
  • 小视频软件开发,实现一个CSS边框动画
    小视频软件开发,实现一个CSS边框动画<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document&l......
  • 软件工程课程初感受——随笔补交
    何为软件工程,个人看来软件工程是一种系统性规范性可度量的对于软件的调控,进而将我们之前所编写的软件串联成一个有工业生产或应用效应的体系。其软件开发、运行和维护过程的组成元素代表着软件工程有着不同的方法学,既有最符合线性思维的传统方法学,将软件生命周期的全过程依次划分......
  • 牛客软件开发专项练习-Day2
    1.下列叙述中正确的是(A)A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间解释:链式存储结......
  • 2025年软件工程/计算机专业最新SSM框架毕业设计选题精选推荐
    ......
  • 牛客软件开发专项练习-Day4
    1.下面关于并行和并发的区别,说法错误的是(C)A.并发计算是一种程序计算的形式,在系统中,至少有两个以上的计算在同时运作,计算结果可能同时发生B.并行计算指许多指令得以同时进行的计算模式。在同时进行的前提下,可以将计算的过程分解成小部份,之后以并发方式来加以解决C.并行是同时......
  • 1D+洪水淹没制图软件V1.0
    1.软件原理简介基于洪水频率计算得到的设计洪水成果,通过水位流量关系将常见年遇洪水的洪峰流量转化为水位,进一步结合洪泛平原DEM数据,采用GIS水文分析方法计算洪泛平原内任一栅格的水流流程,耦合一维水力学模拟计算,用于大范围洪水淹没制图。淹没制图算法近似于HecRAS等水力学模拟......