作业地址:
https://edu.cnblogs.com/campus/fzu/SoftwareEngineering2015/homework/1545
一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
刚开始的时候,由于听过了选导系统是我们的学长学姐在软件工程这门课上开发的,对于软工工程实践课是充满了期待,不太相信一门课能够在大三这么多课程的情况下还有时间和经历来开发一个应用,同时听说在栋哥班上能学到很多的东西,于是便义无反顾地选了(即使有着10多门课)。不过,收获和付出是成正比的,要想学得更多,那就得付出更多。所以从暑假开始,就是各种的作业,从文献阅读到工具学习,再到代码编程;从个人作业到结对作业,再到团队作业;从C++到C#,再到Android。各种形形色色的作业,一步步引导我们去学习,一如构建之法所说的learning by doing,doing确实也是learning的过程,为了do你不得不去learn
更多的东西。在代码编写方面,团队协作方面,学习新知识方面都有了很大的进步,也开了出了我们团队的第一款APP,还多次见到了凌晨四五点甚至是有时候五六点的福大,这些体验,都是难能可贵的,也算是达到了自己所要求的的目标吧。至于不足,真的要说的话那就说说遗憾吧,那就是我们的团队APP还不是很完美,多次被吐槽,虽然我们真的尽力了。
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
1、统计一下,你在这门软件工程实践中,完成了多少行的代码;
粗略估计,大概3000行左右吧。
2、软工实践的各次作业分别花了多少时间?(做一个列表)
作业 | 耗时 |
---|---|
软件工程实践2017第一次作业 | 5小时 |
软件工程实践2017第二次作业 | 19小时 |
结队项目——第一次作业 | 10小时 |
团队第一次作业——团队展示 | 0.25小时 |
结对项目第二次作业 | 24小时 |
团队作业—选题报告 | 3小时 |
个人技术博客(α) | 5小时 |
团队作业—需求规格说明书 | 4小时 |
团队作业—预则立&&他山之石 | 5小时 |
团队作业——系统设计 | 4小时 |
团队作业——UML设计 | 1小时 |
团队作业——随堂小测(同学录) | 8小时 |
个人作业——软件产品案例分析 | 小时 |
团队项目课堂展示 | 3小时 |
团队项目测试报告与用户反馈 | 4小时 |
Alpha冲刺 | 75小时 |
Beta冲刺 | 15小时 |
3、哪一次作业让你印象最深刻?为什么?
令我映象最深的是团队Alpha冲刺,经常和队友讨论到深夜,回来还要管理团队的代码,做燃尽图等,连续两三个星期两三点睡。
4、累计花了多少个小时在软工实践上?平均每周花多少个小时?
200个小时左右吧,平均每周10小时左右应该。
5、学习和使用的新软件;
- Android studio
- Microsoft Visual Studio
- xmind
- Asure
- 博客园
6、学习和使用的新工具; - burnchart燃尽图生成网站
- git
- VS效能分析工具
- json解析工具包
7、学习和掌握的新语言、新平台; - Markdown语法
- java下的Android开发语法
8、学习和掌握的新方法; - 团队开发流程
- 说明书等文档编写方法
- json解析等第三方库的使用
- litpal等开源框架使用
- 效能分析方法
9、其他方面的提升。 - 耐性有所提高,经常连续几个小时写代码和博客。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
在做决定前,一定要事先做好调查,沟通好,不能只是说一个大概就草率地去做决定,也要有自己的想法,是对的就要去坚持。比如我们的团队项目选题,一开始我们都误解软工选题的侧重,一开始我是提出要去做一个类似事物通知的APP,但是团队有成员提出要做侧侧重技术性,有“情怀”,做图像识别。一开始我还是坚持的,后面在团队大多数人都同意的情况下就没有继续坚持,图像识别方面我们存在太多的盲区,我提出的几个问题,比如说python的移植性问题也没有去深入研究,导致后期发现做了大量无用功。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?
对于下一届实践,我觉得同学们的动机一定要明确,如果是真的想要学东西,想要进步,那就选这门课,选了就认认真真地做,充分发挥自己的能力;如果只是想要混学分,那还是算了吧,毕竟后面团队协作,如果只是抱大腿的心理,那么不但自己心里过不去,还会给别人增加负担。关于换队友这件事,那会儿上课看着大家激烈的争吵,心里多多少少还是有自己的看法,但是作为一个无名小辈,也不敢多说什么。说句实在话,尽管各位老师的初衷都是好的,但是效果等于0,beta阶段的时间本来就短,换个人又要重新熟悉代码,磨合,而且被换的人的心血都倾注下去了,本来有激情,一换激情瞬间没了,大多数换完后也干不了什么。而且,在项目展示的时候,自己也找不到那种成就感,毕竟离开了原来的团队,新的团队也没做什么贡献,导致尴尬异常。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
构建之法中提到的团队发展有4个阶段,分别是萌芽阶段,磨合阶段,规范阶段和创造阶段。这些阶段我们也都经历过,从一开始的组队,到后面的选题,功能写代码,制定规范,到后面的项目冲刺,我们一直都在进步。但是,我们可能也就到达创造阶段的的初期吧。
五、怎样证明你学会了软件工程?
1)研发出符合用户需求的软件
我们软件在Alpha就开始让班上同学,还有自己也有在亲戚里推广,收集他们反馈意见。
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
我们的项目都是通过GitHub来进行管理的,通过issue,mailestone来管理,同时生成燃尽图来进行项目进度的把控,如下:
![](https://i-blog.csdnimg.cn/blog_migrate/d27468545b03ac77432bba532088718d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/53decf54ae6d3dd68a7aa62e630e136c.png)
3)并且通过数据展现软件是可以维护和继续发展的。
我们源码托管在GitHub上,可以随时进行维护,同时配有相应文档,方便了解,项目链接: teamwork