作业描述
课程 | 软件工程1916|W(福州大学) |
---|---|
团队名称 | 修!咻咻! |
作业要求 | 个人作业——软件工程实践总结作业 |
学号 | 221600207 |
作业目标 | 写一篇博客,写下这学期的软工总结。 |
正文
一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
Web相关搭建技术已经达到预计目标,项目管理部分甚至超出预计,单元测试也是一个新的领域但涉及不深。
Web是被作业追赶着疯狂自学,被逼着去干了技术选型,当然在此期间开拓了许多视野。
项目管理本身也是赶鸭子上架,任务分配很混乱,加上队友间的同学关系只能是督促而不能有效控制,后来系统地学习之后,才能略微地进行项目控制。
单元测试让我明显感觉到前期的文档工作实际上作用很大。一但开始工作,几乎没有时间去更新文档,但没有文档就没有原型,没有原型就没有功能点估计。尽管随着项目开展需要实现的功能点越来越多,我们不在意于更新功能点。而重视于注释这种更方便更新的东西。但单元测试时就会迷茫,质量控制也很难去保证。
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
-
统计一下,你在这门软件工程实践中,完成了多少行的代码;
结对编程:493行 git实训约600行 修咻咻维修平台约1200行 共约2300行。(仅算可运行代码,不计算编码过程中的代码)
-
软工实践的各次作业分别花了多少时间?(做一个列表)
- 结对编程:40小时,
- git:13小时,
- 修咻咻:约600小时
- 学习相关技术内容、DeBug、其余非编程时间:无法估计
-
哪一次作业让你印象最深刻?为什么?
beta冲刺,开始系统地使用框架进行开发,前期进行大量的技术选型,了解了目前行业内普遍使用的一些技术,开拓眼界,自学框架和应用框架的过程,了解到很多设计模式,了解前后端异步,了解了前后端和相应的整合。
-
累计花了多少个小时在软工实践上?平均每周花多少个小时?
累计时间超1000小时,平均每周时间在60h,大部分是网上搜索学习的时间。一部分是前期工作准备,代码时间反而较少。
-
学习和使用的新软件;
WorkTitle
-
学习和使用的新工具;
Maven,Idea
-
学习和掌握的新语言、新平台;
平台:SpringBoot
-
学习和掌握的新方法;
IOC,AOP,观察者模式,单例模式,Spring MVC
-
其他方面的提升。
学习能力,项目管理经验。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
是的,学习和协调应该是学生们最为重要的能力,你面对的可能都是新技术,新框架,而你无法根据以往的经验去预估实现难度,尤其是考虑到不同人的学习欲望和效率后。在我现有可怜的经验里,学习成本远大于开发成本,同学们将使用自己为数不多的知识技能去做一个实战项目,相信我,在现在开源项目普遍使用Maven的情况下,学校依然在教Ant,在哪怕Struct2被爆安全漏洞频发的时候,学校依然不会转向Spring MVC。在前端框架如BootStreap都迭代到第四版的时候,学校依然只教H5的语法和基本js.自学才是跟上外界进度的法门。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?
努力去寻找一些造好的轮子,框架就是干这个的。学校的东西需要掌握,但不仅仅是那些东西,教材落后十年还可以教书,技术落后十年将是个无人问津之物。
不要惧怕报错,报错先看cause by的提示。没有报错的bug才是最能折腾人的。
希望后来人继续前进吧,学校给的只是个平台和起点。
关于中途换人,建议还是不要了。新人需要熟悉项目,老人得不到最后的荣誉。矛盾一直存在。如果确实要锻炼突发跑路事件,可以试试改为抽奖机制。只由老师安排实在矛盾太大,让学生们抽奖决定交换生,小组抽奖赢得新队员,选择权在学生手里,或许会缓和一些。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建之法》第17章 人、绩效和职业道德)
我们的团队可能更加偏向规范阶段,部分成员达到了创造阶段的标准。萌芽阶段是没有正式编码之前,交流很少,每个人都有自己的负责的功能模块分工,团队交流和逻辑梳理主要靠队长来承担。磨合阶段其实很快度过,我们很少有争论,争论发生时也没有出现过谁大声说话谁占据胜利的情况,解决办法常常是互相解释清楚明白后取长补短。最重要的是解释明白的过程,优劣一说清楚,判断就容易得出了。规范阶段是我们进行一定的编码实战后,搞清楚每个人更擅长于什么,哪些是队员不愿意做,哪些是他可以做到的,每个人都能在团队内找到自己的核心价值,都有着清晰而明确的目标。创造的意义可能是每个人都成为角色--“猪”吧,我们还是比较难达到。我们队内清楚每个人干了什么,但是干得怎么样,是个问题。在Beta阶段我们丢失了站立式会议每日用电脑演示的习惯,所以汇总的时候才会发现出现一些交接的问题。尽管如此,我依旧相信这个团队带给我们的意义不仅仅是一个软工实践而已。
五、怎样证明你学会了软件工程?
1)研发出符合用户需求的软件
http://masgak.online:8080/xiuxiuxiu/,协会成员内测中,仅内测成员便不少于10人,协会的会员群200+人。目前在洽谈服务器部署和网站优化的事宜。谈好后应该正式进行公测使用
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
WorkTitile做项目控制,Git做代码共同开发,需求分析、原型设计、规格书都证明了我们足以发布一个足够好的软件
3)并且通过数据展现软件是可以维护和继续发展的。
我们已经根据小组互测的反馈及时调整了云端部署,现在的云端应该相当完善了。
springboot框架的使用,让我们的开发已经走上正轨,哪怕拿出去也是一个完整的网站项目