你帮我助2.0开发体会——软件工程课程学习总结体会
【项目需求】
1、物品有公共的信息(物品名称,物品说明,物品所在地址,联系人手机,邮箱)。为了便于管理和查询,物品可以分成不同的类别(例如食品、书籍、工具等),不同类别的物品可能有不同的属性(例如食品有保质期,数量;书籍有作者,出版社等)。
2、互帮互助系统有两种类型的用户:管理员和普通用户。
管理员可以设置新的物品类型(定义物品类型的名称和各个属性),修改物品类型。
普通用户在添加物品时先选择物品类型,然后再填入物品信息。普通用户搜寻物品时,需要选择类型或者输入物品名称,用来搜索物品。
普通用户需要注册(填入基本信息,包括住址,联系方式等),管理员批准后才能成为正式用户。
3、为了便于使用上述功能,软件需要提供GUI。
【项目功能】
管理员:1.添加物品类型。2.显示物品类型。3.修改物品类型。4.审核注册。
用户:1.添加物品。2.删除物品。3.修改物品。4.搜索物品。5.注册。
【项目介绍】
本项目使用Python语言,pycharm编译器,以便实现GUI。
使用时,应先使用初始管理员账号登录系统,添加所需的物品类型并补全信息。然后,使用初始用户账号登录系统,进行各种操作。此外,可以注册新的用户账号,待管理员审核通过后,可以使用登录。
【开发感想】
1、由于编程基础较为薄弱,而且是第一次实现GUI,可以说是我目前为止写过规模最大的项目,因此,很多东西都是找着各种教程一步步现学的,前后花费了一个月时间,会有一些写的不够好的地方和一些冗余的代码。
2、通过本学期软工的学习,在这个项目中,我绘制了用例图、顺序图、类图。通过这些系统的方法,整个过程变得更加条理清晰、按部就班。软工所教会我的办法,虽然会增加软件制作的工作量,但却是必不可少的一环。本项目尚且是(包含<50个类)中小型项目,且类与类、对象与对象之间耦合性不高,关系也不复杂,即便如此,调试时也出现过一些记不清功能关系、搞错层次关系之类的问题,而此时系统化的方法就能帮助解决问题。日后,我必然会涉足到更为复杂的项目,也会遇到要与人合作制作软件的时刻,因此,软工教会我的方法是很关键的。
3、我认为这个项目还有很多可以改进的地方,比如:GUI界面不美观、没有项目特色,值得改进;搜索物品时只根据物品名称进行匹配,但实际情况中往往是根据实际意思搜索物品,因此,我设想构建一个加权搜索函数(名称权重最高,其次是说明中重合4个字、3个字...),根据加权函数排序后显示。
4、通过大作业检查后发现,还存在着很多我没有注意到的地方:1、忽略了对普通用户的维护功能。2、模块化做的不够。虽然在类图里有展示出普通用户类和管理员类,但是真正实现的时候并没有按照类图所画的来实现,所以表现出来的结果就是代码的模块化不够清晰。3、变量、函数的命名没有良好的习惯,需要在以后的编程里面注意命名规范,同时需要适当的注释,我的注释内容明显偏少,代码的可读性较差。
【课程体会总结】
对比两次软件开发,在学习了数据流图、类图、顺序图等软件工程知识之后,在开发软件的过程中,思路明显比第一次开发的时候要清晰。但是,由于第二次软件需要实现的功能更多,我的语言能力愈发显得捉襟见肘,在接下去的学习过程中,对语言的学习是需要我加强的地方。同时,听过曹老师的课程之后,对软件的理解也从毫无概念,变成了有一定的了解,在有了两次开发软件的经历之后,我相信,在下一次的软件开发过程中,我一定能够更加顺利清晰的完成开发。
并且,曹老师在授课过程中渗透的计算机科学的核心思想,对我的学习也产生了一定的影响,在这个过程中,我发现自己思考问题的角度明显变多了,就比如相较于之前,我现在能更多的考虑到经济可行性。同时,编写代码的习惯上,老师也给出了指导意见,非常受用。
总体来说,曹老师的课是非常实用的课,将理论和实践结合起来,并没有纸上谈兵的感觉,曹老师本人也给我一种非常亲切的感觉。但是,对于软件工程这门课而言,我并不能说掌握的很好,可能是由于辅修的原因,前置课程总感觉有些缺失,希望以后仍能有机会进行软件开发,在这方面更进一步。

浙公网安备 33010602011771号