结对项目第二阶段博客

结对项目第二阶段博客

一些基本信息

项目 内容
这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健)
这个作业的要求在哪里 结对项目-第二阶段
我在这个课程的目标是 培养软件开发过程中的团队合作能力,了解软件工程中的开发过程
这个作业在哪个具体方面帮助我实现目标 加深对结对编程的实践了解
GitLab 项目地址 https://gitlab.buaaoo.top/2021_alige_homeworks/pair_works/2021_rui_ma-junjie_dong_pair_work
学号后四位 7155 5044

结对编程的不同感受

本次作业是第二次进行结对编程,与上一次相比我们对结对编程更加熟悉,配合起来更熟练,对于驾驶员和领航员的角色也有了更深的理解。但是客观上来讲这次作业的难度比上一次有了很大的提升,尤其是软链接硬链接部分,导致我们重构了一些之前的代码,最终花了更多时间来完成这次作业。

结对编程过程记录

由于组内一位同学目前在外校交流期间,无法展开线下结对编程。我们继续在线上进行结对编程,这一次我们主要使用了上一次的CodeWithMe和腾讯会议进行结对编程。

  • 腾讯会议:腾讯会议可以进行语音和屏幕共享,并且网络连接比较稳定,但是并不具有远程操控同伴电脑的功能。

  • CodeWithMe:CodeWithMe是idea中的一个插件,可以连接到对方的idea同时编辑一个Project中的文件,同时进行语音交流。此外还可以互相看到对方的光标,同时编辑不同的文件。这个插件是这几种工具中我们认为最适合进行远程结对项目的,唯一的缺点是在使用中经常遇到网络不佳的情况。

设计和实现思路

本次作业与上次比较,主要增加了文件系统的一部分指令,用户系统,以及两个系统之间的交互。

  • 新增的文件系统指令
    • 软链接:对于软链接,新建一个SoftLink类继承File类,内部存储目标文件的绝对路径。
    • 硬连接:对于硬链接,新建一个HardLink类继承File类,内部存储目标文件对象。
    • 增加软连接和硬连接之后,其他所有指令在寻找路径的过程中都需要考虑链接的存在,于是我们在这次作业中重构了关于寻找路径的逻辑,我们编写了两个函数,第一个函数负责寻找传入路径的父亲节点,第二个函数负责由父亲节点找到传入路径对应的节点。第一个函数中,对于软链接必须进行重定位,第二个函数中,是否对软/硬链接进行重定位靠传入的参数决定。其他函数中调用这两个函数进行路径查找。
    • 在以上的基础上,剩余的readLink,mv,cp指令的实现不是很难,主要是内部的一些逻辑。
  • 用户系统
    • 本次作业的用户系统中,只要一个用户存在,就一定存在同名的用户组,因此我们的用户和用户组中并没有特别设置主组相关的属性。
    • 对于用户,编写User类,其中存储一个<String, Group>类型的字典,表示这个用户所在的组
    • 对于用户组,编写Group类,其中存储一个<String, User>类型的字典,表示这个用户组中的成员
    • MyUserSystem类中,包含<String, User>,和<String, Group>类型各一个字典,存储用户和组。
    • 在以上的设计之下,用户系统不难实现。
  • 两个系统之间的交互
    • 本次作业需要两个系统之间进行一定的交互,如切换用户时,要保存文件系统中的工作目录绝对路径,退出用户时,要还原工作路径,以及创建文件时需要获取用户组中的当前用户名。
    • 对此实现一个FullSystem类,其中只有两个静态变量,存储MyFileSystem和MyUserSystem对象,在MyFileSystem和MyUserSystem的构造方法中,对这两个静态变量进行赋值,即可完成两个系统间的交互。

各个模块的耗时情况

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 10 10
· Estimate · 估计这个任务需要多少时间 10 10
Development 开发 585 790
· Analysis · 需求分析 (包括学习新技术) 10 10
· Design Spec · 生成设计文档 10 10
· Design Review · 设计复审 (和同事审核设计文档) 15 15
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 10 10
· Design · 具体设计 60 60
· Coding · 具体编码 300 900
· Code Review · 代码复审 60 120
· Test · 测试(自我测试,修改代码,提交修改) 120 300
Reporting 报告 30 30
· Test Report · 测试报告 10 10
· Size Measurement · 计算工作量 10 10
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 10 10
合计 625 1450
posted @ 2021-04-01 23:31  °不凉少年  阅读(107)  评论(6编辑  收藏  举报