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. Java项目使用oh-my-email发送邮件

    本文使用Github开源项目oh-my-email进行测试邮件发送,并未进行更为深度的测试,如果想要快速使用,的确是一个很好的邮件发送组件.https://github.com/biezhi/oh-m ...

  2. PAT 甲级 1060 Are They Equal

    1060. Are They Equal (25) 时间限制 50 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue If a ma ...

  3. CEF3 HTML5 audio标签为什么不能播放mp3格式的音频文件

    CEF3 HTML5 audio标签 为什么不能播放mp3格式的音频文件   原因略.   解决方法: 找一个最新版的chrome ,我用的是24版本.路径 C:\Documents and Sett ...

  4. ORACLE内存结构之SGA

    SGA的管理: SQL> show parameter sga NAME                                 TYPE        VALUE ---------- ...

  5. java通过ping 判断网络是否正常

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i ...

  6. SpringBoot 之数据访问

    1. Spring Boot 与 JDBC 默认使用 org.apache.tomcat.jdbc.pool.DataSource 数据源; // application.yml spring: da ...

  7. LeetCode_Isomorphic Strings

    Isomorphic Strings Given two strings s and t, determine if they are isomorphic. Two strings are isom ...

  8. lvs、haproxy、nginx 负载均衡的比较分析(转)

    原文:http://blog.csdn.net/gzh0222/article/details/8540604 对软件实现负载均衡的几个软件,小D详细看了一下,从性能和稳定上还是LVS最牛,基本达到了 ...

  9. linux下安装mysql(mariadb)

    yum安装软件(官网很慢) yum install mariadb 发现版本如下,版本特别低,且安装包特别小, mariadb x86_64 :-.el7_5 base 8.9 M .我们可以配置ma ...

  10. Java根据IP地址获取MAC地址

    先使用ping -n  2 10.0.0.1 命令,如果返回的结果中含有TTL字符,证明ping 10.0.0.1是能ping通的,即可达的.如果在Linux机器上请使用 ping -c 2 10.0 ...