这个作业属于哪个课程 | 软件工程 |
---|---|
这个作业要求在哪里 | 个人总结 |
这个作业的目标 | 记录这个学期的收获 |
作业正文 | 如下 |
其他参考文献 | 无 |
4个月的软件工程实践走过的路
转眼一个学期的线上软件工程课程结束了,我们还是没能返回学校,虽然未能与老师线下见面,但依旧收获颇多。
1)我做了哪些作业
做的作业还是比较多的,首先是博客作业
1、第一次博客作业
1.开设github(https://github.com/),注册账号,补充修改个人信息(昵称,头像等)
2.在博客园(https://www.cnblogs.com/),建立个人技术博客,学习了用markdown编写博客。并关注了老师和助教的博客。
3.加入软件工程班级。
4.介绍了自己的兴趣爱好,自己的经历和有趣的记忆。
2、第一次个人编程作业
①自己琢磨了一下git仓库的使用。
②进行一次汉字编程操作,我是使用C语言来完成的,这让我把之前学的C语言知识重新巩固了一遍。
③这次作业是有两个样例,可惜我只完成了一个样例,第二个样例没能完全实现,还是有点bug。
3、第二次个人编程作业
①全体同学化身“杠精”,都在找其他同学代码不合规范的地方和存在的bug。
②查看其他同学给的意见,并给出回复,必要时进行代码修改,并作出解释和自己的修改方法。
③复查其他同学修改后的代码。
4、第一次结对作业
①我找了我室友作为我的结对伙伴。
②听课不停学,我们使用问卷调查的方式去调查大多数老师上网课使用的平台和不同专业同学喜欢的上课方式以及满意度。
③将所收集到的数据图表化。
5、第二次结对作业
①将所收集到的数据共享出去,并将其他组共享的数据整合,吐槽一下,同一个同学在不同问卷上回答相同问题时答案是不一样的,这就让我整合地很困难。
②图表要采用规范的方式,横轴纵轴都需要有坐标名称,图名显示在图的下方,表名显示在表格上方。
③学习了怎么使用墨刀来画原型。
④对“线上教学”数据分析基础上,基于数据分析基础上提出了关于如何提高线上教学效果的一些意见或建议。
6、团队第一次作业
①我们基本都是组队没能成功之后聚集在一起的,这就是我们心有猛虎-细嗅蔷薇团队组成方式,虽然大家都有点菜但当时还是斗志昂扬的,靠我们拼搏应该也能完成一个项目。
②介绍我们自己,让我们组员之间相互了解
③选题:我们当时有两个方案,一个是做校园外卖点餐平台,一个是做校园学习资料共享的网站,考虑到外卖点餐要接入支付系统等等比较麻烦所以就选了后者。
④说了下我们团队的愿景。
7、团队作业第一次(2)
①上次演讲答辩时其他组对我们项目进行了“问题轰炸”,提出他们对我们项目的疑惑和指出我们考虑不周的地方,在这次作业中我们要对他们提出的问题进行回应。
②说说该产品的期望功能和实用价值,伴有佐证的数据和当前市场已存在的类似产品以及失败的类似产品的对比和分析。
8、第三次个人作业——用例图设计
①发布一篇随笔,记录mooc学习笔记和用例图,使用markdown语法进行编辑。
②使用专业的建模工具绘制,这次我选择的是ProcessOn,挺方便的,不用下载直接可以在线编辑,唯一不好的地方就是有次数限制。
9、团队作业——UML设计
①这次团队分工画图,用例图(曹淦淇和程昱)、类图(陈罕瑀和杨杰)、活动图(邓慧和陶佳杰)、状态图(杨博伦和何子聪)
②画泳道图描述团队的每个成员分别完成了UML图的哪些部分
③我这次使用的画图工具是visio,这个也挺方便的,模板很多,画出来的图可以直接复制到word里面,但软件要自己下载
10、团队作业——需求分析
①参考《软件需求规格说明书》国标文本(GBT8567-2006 && GBT9385-2008)编写我们项目的需求规格说明书
②细分功能、边界范围等,限定于本学期期末验收时能达到的功能,亮点以及未来预期完成的功能。
③对于该md文件,要求团队内每个人都需进行相应的commit,作为团队开发的第一次尝试
11、团队Github实战训练
①这次是要我们做一个校园进出登记系统,我们小组经过权衡后决定采用C语言来编写
②多人协同工作,每个人都需要编码,要求在git仓库项目里面每个成员commit次数≥3
③这次编程作业给我的冲击很大,我发现了我们团队成员代码能力的不足,尤其是在指针方面的知识严重不足,我在之后也加强了这方面的学习。
12、团队作业第四次—项目系统设计与数据库设计
①详细描述了针对上次需求分析作业的改进部分和改进过程。
②编写这两篇说明书是把我搞得最崩溃的一次,基本上都是我和另一个组员在做,我那几天和另一个组员每天都做到凌晨两点多,感觉其他组员好闲呀,天天可以出门玩,经常玩失踪,找不到人。
13、团队作业第五次——Alpha冲刺
①交10篇冲刺随笔、1篇测试随笔、1篇总结随笔、1篇代码规范与计划、1篇汇总博客还有答辩ppt。
②冲刺阶段要求每天进行小组会议,讨论当前项目昨日进展、存在问题、今日安排。
③冲刺阶段每天发布一篇随笔要求包括当天会议照片、会议内容以及项目燃尽图。
④这一次我们组内讨论比较少,开会也不怎么说话,我作为组长对项目开发也不太熟悉,也没能调动大家的积极性,所以项目进展的比较缓慢。
14、Alpha总结展望——前事不忘后事之师
①小组每个成员对自己Alpha阶段的工作做一个感想总结,讨论自己在Alpha阶段的工作是否满意,做的不好的地方是什么?有没有什么可以改变的地方?
②小组每个成员对自己Beta阶段做一个展望,下一个阶段的小目标,在下一个阶段希望做的工作,对于小组的工作模式或计划提出建议或想法。
③我们也反思了我们在Alpha冲刺时的错误,觉得交流很重要,我们也讨论决定把我们的项目功能做简单一点,降低难度来把这个项目做出来。
15、Beta 冲刺
①交10篇冲刺随笔、1篇测试随笔、1篇凡事预则立随笔、1篇总结随笔、1篇代码规范与计划、1份用户使用调查报告、1篇汇总博客还有答辩ppt。
②冲刺阶段要求每天进行小组会议,讨论当前项目昨日进展、存在问题、今日安排。
③冲刺阶段每天发布一篇随笔要求包括当天会议照片、会议内容以及项目燃尽图。
④这次我们吸取了之前的教训,开会大家都比较积极,都会发表自己的观点,但项目做的还是差强人意,组员普遍遇到的问题就是基础不是很好网上看视频学习效率也就不高。
⑤但也不是没有收获,我重新梳理了之前学的知识,把一些已经忘记了的知识又复习了一遍,还学会了一些课外的知识。
其次就是课堂作业
-
课堂上老师让我们在云班课上写团队项目的项目描述
描述我们小组项目的电梯时间演说内容,项目做出来是干嘛用的,给什么群体使用,与同类产品随笔之后的优势和如何推广我们的网盘。
2)总结这门课程的实践给你带来的提升:
2.1、学习和使用的新软件
这个学期有使用的软件有Visual C++(个人编程的两次作业和校园进出登记时使用)、WebStorm(团队项目前端编写)、eclipse(团队项目后端编写)、Typora(编写数据库说明书和系统说明书)、Navicat Premium(mysql数据库)、gitHub(将本地文件上传到git仓库)
2.2、学习和使用的新工具
ProcessOn(UML设计时使用的在线画图工具)、Visio(UML设计时使用的本地画图工具)、pdshell(数据库画关系表)、墨刀(原型设计)
2.3、学习和掌握的新语言、新平台、新框架、新架构
1、C语言和HTML还有java之前都学过就不算新语言了,但在做这些作业的时候又有了新的理解。
2、markdown应该也不算新语言,编写数据库设计说明书和系统设计时使用Typora写markdown文件,还有编写博客也是使用markdown编写。
3、新平台就是博客园分享博客、git仓库上传代码等文件。
4、学会了画用例图、类图、活动图、状态图、时序图、泳道图等UML设计。
2.4、学习和掌握的新方法、新思维、新思想
1、不知道的问题可以多百度一下,好多问题前人都遇到过,查看他们的解决方法可以给我们的问题提供解决思路。
2、不懂就多向别人请教,不过也要适可而止,问多了别人也会烦。
3、团队合作一定要交流,交流的好可以事半功倍。每个人的想法可能都有点片面,团队一起想的话可以节省很多时间。
2.5、其他的提升
1、C语言好多都忘了,在做校园进出登记软件的时候又捡起来了,发现指针还有好多没弄懂,之后又着重复习了指针方面的知识。
2、编写后端时,发现I/O流没搞的很清楚,然后着重学习了I/O方面的知识。
2.6、哪次(些)作业或作业的过程,给你留下了深刻的印象或难忘的片段?
1、第一次个人编程作业布置出来后,我就觉得这是什么呀,怎么一上来就整了个这么难的题目,这该如何完成呀,最后我也只做出来了个半成品,又去请教了好几个同学,让他们帮我修改修改。
2、还有一次就是我们团队做校园进出登记软件的时候,我发现我们代码能力都很差,我也提出过让他们多锻炼锻炼提升代码能力。
3、Beta冲刺时,我们组员一改之前懒散状态,开会不交流的情况再也没出现,那时候我们想要完成这个项目的热情达到了新高,可惜最后还是以失败告终。
写下属于自己的人月神话——项目实践中的经验总结+实例/例证结合的分析
这次项目实践中我明白了项目的开发不是说说就能去开始的,而是要先去市场调查这个项目是否有人想用?与同类产品的竞争如何,有何优势?适用人群又是哪些。
项目决定开始后,要先进行原型设计,让别人看看我们项目最后做出来的效果是什么样的。然后就是UML的设计,在最后开发的时候能大致方向。
接着还要写需求分析说明书,将自己置于读者的立场——如果对软件项目不熟悉的人员,通过阅读这份文档,能否完全读懂软件要做什么,最后验收也是以需求分析说明书为标准
编写完需求说明书后就要开始编写数据库设计说明书和系统设计说明书,因为不仅要站在用户角度看还要站在开发角度。
最后就是冲刺阶段,要上手敲代码了,前面的都是纸上谈兵,程序员最重要的还是要会敲代码。
对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?
对下一届学弟学妹们的建议:
好好学吧,你永远不会知道后面有什么会等着你,不仅仅是有惊喜,惊吓也会穿插而来。至于惊喜和惊吓孰多孰少,还是由你自身能力决定。
对于开学初的我:
这门课一定要好好听讲,这门课很重要,学得好毕业后可以少走好多弯路,不要害怕失败,多积累经验。
对于大一的我:
不能偷懒,不能颓废,不要毕业后啥都没学会,四年白读那就太可惜了。还有要好好学英语,不然之后代码敲错了,连错误都看不懂那就很尴尬。
对未来的你的期许
1、这毕竟是我第一次做的项目,我希望在以后的一天能将它做出来,完善,不留遗憾。
2、在未来不要盲目地自信,也不要轻易地否定自己,心态要好,最重要的是要清楚自己的能力,知道自己的定位。