教学班 罗杰、任建班周五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 优雅地退出程序

    本文转载自Java 优雅地退出程序 导语 很多情况下,我们的程序需要在操作系统 后台 一直运行,这在程序代码里的实现就是用死循环 ( while (true) ) 来实现的.但是,这样会出现一个问题, ...

  2. Window下Scala开发环境搭建

    在Windows下搭建Scala开发环境,需要做以下几个步骤 1) 安装JDK 2) 安装Scala,并配置环境变量 3) Idea安装并创建Scala 类 1.安装JDK JDK安装,这里不再介绍, ...

  3. 数据库分表自增ID问题

    .................................................................................................... ...

  4. 死磕Spring之IoC篇 - BeanDefinition 的加载阶段(XML 文件)

    该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...

  5. oracle 中的左外连接、右外连接、全连接

    左外连接 左外连接 全连接1.左外连接:表1 left [outer] join 表1 on 条件 在等值连接的基础上会把表1中的其他内容也展示出来 而表2只会显示符合条件的内容 . outer 可省 ...

  6. 适配三星Galaxy S8及S8+ 屏幕比例为 18.5:9

    开发者只需在App的AndroidManifest.xml文件<application> </application>中添加如下代码: <meta-data androi ...

  7. 死磕Spring之IoC篇 - Bean 的创建过程

    该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...

  8. C++入门(1):计算机组成

    系列文章尽在 | 公众号:lunvey 学习C++之前,我们有必要了解一下计算机的简单组成,毕竟C++是需要操作内存的一门语言.大家或许知道内存是什么,但是内存怎么读取和操作数据以及数据的表现形式会不 ...

  9. 《C++ Primer》笔记 第6章 函数

    任意两个形参都不能同名,而且函数最外层作用域中的局部变量也不能使用与函数形参一样的名字(形参就相当于该函数的局部变量). 形参名是可选的,但是由于我们无法使用未命名的形参,所以形参一般都应该有个名字. ...

  10. selenium之元素定位的方法(二)

    XPath定位是XML Path的缩写,称为XML路径语言,是在XML文档中查找信息的一种语言,可用来再XML文档中对元素和属性进行搜索.XPath使用路径表达式来选取XML文档中的节点或节点集. X ...