2021秋软工实践第二次结对编程作业
这个作业属于哪个课程 | 构建之法-2021秋-福州大学软件工程 |
---|---|
这个作业要求在哪里 | 2021秋软工实践第二次结对编程作业 |
这个作业的目标 | 体验结队编程并且学习原型设计 |
学号 | 081900426 |
队友学号 | 031902542 |
队友博客地址 | https://bbs.csdn.net/topics/601403948 |
GitHub仓库地址 | https://github.com/qiunoyi/Qt_cake_game |
视频演示链接 | 解说视频 |
重点难点功能
重点功能
-
本地游戏功能,能够投掷6个骰子并自动得出结果。
-
在线游戏功能,服务器端创建房间,客户端连接服务器端,服务器端收到客户端用户名,服务器端点击开始游戏,服务器端和客户端同时进入游戏界面。每个玩家按顺序进行博饼,在没有轮到自己的时候显示其他玩家的博饼结果,轮到自己时可以点击按钮进行博饼。
实现难点
-
页面交互使用Qt信号槽机制,分发信号逻辑比较复杂。
-
TCP交互时配合信号处理,可以处理不同的信号,以及处理同步问题,较为繁琐。
编程思考
一开始写博饼游戏类的时候封装的不错,逻辑清晰,编写速度快,但是后期做各个类交互时对于设计模式的运用不熟练,没有提前写好UML类图,导致中期进度推进的很慢,而且bug出现的也很多,每次修改都需要花费很长的时间,而且对最后得到的代码不是很满意,如果时间足够,有整个推翻重构的需要
结队照片
结队编程体验
在这次结对编程的过程中,和搭档首先进行了功能的梳理,就所谓“当初原型有多好,现在哭的就有多惨”,当初很多美好的想法导致我们要实现更多的功能。当然在之后的编程过程中,和搭档进行了许多的沟通,相互从对方的身上学到了许多,也了解了更多的有关于编程的知识。虽然过程比较困难,结果和原型相差较大,但还是不错的。
收获较大的事件
1.聊天功能的实现,在最初原型设计的时候想到可以在房间内增加一个在线聊天的功能,但在后期实现的过程中这个成为了比较难实现的一个功能,其中使用TCP机制,实现较为麻烦,在不断调试和更改之后也简单的实现了。
2.TCP交互时配合信号处理较为繁琐,在进行梳理之后也有了想法。
3.前期计划不紧凑,每天完成任务就结束,对后期时间花费估计不准确,前期做完当天计划最好能提前做一下后面的事,不然后期难免有事情耽搁了,导致工期紧张。
PSP表格
PSP | Personal Software Process Stages | Estimated time(min) | Time(min) |
---|---|---|---|
Planning | 计划 | 20 | 30 |
Estimate | 估计这个任务需要多少时间 | - | |
Development | 开发 | - | - |
Analysis | 需求分析 (包括学习新技术) | 60 | 60 |
Design Spec | 生成设计文档 | 30 | 60 |
Dsign Review | 设计复审 | 30 | 60 |
Coding Standard | 代码规范 | 30 | 30 |
Design | 具体设计 | 30 | 60 |
Coding | 具体编码 | 1600 | 1700 |
Code Review | 代码复审 | 15 | 30 |
Test | 测试(包括修改代码) | 180 | 360 |
Test Report | 测试报告 | 30 | 30 |
Postmortem & Process Improvement Plan· Design Review | 事后总结, 并提出过程改进计划 | 30 | 30 |
Summary | 合计 | 2055 | 2420 |
学习进度条
第N周 | 新增代码(行) | 累计代码(行) | 本周学习耗时(小时) | 累计学习耗时(小时) | 重要成长 |
---|---|---|---|---|---|
1 | 440 | 440 | 6 | 6 | Qt基础复习 |
2 | 500 | 940 | 4 | 10 | Qt基础网络通信 |
GitHub仓库地址
https://github.com/qiunoyi/Qt_cake_game
commit记录
视频演示
https://vedu.csdnimg.cn/original/943edfd85bbc434b930ce3e24c6e5bb8/35eca62e-17c6367f2a0.mp4