软件工程项目——个人总结

软件工程大作业——个人总结

项目进程文档

项目源代码

一.项目概述

  整个项目,按照先写项目的需求分析,再画项目的UML图,然后进行了原型设计,最后编写整个项目的代码。因为整个项目需要前后端进行交互,我们后端使用了springboot框架,数据库使用mysql,部署在阿里云服务器上,并使用jdbc进行交互,前端进行了Android的app开发。

二.个人总结

2.1工作概述

  我主要负责后端的代码编写。

2.1.1设计阶段

  我们按照软件工程的流程来进行整个项目。但由于是第一次进行这种流程,途中经过了许多的讨论,并且也走了一些弯路。需求分析可以帮助我们了解了整个项目的开发目标以及需要做什么,让我们在以后的编程中可以少犯错。UML图将整个系统架构和代码架构表达了出来。原型设计大概演示了整个软件。虽然我们对这些步骤的设计比较简陋,但通过这些步骤,整个项目的制作上获得了很多帮助。

​  在第一次例会中,我们进行了组员的分工,以及其他的事项的讨论。

2.1.2编码阶段

​  由于我们对框架并不熟悉,所以需要从零开始学起。我主要负责后端编程,使用springboot框架。在整个项目的开发中,我们基本上按照前后端分离的方式进行开发,前端发送请求,后端通过http协议,使用json与前端进行交互,返回结果。这样,可以方便工作的分工,以及代码的修改。

​  我逐层进行编写代码。entity层存放实体类,dao层对数据库进行持久化操作,只实现了对数据库的增删改查操作。service层为业务层,存放业务逻辑处理,提供controller层调用的方法。controller为控制器层,接收前端传过来的参数进行操作,并返回相应的结果。

  在dao层的编写中,考虑到查询、更新等操作可能会需要通过主键之外的其他属性来确定数据,所以在编写中通过判断对象的属性是否为空来判断sql语句中是否需要增加此属性。对于多表操作,我们使用內连接创建视图来获得数据,方便了操作。在service层中,主要是软件中的各种具体操作的实现。并且,在实现中,需要考虑此种操作是否会对其他信息产生影响,并进行相应处理。同时,还需要返回成功与失败的信息。在controller层,接收前端用json格式传过来的对象,并返回相应的结果。在comment中由于有时需要根据范围来查询,或者增加时需要用户,歌曲的信息,导致需要多个参数,我们经过讨论后在controller层使用map作为参数进行操作。

​  在编程的后期,后端的另外一人,张书瑞在检查代码时,由于我们两人的代码风格不同,而产生了许多的争论。同时,由于书写格式的不规范,一方 面给其他人的阅读造成了麻烦,同时,在修改时也造成了一些问题。

2.2工作小结

​  我主要负责后端代码的编写工作。我觉得在代码书写规范上,我们前期的交流还不够。如果可以在前期确定好书写规范,并且在书写途中可以做好注释,提升代码的可读性,不光能使代码更加整洁,在后期的修改,也可以更加高效。

2.3项目反思

​  在整个完成项目的过程,我们小组前期进度较慢,积极性不够高,很多的工作都是后来急忙赶出来的。并且后期编程也开始得较晚,使得我们在进度上较为滞后。并且,在组员的配合,工作分配上也不够好,造成了一些组员工作量大,一些组员比较空闲的情况。这点,在以后也需要改进。图片操作的实现也是我们项目的一大难题。我们采用base64存储在数据库上进行操作,但因此,导致了我们的安利墙模块的评论载入缓慢。我在后来在网上经过查询,其实图片更加适合存储在本地或者放在服务器上通过路径方式访问。

2.4项目总结

​  通过这个项目,我收获颇丰。此次项目的进行,是按照软件工程的要求来进行的。而通过这次的项目,让我们了解了软件工程的内容,在一定程度上体会到了软件工程的意义。并且,让我们知道了编写软件不应该是闭门造车的,需要不断地去借鉴别人的经验。同时这次的团队项目,也让我们知道了在编程过程中,团队需要如何进行合作。

三.课程建议

​  在上课每轮的检查中,我觉得老师在检查完每个小组的进度后,可以让一组或者两组做得较好的组进行展示。这样,可以一方面我们知道自己与其他小组的差距,另一方面,也可以让我们更好地理解每一步的意义。

​  软件工程的一些概念较为抽象,我觉得老师也可以更多讲一些实际在企业编程中的例子,让我们更多了解企业中实际的编程,理解软件工程的一些概念。

猜你喜欢

转载自www.cnblogs.com/mmjjjj/p/12052369.html