zoukankan      html  css  js  c++  java
  • 福大软工 · 最终作业

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

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

    开篇博客 :不是很了解,谈不上期待。
    虽然一开始没有什么期待和目标,但是经过这几个月的学习,有了想要完成项目的希望和目标,想要有对整个项目流程熟悉的把控能力。不过非常遗憾我们的团队到最后也没办法拿出像样的东西出来。我虽然完成了组长交代的任务,但是也没有什么办法。

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

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

    (不计算删改的代码)

    • 个人作业 + 结对作业:250行java
    • 团队现场实战: 250行c++
    • 团队作业: 550行java + 520行xml
    • 共 1570行 (太少了)
    2、软工实践的各次作业分别花了多少时间?(做一个列表)
    (记得不是很清楚了)
    
    • 个人作业: 10 小时左右
    • 结对作业: 12 小时左右
    • 团队作业: 80 小时以上
    3、哪一次作业让你印象最深刻?为什么?

    团队现场实战
    原来的团队做事效率低下,不仅没有分配好工作,整个团队也就三四个人在写代码,其他的在摸鱼。
    做了好久,最后团队还是很残念程序不能达到运行要求。
    最致命的我忘了交博客,错过了时间,白弄了。

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

    开篇回答:倘若时间充裕,不影响正常作息,都可以放在这门课上。

    5、学习和使用的新软件;
    • Android Studio
    6、学习和使用的新工具;
    • processOn
    7、学习和掌握的新语言、新平台;
    • xml(编写界面)
    • github
    8、学习和掌握的新方法;
    • 界面编写的方法
    9、其他方面的提升。
    • java 又熟练一点了

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

    • 经验总结 : 无论做什么项目都需要规划好怎么做,每一个步骤都需要搞的清清楚楚的,甚至细化到每个定义类型的名称。最开始的规划是绝对不能马马虎虎,不能随随便便,不能啥都不管先弄再说,这样只会是浪费时间。

    个人项目和结对作业都在我能力之内,虽然我没做什么规划,也能正常地完成,只不过时间可能会有些许损失。
    团队作业就不一样了,如果没有规划就会一群苍蝇到处乱撞,最后什么都没办法完成。
    实例:就从我最初所在的团队说吧。团队现场编程实战的时候,组长对任务没有把握,就说你们几个弄前端,你们几个弄后端,然后我们就开始弄了。我按要求开始写代码,然后旁边一个队员和组长就看着我做,他们什么都没做,看了一上午(????)。因为我只有一个人,效率又不是很高,只完成了后端一部分功能。后来第二天聚在一起说要整合,一个前端拿出来一份,把后端的一部分和我重叠的功能也写了出来(??)。然后其他人呢是啥也没干的样子。我是真的一头问号。

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

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

    • 跟着有能力的项目负责人,不是建议,是必须,不然就是什么都没法完成的下场。
    • 做自己能力内的事,接自己可以完成的任务,不要揽做不了的活

    2)特别地,特别地,下一届要不要中途换队员(强制的、彻底的从一队换到另一队)?

    假设依旧是一个90+人数的大班

    组员没用还能忍,组长没用的话强烈建议换

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

    不应该单纯用数量来决定,而是依靠组内成员的能力来决定
    在所有分工都有人承担的前提下

    • 依照其每个分工成员能力的不同对各个分工填充一定数量成员
    • 使每个分工都能正常的完成
    • 在每个分工都能完成的前提下成立一个小组

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

    • 个人项目 小规模能力测试
    • 结对项目 大规模设计思路,小规模功能实现即可。
    • 团队作业 规模应该跟参与人数挂钩。

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

    安琪助教。啦啦啦

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

    我呆过两个团队,第一个团队处于萌芽阶段,组长实在是不懂,无法分配任务,搞得大家连做什么都不清楚,最后分崩离析。
    第二个团队,也应该只处于萌芽阶段,我在进入这个团队之前并不清楚其实际情况,之后才发现与我原先所在的团队并没有太大优势。组长也是勉强回答了做什么的问题,勉强为大家分配了任务,但是实际上,没有什么规范,大家都不知道怎么做。组长没有对细节的地方进行一些规划,导致最后大家的程序在拼凑的时候遇到的巨大的问题无法解决。而且组长分配任务太过随意,设置了五个前端,然而前端并不需要那么多,结果导致界面呈现无数风格(当然主要是组长没有对需要呈现的效果作出要求,而是让我们做而已)。
    我所处的两个团队的组长都没有任何经验,没有对项目的把握,更加不会分配任务(当然其他队员也不懂,所以才担任的组员呀),我怀疑就没有设计阶段,经常处于不知道做什么的情况,最后都没有什么好的结果。

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

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

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

    我们的软件甚至不能运行,询问队长时给的回答是 解决了 能解决的问题 但还是存在闪退问题。

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

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

    我们没有定时的进度发布,只被分配做的任务,没有交代怎么做和做成什么样。

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

    而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料

    我把我写的代码对每个功能都详细的进行了分块,可以保证维护和继续发展没有问题,其他人我就不知道了。

    多数回答不了。

  • 相关阅读:
    PAT1038
    PAT1034
    PAT1033
    PAT1021
    PAT1030
    PAT1026
    PAT1063
    PAT1064
    PAT1053
    PAT1025
  • 原文地址:https://www.cnblogs.com/YooRarely/p/10239502.html
Copyright © 2011-2022 走看看