软件工程实践总结(个人)

痛并快乐着——软件工程实践总结(个人)

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

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

一学期走来,感觉还是学了很多东西的。从刚开始听到打代码就头疼,到现在能够独立地完成一些有挑战性的个人作业,成就感还是满满的。虽然到现在我还是希望将来能够少写代码,但通过一学年的学习,我也知道,能少打代码意味着已经有了一定的代码基础。而且从事这一行业,不可能不打代码。因此,软工实践以来的苦逼和痛,或许会在将来成为意想不到的助力。

学到现在也有很多不足,比如当时希望能做出一个很耐看的界面,后面也只是草草了事。理想和现实的差距,往往体现在能力的不足和人的惰性身上,也希望以后能够精益求精,对任何事情都能交出完美的答卷。还有很不足的地方,就是到现在都没能习惯使用github,以及代码规范。

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

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

作业序号 代码量 备注
1 300 个人作业-词频统计
2 200 第二次结对作业
3 1500 Alpha冲刺阶段
4 100 团队作业-项目测评
5 300 团队现场编程-抽奖系统
6 1000 Beta冲刺
总计 3400

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

作业名称 耗时(h) 做了啥
软工实践第一次作业 2 学了makedown格式,看看博客,写写博客
个人作业-词频统计 20.5 学习单元测试等新知识,复习c++,问同学,
第三次作业-结对作业(原型设计) 8 学习并使用Axure RP 8
第四次作业 - 团队展示 1 交博客,增加个人部分
第五次作业 - 结对作业2 16 用python爬数据,实现一些附加功能
第六次作业 - 团队答辩 0.5 交博客,增加个人部分
项目UML设计 5 学习ProcessOn、UML设计,绘制用例图
需求分析报告 10 用墨刀设计原型
Alpha 冲刺 80 原型的重新设计,前端界面的设计,AR技术的研究,拍摄数据集,标数据集,做PPT,研究特效,详见各次冲刺学习进度条,写博客
团队现场编程实战(抽奖系统) 7 python学习和熟悉,聊天记录的分析和挖掘
项目测评(团队) 6 上台答辩,做ppt,采访和测试部分工作
Beta 冲刺 10 对前端界面进行优化,标数据集,拍数据集,参与PPT的制作
个人总结 4 写博客
总计 190

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

应该是第一次个人作业吧。那是我第一次接触到这么庞大的代码量,以及要学这么多的的新东西,单元测试,github的使用等等。这些都让我感觉头疼和不适应。而且不同于结队作业,我要一个人完成整个作业,其中不乏我非常不擅长的部分。虽然最后得分不高,但是我从中也收获了很多宝贵的经验,算是痛并快乐着吧。

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

  • 如果算上站立会议时间和课程答辩时间的话,大概在210小时吧
  • 软工从开学第一周到十七周基本结束,共17周,平均210/17=12.3个小时

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

  • visual studio 2017 :开发c++控制台程序,第一次个人作业使用
  • Android studio 3.0.0 :andoid开发基本工具,用来做界面
  • Axure RP 8:原型设计
  • Sublime Text 3:使用python爬网站数据
  • PowerPoint:做ppt
  • Typora:群里老哥推荐,用来makedown的工具

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

  • github:学了,但是并没有习惯运用

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

  • java:从0开始,还好可以向身边同学学习
  • python:爬爬数据,画画图,需要什么功能学什么
  • github:download代码,用来学习
  • Process On:一个在线画流程图/uml图等的平台,在需求分析阶段尤其好用

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

  • 用例图:基于场景来考虑分析问题,更有助于我们了解需求
  • 思维导图:用思维发散的理论,基本覆盖了要做的所有任务集,用图来表示清楚美观

9、其他方面的提升。

  • 除了技术硬能力方面,和同学的团队合作也提高了我的团队协作能力和交际能力;
  • 每次在deadline前肝博客提高了我的熬夜能力;
  • 答辩和博客提高了我的沟通能力和瞎编能力;
  • 碰到不会的部分提高了我的学习能力和抗打击能力......
  • 学习这门课真是好处多多,学弟学妹们一定要选柯老师(划重点!)

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

  • 第一次个人作业的时候,只有痛苦,没有快乐。那种直到deadline,却始终交不出东西的感觉,是很难受的。现在想来,失败的原因除了代码经验过少之外,对软工不够重视(其实很重视了,但是没想到还不够重视)是更主要的原因。没有付出足够的努力和时间,自然不能保证得到满意的结果。
  • 结对作业的完成还是比较流畅的。因为我c打的不好,所以主体功能还是由队友完成的。我负责用爬虫爬数据,也学到了一些有用的技能。比较可惜的是最后程序似乎有点小bug,得分点并没有全部得满,还是有点可惜的。
  • 团队作业过程中真的学到了很多,算是把软件工程理论课所学到的东西几乎都能付诸实践。不止是技术上的,还有答辩能力和团队协作能力。因此,假如你经得起软工实践的挑战的话,还是能从中受益颇多的。

三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?

(1)对下一届学弟学妹们(和开学初的我)的建议和告知:**

我希望他们能学会合理分配自己的时间。软工实践的确是一门可以学到很多东西的课,但是同时也意味着占据了很多课余时间,如果不能妥善处理,那么很可能一事无成。我也希望他们能够做到我们这届做不到的东西,能够做出真正能面向市场的软件。

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

我认为可以有中途换队员的操作,但是没必要强制。因为有的人可能并不能适应这种被迫换队的操作,虽然在社会中可能会出现这样的情况,也的确有锻炼的效果。但倘若因为这种原因而完成不了软工实践(下学期他们还是必修)的话,这就是一件很尴尬的事情了。

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

8-10人吧,我觉得按这学期的人数划分就很合理了。真的想完成一个比较完善的软件,4-5人是远远不够的。

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

软工真是个神奇的存在。在做作业的过程渴望作业少点,但到了现在又觉得这些作业量是合理的,也的确能够锻炼人。但还是希望能够尽量给学生足够的自主性,不要过分影响大学的其它精彩的组成部分。

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

喜源同学,我的结队队友和团队队友。到了计算机以来,很多实践基本都是和他组队,而且说实话,他带我飞的次数会比我带他要多很多。最想对他说一句由衷的谢谢。还有说过请他吃饭的事情一定会兑现诺言的。

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

  • 萌芽:团队的起源源于队友暑假打的一个比赛,既然比赛有一个成功的算法雏形,我们当然愿意参与其中。知道这个团队的组成还是很开心的,因为很多都是以前听说的学霸,自然而然地就以为可以在里面舒舒服服地被带飞。可惜在软工实践中,这是不可能的,想要得到好成绩,就要付出努力。
  • 磨合:刚开始的团队磨合还是会有一些小问题的。开始的几次会议简单确定了接下来的方向,在一次决定分工的群投票中,由于选择的太晚。最后迫于无奈被分入的开发组。但想到大家基本都是0基础,都得从头开始学,也没什么怨言。后来的合作基本流畅,当然也出现过因为贡献度分配的问题而产生争执的情况。我觉得这是很合理的,并不是一件坏事,理越辩越明,这会让我们团队合作更加紧密。
  • 规范:这大概是我们团队目前的现况吧。分工明确,责任和协作人清晰可查。组长的统筹也很合理,并且具有执行力。当然,在代码上的规范还是远远不够的。
  • 创造:现在团队还没有到创造的阶段。每个人做的基本都是自己的工作,很少有个人能够在各个模块都有一定贡献,并提出创造性的想法。整个团队虽然有创造力,但是远远称不上一个创造阶段的团队,我们也没有能力去执行我们的创造性想法。

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

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

我们团队开发的产品是面向大学生使用的,现在暂未投入市场,但经过我们小组内部使用和前期投放的问卷调查,这一产品还是比较受市场欢迎的。

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

我们队用燃尽图等手段,定时查看每个队员的“生产进度”。采用原型设计模型,拥有良好的团队协作,足够保证能在预计的时间内发布“足够好”的软件。

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

我们团队有足够详细的文档说明和源码,易于维护和继续发展。
补充一下图片:

4)对着这个检查表:http://xinz.cnblogs.com/p/3852177.html 检查一下,自己如果去企业面试,这些常见的问题是否都能回答,并在此总结。

大部分都不能回答,看来我的专业水平离一个程序员的标准还是远远不够啊。

六*(选做)、阅读软件工程中关于代码质量的的经典论文,从下列文献中选择一篇或若干篇,结合自己的实际做一个阅读笔记(例如,自己写的代码质量如何,是不是一个大泥球,如何衡量自己代码的质量)?从以下参考论文中选择一篇或若干篇:

论文名:Open source software development should strive for even greater code maintainability

引用:(百度翻译后的)

随着年龄的增长,预计OSS项目会有类似的行为是很有道理的:OSS方法将以与CSS相同的方式产生遗留系统。因此,OSS系统也需要适当的重新设计操作。换句话说,预防性维护可能是OSS支持者必须考虑的第三种维护类型。需要更多的实证分析来巩固这项研究的发现。我们将继续监控这些项目的质量,并将我们的分析扩展到其他OSS项目,这些项目预先发送了有趣的特性,并允许与CSS开发进行比较。但是,从OSS系统用户感知质量的角度来整合OSS质量的结构视图是非常重要的。

虽然简单地浏览了一遍,但是并没有很透彻地理解文章的意思。本文着力于oss与传统css的比较,多次提到了可维护性的概念。软件工程中也反复提到可维护性的概念。从可维护性的角度来看,不止是能更容易地发现bug,更是为今后扩充功能打好基础。这不仅需要严格的代码规范和注释,也需要有效的配置管理,这方面我们团队做的还是比较粗糙的。同时我也发现,现在百度翻译做的真的不错,翻译出来的效果基本和原意差的不是很多。当然,对一个程序员来说,学会看英文论文也是必须的,这个还需要加强学习。

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

团队的第一次合影,希望我们团队能保持初心,始终如一。

不知道说些啥,那就新年快乐(期望考试高分)吧>_<
img

posted @ 2018-12-29 21:13  福大魔王  阅读(2491)  评论(3编辑  收藏  举报