结对作业-stage_1
| 教学班 | 罗杰、任建班周五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----基于flask框架的四则运算生成器
011.012结对作业 coding地址:https://coding.net/u/nikochan/p/2nd_SE/git 一.作业描述 由于上次作业我没有按时完成,而且庞伊凡同学编程能力超棒,所 ...
- 软件工程第三次作业-结对作业NO.1
第一次结对作业 结对人员: 潘伟靖 170320077 张 松 170320079 方案分析 我们对所供的资料进行分析,如下: 从提供的资料可以看出,需要解决的问题以及满足的需求主要有两类目标用户,各 ...
- 第6次结对作业--郑锦伟&古维城
第6次结对作业 在线英语学习平台客户端原型 1.结对成员 郑锦伟 2015034643034 古维城 2015034643033 2.原型设计工具实现-Photoshop 3.需求分析 使用NABCD ...
- [2019BUAA软件工程]结对作业
Tips Link 作业链接 [2019BUAA软件工程]结对作业 GitHub地址 WordChain PSP表格 psp2.1 预估耗时(分钟) 实际耗时(分钟) Planning 计划 60 ...
- [BUAA软工]第一次结对作业
[BUAA软工]结对作业 本次作业所属课程: 2019BUAA软件工程 本次作业要求: 结对项目 我在本课程的目标: 熟悉结对合作,为团队合作打下基础 本次作业的帮助:理解一个c++ 项目的开发历程 ...
- 软工实践——结对作业2【wordCount进阶需求】
附录: 队友的博客链接 本次作业的博客链接 同名仓库项目地址 一.具体分工 我负责撰写爬虫爬取信息以及代码整合测试,队友子恒负责写词组词频统计功能的代码. 二.PSP表格 PSP2.1 Persona ...
- 第四,五周——Java编写的电梯模拟系统(结对作业)
作业代码:https://coding.net/u/liyi175/p/Dianti/git 伙伴成员:石开洪 http://www.cnblogs.com/shikaihong/(博客) 这次的作业 ...
- 结对作业——随机生成四则运算(Core 第7组)
结对作业 ——随机生成四则运算(core第7组) 吕佳玲 PB16060145 涂涵越 PB16060282 GITHUB地址 https://github.com/hytu99/homework_2 ...
- 结对作业(1.0版)(bug1已修复)
import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing ...
随机推荐
- Nestjs 上传文件到七牛云
$ npm install qiniu import * as url from 'url'; import * as qiniu from 'qiniu'; @Post('upload') @Use ...
- c++中运行lua
video 下载lua源码将src下面除了 lua.c和luac.c 的文件全部添加到项目中 #include <iostream> #include "lua.hpp" ...
- 比特币跌破3.5万美元,巨鲸们将目光瞄向SPC算力币
比特币最近又迎来了大幅下跌,截至周三(1月20日),比特币跌幅超过5%,跌破3.5万美元.很显然,比特币没有预期那样顺顺利利地登顶4万美元,反而又出现了回调迹象.有些巨鲸们在大肆囤币,然而也有些巨鲸们 ...
- NGK公链如何构建区块链数字经济商业帝国?
2020年对于区块链市场来说,重大的利好消息莫过于NGK公链的上线了.NGK公链其广泛的市场前景.顶尖的技术,一直备受众多大型机构以及投资者所看好.同时,NGK公链也不负众望,在上线以后,就开始落地到 ...
- 「NGK每日快讯」12.2日NGK公链第29期官方快讯!
- JDBC概念理解
##JDBC: 概念:Java DataBase Connectivity Java 数据库连接 Java语言操作数据库 JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则 ...
- MySQL 常用命令手册 增删改查大法
一.数据库操作 创建数据库 语法: CREATE DATABASE database_name; 删除数据库 删除数据库务必谨慎!因为执行删除命令后,所有数据将消失. 语法: DROP DATABAS ...
- 用Python来控制Autocad的打印------以Pycomcad为例
from pycomcad import * #以pycomcad作为接口库为例 import win32com acad=Autocad() 打印最重要的设置都在上面的界面中,下面对这些个界面,用P ...
- 手把手教你手写一个最简单的 Spring Boot Starter
欢迎关注微信公众号:「Java之言」技术文章持续更新,请持续关注...... 第一时间学习最新技术文章 领取最新技术学习资料视频 最新互联网资讯和面试经验 何为 Starter ? 想必大家都使用过 ...
- AOP面试造火箭始末
本文已整理致我的github地址,欢迎大家 star 支持一下 这是一个困扰我司由来已久的难题,Dubbo 了解过吧,对外提供的服务可能有多个方法,一般我们为了不给调用方埋坑,会在每个方法里把所有异常 ...