一、项目需求
1.0要求:
该程序允许添加物品的信息,删除物品的信息,显示物品列表,也允许查找物品的信息
2.0要求:
1、物品有公共的信息(物品名称,物品说明,物品所在地址,联系人手机,邮箱)。为了便于管理和查询,物品可以分成不同的类别(例如食品、书籍、工具等),不同类别的物品可能有不同的属性(例如食品有保质期,数量;书籍有作者,出版社等)。
2、互帮互助系统有两种类型的用户:管理员和普通用户。
管理员可以设置新的物品类型(定义物品类型的名称和各个属性),修改物品类型。
普通用户在添加物品时先选择物品类型,然后再填入物品信息。普通用户搜寻物品时,需要先选择类型,再输入关键字,关键字可以再用户名称和说明中进行匹配。
普通用户需要注册(填入基本信息,包括住址,联系方式等),管理员批准后才能成为正式用户。
3、为了便于使用上述功能,软件需要提供GUI。
二、需求分析
用例图:
三、使用说明
运行程序后,进入登录界面,可以选择用户登录或管理员登录。若用户未注册则要先注册,填入用户名和密码和基本信息(包括住址,联系方式等),且不能为空值,等待管理员批准后才能成为正式用户。
正式用户登录后,进入用户界面,可以选择“添加物品”、“删除物品”、“查找物品”、“所有物品”,“返回首页”。若在用户界面点击“添加物品”,将显示属性选择界面。选择后,用户填写物品的相应详细信息,且带星号的信息不能为空值,最后点击“添加”按钮,若ID不重复则添加成功并显示添加成功信息,若重复则显示ID已存在。若在用户界面点击“删除物品”,将显示自己的所有物品,输入想要删除的物品的ID(仅限自己的物品),点击“删除”按钮,若存在将删除成功并将示删除成功信息,若不存在则显示不存在。若在用户界面点击“查找物品”,将显示属性选择界面。选择后,用户填写关键字,点击“搜索”按钮,将显示搜索到的结果,若物品不存在也会显示不存在。若在用户界面点击“所有物品”,将会显示所有物品及物品信息。若在用户界面点击“返回首页”,则返回登录界面。
管理员登录后,进入管理员界面,可以选择“添加物品”、“删除物品”、“查找物品”、“所有物品及用户”、“修改类型”、“审批注册”、“返回首页”。其中“添加物品”、“查找物品”、“返回首页”功能和正式用户一样。若在管理员界面点击“删除物品”,与普通用户不同的是将显示所有物品,可以删除任意物品。若在管理员界面点击“所有物品及用户”,将会显示所有物品及物品信息和用户及用户信息。若在管理员界面点击“修改类型”,填写类型和属性,点击“添加/修改”,若该类型存在则属性会被修改为新填入的,并显示修改成功信息,若该类型不存在,则该属性被添加,并显示添加成功信息。若在管理员界面点击“审批注册”,则会显示所有注册用户及其信息,输入注册用户ID,可以选择“通过”或“拒绝”,并显示相应操作成功信息,也可以选择“一键通过”,则所有注册用户的申请都被通过。
软件地址:u4e91/goods_exchange2.0: exchange goods with GUI (github.com)
四、开发感想
1、通过对该软件的设计,更加了解了软件工程的相关知识以及运用软件工程知识进行程序设计的重要性。在进行用例图、顺序图、类图的绘制,通过这些系统的软件工程方法,程序的设计变得更加条例清晰。虽然这些准备工作在初期会消耗一定时间,但是这些工作对后续的程序编写有很大的帮助。经过这次的经历,更加深刻认识到,若日后编写大型软件,也要运用这些软件工程的方法进行科学的分析和设计。
2、由于很多代码知识还不太掌握,导致写程序的时候,要一步步摸索学习,通过搜索和多次尝试,历经坎坷,终于完成了。其中最大的难点就是GUI的实现和数据的保存。在第一次编写时通过学习终于掌握了GUI设计,但由于数据库的知识一时之间无法掌握,所以不知道如何保存数据,因此程序运行结束后所有数据就会丢失。第二次编写时,通过查询了解到了json的保存方法,所以实现了数据的保存。通过这次程序的编写,我的代码能力也获得了进一步的提升。
3、本次程序编写设计还有很多不足。例如GUI界面不够美观,还可以进一步修改精进,比如希望可以在审批注册用户时,进行了通过或拒绝操作后,上面的显示可以立刻更新。还有代码编写时候,由于是在第一次开发的代码上进行添加的,而第一次编写时还未学习用例图类图等,所以模块化做的不是很好,由此可见这些知识的重要性。还有一些功能可以更加完善,例如在添加物品填写信息时候,ID应该自动生成而不是手动输入会好一些,这样当物品很多的时候,用户不会因为ID太多而总是输入到重复ID导致无法添加。还有查找物品时,要关键字全部匹配才可以搜索到,希望将来可以只要有相关匹配就可以显示。
五、课程总结
通过本门课程的学习,我收获良多。在两次软件开发的实践中,不仅代码能力得到锻炼,对软件工程的理解与运用也有了进一步提升,理解到采用工程的概念、原理、技术和方法来开发软件,结合学到的管理方法,可以更经济地开发出高质量的软件并维护它。同时也更深刻的体会到了软件工程的基本过程,从软件定义(问题定义、可行性研究、需求分析)到软件开发(总体设计、详细设计、编码和单元测试、综合测试)。而在本门课程的学习中,我也发现软件工程中的一些方法和思想也可以运用到其他地方,可以更加高效经济的解决问题,对我学习和解决其他问题也很有帮助。
最后感谢曹老师和助教在软件工程这门课程上的帮助与理解,让我更好的学到了这门课程的知识,并对我的软件开发能力起到了很大帮助,将来有机会我还会继续学习相关知识的。
标签:体会,软件开发,用户,信息,物品,点击,添加,管理员,我助 From: https://www.cnblogs.com/skloud/p/17017696.html