福大软工 · 最终作业 - 软件工程实践总结(个人)

福大软工 · 最终作业 - 软件工程实践总结(个人)

一、请回望暑假时的第一次作业,你对于软件工程课程的想象


1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?

  • 哪些方面达到了你的期待和目标
  1. 这学期主要学习了一下人工智能的有关知识,主要包括在TensorFlow和pytorch下实现CRNN的学习,以及在其他实践课学习到的一些知识。
  2. 相比于上学期,自己的编码能力确实上升了一点点,也感受到了浓厚的软工团队氛围。
  • 哪些方面还存在哪些不足
  1. 可能是由于缺乏沟通,在软工后期不是很清楚团队的需求,导致与团队脱节,没有在最后的时刻尽自己的努力去帮助队友完成beta版本(虽然他们依旧完成的很好!),感到很可惜。

2)总结这门课程的实践总结和给你带来的提升,包括以下内容:

1、统计一下,你在这门软件工程实践中,完成了多少行的代码;

由于柯老师在平时就有让我们统计代码的习惯,就直接贴上去了。

第N周 | 新增代码(行)| 累计代码(行)| 本周学习耗时(小时) | 累计学习耗时(小时) | 重要成长
---|---|---|---|---|---|---
1 | 500 | 500 | 12 | 12 | 单元测试的编写
2 | 200 | 700 | 16 | 28 | Axure原型设计工具的使用、Python的文件读写
3 | 500 | 1200 | 20 | 48 | Python爬虫的编写、词云图的绘制和Python的文件读写、CRNN的复现
4 | 300 | 1500 | 20 | 68 | 尝试使用Pytorch深度学习框架
5 | 400 | 1900 | 14 | 82 | 绘制思维导图、利用Qt构建Linux可视化界面
6 | 100 | 2000 | 8 | 90 | 学习tenserflow框架
7 | 300 | 2300 | 20 | 110 | 学习tenserflow框架、复习CRNN
8 | 400 | 2700 | 20 | 110 | 学习Threejs框架以及webgl的相关知识,完成图形学实践


2、软工实践的各次作业分别花了多少时间?(做一个列表)

作业 花费时间/分钟
第一次作业 120
个人项目 1100
结对项目1 580
团队风采展示 120
结对作业2 1350
团队选题报告 100
团队课堂UML设计 300
团队需求分析报告 400
Alpha冲刺 1200
团队现场编程 480
团队项目评测 280
Beta冲刺 100
最终展示 100

3、哪一次作业让你印象最深刻?为什么?

不用说,肯定是Alpha冲刺啦!又不禁想起当时一起在院楼一起编码,一起吃饭,一起解决问题的日子。为了实现当初吹的牛逼,只能加班加点地肝。但是自己也收获了很多。


4、累计花了多少个小时在软工实践上?平均每周花多少个小时?同时贴出开篇博客“你打算平均每周拿出多少个小时用在这门课上”的回答

真的是花12学分的时间去做一个只有2学分的课程。平均下来一周应该有7个小时了。

希望能够有趣一点吧。平均每周10个小时我觉得可以达成目标

好像也不至于这么夸张诶...


5、学习和使用的新软件

  1. 原型开发工具:Axure
  2. 编写python的IDE:pycharm
  3. 绘制思维导图的工具: Xmind

6、学习和使用的新工具

  1. 原型开发工具:Axure
  2. 绘制思维导图的工具: Xmind
  3. 界面生成工具:QT

7、学习和掌握的新语言、新平台

  1. 深度学习框架pytorch和TensorFlow
  2. python
  3. CRNN模型

8、学习和掌握的新方法

  1. 使用CRNN识别照片中的文字
  2. 调整CRNN网络参数
  3. 学习CRNN模型的训练

9、其他方面的提升

  1. 团队合作能力的提高
  2. 抗压能力的增强

二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析

  1. 个人能力很关键,这个能力贯穿了软工的个人作业、结对作业和团队作业。这不仅会影响自己编码的时间,还会影响到团队的项目提交以及实现。
  2. 沟通也格外重要。由于自己的性格问题,和与其他团队成员宿舍的距离问题,导致了我在Beta版本时期与团队脱节。我以后将格外注意这个问题,希望其他人也能注意到。

三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,对于同期的TA们,对于后来的学弟学妹:

1)你有什么想建议、告知和期许想要告诉他们呢?

虽然是花12学分的时间去做一个2学分的事情,但是项目完成后的成就感是其他课程所不能替代的。

2)特别地,特别地,下一届要不要中途换队员(强制的、彻底的从一队换到另一队)?假设依旧是一个90+人数的大班

这么有意思的想法,肯定要去实现呀!

3)身在一个格外大的班级,竞争强劲,你认为一个组的人数应当在多少比较合适?

我觉得6-7个人足矣。

4)个人/结对/团队作业应该控制在怎样的规模?

我觉得应该把结对和团队作业的规模再扩大一点,把个人作业的难度缩小一点。毕竟这个课程更加看重团队合作的能力和工程的实现。可以要求团队作业的实现更加规范化和文档化。

5)这学期下来,你最感谢的人是谁?有什么话想要对TA说呢?

我很感谢董钧昊同学,在我忙于其他实践的时候,能够帮助我实现软件的相应功能和完成有一些我该完成的事情。


四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)

  • 萌芽阶段:这一阶段大概对应着我们从组队开始到冲刺时的情况,在这个阶段队员们都在学习相关的技术,虽然自己曾经用CRNN实现过对商店名的识别,对项目实现可能碰到的问题还没有一个非常清晰的认识。

  • 磨合阶段:这一阶段对应我们团队现场编程及之后的两次alpha编程,团队现场编程将我们团队当时存在的问题暴露了出来,这也是组内成员提出疑问最多的一个阶段,不过很庆幸团队成员直接能够相互理解,对项目的疑问也能通过当面交流指定解决方法,从而度过了团队的磨合阶段。

  • 规范阶段:从第六次alpha冲刺开始,我认为我们团队进入了规范阶段,我们在这时已经完成了项目的接口文档撰写、代码规范的约定、版本控制规则的制订,与此同时大家对项目所期望达成的目标有了清楚的认识,对自己负责的部分应该达成怎样的效果也了然于心。

  • 创造阶段:我们的团队在beta冲刺阶段一定程度上触及了创造阶段,在beta阶段我们相比alpha阶段添加了4个全新的功能点,每个队员在明确了自己的任务后项目便开始了“并行开发”。

五、怎样证明你学会了软件工程?

1)研发出符合用户需求的软件

由于服务器受限(贵的服务器买不起,差的服务器算法跑不了,所以只能把服务器搭在本地),所以没有什么用户,也不知道符不符合。但是我们几个用着挺开心的。

2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件

我们团队有使用燃尽图记录团队所需完成的任务和已完成的任务。

使用Github上传代码



成果展示


3)并且通过数据展现软件是可以维护和继续发展的

很可惜这个似乎我们组并没有考虑到这一点。

4)对着这个检查表:http://xinz.cnblogs.com/p/3852177.html 检查一下,自己如果去企业面试,这些常见的问题是否都能回答,并在此总结。

这些问题大体都回答不上来,关于技术问题,由于自己没有哪门技术是非常深入系统学习过的,所有会的语言还都是简单入门,要做东西时还得边查阅资料边做,以后去面试前应该还要再系统学习下所要从事的方向。


七、个性发挥,包括图文、照片和创意等

我爱柯老师(破音)!献上柯老师最爱的水饺!

posted @ 2019-01-10 18:07  sungam  阅读(371)  评论(2编辑  收藏  举报