结对编程——阶段2
结对编程——阶段2
教学班级 | 2021春季软件工程(罗杰 任健) |
---|---|
GitLab相关地址 | 2021_pair_work |
两位同学的学号后四位 | 3480@dxh,4216@js |
结对编程感受
本次结对编程我们仍然沿用了上次的方式,但着重体现了交流的重要性。在具体实践过程中由于issue和作业说明都是在不断更新的,如果没有及时看相关问题和解答,很有可能要修改大量细节,所以在本次编程中两人及时交流思路以及解决方案就显得尤为重要。同时由于本次作业任务量较大,需要考虑的细节和分支较多,所以有的时候需要一起查找错误,但是因为代码风格不同且代码较为复杂,就会出现浪费较长时间在理解代码上的情况,而且两人同时编码和查看需求就会出现遗漏的情况,所以在最后一次结对中我们可能会考虑一人编码一人看辅导书以及指出错误的方式,总之还是在不断探索以寻求最佳方式吧...
设计实现思路
本次作业多了软硬链接以及用户系统,所以主要做了以下修改与增量开发:
-
之前的作业中文件类有关于绝对路径的属性,但是由于本此多种指令都涉及到路径的修改,所以我们去除了绝对路径属性,每次查询时都进行递归查询直到找到根目录,再返回之前存储的路径即可
-
关于软硬链接
- 硬链接:同文件一样,硬链接中也具有名称、父目录、内容、创建时间和修改时间等属性,但不同的是还增加了 链接文件
linkFile
指向所链接的文件 - 软链接:同文件一样,硬链接中也具有名称、父目录、内容、创建时间和修改时间等属性,但不同的是还增加了 链接文件的绝对路径
linkFile
存储指向文件的绝对路径
- 硬链接:同文件一样,硬链接中也具有名称、父目录、内容、创建时间和修改时间等属性,但不同的是还增加了 链接文件
-
关于之前指令的修改
在第一次作业中有很多关于文件及目录的指令,本次作业中文件包括普通文件与软硬链接,所以要修改部分编码适应重定向问题
-
关于移动和赋值
关于移动和复制指令,大体上是相似的,主要的关注点在于 创建时间 与 修改时间 的设定以及父目录和子目录相关事件的设定,同时指导书也需要详细且细致地阅读。
-
关于用户系统
由于本次用户系统并没有太复杂,所以我们使用了单例模式中的懒汉模式让用户系统与文件系统进行交互,在下次迭代中可能需要做进一步更改。
UML类图
PSP表格分析
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 10 | 15 |
· Estimate | · 估计这个任务需要多少时间 | 10 | 15 |
Development | 开发 | 860 | 1340 |
· Analysis | · 需求分析 (包括学习新技术) | 30 | 60 |
· Design Spec | · 生成设计文档 | 30 | 30 |
· Design Review | · 设计复审 (和同事审核设计文档) | 10 | 20 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 10 | 10 |
· Design | · 具体设计 | 60 | 90 |
· Coding | · 具体编码 | 480 | 680 |
· Code Review | · 代码复审 | 60 | 90 |
· Test | · 测试(自我测试,修改代码,提交修改) | 180 | 360 |
Reporting | 报告 | 70 | 65 |
· Test Report | · 测试报告 | 30 | 30 |
· Size Measurement | · 计算工作量 | 10 | 15 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 30 | 20 |
合计 | 940 | 1420 |