软件工程实践总结

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

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

    1. 学到了很多代码规划和规范的知识,遇到一个问题不再是像以前一样埋头就开始写代码,也不再是写完代码就啥也不管。
    2. 同时学到了关于Android开发的知识,对于APP开发也有了较为粗浅的认识。也学会了很多新软件,新工具和新方法
    3. 也存在着很多不足,不仅仅是技术上的,还有关于管理自身的
  • 总结这门课程的实践总结和给你带来的提升,包括以下内容:

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

      • 统计了一下,大约是2216行
    2. 软工实践的各次作业分别花了多少时间?(做一个列表)

      第一次作业——准备 40分钟
      第二次作业——个人项目 930分钟
      第三次项目——结对项目1 990分钟
      第四次作业——团队展示 50分钟
      第五次作业——结对作业2 1220分钟
      第六次作业——团队选题报告 40分钟
      第七次作业——需求分析报告 240分钟
      第八次作业——UML设计 220分钟
      Alpha冲刺 2520分钟
      第九次作业——抽奖系统 340分钟
      Beta冲刺 1020分钟
      最后一次作业——个人总结 140分钟
    3. 哪一次作业让你印象最深刻?为什么?

      • UML设计,因为那次是由我担任临时组长,所以印象会比较深刻
    4. 累计花了多少个小时在软工实践上?平均每周花多少个小时?同时贴出开篇博客“你打算平均每周拿出多少个小时用在这门课上”的回答

      • 累计花了129.2小时,平均每周花6个多小时
      • 开篇博客:我愿意花费足够多的时间去完成这门课的作业和达成这门课的要求,业余时间我会去学习新技术和学好英语。
    5. 学习和使用的新软件;

      • AndroStudio
      • Visual Studio
    6. 学习和使用的新工具;

      • StartUML
      • Axure RP
    7. 学习和掌握的新语言、新平台;

      • Java
      • Python
      • GitHub
    8. 学习和掌握的新方法;

      • 单元测试
      • PSP表格
    9. 其他方面的提升。

      • 了解到更多关于软件团队和软件开发方面的知识

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

  • 个人项目中主要学会了单元测试和性能测试的用法和了解了单元测试的重要性

    img

    img

  • 结对项目中主要学会了Axure Up8的使用和一些算法(如字典树)

    img

  • 团队实践中主要学会了AndroidStudio的使用和熟悉了JAVA语言。编写了界面和功能,了解并学习了数据库的对接。同时也尝试了github的使用。

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

  • 你有什么想建议、告知和期许想要告诉他们呢?
    • 软工实践很累也很锻炼人,希望他们也能来"苦一苦"。
  • 特别地,特别地,下一届要不要中途换队员(强制的、彻底的从一队换到另一队)?
    假设依旧是一个90+人数的大班
    • 不要,换队都是虚的,努力提升自己的本领才是最重要的。
  • 身在一个格外大的班级,竞争强劲,你认为一个组的人数应当在多少比较合适?
    • 6-8人
  • 个人/结对/团队作业应该控制在怎样的规模?
    • 平时可以多点,期末可以少点。
  • 这学期下来,你最感谢的人是谁?有什么话想要对TA说呢?
    • 这门课下来,我最想感谢柯老板和助教学姐们。虽然这门课很苦,很累,但确确实实从中学到了许多很有用的知识,是以往的实践课程中所体会不到的。还是很感谢柯老板和助教学姐们能提供一个这样的机会。

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

  • 我们的团队应该处于磨合阶段,团队的规范还没有很好的建立起来,团队间的。比如最开始编写代码团队是没有使用Github的,也没有各类文档,代码命名和数据库也没有规范,没有其他组做得那么好。团队间也缺乏足够的沟通,各自间比较散漫和不严谨,也反应了我们的不足。

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

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

必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件

  • 未能做出满足要求的软件

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

有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄

  • 对于属于我的任务,我有自信能在合理的时间内妥善完成,最终的完成结果还是要看团队成员共同努力

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

而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
4)对着这个检查表:http://xinz.cnblogs.com/p/3852177.html 检查一下,自己如果去企业面试,这些常见的问题是否都能回答,并在此总结。

对于里面提到的问题感觉都无法清晰地回答,也反映了整体知识的不足。这也给了我沉头一棒,虽然软工实践结束了,但我应该在这个寒假更努力地学习知识。

六*(选做)、阅读软件工程中关于代码质量的的经典论文,从下列文献中选择一篇或若干篇,结合自己的实际做一个阅读笔记(例如,自己写的代码质量如何,是不是一个大泥球,如何衡量自己代码的质量)?从以下参考论文中选择一篇或若干篇:

参考论文文献:

[1] Stamelos I, Angelis L, Oikonomou A, et al. Code quality analysis in open source software development[J]. Information Systems Journal, 2002, 12(1): 43-60.

[2] Boehm B W, Brown J R, Lipow M. Quantitative evaluation of software quality[C]//Proceedings of the 2nd international conference on Software engineering. IEEE Computer Society Press, 1976: 592-605

[3] Samoladas I, Stamelos I, Angelis L, et al. Open source software development should strive for even greater code maintainability[J]. Communications of the ACM, 2004, 47(10): 83-87

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

img

posted @ 2019-01-10 20:31  fdhyj  阅读(276)  评论(0编辑  收藏  举报