软件工程实践总结作业
一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
- 进步:通过软工实践这门课学到了挺多东西,通过原型来获取用户具体需求的方法,体会到前期类的设计对于后期开发的重要性,代码规范性、队长组织能力、团队交流协作的能力在合作开发过程中都很关键。
- 不足:负责的是界面部分,没有学到关于后端的知识,关于前端是怎么跟后端接起来的,服务器的搭建都不了解。所以在编码开发部分只能说是学到了皮毛吧。
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
- 1、统计一下,你在这门软件工程实践中,完成了多少行的代码;
- 大概完成1500行左右的代码。因为负责的是界面部分,有些控件可以直接拖动到界面上,不需要手动编写代码,而且负责的界面部分也比较少,所以代码写的比较少。
- 2、软工实践的各次作业分别花了多少时间?(做一个列表)
作业 | 花费时间 |
---|---|
第一次作业 | 5 |
第二次作业 | 28 |
第一次结对作业 | 20.5 |
第二次结对作业 | 15.2 |
团队展示 | 1 |
项目需求分析 | 15.6 |
项目Alpha测试 | 41 |
现场编程 | 2.5 |
福大微信公众号使用评测 | 10 |
项目beta测试 | 9 |
软件工程实践总结 | 4 |
合计 | 151.8 |
- 3、哪一次作业让你印象最深刻?为什么?
- 印象最深的是刚开始写界面的时候,因为之前完全没接触过安卓和Java所以一开始挺懵的。在边学边做过程中遇到了挺多问题,处理问题的方式就是百度百度百度,但是问题实在是太多了,在百度找资料上浪费了很多时间。得到了一个教训就是掌握一门技术,需要先去系统学习它的理论知识,再结合实践去真正掌握它。如果理论知识什么都不知道就开始实践而且还没人指导的话,遇到问题就会像无头苍蝇一样不知道该从何下手。
- 4、累计花了多少个小时在软工实践上?平均每周花多少个小时?
- 累计花了151.8个小时。平均每周花费7.5个小时
- 5、学习和使用的新软件;
- Android Studio
- 6、学习和使用的新工具;
- Axure rp
- github
- 7、学习和掌握的新语言、新平台;
- Android
- Java
- XML
- 8、学习和掌握的新方法;
- 调试代码:之前写的程序比较小,遇到bug都是直接去代码里面找或者将中间变量输出来寻找错误的地方。当写的程序变长时这种方法基本就没用了。设断点监视变量等调试技巧是在软工实践之后才学会的。
- 请教他人:之前遇到问题都是自己解决,喜欢钻牛角尖,不会请求别人帮助。这样会很浪费时间,自己去找资料、看博客可能需要花费几个小时才能解决的问题,请教有经验的人几分钟就能解决了。
- 9、其他方面的提升。
- 相比以前要有耐心多了。以前经常遇到bug就不知道该怎么办了,学会调试之后bug比较容易找到,也知道大概应该怎么去找了。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
- 1、耐心
- 在写界面过程中,曾经好几次因为gradle文件导致Android Studio一直卡死,工程文件一直打不开,百度试了很多方法还是不成功,把Android Studio重装还不行。鼓捣了很久发现,重新一个工程就可以用了。调编译器怎么调都调不好让人很崩溃,感慨做程序员真的很需要耐心。
- 2、团队合作
- 队员之间的配合协作很重要,队长需要了解每个人的能力,并给每个队员分配合适的工作,还要监督好队员按时完成工作。若某个队员的工作有拖沓,为了不影响项目的进度,组长需要及时作出应变。
- 3、交流
- 队员之间需要多交流,对项目的想法、个人进度、开发遇到互帮互助等,多交流才能选出最好的想法,让队员了解项目的进展,互帮互助开发效率才能更高。
- 4、安排好每日工作
- 安排好每一天要做的事情,不然很容易就拖沓了,就会影响到项目进度。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。特别地,特别地,下一届要不要中途换队员?
- 1、建议还是需要中途换队员。毕竟这种情况以后工作的时候可能会经常发生,这个考验的是队长对人员分配的能力,以及新队员对新团队的适应能力,如果在课程中提前演练了这种情况,那么在工作中应对起来应该会更游刃有余一些。
- 2、如果打算修软工实践的话,其他实践课少选吧。软工需要花挺多时间,再加上理论课也需要上课写作业,剩下的课余时间就很少了。如果再选修其他的课程可能会顾不过来。所以如果打算选修软工实践,就要专心于软工实践。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
- 萌芽阶段:刚开始组队,有些人互相还不认识,项目选题也没确定,每个人的职责分工也还没确定,开会的时候互相交流比较少,大家都等队长组织等队长安排。
- 磨合阶段:确定选题时,采取的是每个人都提出几个想法,大家投票决定选择哪个选题的民主方式。确定分工时,我们实行自愿选择任务,队长决定最终分工。总的来说是比较民主的所以并没有出现意见冲突的情况。
- 规范阶段:随着项目开发的进行,每个人的特点逐渐体现出来。有
能力的成员分担了主要的工作,其他队员负责其他部分辅助主要队员,队员之间的合作逐渐协调起来。 - 创造阶段:到开发后期,项目进入冲刺阶段,每个人都了解了自己的职责,每个人都在努力做好自己该做的事情。团队进入创造阶段。
五、怎样证明你学会了软件工程?
1)研发出符合用户需求的软件
必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
3)并且通过数据展现软件是可以维护和继续发展的。
而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
请在随笔中用数据证明上述内容或侧重选择之一。
六*(选做)、阅读软件工程中关于代码质量的的经典论文,从下列文献中选择一篇或若干篇,结合自己的实际做一个阅读笔记(例如,自己写的代码质量如何,是不是一个大泥球,如何衡量自己代码的质量)?从以下参考论文中选择一篇或若干篇:
参考论文文献:
[1] Stamelos I, Angelis L, Oikonomou A, et al. Code quality analysis in open source software development[J]. Information Systems Journal, 2002, 12(1): 43-60.
[2] Boehm B W, Brown J R, Lipow M. Quantitative evaluation of software quality[C]//Proceedings of the 2nd international conference on Software engineering. IEEE Computer Society Press, 1976: 592-605
[3] Samoladas I, Stamelos I, Angelis L, et al. Open source software development should strive for even greater code maintainability[J]. Communications of the ACM, 2004, 47(10): 83-87
七、个性发挥,包括图文、照片和创意等
- 对队长的评价:我们队长比较内向,人很好,遇到队员拖沓的情况虽然内心会着急但是却不会怎么去催别人,不会指责某个人是不是没做好,有种放养手下的感觉。哈哈哈。队长并不具备“万恶的资本主义家”的特质---压榨手下员工,所以觉得队长还是更适合单纯地做一个技术员,组织管理队员,实时监督队员工作进度,将划水的队员踢出团队的事情有点难为我们队长了。 ̄▽ ̄
- (附坐姿端正在认真听课的xikun队长):