软件工程实践个人总结

这个作业属于哪个课程 软件工程2020秋学期
这个作业要求在哪里 个人总结
这个作业的目标 总结本课程学习收获、心得与反思
学号 031802113
  • 对于这次课程你对你自己的表现满意吗?为什么?

    大体满意吧。虽然细节上与设想有诸多不同,但大方向——学技术、学协作还是把握住了。在现有条件下,也可以说是尽力而为了,没什么遗憾或后悔的。

  • 通过这门课,你掌握了什么工具、技术?

    以下按照初次接触该项工具或技术的作业列出。其实也不敢说掌握,只能说初步接触了吧。

    • 个人编程:Git、JSON、SQLite

    • 结对编程:墨刀、HTML、CSS、JavaScript、Vue.js、Element UI、Mocha、UML 图

    • 团队编程:Flask、Uni-app、uniCloud、HBuilderX、微信小程序开发工具

  • 在课程中你经历了什么挫折或困难?你是怎么解决的?

    • 每次拿到作业都感觉是全新的内容,无从下手。经过这一学期的训练,比较习惯和接受“做中学”的模式了。

    • 因为项目比以前复杂得多,很多时候会出现莫名其妙的 bug。虽然影响心情,不过基本也耐着性子改了,或者避开了。

    • 时间实在太少。本学期我有 18 门课,32 学分,其中 6 门要组队完成大作业。软工实践需要一定难度以与实际接轨,课程安排的不合理也不是这门课的锅,这我完全理解并同意,但客观情况就是如此。只剩一点可怜的课余时间的我再怎么挤时间,也没办法避免熬夜,要么就多少要牺牲作业质量了。

    • 团队协作困难。一方面是没有经验,过去的四个学期从来没有课内的团队合作项目。(除了政治课)另一方面大家水平参差不齐,让所有组员都学会往 GitHub 上传东西都花了很多时间,更别说代码质量了。即使大家都有足够的编程能力,设计理念和风格也会有比较大的差异,整合成果时很难统一。现场交流能部分解决问题,有时也得妥协。

  • 在课程结束后,你有什么收获和心得?

    • 接触了蛮多新技术和工具的,上面有列出。
    • 习惯并接受了“做中学”的模式。
    • 初步了解了团队协作的模式,体验了实际项目开发的流程。
    • 增强了时间管理能力和抗压能力。

    总的来说,软工实践感觉就是公司中实际项目的微缩版,让一直局限于书本(过时的)理论知识的我首次体验到了实际工作项目开发的感觉,大有裨益。

  • 你在这门软件工程实践中,一共完成了多少行的代码?

    没仔细算,很多代码是改的或是项目自动生成的,也不是从头写。大概翻了一下两千多行吧……如果按比较严格的算法就一千多。

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

    总计 200 多小时?平均也不知道算几周比较好……反正干活我也不会掐秒表,估计一周 15-20 小时吧。每天有空就会看看,干活的时候基本一晚上或一下午都给它了,总得 4-5 个小时吧,交作业那天凌晨还得熬个夜通个宵啥的,这么算应该不过分吧?

  • 对于团队协作的心得或反思。

    这个之前写过一个小作文了哈(点这里),这里写一点其他的。

    我们小组在冲刺前期,考虑到希望大家都能参与编码、学到技术,且大家课余时间都比较少,组长安排所有人都参与前端页面的编写,每人 1-2 页。这一步我们确实做到了全员参与,但不等于说每个人的成果都能用。集成的时候会发现一部分页面质量很差,根本不能用。剩下的虽然能用吧,但是风格各不相同(我们已经统一指定了组件库,但是好像并没有什么用),整合调整也耗费了大量的工期,后期也让个别组员转去做编码以外的任务。虽然就课程目的而言,个人确实很赞成全员编码的模式,但在这种情况下,很难不认为,虽然这种模式能让大家都学到东西,也比较有团队的感觉,但就作品质量而言,多半赶不上三四个大佬爆肝的成果。尤其考虑到今年的 5+5 模式,虽说必修模式下这样做客观上促进公平,就我们组来看组长也确实带了一些人,但要做到 10 人或 11 人都给出足够有效贡献的程度,恐怕还是太理想了。我们的分工能力也没有强到能够给编程能力稍弱的同学布置既不困难、又有作用的任务。这一点算是我的困惑吧。

    另外一点收获是细分小任务的完成期限一定要明确,及时比对调整,避免拖延导致无法挽回的后果。

    在大多数情况下,面对面交流、编程的效率还是比线上交流高一些。

  • 对于软工实践课程及助教工作,你有哪些建议?

    非常感谢两位助教,在工作如此繁忙的情况下还抽出时间给我们打分与评论,甚至凌晨还在回复,给出了很多宝贵的建议。

    • 个人认为对于一个时间较短的项目来说,选用微信小程序的形式是合理的,对比其他班选择 Android app 开发的同学确实感觉轻松很多。但如果要求上架的话,建议事先比较明确地说明一下审核的常见问题。因为项目开发周期很短,demo 又不能提交审核,如果开发基本完工后审核被拒,很可能很大一部分已完成工作要推倒重来,甚至可能要砍掉核心功能,而且未必能赶上项目截止时间。(比如很多组做的分享、评论都可能因为涉及社交被拒,还有我们组没做游客入口也被拒了)如果不考虑这些,允许只提交体验版或是自由选择项目形式也是个办法。
    • 建议更早地将每周的任务安排给出,便于安排项目进度和前置学习。今年的冲刺时长实际上可以算是一个月了,但这是在冲刺中途才多次延长的,而且表述得不是非常明确。这导致我们多次大幅调整项目进度,前期因限时过短进行的不少赶工在后续看来也没有必要。因为团队的进度安排并不能随心所欲,还是要根据课程安排进行。如果能较早给出,团队的计划也会更从容与合理。另外,个人认为冲刺时长今年延长到一个月是比较合理的,可能看起来有点多,但没有经验的团队需要足够的试错时间,我们这学期的课程和任务安排确实也不太允许每个人都全身心冲刺。当然中间可以布置进度跟踪与汇报的作业。
  • 你的未来规划。

    应该是考研吧,当然不成功的话就直接就业了。这学期主要在搞前端,所以有空也学学后端吧。

  • 完成班级群的 SE_Final_Skill_survey 表格。

    你在这门课平均每周花 15-20 小时 (包括上课时间)。
    你在这门课中写了大约 2000-3000 行代码 (不包括注释、空行、单字符行)。

    请填写你上课前后的水平评估。填 [1..10] 数字即可,数字参考:
    1: 最低水平;3: 基本的书面知识;
    5: 基本的理论和实践知识,可以通过企业的面试;
    6: 具有经实战考验过的技能,可通过最高水平企业的面试;
    8: 可以像专业人士一样自如地运用,能发表权威技术博客;
    10: 全面精通理论和实践,成为公认的专家。

    before the class after the class
    Skills/技能 assessment (1..10) assessment (1..10)
    Software Engineering(SE)Overall / 对软工整体的理解 1 4
    SE: Requirement (需求分析,典型用户,场景,创新) 2 5
    SE: Project Management (项目管理,spec) 1 4
    SE: Design (架构设计,模块化设计,接口设计) 1 3
    SE: Design (效能分析,效能改进) 1 2
    SE: Implementation (阅读代码的能力,实现,单元测试) 3 6
    SE: Test (测试方法、测试工具、测试实践、代码覆盖率) 1 5
    Software Tools (performance tool, version control, work item, TFS) 2 5
    Code Review/Writing Solid Code (代码复审/代码规范/代码质量) 3 5
    Programming Language (C/C++/C#/Java) (pick one language) 4 5
    App development Web/Mobile/PC (choose one) 2 4
    Task Plan, estimation and Prioritization (计划任务,估计时间和优先级) 2 5
    Task Execution (按照质量要求、按期完成任务) 4 5
    Work with others (协同工作,提供反馈, 说服别人) 2 5
    Presentation (报告项目状态,提出想法,写博客等) 4 6
    comments on other improvements (其它方面的反馈) 见上方正文
posted @ 2020-12-10 22:51  Akihiro  阅读(234)  评论(0编辑  收藏  举报