所属课程 | 福州大学软件工程实践(2019) |
---|---|
作业要求 | 软件工程实践总结作业 |
我的学号 | 221600331 |
作业目标 | 对整个课程的学习做一个总结 |
一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
第一次作业:我的期待就是在实践中能更好地看清自己的不足并加以改正,培养我对编程以及和队友合作的能力
对比现在的目前的所学所练所得,我发现我所掌握和了解的语言技能和工具实在是太少了,而通过本次课程让我了解学习了一些原型设计工具、bootstrap前端框架、Maven框架和Springboot快速开发框架以及JPA和Thymeleaf的使用,还学会了使用eclipse和Visual Studio 自带的git插件工具与队友们进行多人协作开发,还有复习到C#的知识,加深对Java的了解 等等,这些都符合甚至超过我对这门课的期望(唉,都是被逼的,不过逼得完美!(๑•̀ㅂ•́)و✧ )。 至于存在的不足就是感觉我们的项目还有好多预期的东西没有完成好,看组长安排课程结束后还要不要弄吧。
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
-
统计一下,你在这门软件工程实践中,完成了多少行的代码;
结对编程大约400行,github团队实训大约500行,团队整体项目(修咻咻维修平台)大约3000行,总计约4k行代码 -
软工实践的各次作业分别花了多少时间?(做一个列表)
序号 | 作业标题 | 时间(h) |
---|---|---|
1 | 第一次作业-准备篇 | 3 |
2 | 结对第一次—原型设计(文献摘要热词统计) | 16 |
3 | 结对第二次—文献摘要热词统计及进阶需求 | 20 |
4 | 团队作业第一次—团队展示 | 1 |
5 | 团队作业第二次—项目选题报告 | 3 |
6 | 团队作业第三次-项目原型设计 | 15 |
7 | 团队作业第四次-项目需求分析 | 14 |
8 | 团队作业第五次—项目系统设计与数据库设计 | 25 |
9 | 团队作业第六次—团队Github实战训练 | 13 |
10 | Alpha冲刺 | 40 |
11 | Beta冲刺 | 80 |
-
哪一次作业让你印象最深刻?为什么?
团队作业第六次—团队Github实战训练让我印象最深刻,本来觉得一个小小的抽奖程序,我们有那么多人,应该很快就能完事,然而在前一天开了两个半小时的会讨论理解分析题目并且分配大致任务的前提下,我们的这次实训也才紧赶慢赶做完。各个队员的代码交接很容易发现不一致的情况,删删改改,还超级浪费时间,这就是由于前期分配大致任务后,队员之间的配合度不够了,没有再进行更多的沟通。 -
累计花了多少个小时在软工实践上?平均每周花多少个小时?
按照上面列表统计,累计花了230个小时在软工实践上,平均每周(到现在算是15周)花了15个小时在软工实践上。想想第一次准备篇的随笔上说的的7个小时,唉,当时真是个弟弟啊。。。 -
学习和使用的新软件;
墨刀和AxureRP8(原型软件)、JProfiler(性能分析软件)、navicat(MySQL管理软件) -
学习和使用的新工具;
Eclipse和和Visual Studio 自带的git团队项目管理插件工具 -
学习和掌握的新语言、新平台;
- 新语言:JPA和Thymeleaf
- 新框架:bootstrap前端框架、Maven框架和Springboot快速开发框架
- 新平台:GitHub
-
学习和掌握的新方法;
git团队协作开发 -
其他方面的提升。
- 代码能力
- 资料查找能力
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
对于一个团队来说,必须至少有一个或多个对整个项目所需要以及有所帮助的各种资源都有所了解(不求掌握,但求知道有这个东西)的人来领导或指导项目的进行过程,否则的话整个团队很容易走进一个个胡同,绕好多路才能完成项目。
前期没有咨询过有经验的人,我们的团队就是这样绕了好多路,一开始我们全部人都以为原型可以直接导出成可用的前端页面,开始花很大力气在原型的完善上,结果到Alpha阶段发现要全部重构页面,浪费了好多时间,然后Alpha阶段后在老师的提醒下又开始将我们的项目转移到新的快速开发框架上来规范我们的代码,又要重新找合适的框架进行学习并转移,又耗费了更大把的的时间。。。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?
我对下一届的建议和期望就是要提高团队中各个队员的参与感。当然这不是单靠队长完成的,主要看各个队员具有对整个团队的责任感,不然就会让那些积极做事的人的积极性受挫,不利于团队发展。至于要怎么提高我就没有更好地办法了。
对于中途换队员的问题,我觉得还是不要中途换队员了,从我的团队情况来看,并没有对新队员有什么项目交接的体验,反而总感觉新队员是对我们不熟而对我们的项目没怎么有参与感,最后参与度也不高(个人片面看法,也许有些个人因素没有考虑到)。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
由于队员之间都比较熟悉,我们的团队很快地就度过了萌芽阶段和磨合阶段。
我的团队绝大多数时间都是处于规范阶段,大家各自完成自己被分配的任务推进项目的进行。
而在beta答辩的最后一晚才让我感觉到我们团队到达创造阶段,我们宿舍3个人高度自治,不再需要组长的时时教诲与介入。团队成员相互支持, 互相依赖并保持各自的灵活性。团队成员之间都比较熟络,同时也互相信任,个人可以放手独立工作。并且我们也并没有再把角色和职责分的很清楚,都是根据项目的需要灵活转换。
五、怎样证明你学会了软件工程?
-
研发出符合用户需求的软件
我们项目的在线网址:http://masgak.online:8080/xiuxiuxiu/ ,协会成员正在内测中,仅内测成员便不少于10人,协会的会员群200+人。目前在洽谈服务器部署和网站优化的事宜。谈好后应该正式进行公测使用 -
通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
我们的团队使用WorkTitile做项目控制,用Git做代码协作开发,需求分析、原型设计、规格书都证明了我们足以发布一个足够好的软件 -
并且通过数据展现软件是可以维护和继续发展的。
我们已经根据小组互测的反馈及时调整了云端部署,现在的云端应该相当完善了。
springboot框架的使用规范了我们原先比较混杂的代码,让我们团队项目的开发走上正轨,哪怕拿出去也是一个完整的网站项目