软件工程实践总结

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

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

  • 在软工实践之前,我可能只是个只会在windows下面跑跑代码的小白,实践课之后,成为了会在Linux下面跑下代码的小白。因为在做APP项目的过程中,我是我们组负责搭建服务器的,所有服务器的环境配置啊什么的,我大部分都是学习新的知识来完成,中途遇到了各种bug,好在最后都解决了。编码能力提升可能没有那么大(但是也有提高),但是Linux系统倒是玩了一遍,不,是被Linux玩了一遍==。 这是当初的期待中没有想到的。
  • 当初期待的是提高编码能力,但是现在来看,远不止提高编码能力了,其他的能力就在下面再说吧。
    不足的话我觉得自己编码能力还不够,还要加强,还有时间安排的能力也是很不够,常常会捡了芝麻丢了西瓜这种,虽然这学期没有18门课,但是也有16门==。一开始其实也很犹豫,要不要选软工(因为其他选修课选完我学分已经够了,选了软工分数就超了1.5了,但是后来选了,而且也没有退选,虽然中途特别累的时候会骂自己,当初为什么要选!!!为什么不退选。。。但是好歹我是坚持下来了。而且,现在来看,也没有为以前的选择感到后悔,因为,这门课真的是一门特殊的经历,当初没有退选可以说是一个正确的决定。

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

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

大概1100行,后台那边我编码不多,主要是完成CI框架的整个环境搭建,还有就是一些公共函数/用户模块的编码。

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

编号 作业 时间(h)
1 第一次作业 2
2 数独作业 20
3 结对作业-原型设计 8
4 结对作业-部门匹配编码 20
5 团队作业-同学录 10
6 团队前期作业 15
6 团队作业-alpha开发 70
7 团队作业-beta开发 30
8 个人技术博客 3
9 华为云测评 7
10 总结博客 5

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

应该就是alpha展示的前一天吧,整个队伍一起改bug到凌晨的那种,然后等待队友的GIF图,鱼骨图,来完成展示博客。

4、累计花了多少个小时在软工实践上?平均每周花多少个小时?

总计 190,后面的时间其实差不多是自己估计的,感觉也差不多有这个时间吧,一开始花的时间不多,到后面alpha阶段就是每天都在写软工,每天可能都有5~6小时在写。190/16≈12。

5、学习和使用的新软件;&& 6、学习和使用的新工具;

墨刀processonpostmanapizzgitpowerdesignersiege

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

leangooLinuxJWT,爬虫相关的知识,包括正则/cookie等

8、学习和掌握的新方法;

  • 字很重要,图也很重要。作图可以是整个编码变得清晰,比如后端架构,比如数据库类图等等。
  • git团队编码协作,非常强大的工具

9、体会

  • 我的朋友和我的对话。

    我和他说了无数次我在做软工,其实微信还有,没有截图。
    怎么说呢,这么实践课是真的占据了这学期的空闲时间,选了实践课之后,软件工程的那位朋友只要和我聊天,我都说我在写软工,他说他们软工可能都没有我们这么累orz。以前周五晚上一般都会出去浪==,这学期因为软工就老老实实的呆在宿舍了。朋友喊我看寻环游记我也没去,最后是自己一个人跑去看了。
  • 舍友在做软工时候,发了好几次的朋友圈,都是这个配图

    从掉的几根头发,到掉了越来越多的头发orz。
  • bug出现定律:
    alpha/beta展示前一天,出bug的可能性非常大!!!你永远不知道bug什么时候会无缘无故的出现。

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

  • 一开始的选题其实很重要,如果有好的想法,会让团队更有动力去完成一个属于大家的APP吧。
  • 整个团队是时间规划非常重要,熬夜去完成任务是一件非常糟糕的事,这也是团队时间安排出现问题的体现。我们团队有过,但是时间的合理安排真的是一个难题,都说deadline是第一生产力,但是我想如果有人能够有极强的自制力,可以非常合理的安排好时间,那事情估计也就成功了一半吧。
  • git的使用非常重要,非常重要,非常重要,软工之后,一定要把git使用起来。

三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?

  • 首先你要明确,软工实践真的需要花费特别多的时间,也可以学到非常多的东西,我经历过,我觉得收获>>付出的时间。
  • 多花心思在选题上面,这个app可能是你们开发的第一个app。好的选题会让队友都有动力的想要去完成你们的作品。
  • 不要担心实际写起来有多难,其实团队写一个app并没有你们想象的那么困难。
  • 不要把老师布置的git任务当作是作业,git的版本控制/代码托管/团队编码一定要用起来。
  • 换不换队员对于优秀的团队,可能是不想换队员,比如每个团队人人贡献比较均匀,但是对于一些团队,大部分编码都是由团队中的几个人来写的,换队员一般也是贡献最少的换出去,所以我认为换队员的意义不大。如果老师想要我们体会工作上的人员调配,即使调配了,如果队员是整个团队中贡献率最小的,那换队员对那个团队似乎也是没有很大损失。

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

阶段 是否经历过
萌芽阶段
磨合阶段
规范阶段
创造阶段 ×

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

  • 团队的需求规格说明书文档需要非常详细且具体。里面应该包含项目规划/需求/设计等等,设计还可以具体到数据库的表等等。

  • 团队的编码规范
    这些都是需要非常详细的文档。
    https://github.com/FzuYibao/FzuYibao/tree/master/document

  • 使用团队协作工具,将任务具体化,比如teambition/leangon的使用,还有是燃尽图的持续更新,这些可以让团队的分工合理化,并且是团队进度明显化。
    这是我们团队的leangoo使用

  • 这是后台的编码
    https://github.com/firstso/yibao_backer

  • 还有我们的接口文档(部分截图)

最后,感谢老师,感谢助教(从助教那边学到了非常多,非常感谢)。
再见,软件工程实践!

posted @ 2017-12-27 18:26  tyfu  阅读(374)  评论(5编辑  收藏  举报