个人作业——软件工程实践总结作业
班级:软件工程1916|W
学号:221600422
作业目标:回顾和总结软件工程实践
一、请回望开学初的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
通过实践锻炼,我认为达到了增强计算机专业能力和就业竞争力的目标。在这次实践中,通过团队合作完成一个项目,了解了一个软件开发的流程与如何与他人合作共同开发。相比以往课程实践的单人项目,这种团队合作项目更能提升个人水平,因为在团队中,你考虑的不只是自己,还要与他人相对接,在对接过程中产生和解决的问题就是一种不断提升的过程。
由于是第一次团队合作开发大型项目,涉及到许许多多的新知识,在沟通交流上存在一定的问题,导致项目对接过程中,出现许多沟通失误而造成的bug,浪费了大量的时间来修改这些前期能够避免的bug。数据库设计方面也存在一定问题,项目新功能添加需要通过修改数据库表来实现,而不是在原来的基础上进行拓展,使得后期还需要重新设计数据库语句。
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
统计一下,你在这门软件工程实践中,完成了多少行的代码
- 2300行左右
软工实践的各次作业分别花了多少时间?(做一个列表)
-
作业名称 使用时间(h) 第一次作业——准备篇 2 结对第一次——原型设计(文献摘要热词统计) 6 结对第二次—文献摘要热词统计及进阶需求 18 团队作业第一次—团队展示 5 团队作业第二次—项目选题报告 9 团队第三次-项目原型设计 12 团队作业第四次-项目需求分析 15 团队作业第五次—项目系统设计与数据库设计 10 团队作业第六次—团队Github实战训练 7 项目Alpha冲刺(团队) 50 事后诸葛亮(团队) 5 项目Beta冲刺(团队) 20 Beta阶段团队项目互评 6
-
哪一次作业让你印象最深刻?为什么?
- 印象最深的是Alpha冲刺,因为接触到许多新知识,并应用到项目中去,在整个开发过程对目前所学的知识进行了一次梳理和总结。
累计花了多少个小时在软工实践上?平均每周花多少个小时?
- 大概花费了165个小时,一开始大概是4、5个小时每周,后来冲刺阶段每周大概花费20小时
学习和使用的新软件/工具/语言/平台/方法等
- 软件和工具——墨刀、Typora、Navicat、Postman
- 框架——SpringBoot、Mybatis
- 方法——Excel表格读写
- 其他方面的提升——团队合作能力、表达能力
二、 写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
在项目合作过程中,最重要的还是成员之间的交流与沟通,沟通失误对项目开发造成的影响是巨大的,不要抱有我以为的思想,任何不明白的地方都要及时与队友沟通。
好的组长能起到巨大的作用,组长根据个人所长合理的分配了任务,最大程度的保证了项目按时按需的完成。
保持好心态,哪怕再多bug,冒再多红,也不要崩。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?
项目开始前的准备很重要,比如开发环境的搭建,需求分析等。
当然是要换,但需要考虑更多的方面,比如所掌握的技术能否支持,有的人所掌握的技术能够向下兼容,但有的人就不一定能够向上,这对于被交换的人来说可能需要同时担任两个组的主力。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建之法》第17章 人、绩效和职业道德)
我们团到达了规范阶段,按照Alibaba代码规范对代码进行基本规范,未达到创造阶段
五、怎样证明你学会了软件工程?
1)研发出符合用户需求的软件
必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
小程序端累计用户图
Web端发布到服务器上,有属于自己的URL并配置有HTTPS协议
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
- 在github签入记录可以看到每个组员每天都能更新自己的任务进度,定时的完成任务,且每天都有例会对今天的任务进行总结以及对明天进行规划
3)并且通过数据展现软件是可以维护和继续发展的。
而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
- 后端代码发布在github上,整体框架采用SpringBoot集成,整个项目采用前后端分离的形式,所以后端代码是接口式编程,每一个函数有独立的url标识且对应一个具体方法的实现,所以具有较好的扩展性和维护性。
七、个性发挥,包括图文、照片和创意等
- 来自队内dalao