这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13315 |
这个作业的目标 | 软工课程总结 |
学号 | 102201118 |
引言
上回说道,我的学业之船已在大学的海洋上行驶了一半的航程,这期间也遇到一些危险情况(遥想那次一个名为大学物理的巨型风暴,卷起的狂风巨浪险些将我这艘单桅帆船吹散架,但最终还是驶出了危险),正当我庆幸又逃过一劫,憧憬未来的风和日丽时,我的占卜师又向我预言:一场名为软件工程的超级风暴又横在我的航线上,看来避无可避。那是一个清朗的夜晚,天上没有一点云,繁星漫天,海风微凉,我驾着小船,向风暴驶去......
一,学期回顾
1.1 对软工的印象
当还未接触软工课程时,我以为软工是从代码层面教我们如何写一个软件,后来发现是从更高的理论层面分析问题。
在开学之前,我先买回了课本,看着像砖头一项厚重的黑皮大书,我对这门课有一点点点畏惧。
经过查询,我知道了软工这门课介绍了编写软件从需求分析、设计、编码到测试及维护等一整套完整的流程,是实际开发软件过程的理论依据,于是我又对这课程有点期待,在此之前,我接触到的编程主要是偏向刷题的小题,没有接触过写出一个可运行软件这种大项目,我想通过这门课学习这方面的知识。
结果这门课程确实达到了我的期待,在几次大作业中,我逐步了解了是如何编写出一个可运行软件的,在编写前期,应该归纳需求,原型设计,项目设计,我初步了解了开发一个软件的流程。
在编程技能学习方面,我也有一些进步。由于在此之前只学习了C和C++,对于前后端开发完全不知道,所以不得不利用课余时间学习,丰富了我的技能,同时,对其他非编程的开发工具,我也有了一些使用经验,如GITHUB,码云,飞书等等。
1.2 投入与产出
- 编写的代码行数:没计算过,2000+吧
- 团队作业我参与了行趣的开发,主要担任测试
- 各次作业花费的时间
任务 | 花费时间(天数) |
---|---|
第一次个人作业 | 1 |
第二次个人作业 | 3 |
第一次结对作业 | 3 |
第二次结对作业 | 5 |
第一次团队作业 | 6 |
第二次团对作业 | 8 |
现场编程作业 | 1 |
团队作业beta冲刺 | 6 |
- 累积花费时间
累积时间 | 实际周均 | 预计周均 |
---|---|---|
300 | 20 | 15 |
1.3 印象最深的答辩
对我来说,印象最深的是第一次答辩,因为在此之前,我以为答辩就会想往常的大作业汇报那样,主要是给老师听,当成一个评分标准罢了。但是在那场答辩会上,大家热烈地讨论着,唇枪舌剑,各种观点和灵感迸发,百花齐放,这给我挺大的震撼的,重新思考了组队的意义,通过沟通讨论汇聚智慧,激发思考。
二,总结收获
今已驶出风暴,海面归于平静,在一个风和日丽的下午,我坐在甲板上,晒着暖阳,翻开了写在羊皮纸上的航海日志,回顾这一路的历程。
2.1 航行日志
2.1.1 个人编程————初涉浪端
天色阴沉,大块的黑色乌云像巨石一般悬在头顶,海变成了深灰色,不安地躁动着,像狮子烦躁地用尾巴驱动背上的蚊虫。
通过AI生成个人logo,发布第一篇博客。在此前对博客就早有耳闻,相当于程序猿的日志,但是从来懒得发,希望能够养成写博客的习惯吧。
学习了markdowm的基本语法和GITHUB搭建主页。
有点后悔应该趁前期空闲多的时候好好装饰一下博客主页和背景,看一些同学的博客背景优美,有的还有背景飘雪,音乐之类的装饰。相比之下我的博客就像是毛坯房中间摆了一张床。
通过AI辅助开发一个类似羊了个羊的小游戏,刚接到这个作业的时候,心里一阵恐惧,对怎么开发游戏一点概念都没有,这可怎么办啊。通过不断与ai对话询问,发现果然不简单,AI给的代码总是错的,就算我详细描述了需求,但是给出的代码逻辑还是有问题,不得不自己也开始学习,发现尽量让AI实现较少的功能和较小的代码块,正确率有显著提升。但是还是花费了三天时间,勉强做出来。
经过这次小作业,启发了我看待游戏的另一个视角,之前对于游戏,只是以玩家的视角看,注重游戏内容与画面,好似游戏的那些画面,那些动作时开发公司用“阿巴阿巴”之类的魔法变出来的,没有考虑实现方式。经过这次实践,我发现即使是简单的消除游戏也有背后的一套逻辑,要仔细思考才能想明白,以后我可以从另一个角度看待游戏,思考是如何实现的,背后的代码可能是怎样的逻辑(不知道对于提高游戏水平有没有帮助)。
2.1.2 结对编程————逆浪奋进
我的帆在灰黑的天地之间成了唯一的白,它呼呼作响。大块的雨滴一滴一滴砸了下来,大风吹起一个个浪潮,向我袭卷,第一波攻势开始了。
第二次结对作业是和舍友一起完成的。老师给定了场景,我们需要首先分析需求,然后根据分析报告来实现项目,我们还使用了原型开发工具,画出了原型。
这次作业让我们知道了需求分析的重要性,以往一直因为编码实现是最重要的,忽略了前面的设计和分析任务,其实这些才是最终要的,这些决定了任务的方向与正确性。老师在后面讲评时候,我发现了许多没有考虑到的问题。
这次作业还使用了原型开发工具,我们选用的是墨刀,首先设计出了界面。这让我们对界面设计与原型模式有了更好的认识。期间遇到了一个困难就是墨刀的团队协作要钱,而且限制原型页面数,造成了一些麻烦。
我们还学习了使用画图工具画一些UML图
这是使用微信开发者工具开发的页面
2.1.3 团队编程————搏击骇浪
一道明亮的闪电划破天际,一声炸雷发出了总攻命令,巨浪以排山倒海之势压来,决战,开始了。
团队作业是是十个人组队一起开发,团队有明确的分工,在组长的带领下运作得不错。我属于测试组,在前期也负责画一些UML图,等工作,在测试工作到来前,主要学习测试工具的使用。
我画的图
GITHUB协作记录
测试记录
团队合照
2.2 学习到的工具
- GITHUB
它是很好的代码管理工具,团队协作使用虽然有点难度,但还是很好用的。里面很多技术大佬贡献的资源也很有用。学到这个对我帮助很大。 - 微信开发者工具
这是结对作业时使用到的,里面自带的云函数工具很好用,省去了自己配置后端服务器的工作,对新手很友好。