• 最终作业:软工实践个人总结


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

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

    开篇博客链接

    (5)针对上述问题(2)、(3)、(4),你对这门课的期待是什么?你打算平均每周拿出多少个小时用在这门课上,以达成你的期待以及你在(2)或(3)或(4)上的目标?

    我的期待就是,能够好好地开发一个有趣的东西,而不是为了赶工期而找好实现的东西做(数据库的教训),能去系统了解软件工程开发的流程,包括需求、版本控制、文档、展示答辩还有进度控制。

    • 达到的期待

      • 我们的产品相对来说还是十分有趣的!(大言不惭,同时在开发周期页跟预计的差不多
      • 在整个过程中,是一段扎扎实实写代码的经历,感觉还不错
      • 纵观每一次的答辩,我们组的答辩成绩都处于较为前面的水平
    • 未达到的期待

      • 在开发的代码能力上觉得需要跟进一步的学习
      • 版本控制和相关工具的高端操作上面我还学习得不够
      • 有时候会发现太多的精力反而花在作业文档上面
    • 意想不到的期待

      • 重新认识了好多超优秀而原来了解和接触并不多的同学

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

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

    参照自己的PSP表格,包括个人及结对项目在内,大致完成了大约2200行左右的代码

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

    个人项目 结对项目1 结对项目2 uml设计 Alpha 现场编程 Beta 项目测评
    1200 600 2000 600 4000 800 600 500

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

    印象最深的还是现场编程的那次作业,因为使用的技术栈大家都是刚刚上手,于是在前端上就耗费了挺多时间。这让刚刚开始开发的我们陷入了很僵硬的局面,士气也有一定的下降。那次的作业也因此没有完成的很好,但终归最后的我们坑都爬出来了。

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

    • 当时似乎没有明确回答愿意花多少时间在上面,但我持有的态度是只要我认为有意义事务,我就会去尽可能地用时间去投入,总体上说本次实践还是十分符合期待的。

    • 根据PSP表格上的记录,累计消耗280小时左右,平均每周处于15~20小时之间。

    5、学习和使用的新软件;

    • 设计工具:Mockup Procreate

    • 开发工具:PyChram QtDesigner

    • 库:好像数不清了…

    • 使用但不是新使用的工具:墨刀 PS AI VsCode GitHUb ProcessOn

    6、学习和使用的新工具;

    • 设计工具:Mockup Procreate

    • 开发工具:PyChram QtDesigner

    • 库:好像数不清了…

    • 使用但不是新使用的工具:墨刀 PS AI VsCode GitHUb ProcessOn

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

    • git 命令行
    • Python更深入了些,尤其在PyQt上

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

    • 测试部分是我之前几乎没接触过的
    • 对代码的管理
    • 在写代码的过程中掌握的一些新的tips

    9、其他方面的提升:

    • 抗压能力
    • 消解负面情绪的压力

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

    团队合作

    有一些要注意的点:共识 分配 换位 沟通

    共识:
    • 一定要把目前团队着手的任务状态讲清楚,并且让大家都有一个全局的了解。
    • 同时对于问题的解决路径在分工前谈好。
    • 做好任务的规范
    分配
    • 保证物尽其用、人尽其才
    • 尽量的细粒度
    • 团队内人员最好不要出现重复的劳动
    换位
    • 当自己的任务完成时,要注意好是否符合达成共识中的规范
    • 在保证规范的前提下,是不是能在自己的领域中做一些小小的优化,让别人在处理时能更便利,以提高团队的效率
    • 不要仅仅思考自己的部分,相反应该适当关注整个全局,将大脑让给PM或者负责人(这在团队的讨论中很常见),事实上在学生团队中(尤为在课设)产品、事务的走向大家有权利也有义务来决定,一味地将思考的任务放在负责人身上是一种不负责的行为,也不利于团队取得更好的结果。
    沟通
    • 即使向团队说明自己的进度和困难
    • 有异议和想法应该积极在会议中提出并着手解决

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

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

    • 以前我们有得选,现在你们没得选

    • 当深渊凝视你的时候,大胆地瞪回去,当你回望,它也就那样

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

    私以为这要视情况而定,在项目真正开始编码前,换组这件事的成本都会处于比较可控的状态下。既然是软工实践这种较为开放的课程,还是不要禁掉这种渠道吧。所谓凯撒归凯撒,成员换组这种事还是让同学们用叫来投票,让市场来决定。

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

    我认为处于6~9人会比较合适

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

    团队作业中有些花里胡哨的东西反而过多占据了精力(比如两天一更的冲刺博客),事实上敏捷开发的人员是处于专职工作的,而我们在本学期课还尤为多。长期都处在为软工疲于奔命。

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

    综合考虑应该是张扬同学,确确实实地扛起了这个团队的大旗,同时在面对项目停滞时能够解决好难题。正如大魔王说的那样,他是本学期中最均衡的一个人。

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

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

    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

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

  • 相关阅读:
    setjmp()和longjmp()函数
    C语言过程活动记录
    【剑指Offer】字符串的排列
    python剑指offer系列二叉树中和为某一值的路径
    二叉搜索树的后续遍历
    如何设置学习率
    各种机器学习算法的优缺点(未完成)
    机器学习中梯度下降法和牛顿法的比较
    特征图大小的计算
    为什么L1稀疏,L2平滑?
  • 原文地址:https://www.cnblogs.com/wuji-walden/p/10242261.html
Copyright © 2020-2023  润新知