教学班 罗杰、任建班周五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. SVG & getBBox

    SVG & getBBox https://developer.mozilla.org/en-US/docs/Web/API/SVGGraphicsElement/getBBox const ...

  2. flutter 长按图片保存到手机

    main.dart import 'dart:io'; import 'package:flutter/material.dart'; import 'package:http/http.dart' ...

  3. 彻底理解c++的隐式类型转换

    隐式类型转换可以说是我们的老朋友了,在代码里我们或多或少都会依赖c++的隐式类型转换. 然而不幸的是隐式类型转换也是c++的一大坑点,稍不注意很容易写出各种奇妙的bug. 因此我想借着本文来梳理一遍c ...

  4. 执行Python程序时模块报错

    1. 在执行python程序时遇到 'ModuleNotFoundError: No module named 'xxxxx'' : 例如: 图片中以导入第三方的 'requests' 模块为例,此报 ...

  5. winform导出excel

    public void AllDataSetToExcel(DataSet ds) { string saveFileName = ""; bool fileSaved = fal ...

  6. 死磕Spring之IoC篇 - BeanDefinition 的解析阶段(XML 文件)

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

  7. idea分布式创建子模块后不能创建java文件

    问题描述:多模块情况下,创建java文件,找不到java类,如下图,即使手动创建,在里面编写内容也没有任何反应. 解决方案:右键将文件标记为Sources Root便可以了,如果想要标记为资源文件的话 ...

  8. springMvc+AJAX+JSON的增删改查

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  9. 安鸾渗透实战平台-PHP代码练习

    0x00 前言 --工欲善其事,必先利其器 0x01 代码理解 (1)linux命令 pwd 查看当前工作目录的完整路径 cd / 切换到根目录 ls / 查看根目录下的所有目录和文件 cat /[f ...

  10. Java(JDK/Tomcat/Maven)运行环境配置及工具(idea/eclipse)安装

    Java (计算机编程语言) Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征. Java语 ...