结对编程第一周总结

项目 内容
这个作业属于哪个课程 2021春季软件工程(罗杰 任健)
这个作业的要求在哪里 结对项目第一阶段要求
项目地址 结对作业仓库
小组成员1 3676@力理利丽黎
小组成员2 3821@cyy369

结对编程及感受

3676

敏捷开发,结对编程果然名不虚传。一开始阅读教材时,我曾天真的认为书上对于“结对编程”的描述过于夸张。而真正做起来,这项工作丝毫不给我们喘息的机会。团队从在一起读文档到最终完成自动化测试,一共花费了将近8+7=15个小时。

在这两天的长时间编程过程中,我的真实感受就是真的很累!即使我们像书上所述,中途会有短暂的休息,但是中途不间断地思考才是让我们心力疲惫的主要原因。

总的来说,这段时间大额度的付出也有大额度的回报。即使我们在总的设计思路上保持一致,我在我的队友身上也看到了很多:测试覆盖全面;项目结构清晰等等,这些我自己都不太完备的素质。往往他在写代码时的一个细节就能让我记忆犹新,所以我觉得结对编程让我有了很大的收获。

3821

结对编程,第一次两个人一台电脑来尝试编程开发,其实感觉还行。我们从开始需求分析一直到程序编码、程序测试等阶段都是保持线下面对面进行的,所以此次结对编程的最大的体会就是交流和沟通的成本大幅度降低。不需要去花费额外的时间来相互理解和保持思路的一致性,因为我们都面对着相同的文档,相同的代码,同步进行着思考,而且即使存在问题,另一方也能迅速的给予解答,方便高效的保持开发进度的持续推进。

结对开发的另一大感受就是互补性。无论是在需求分析、代码编写还是在单元测试部分,一件事物两个大脑的思考,总能够及时提出对方未考虑完全的点,以及编写代码时的小错误等。使得错误能够被及时纠正,覆盖性能够得到一定的增长,即使不能保证覆盖所有情况,但是相比于个人思考的局限性,也好了很多。同时也感谢队友在各个阶段的解释、指正和补充,他能够帮我理解需求部分一些细节(语文太差.jpg),以及提出很多细节上的点,包括编码和测试部分,让我学习到了很多。

其次是即使是结对编程也不能一次性开发过长时间,即使有两个脑子在思考,但是当其都处于疲惫状态时,效果也会很差出现不必要的bug(第一天结对编程最后时刻所写代码错误频出现身说法.jpg)。

设计与实现思路

总体思路

我们的设计思路其实非常简单。我们实现的文件系统的主要元素就只有两个:文件和目录。其中目录之间有包含关系(上下层),文件也会存在目录中。所以我们创建了两个类:MyFile类和MyPath类分别表示文件类和目录类。然后对于各个细节的要求,我们就在各个类中完成相应的必需功能并提供给顶层的MyFileSystem类,用来集成实现最终的功能。

MyFile类

文件类其实很简单,它多数情况下只用关心它自己,即内容,创建、修改时间,大小等属性。它与外界交流(被找到)的唯一途径就是自己的名字+所在目录。根据这个思路去设计文件类的属性和方法就非常的清楚了。

MyPath类

目录类相对于文件类稍复杂一些。首先我们要考虑目录的基本信息:名字,创建、修改时间,大小等等。其次我们需要考虑目录与目录之间的包含与被包含关系。我们发现,目录只能有一个父目录,可以有多个子目录,并且还能存很多文件。

根据上述思路,目录类的属性也就设计好了。那么我们只需要实现对这些属性的“增删改查”的方法就算完成了。

MyCheckPath类

这个类其实是我们在编写Mypath类时新建的。我们发现如果将检查路径这一功能放在MyPath类中实现,那么文件类势必也需要一个相同的检查路径的方法。所以我们将检查路径是否合法(长度,命名等)这一步骤单独用MyCheckPath实现,这样也降低了代码的耦合度。

PSP估计表

PSP2.1 Personal Software Process Stages 预计耗时 实际耗时
Planning 计划 20min(tot) 10min(tot)
· Estimate · 估计任务需要多长时间 20min 10min
Development 开发 895min(tot) 975min(tot)
· Analysis · 需求分析 90min 120min
· Design Spec · 生成设计文档 30min 30min
· Design Review · 设计复审 10min 10min
· Coding Standard · 代码规范 5min 5min
· Design · 具体设计 30min 20min
· Coding · 具体编码 400min 350min
· Code Review · 代码复审 30min 60min
· Test · 测试(自我测试,修改,提交) 200min 380min
Reporting 报告 135min(tot) 110min(tot)
· Test Report · 测试报告 100min 60min
· Size Measurement · 计算工作量 20min 30min
· Postmortem & Process Improvement Plan · 事后总结,提出改进计划 15min 20min
合计 950min 1095min
posted @ 2021-03-25 16:05  cyy369  阅读(270)  评论(3编辑  收藏  举报