软件工程课程大作业|亿些项目总结

项目要求:

项目第一版要求见上次随笔

文档需求:
1、需要提供一个文档:其中包括(1)用例模型;(2)针对用例画顺序图;(3)类图

作业完成要求:

  • 作业需要在16周前提交,并发布在你的Github仓库中;
  • 作业完成后需要进行演示(17周前完成),请提前一周与助教约好。(每周周二下午都可以约);演示的内容包括写的文档、软件的功能。
  • 在技术博客上写一篇总结文章,对照软件工程的知识,对开发该程序的体会进行总结。

加分功能需求:

1、物品有公共的信息(物品名称,物品说明,物品所在地址,联系人手机,邮箱)。为了便于管理和查询,物品可以分成不同的类别(例如食品、书籍、工具等),不同类别的物品可能有不同的属性(例如食品有保质期,数量;书籍有作者,出版社等)。

2、物品复活系统有两种类型的用户:管理员和普通用户。

  • 管理员可以设置新的物品类型(定义物品类型的名称和各个属性),修改物品类型
  • 普通用户在添加物品时先选择物品类型,然后再填入物品信息。普通用户搜寻物品时,需要先选择类型,再输入关键字,关键字可以再用户名称和说明中进行匹配

普通用户需要注册(填入基本信息,包括住址,联系方式等),管理员批准后才能成为正式用户。

3、为了便于使用上述功能,软件需要提供GUI。

软件开发体会总结

关于时间安排

我的这次软件开发过程基本算是敏捷过程了,整个过程的时间比较紧,老师布置第一个版本的开发任务时我正在忙着学习课题组的知识,依稀记得就用了国庆最后两天时间,前一天的下午我刚刚开始对着草稿纸做需求分析和总体设计,后一天的傍晚我已经开始上传演示视频了,第二个版本已经要开始期末复习了,我在周五傍晚红课上完回来,一直写到周日下午,期间除了抽出半天写了计算机系统结构的LAB、吃饭、睡觉以外,全部都在写这个软件,在时间上我是有点亏待项目的,但是我确实投入了很大的精力,基本处于完全心流的状态,直到睡觉心情还无法平复。

对软件开发的亲身体会

我的第一版满足的就是第一次老师公布的要求,第二版把第二次老师公布的要求加进去的,教材诚不欺我,需求分析太重要了,需求要什么,我的就写什么,这才是基本的待客之道。

第一版的总体设计我是在纸上完成的,详细设计基本和编码放在一起了,第二版由于时间太紧,我的总体设计和详细设计直接在我吃饭、上厕所和睡觉的时候完成,甚至对象图、顺序图、类图都是后补的,但是我认为这些其实都是非常重要的,是关系到软件具体实现的,作为一个有一定项目经历的人,如果我有时间,对于一个重要的工程,我是定会将这些前期设计写进项目管理文档的。

此外我深感软件可扩充性的重要性,我的第一版软件只设计了一个界面,且没有用到数据库,所有关于数据的操作基本靠软件本身实现,数据存储在.json文件里,第二版我改成了使用数据库,并且增加了许多界面,增加界面其实容易实现,因为是直接写,但是由于使用数据库,第一版种对数据的操作有关的函数基本重写了,这让我深刻的体会到了可扩充性的重要性。实际上我选择的sqlite3数据库是一个轻量级数据库,由于python自带的sqlite3版本较低,有一些比较好的数据库操作还用不了,如果软件功能还要增加可能在未来还要改用其他的数据库包,可见技术的选择在开发前期是多么的重要。

另一个深有体会的地方是软件的测试,由于两个版本的软件都使用了GUI,我想说的是,你永远不知道用户会点哪里,不按照你设想的顺序乱点一通的概率是极高的,想办法不让软件因为乱点而崩溃,甚至还要设计弹窗提示用户不要乱点是十分必要的,但是运行成功的可能性往往只有一种,但是运行失败的可能性却千千万万,课程上的“确定等价类”以及“错误推测”其实就是十分重要且需要考虑的。

其他关于项目

项目地址

KoJail/item_resurrected: 《软件工程》课程作业,“物品复活”软件

演示视频

物品“复活”|软件工程课程作业20241222软件测试录屏无解说版_哔哩哔哩_bilibili

posted @ 2024-12-30 22:28  小火车过山洞  阅读(149)  评论(0)    收藏  举报