20145328 《Java程序设计》实验三实验报告

实验名称

Java敏捷开发与XP实践

实验内容

  1. XP基础
  2. XP核心实践
  3. 相关工具

实验步骤

(一)敏捷开发与XP

  • 敏捷开发是一种以人为核心、迭代、循序渐进的开发方法
  • XP极限编程是一种全新而快捷的软件开发方法

(二)编码标准

  • 程序的版式追求清晰、美观
  • 给包、类、变量、方法等标识符命名:包名全部小写,类名第一个字母大写,变量名和方法名第一个字母小写

(三)结对编程

  • 在结对编程模式下,一对程序员肩并肩、平等地、互补地进行开发工作
  • 两种角色:驾驶员和领航员

(四)版本控制

1.在 git@osc 上新建项目

由于我是将所有的实验代码放在同一个项目中,根据实验序号命名不同的package包进行管理,所以对应的在git上也是只有一个项目,所以这一步可以省略,这里附上实验项目的git连接

下面为实验项目的截图

2.在项目管理中将队友添加为开发者

具体方法为点击 git@osc 实验项目标题下方最右的管理选项夹,在弹出的窗口中,左方选项栏内选择项目成员管理-开发者-添加项目成员,添加时的页面如下图所示

完成添加后的确认界面如下所示,不过在添加的过程中一定要注意队友的昵称和邮箱,因为有可能出现昵称重名的情况,不要因为疏忽而添加错误

3.在IDEA中利用git功能新建项目【VCS-Checkout form Version Control-Git】

由于我和队友双方都使用的是IDEA进行代码编辑,而使用git bash的命令操作比较复杂而且容易出错,队友的对于git的操作并不熟悉,所以我选择通过在IDEA中使用git完成实验的方法,而实际操作下来也发现的确要比git bash要方便很多,特别是在IDEA中可以直接通过链接来在本地新建一个已经在 git@osc 中存在的项目,此处使用的也正是这种方法。

首先在IDEA上方的选项工具栏中选择【VCS-Checkout form Version Control-Git】,

将 git@osc 中已经存在的项目链接复制到出现的窗口,点击右侧的Test按钮检查链接是否正确,

由于前面提到过,由于我是将所有的实验代码放在同一个项目中,根据实验序号命名不同的package包进行管理,所以对应的在git上也是只有一个项目,所以这一步依旧省略

4.编写项目代码

5.在IDEA中利用git功能进行【git add】【git commit】【git push】操作,

如下图所示,在所需要上传的文件或文件夹处单击鼠标右键,在弹出的菜单中选择【Git-Add】,

注意:此处若是在文件夹处使用Git-Add,那么相当于在git bash中使用 git add .命令

在上方工具栏中选择【VCS-Git-Commit File…】,

出现如下图所示界面,在图中的文本框中可以填写需要Commit的信息,然后点击下方的Commit按钮即可

接下来在上方的工具栏中选择【VCS-Git-Push…】或在上图中的将鼠标停留在Commit按钮处然后选择【Commit and push…】将会出现如下界面,点击下方的push按钮即可完成上传操作

6.完成自己项目的上传

7.进入队友已完成上传的项目,复制项目地址,利用git功能在本地新建对应的项目【VCS-Checkout form Version Control-Git】
出现错误

由于本地已有同名项目,所以修改本地项目名称即可(后面加_jdy说明该项目来自吉东云进行区分即可)

9.修改对方对应的项目代码

10.再次利用IDEA中的git功能进行【git add】【git commit】【git push】操作,完成对方项目的上传

11.完成对方项目的上传操作

吉冬云experiment项目地址:http://git.oschina.net/jdy1453/experment

吉冬云实验报告blog地址:http://www.cnblogs.com/jdy1453/p/5428125.html

12.上传结果截图

(五)重构

  • 在不改变软件外部行为的基础上,改变软件内部的结构
  • 修改类名:右击类名,选择菜单中的Refactor->Rename来重命名

重命名后的文件名为MyMath.java,对类中变量名也进行重构后的类如下图所示

  • 对类中未进行封装的部分进行从重新封装。选择菜单中的Refactor->Encapsulate Field…来进行封装

原本的代码以及运行结果如图所示

在Student类的类名处右键,选择Refactor->Encapsulate Field…

出现如下所示界面,可对需要进行封装的变量进行选择,然后点击下方的Refactor按钮即可,

对name变量进行封装后的代码如图所示

同样可对age和id两个成员变量进行封装,结果如下

上面代码中的System.out.println处还是有问题的,每次打印学生信息都这么写代码违反了DRY原则,造成代码重复,正常的重构可以使用Extract Method...,如下图:

由于Java中所有的类都有个专门的toString方法,我们使用IDEA中Code->Generate->toString()... 给Student类产生一个toString方法,如下图:

修改main的代码,结果如下:

心得体会

本次实验是Java课程的第三次实验,如果不算上实践项目中所需要编写的游戏项目的话,那么这次实验还是比较简单的,因为这一次实验所涉及的内容更多的是关于如何使用git,稍微麻烦一点的也就是因为这是一个组队项目,之前一直没接触过加入项目组或者将其他用户添加成自己项目的开发员,所以最开始出现了一定的问题,但是找到解决方法后很快的就将剩下的内容完成了。由于队友对于git的操作方面并不熟悉,而且我们都是使用的IDEA进行代码编写,便选择的是在IDEA中使用git的方法,而在程序选择时也是选择了最简单的HelloWorld。对于重构操作的学习了解也让我对于代码的修改有了更深一层的认识。

团队贡献

本次实验的内容基本上都是两人合作共同完成,由于选择的程序是最简单的HelloWorld,所以实验的重点便是围绕着git的上传自己代码下载队友代码修改后再次上传队友代码为主,实验讨论过程中由我对队友在git过程中的细节进行讲解并答疑,我也在帮她答疑的过程中对自己之前所写的教程进行修改,并发现自己没有看到的知识盲点,如果团队总分是10分,那么根据讨论的结果,我得其中的6分,队友得其中的4分

PSP(Personal Software Process)时间:

步骤 耗时 百分比
需求分析 40min 20%
设计 30min 15%
代码实现 50min 25%
测试 50min 25%
分析总结 30min 15%

20145328 《Java程序设计》实验三实验报告的更多相关文章

  1. 20145206《Java程序设计》实验三实验报告

    20145206<Java程序设计>实验三实验报告 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运 ...

  2. 20145120 《Java程序设计》实验三实验报告

    20145120 <Java程序设计>实验三实验报告 实验名称:敏捷开发与XP实践 实验目的与要求: XP基础 XP核心实践 相关工具 (一)敏捷开发与XP 极限编程(eXtreme Pr ...

  3. 20155206 《Java程序设计》实验三实验报告

    20155206 <Java程序设计>实验三实验报告 实验内容 Java敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤 提交一: 提交二: 提交三: 提交四:

  4. 20155232 《Java程序设计》实验三实验报告

    20155232 <Java程序设计>实验三实验报告 实验内容 Java敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 敏捷开发(Agile ...

  5. 20145303《Java程序设计》实验三实验报告

    20145303<Java程序设计>实验三实验报告 ssh公钥配置及git安装: eclipse中git配置: 队友链接: http://www.cnblogs.com/5321z/p/5 ...

  6. 20145236 《Java程序设计》实验三实验报告

    实验三实验报告 和张亚军同学一组: 实验三实验报告

  7. 20144303 《Java程序设计》第一次实验实验报告

    20144303 <Java程序设计>第一次实验实验报告 北京电子科技学院(besti)实验报告 课程:java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.08 ...

  8. 20145240 《Java程序设计》第一次实验报告

    20145240 <Java程序设计>第一次实验报告 实验内容 一.命令行下java程序开发 1.建立Code目录,输入mkdir 20145240命令建立实验目录,并使用dir命令查看目 ...

  9. 20145330《Java程序设计》第一次实验报告

    20145330<Java程序设计>第一次实验报告 实验一Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Ja ...

随机推荐

  1. Spring Cloud Feign 使用OAuth2

    Spring Cloud 微服务架构下,服务间的调用采用的是Feign组件,为了增加服务安全性,server之间互相调用采用OAuth2的client模式.Feign使用http进行服务间的通信,同时 ...

  2. 170405、java版MD5工具类

    package com.rick.utils; import java.security.MessageDigest; import java.security.NoSuchAlgorithmExce ...

  3. Java基础之Calendar类、JNDI之XML

     一.Calendar类 从JDK1.1版本开始,在处理日期和时间时,系统推荐使用Calendar类进行实现.在设计上,Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要 ...

  4. CodeForces 639 A

    Bear and Displayed Friends time limit per test2 seconds memory limit per test256 megabytes inputstan ...

  5. 阿里云OSS分片上传DEMO

    分片传输规则 1.不能超过10000片,2.每片必须大于100KB using System; using System.Collections.Generic; using System.Compo ...

  6. spring boot 系列学习记录

    ——初始篇 结束了短学期的课程,初步学习了ssm框架,凭借这些学到的知识完成了短学期的任务-----点餐系统. 通过学长了解到了spring boot ,自己对spring cloud有所耳闻,但是s ...

  7. 前端开发 - CSS - 上

    CSS: 1.css的引入方式 2.基础选择器 3.高级选择器 4.选择器的优先级 5.伪类选择器 6.字体样式 7.文本样式 8.背景 9.盒模型border 10.margin 11.paddin ...

  8. Shiro出现的问题

    报错java.lang.IllegalArgumentException: Line argument must contain a key and a value.  Only one string ...

  9. setup.py

    from distutils.core import setup # 使用说明 # 执行以下命令 # python3 setup.py build # python3 setup.py sdist(这 ...

  10. linux 系统性能指标

    一.查看CPU使用情况 cpu使用率反映的是当前cpu的繁忙程度,忽高忽低的原因在于占用cpu处理时间的进程可能处于io等待状态但却还未释放进入wait. 平均负载(loadaverage)是指某段时 ...