个人作业——软件工程实践总结&个人技术博客

这个作业属于哪个课程 软件工程实践
这个作业要求在哪里 作业要求在这里
这个作业的目标 总结这个学期的软件过程的学习
作业正文 如下
其他参考文献

一、回望

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

    在学期初我希望通过本门课程加强团队协作能力,这个目标完成了,通过项目的实践和Github的使用,多人协作编程的能力显著提高,还获得了需求分析,系统设计,框架学习方面的提升,但是在 复杂系统编程和编程软件的使用上还有明显的不足

  2. 你在第一次作业的个人简历中制定的这门课程结束后,你预期你将增长的能力、技术、技能;和你针对你的目标绘制的学习路线图。对比当前你的所学所得,你达到了当时的预期值吗?

学期初,我制定了对Python语言的学习,包括对语法的学习,Python语言的应用,实际开发的研究。但是最终没有达到预期值,只学习了基础的语法。

  1. 请总结这门课程的实践总结和给你带来的提升,包括以下内容:
  • 统计一下,你在这门软件工程实践中,一共完成了多少行的代码;

    一共写了5K+的代码

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

作业 花费的时间
准备篇 6h
热盛篇——疫情统计 10h
结对第一次——疫情可视化(原型设计) 7h
团队作业第一次——种子队伍选拔和团队展示 2h
结对第二次——疫情可视化的实现 18h
团队第二次——团队Github实战训练 9d
团队第三次——项目需求分析 6h
团队第四次——项目系统设计和数据库设计 10h
个人作业——软件评测 5h
团队第五次——alpha冲刺 35h
团队第六次——beta冲刺 30h
  • 哪一次作业让你印象最深刻?为什么?

    印象最深刻的一次作业是团队Github实战训练,原因是当时限时一天,我们组员之间的编译器不相同,有的用eclipse,有的用IDEA,最后只有我和另外一个同学可以用eclipse打开,在最后的时间疯狂的修改bug,实战训练算是比较失败,但是也让我对协作开发有深刻的印象。

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

    累计137小时,平均每周花10个小时

  • 学习和使用的新软件;

    IDEA:编写Java程序的好帮手
    Github DeskTop:用来进行项目管理

  • 学习和使用的新工具;

    Typora,Hbuilderx:用来编写markdown文件
    Xmind:用来绘制思维导图
    Axure,墨刀:用来进行原型的制作。

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

    新语言:javaEE(最广泛的Web编程语言)
    新平台:Git(用来进行项目管理,多人合作编程)

  • 学习和掌握的新方法;

    单元测试:利用Junit4测试,在代码push之前检验有无bug
    团队协作编程:GitHub的使用使多人协作编程很轻松
    接口的设计:一旦接口确定下来了,编码功能就能够很快的进行
    原型设计:设计出原型让用户对软件是什么样的有一个初步的认识

  • 工程能力的提升;

    代码阅读能力:在多人合作中能快速的读懂别人的代码时一项重要的能力
    团队协作能力:经过一个学期的实践,和别人沟通问题的时候能够更快速的抓住要点
    项目设计能力:绘制了系统设计说明书需要的UML图,数据流图,对项目的设计更加了解

  • 团队合作上的提升;

    沟通的更加快速准确,github的使用使团队合作的效率显著提升

二、团队总结

  1. 如果你是组员,你觉得你的组长分工安排是否合理?你对组长的选举有什么建议?

    我是组员,组长的分工是将工作分为前端和后端,文档的编写大家一起来,具体的任务由组员自行领取,对于我们这种熟人组成的小组是比较好的,基础比较差的不会拖累项目的进度,技术高的成员可以去解决难的部分,组长的选取是组内自由选举产生的,我觉得很好

  2. 你这学期经历过换组吗?你对换组有哪些看法?谈谈你在这个过程中的感受。

    我没由亲身经历换组,对换组持支持的态度,模拟一下实际开发时可能遇到的情况,可能是我们组员之间的工作联系并不紧密,换走的组员也并没有承担关键的任务,换组的影响不是很大,感受除了交流有些不便也没有什么了

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

    我觉得没有到达“创造”阶段,我们小组的成果算是基本完成了功能,可能是定的目标太大,并没有余力做特别的新功能,和市面上同类产品单就功能论也不出彩。

三、人月神话

  1. 怎样证明你学会了软件工程?

    我们小组的项目是有项目规划/需求/设计/实现/发布/,在项目开始前,做了需求分析,并做了原型来展示项目预期的结果的界面,开始后先进行设计,系统设计和数据库设计,然后alpha冲刺和beta冲刺都有看板记录总的的任务数、项目的进度和每个人的贡献,大家一起同理合作,有计划的每天完成一些任务,最后做出成果,接口的设计有文档的保留,代码的注释也比较充分,并用看板记录了bug的出现和解决,软件是可维护和发展的

  2. 写下属于你自己的人月神话

    • 系统设计需要一个有丰富经验的人来掌控。

      系统设计的时候主要是我和另一个同学负责数据流图和各种UML图,类的属性和类与类之间的关系都是我们两个拍脑袋想出来的,最后在编写文档的时候发现错误百出,几乎相当于之前没写过。我和他在设计的时候也有很多的不同意见,花了很多时间交流也没有拿出一个完美的结果。

    • 一个时间规划和进度控制表很重要。

      在系统设计和数据库设计的时候由于没有对进度作出具体的规定,在最后两天才全员上阵写说明书,时间很紧,成果也不如人意,alpha冲刺和beta冲刺的时候有看板管理加上每日的进度报告,时间上比较从容,软件的质量也比较高。

    • 系统设计中最重要的是概念的完整性。

      前面提到了由于没有一个架构师来掌握系统设计,我们的系统设计不够完整,比如我们的成就和等级,在设计的时候就想到了,却没有在用户类设置相应的属性,编写其他方法的时候也没有考虑这个功能,导致写成就和等级的时候要重构其他的代码。

四、建议

  1. 对下一届同学的建议

这门课的一环接着一环,任务紧凑,千万不要懈怠,跟着往前走,有机会就尝试学习新的技术,当你成功的讲其从网络上的知识变成自己手下的代码时,那种成就感是无以复加的,等到学期结束,你会发现自己全方位的提高了,不止专业技能的提高,还能让你对软件行业有一个基本的了解。

  1. 对于软工实践课程,你有哪些建议?

可以在alpha冲刺结束后,模拟甲方提一些意见,希望早点提供一些常用软件的使用方法和便捷插件

  1. 对于助教工作,你有哪些建议?

助教可以多分享一下自己的经历和经验,

  1. 对于自己今后,你有哪些建言?

多去尝试一些新的事物,走出自己的舒适圈,挑战自己接手一些困难的任务。

五、个人技术总结

个人技术总结
概述:hibernate实现级联删除。

posted @ 2020-06-15 15:18  古月淼  阅读(165)  评论(3编辑  收藏  举报