教学班 罗杰、任建班周五3、4节
gitlab项目地址 Here it is.
成员 周远航(3004) 李辰洋(3477)

结对编程体验

感受

  • 在前期设计时,两人合作可以收集更多资料,提供更多想法,有利于设计更完备的架构。
  • 一人写代码、一人领航员的配合方式及时对于能肉眼辨别的错误进行纠正,例如笔误、空指针错误等。

照片

设计阶段:对指导书进行精读,设计整体逻辑架构和类。

编程阶段:一人主笔,一人领航,交替进行。

在后期由于课业原因不方便同时在线时,我们还选择了分工协作的方式,每人负责相对独立的方法实现,push后对方对其进行检查。

设计思路

在初期设计时,我们充分融合了linux哲学核心思想:一切皆文件,并参考了Google开源java7文件系统实现源码,对于本次结对任务的初期架构进行了如下设计:

  • MyFileSystem

    文件系统核心类。记录了root和currentPosition两个目录入口。

  • DirectoryEntry

    目录入口类。用于管理目录下的所有文件(包括目录文件、普通文件)以及文件树的上下级关系。

  • File

    抽象类,“一切皆文件”中的“文件”,所有文件的父类,定义了一些文件的统一属性。

  • RegularFile

    普通文件,继承File抽象类。

  • Directory

    目录文件,继承File抽象类。

在完成本次任务的架构设计后,我们尝试使用TDD(测试驱动开发)的开发流程,使用JUnit4模块为MyFileSystem类需要实现的接口方法建立测试。通过基本设计框架的确定,以及测试模块的搭建,更好地指导了本次任务的开发和功能实现。

时间规划

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟
Planning 计划 90 90
Estimate 估计这个任务需要多少时间 360 600
Development 开发 270 300
Analysis 需求分析 (包括学习新技术) 30 30
Design Spec 生成设计文档 10 10
Design Review 设计复审 (和同事审核设计文档) 10 10
Coding Standard 代码规范 (为目前的开发制定合适的规范) 0 0
Design 具体设计 30 30
Coding 具体编码 120 120
Code Review 代码复审 120 300
Test 测试(自我测试,修改代码,提交修改) 120 300
Reporting 报告 60 60
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 20 20

整体来看,设计和主要代码的编写过程比较顺利,后期的测试花费了比想象中更多的时间。

结对作业-stage_1的更多相关文章

  1. 结对作业1----基于flask框架的四则运算生成器

    011.012结对作业 coding地址:https://coding.net/u/nikochan/p/2nd_SE/git 一.作业描述 由于上次作业我没有按时完成,而且庞伊凡同学编程能力超棒,所 ...

  2. 软件工程第三次作业-结对作业NO.1

    第一次结对作业 结对人员: 潘伟靖 170320077 张 松 170320079 方案分析 我们对所供的资料进行分析,如下: 从提供的资料可以看出,需要解决的问题以及满足的需求主要有两类目标用户,各 ...

  3. 第6次结对作业--郑锦伟&古维城

    第6次结对作业 在线英语学习平台客户端原型 1.结对成员 郑锦伟 2015034643034 古维城 2015034643033 2.原型设计工具实现-Photoshop 3.需求分析 使用NABCD ...

  4. [2019BUAA软件工程]结对作业

    Tips Link 作业链接 [2019BUAA软件工程]结对作业 GitHub地址 WordChain PSP表格 psp2.1   预估耗时(分钟) 实际耗时(分钟) Planning 计划 60 ...

  5. [BUAA软工]第一次结对作业

    [BUAA软工]结对作业 本次作业所属课程: 2019BUAA软件工程 本次作业要求: 结对项目 我在本课程的目标: 熟悉结对合作,为团队合作打下基础 本次作业的帮助:理解一个c++ 项目的开发历程 ...

  6. 软工实践——结对作业2【wordCount进阶需求】

    附录: 队友的博客链接 本次作业的博客链接 同名仓库项目地址 一.具体分工 我负责撰写爬虫爬取信息以及代码整合测试,队友子恒负责写词组词频统计功能的代码. 二.PSP表格 PSP2.1 Persona ...

  7. 第四,五周——Java编写的电梯模拟系统(结对作业)

    作业代码:https://coding.net/u/liyi175/p/Dianti/git 伙伴成员:石开洪 http://www.cnblogs.com/shikaihong/(博客) 这次的作业 ...

  8. 结对作业——随机生成四则运算(Core 第7组)

    结对作业 ——随机生成四则运算(core第7组) 吕佳玲 PB16060145 涂涵越 PB16060282 GITHUB地址 https://github.com/hytu99/homework_2 ...

  9. 结对作业(1.0版)(bug1已修复)

    import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing ...

随机推荐

  1. 前端传数据到后台,后台用实体类接收不到引发的思考----Java bean中字段命名潜规则

    1.按照Java语法规范,通常在实体类中的属性,首字母都是小写的.这是由于JavaBean的规范导致的.一般JavaBean属性都是首字母小写,以驼峰命名格式命名,相应的 getter/setter ...

  2. sentry SSRF

    目录 Sentry介绍 exp测试步骤 自己构造blind发包 修复方式 参考 Sentry介绍 Sentry 是一个实时的事件日志和聚合平台,基于 Django 构建.一般在url上.或者logo上 ...

  3. cat常用参数

    cat 命令格式 cat [选项] [文件] -A, --show-all:等价于 -vET. -b  --number-nonblank:和 -n 相似,只不过对于空白行不编号. -e:等价于&qu ...

  4. 剑指 Offer 14- II. 剪绳子 II + 贪心 + 数论 + 快速幂

    剑指 Offer 14- II. 剪绳子 II 题目链接 因为有取模的操作,动态规划中max不能用了,我们观察:正整数从1开始,但是1不能拆分成两个正整数之和,所以不能当输入. 2只能拆成 1+1,所 ...

  5. IDEA的下载、安装与破解

    IDEA的下载.安装与破解 下载地址:https://www.jetbrains.com/idea/download/#section=windows 建议下载2018.2版本,方便破解 安装 一直下 ...

  6. Linux less命令查看文件常用查询方法

    g 跳到文件开头 G 跳到文件结尾 / 往下搜索字符 ? 网上搜索字符 n 执行上一个搜索(/或者?的搜索),例如上一个搜索是使用/搜索的,则继续使用/搜索,即往下搜索结果 N 反向执行上一个搜索(/ ...

  7. BuaacodingT651 我知道你不知道圣诞节做什么 题解(逻辑)

    题目链接 我知道你不知道圣诞节做什么 解题思路 第一句话:x,y不都为质数. 第二句话:对于xy=t,存在唯一一种x+y使得x,y不都为质数. 第三句话:对于x+y=s,存在唯一一种t=xy使得对于任 ...

  8. java 动态规划解决上楼梯问题

    问题描述: 你正在爬楼梯. 它需要n步才能达到顶峰. 每次你可以爬1或2步. 您可以通过多少不同的方式登顶? 注意:给定n将是一个正整数. Example 1: Input: 2 Output: 2 ...

  9. RichText实现动态输入关键字高亮颜色显示

    int a = 0; string[] kc = new string[40] { "private","protected","public&quo ...

  10. Get和Post区别(转载)

    转载自:https://www.cnblogs.com/logsharing/p/8448446.html GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一 ...