zoukankan      html  css  js  c++  java
  • 高级软件工程实践总结

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

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

    这次实践尝试了很多新的工具和框架等等,但是因为毕竟是第一次使用,而且时间也有限,所以在实践过程中,有挺多地方没应用好,但同时也通过课程实践过程中的各种坑,才发现如何才能更好地使用,相信在之后再次使用的时候,能够更好地使用。但同时也是因为前期的需要学习的内容过多,而且同组的人基础也比较差,前期的安排没跟上,导致后期不断赶工,也影响整个过程中的管理和安排以及项目的进度,这是这次实践的一大遗憾吧,应该说是我实践中的重心没把握好。
    

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

    • 统计一下,你在这门高级软件工程实践中,完成了多少行的代码;
      整个项目的代码量差不多新增4.3W,删除2W,净量大概2.3W。由于前期框架搭建基本由我一个人完成,然后过程中由于其他成员对这块的开发不熟,大部分代码都是由我编写,大概应该占了60%,差不多1.4W的代码量吧。
    • 高级软工实践的各次作业分别花了多少时间?(做一个列表)
    作业 时间 作业
    高级软件工程第一次作业 2h 高级软件工程团队第一次作业
    高级软件工程第二次作业 8.5h 项目选题报告(团队)
    高级软件工程结对第一次作业 9h 团队项目-需求分析
    高级软件工程结对第二次作业 24h Alpha冲刺
    设计模式第一次作业 5h 事后诸葛亮
    设计模式第二次作业 5h Beta冲刺
    设计模式第三次作业 4h 高级软件工程实践总结
    • 哪一次作业让你印象最深刻?为什么?
      Alpha冲刺,因为这阶段是最艰难的时候,由于学习占用了大量时间,导致花了大量时间加班赶工,但是最后交付出的成果还是不够好,这是前期没安排好的一个惨痛的教训。
    • 累计花了多少个小时在高级软工实践上?平均每周花多少个小时?
      两次冲刺累计150个小时,不过在Alpha冲刺和Beta冲刺中间还有两周,也是花了大量时间,加起来差不多有250个小时,一共5周,平均每周50个小时。
    • 学习和使用的新软件;
      Axure RP Pro
    • 学习和使用的新工具;
      gradle,webpack
    • 学习和掌握的新语言、新平台;
      nodejs, vue,element-ui
    • 学习和掌握的新方法;
      后台纯java配置、NABCD 法需求分析、团队协作方式等。
    • 其他方面的提升。
      对项目管理有了初步认识了解以及简单实践。

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

    团队实践中,要有一个统一的团队规则,特别是每个人有自己的编码习惯,这时候代码规范等就需要统一,这样才能更好地进行成员间的交流。而且之间要是独立的可以并发地进行开发,前期要切分好模块,耦合性降低,以便能同时开发,不要出现在开发一个模块的时候一直在等另一个人的,延误开发进度。或者实在不行的情况下自己模拟数据进行开发。同时需要互不影响,特定模块由该模块的负责人进行修改,而不是我发现你这里错了,我就帮你改了,这样一是可能会导致代码冲突,二是可能会导致bug被反复修改,最后改得面目全非,而且做了很多无效修改。
    

    三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?

    做好花费大量时间的准备,还有组队和选题要提前准备和安排,因为读研的有一些是跨专业过来的,对编程不了解,另外不同人可能之前做过的领域不一样,比如做安卓或者做web,用的工具和语言等等也可能不一样,提前商量好然后统一之后进行学习,可以在后面的团队作业中专注于项目的开发和管理,而不是慌忙地进行学习。
    

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

    刚开始就是萌芽阶段,磨合阶段还好,因为组内成员中我只有我之前是主要做web开发的,所以没有大的冲突,只有在数据库设计的时候有过一些冲突,不过也是比较友好地解决了,然后就是比较顺利地进入规范阶段,不过由于学习的东西比较多,他们在编写的时候还是常常会找我解决,不能完完全全独立工作,还没到创造阶段。
    

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

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

    这个没有做到,因为毕竟是期末了,当初找测试人员的时候就处处碰壁,期末也没有什么课程或者比赛之类的协作,基本找的人不是在忙论文、忙复习就是在忙实习,beta之后没有足够的活跃用户量。
    

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

    这个在整个软件工程的作业中有体现,除了Alpha阶段由于学习新技术和工具的原因完成度不够,其他阶段都能按要求达到。
    

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

    通过github管理,可以维护。
    

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

    参考论文文献:

    [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

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

  • 相关阅读:
    POJ 1330 Nearest Common Ancestors(LCA Tarjan算法)
    LCA 最近公共祖先 (模板)
    线段树,最大值查询位置
    带权并查集
    转负二进制
    UVA 11437 Triangle Fun
    UVA 11488 Hyper Prefix Sets (字典树)
    UVALive 3295 Counting Triangles
    POJ 2752 Seek the Name, Seek the Fame (KMP)
    UVA 11584 Partitioning by Palindromes (字符串区间dp)
  • 原文地址:https://www.cnblogs.com/bugLoser/p/8168771.html
Copyright © 2011-2022 走看看