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

实验名称:敏捷开发与XP实践

实验目的与要求:

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

(一)敏捷开发与XP

极限编程(eXtreme Programming,XP)是是一种全新而快捷的软件开发方法
XP准则:
沟通 :XP认为项目成员之间的沟通是项目成功的关键,并把沟通看作项目中间协调与合作的主要推动因素。
简单 :XP假定未来不能可靠地预测,在现在考虑它从经济上是不明智的,所以不应该过多考虑未来的问题而是应该集中力量解决燃眉之急。
反馈 :XP认为系统本身及其代码是报告系统开发进度和状态的可靠依据。系统开发状态的反馈可以作为一种确定系统开发进度和决定系统下一步开发方向的手段。
勇气 :代表了XP认为人是软件开发中最重要的一个方面的观点。在一个软件产品的开发中人的参与贯穿其整个生命周期,是人的勇气来排除困境,让团队把局部的最优抛之脑后,达到更重大的目标。表明了XP对“人让项目取得成功”的基本信任态度。

(二)编码标准

编程标准包含:具有说明性的名字、清晰的表达式、直截了当的控制流、可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性。

Java常用命名规则
要体现各自的含义
包、类、变量用名词
方法名用动宾
包名全部小写,如:io,awt
类名第一个字母要大写,如:HelloWorldApp
变量名第一个字母要小写,如:userName
方法名第一个字母要小写:setName
...

(三)结对编程

驾驶员(Driver)是控制键盘输入的人。
领航员(Navigator)起到领航、提醒的作用。

驾驶员:写设计文档,进行编码和单元测试等XP开发流程。
领航员:审阅驾驶员的文档、驾驶员对编码等开发流程的执行;考虑单元测试的覆盖率;思考是否需要和如何重构;帮助驾驶员解决具体的技术问题。
驾驶员和领航员不断轮换角色,不要连续工作超过一小时,每工作一小时休息15分钟。领航员要控制时间。
主动参与。任何一个任务都首先是两个人的责任,也是所有人的责任。没有“我的代码”、“你的代码”或“他/她的代码”,只有“我们的代码”。
只有水平上的差距,没有级别上的差异。两人结对,尽管可能大家的级别资历不同,但不管在分析、设计或编码上,双方都拥有平等的决策权利。

(四)版本控制

(五)重构

重构(Refactor),就是在不改变软件外部行为的基础上,改变软件内部的结构,使其更加易于阅读、易于维护和易于变更 。

实验内容、步骤

PSP

步骤 耗时 百分比
需求分析 0.5 10%
设计 0.5 10%
代码实现 1.75 35%
测试 1.75 35%
分析总结 0.5 10%

实验步骤

我和20145122程智崟合作进行本次实验,以下程智崟简称22
首先,我选择了以前的一个项目,对项目进行管理

将22添加为项目成员

---

---

我和22号各上传待修改文件

---

再各自下载下来,

---
发现文件命名不规范
尝试运行文件

---
有一个ComplexNumber方法是多余的

---
两个set方法没有使用过

---
再次编译运行

将修改后的文件再上传

---

遇到的问题


我们本来新建了一个develop分支,但是后来发现不能push上去,只能push到master上,实验时间有限我们就先在master做着了
认真学习之后发现应该先用git checkout develop切换分支
切换失败了?
于是我试了下检查分支,发现本地只有master分支,就先用git fetch把分支都下载下来
再切换一次,成功了

关于junit

之前我尝试在IDEA用junit失败了,但是以后实验可能还要用junit,于是我努力研究解决了这个问题
使用GO TO产生一个测试类,

选择junit4

import org.junit.text显示cannot resloves symbol 'junit',junit下面显示红色波浪线
点左侧的红色小灯泡,会提示这其实是因为没有设置好环境变量,下面还有自动帮你设置的选项,选设置junit路径到环境变量,问题解决。

参考资料

最新文章

  1. Linux安全基础:vi的使用
  2. Androd核心基础01
  3. 面向企业客户的制造业CRM系统的不成熟思考
  4. Android学习第六弹之Touch事件的处理
  5. MyEclipse------如何连接MySQL
  6. 通过sqlserver日志恢复误删除的数据
  7. linux命令:du 命令
  8. 454. 4Sum II ——查找本质:hash最快,二分次之
  9. Fedora 19 vim c语言开发环境
  10. Codeforces Round #318 [RussianCodeCup Thanks-Round] (Div. 1) B. Bear and Blocks 水题
  11. linux下搭建svn服务器
  12. VMware Workstation虚拟机使用ISO映像文件
  13. and then set HOMEBREW_GITHUB_API_TOKEN.
  14. WAS ND V6下配置IHS V6
  15. 论文笔记系列-Well Begun Is Half Done:Generating High-Quality Seeds for Automatic Image Dataset Construction from Web
  16. 001_twoSum
  17. Mac下搭建solr搜索引擎与PHP扩展开发(上)
  18. [vue]webpack中使用组件
  19. Django之连接远程mysql数据库
  20. Excel技巧--使用规划求解

热门文章

  1. Spring MVC防御CSRF、XSS和SQL注入攻击
  2. 1Android系统移植与驱动开发概述
  3. 最新百度音乐api
  4. 显示或隐藏一个Grid
  5. Vue.js学习 Item8 -- 方法与事件处理器
  6. ES2015 ——let命令的暂时性死区
  7. 三种找回 linux root密码
  8. mac 安装lua并配置Subline Text2 的lua开发环境
  9. C++求1!到n!的和
  10. Hive启动时的棘手问题的处理