Loading

结对编程,快乐你我 #2

项目 内容
这个作业属于哪个课程 2021春季软件工程(罗杰 任健)
这个作业的要求在哪里 结对编程第二次作业
这个作业的GitLab项目地址在哪里 项目地址
参与结对编程的是哪两位 3808 3050

一、体验

1.From 3808

OO PTSD

ISSUE OVERFLOW

15-B1-016 PREFERRED LOCATION

感谢助教们对ISSUE的及时FIX

愿武运昌隆

2.From 3050

  • 几天前还在看1906 oo人的笑话,今天发现小丑竟是我自己(

  • 在熟悉之后结对效率的提高较为明显,夜里昏头的时候有另一个人帮忙看着指出错误效果极佳

  • 再次认识到了需求分析的重要性,最开始没看出来cp操作有两种类型,拷贝和覆盖,然后出一个issue我惊诧一次。后来发现问题改正后至少再看那些issue就自然而然。这么说来指导书+issue其实真的有在暗示某种架构(当然啦肯定是标程吧),特别是在细节处理上,如果使用某种架构就能自然而然解决,但另一些方法,只要处理有不同就要极不优雅的特判。

  • 单元测试很重要,发现了一堆大锅。两个人写测试确实能找到一个人照顾不到的地方

  • 结对编程的项目应该和真正的工程需求还是有所不同的(应该是更有逻辑的),指导书也远比工作中有可能接触到的客户需求精准明晰,助教回复也超级及时,然而这样我们还是在需求分析上花了大量时间,确实觉得软件工程中需求的部分是最艰难的也最重要的。

3.结对编程方式

仍然沿用任务一时采用的Code with me

结对编程现场图:

二、设计实现思路

1.思路

1.1 文件系统

一切皆文件,目录、文件和链接均继承自抽象文件类

软链接仅保存绝对路径;硬链接仅保存所指对象的引用,且文件中包含保存所有指向自身的硬链接的列表,当文件发生更改时,会通知所有硬链接文件大小的变化

获取实体的方法分为重定向和不重定向,根据指导书要求选用不同方法

文件系统的mv方法在确认可以完成move操作后

  • 如果不需要覆盖目标文件,直接将原文件从原文件的父文件夹中移除,并放置在目标文件夹中
  • 否则,则在记录下目标文件的元数据后,移除目标文件,将元数据恢复到原文件后,再进行移除放置操作

mv方法不涉及重定向操作,此外,当mv操作涉及覆盖时,不需要保证被覆盖对象仍与其原有硬链接同步,因此可以上述操作

文件系统的cp方法在确认可以完成copy操作后,调用抽象文件类的抽象方法copy,创建原文件的副本

  • 如果不涉及覆盖,则直接将该副本添加到要被拷贝的目标文件夹下
  • 如果涉及覆盖,且拷贝前后对象类型不同,采用类似mv中的先删除再添加方法(与ISSUE相关内容不同,但本次测试不涉及)
  • 如果涉及覆盖,且拷贝前后对象类型相同,则调用被拷贝对象的coverFrom方法,在保留目标文件元数据的同时,利用原文件的内容完成覆盖

1.2 用户系统

本次用户系统较为独立,且指导书内容较为明确,依次完成UserUserGroupMyUserSystem的设计、实现和测试工作

1.3 系统交互

通过在SystemManager中设置两个静态变量,分别指向MyFileSystemMyUserSystem,当两个系统需要交互时,通过两个静态变量获取所需内容即可

2.测试

测试文件代码量 = 功能文件代码量 * 3

2.1 回归测试

将第一次作业单元测试和第一次作业强测数据(根据第二次指导书要求内容做出对应修改)用作回归测试

2.2 针对测试

对30+ISSUE(不包含【不测】类型的ISSUE)编写测试数据,进行针对性测试

2.3 单元测试

针对新功能编写单元测试数据,进行全面的单元测试

三、PSP

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 5 10
· Estimate · 估计这个任务需要多少时间 5 10
Development 开发 1690 2635
· Analysis · 需求分析 (包括学习新技术) 30 200
· Design Spec · 生成设计文档 30 10
· Design Review · 设计复审 (和同事审核设计文档) 30 20
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 10 5
· Design · 具体设计 30 100
· Coding · 具体编码 500 600
· Code Review · 代码复审 60 100
· Test · 测试(自我测试,修改代码,提交修改) 1000 1600
Reporting 报告 70 60
· Test Report · 测试报告 30 30
· Size Measurement · 计算工作量 10 10
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 30 20
合计 1765 2705
posted @ 2021-04-02 05:01  Joeye153  阅读(158)  评论(4编辑  收藏  举报