Loading

软工实践第八次作业(软件工程实践总结)

原博客

目录

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

1)对比开篇博客你对课程目标和期待,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?

  • 开学初的课程期望
    • 了解实际工作中软件开发的各个要点
    • 对项目的整个开发流程有一个全面专业的了解
    • 代码能力以及代码规范得到进一步的提升
    • 与团队协作开发一个完整的软件
    • 课程成绩处于中上水平
  • 课程期望履行情况
    • 达到目标
      • 老师教授的知识(尤其是需求分析和项目管理方面)非常详细且实用,使我认识到写项目不是请客吃饭,随随便便就能完成的
      • 亲手开发项目的经历让我揭开了软件开发的神秘面纱,软件开发对于我来说不再是一个完全陌生的事。我第一次真正把编程和实际结合起来,而不只是机械的完成题目
      • 团队协作十分顺利。在团队中,遇到的问题都能及时被大家讨论、解决;遇到的困难大家都会一起分担。
      • 初期成绩比较平庸,后期因为团队分数较高的原因分数还算不错。感谢我的队友带着我不断提高分数orz。
    • 存在不足
      • 在代码方面我觉得自己锻炼不足,2000行java和android代码虽然不少,但是我认为还是没有达到预期的目标

2)总结这门课程的实践总结和给你带来的提升

  • 1、统计一下,你在这门软件工程实践中,完成了多少行的代码
    有效代码:500+1000+500=2000行。
  • 2、软工实践的各次作业分别花了多少时间?(做一个列表)

作业 时间(min)
个人介绍(个人) 100
词频统计(个人) 760
原型设计(结对) 1000
团队展示(团队) 20
爬虫及词频统计(结对) 1600
项目选题(团队) 500
需求分析(团队) 500
校友录(团队) 180
Alpha冲刺(团队) 3000
案例分析(个人) 200
事后诸葛亮(团队) 30
Beta冲刺(团队) 1000
实践总结(个人) 180
  • 3、哪一次作业让你印象最深刻?为什么?
    Alpha冲刺。因为花了最多时间和最多精力在上面。
  • 4、累计花了多少个小时在软工实践上?平均每周花多少个小时?
    150小时,平均每周15小时。
  • 5、学习和使用的新软件
    Axure RP 8、Rational Rose、Android Studio。
  • 6、学习和使用的新工具
    JProfiler、ProcessOn、LeanCloud、Bmob、greenDAO、TeamBition、Git、Junit、Github。
  • 7、学习和掌握的新语言、新平台
    Markdown、Android。
  • 8、学习和掌握的新方法
    单元测试、性能分析、后端开发。
  • 9、其他方面的提升
    写博客能力、写文档能力、抗压能力、抱大腿能力团队协作能力。

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

团队项目实践经验总结

    我们团队开发的是一个Android平台的,带有图像识别功能的记账APP。我们一开始就定好了这个选题,首先记账软件开发难度可控,基本功能有很多相关代码可以借鉴,对团队中的~~我~~新手比较友好,易上手;其次图像识别功能本身对于记账APP就特别有用,而且同类产品尚未开发此功能;最后选择Android平台是出于使用人群的考虑,人们的日常生活离不开手机,随手记账也比较方便。
    在Alpha阶段我们团队的任务分配是一名前端、一名设计、一名算法和两名后端,我主要负责后端中的云端数据存储,根据同学的建议使用了LeanCloud平台。身为一名后端,主要就是和数据以及数据库打交道,在项目开始前我就出于个人兴趣钻研了不少内容并完成了demo的开发,因此在Alpha阶段工作比较轻松。但是由于自己是新手,所以每完成一个功能都要耗费大量时间而且代码质量也不高,最后几天整合代码的时候也浪费了很多时间。
    在Beta阶段里我的工作仍然是后端,感谢我的组长帮助我完成了很大一部分工作,由于使用了新框架,后端云也从LeanCloud换成了Bmob,本地数据库使用了greenDAO,因此学习新知识也耗费了大量时间,我们本可以在项目开发早期就完成这个工作的,如果能够重来一次的话,这是我最想改变的一点。Beta阶段的进度安排也存在不少问题,由于学业冲突的原因,主要工作都集中在了后几天,因此Beta阶段的质量得不到保证,我本因完成的功能也由于种种原因没有实现,这是我很大的遗憾。
    总的来说我认为我们的项目是比较成功的,虽然它体量比较小,功能也比较单一,但是它是一个完整的软件,而不是半成品,它能够实现大部分预期的功能,并且具有较高的使用价值。经过用户的使用反馈我们也认识到了许多不足,今后我们将继续完善它。

三、对下一届实践的建议和告知。对于后来人的期许。 要不要中途换队员?

  • 建议
    • 博客要认真写。如果是第一次学着写博客可能需要花一段时间学习,但是良好的博客编写能力对后来的作业以及以后的发展很有帮助。
    • 不会的多百度。上网找解答是一件很简单的事,但是从众多解答中一个个试出适合自己的那个也是很考验技巧的。一开始也许会找了一个晚上一无所获,但是不断积累经验以后一定会收益良多。
    • 先分析问题,不要急着敲代码。大部分情况下你都可以从网上复制代码而不是自己敲,虽然只会复制别人的代码永远不会有大的长进,但是通过阅读别人的代码你也可以学习别人分析问题的方法,有的时候比自己敲一个晚上有效率的多。
  • 告知
    • 写项目非常占用时间,选课前要做好心理准备。
    • 选择一个优秀的团队非常重要,团队中至少要有1、2个核心人物起领导作用。
  • 期许
    • 希望学弟学妹们能更早的做准备,早点接触软件开发,并且能借助这门课程把自己的能力进一步提升。
    • 希望能看到有趣的创意。
  • 要换队员。第一次听到Alpha冲刺结束要交换队员我真的觉得很鬼才,如果团队的核心人物被交换走的话应该会造成很大影响,而且被交换的同学可能也会不适应新的小组,因此我还是比较抵触的。不过不得不说这很真实,因为这是未来一定会遇到的事,我觉得还是先经历一下比较好。

四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?

  • 萌芽阶段
    接受了大佬的邀请参加了现在的团队,因为在我加入队伍之前基本选题方向就已经定下了(带图像识别功能的Android记账软件),所以初次见面大家熟悉了一下,就依据个人情况进行了人员配置(设计+前端+算法+后端x2)。
  • 磨合阶段
    在项目选题和需求分析的工作中,感谢组长的带领以及彼此对于团队的信任,团队成员磨合的十分顺利,大家各司其职一起完成了团队作业,并在报告中多次取得了较高的分数,因此团队士气高涨,气氛也比较轻松。
  • 规范阶段
    每次团队开会都根据讨论和分析制定了当前阶段每个人的任务分配和优先顺序,并采用了TeamBition进行项目管理。但在实际过程中,我认为还是存在很多问题的,比如开发前具体的框架也没有建立,因此代码整合过程中遇到了不少问题;由于部分技术原因和不可抗力,很多预想的计划并没有真正被执行,导致任务分配不断修改,不仅影响进度,而且占用了大量的开发时间,最后导致某些组员超额完成任务,而有的人却没得到足够锻炼。我们在Alpha阶段的后期甚至是Beta阶段才开始重视这个问题,到最后情况已经有不少好转。
  • 创造阶段
    我认为我们的团队并没有达到创造阶段,我的队友们都很优秀,我有很多地方想向他们学习,相信如果时间充裕的话我们能合作的更好。

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

  • 懂得软件开发过程中的相关概念。
  • 通过理论课的考试。
  • 合格完成每次实践作业。
  • 开发一个很coooooooooooool的软件。
  • 用户也觉得你的软件很coooooooooooool。

六、文献阅读笔记

(*  ̄ー ̄)

七、个性发挥

posted @ 2019-01-09 10:20  s1beria  阅读(246)  评论(3编辑  收藏  举报