20155324 《Java程序设计》实验三 敏捷开发与XP实践

实验内容

  • XP基础

1.XP核心实践

2.相关工具

实验步骤

  • 敏捷开发与XP

1.敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。“敏捷流程”是一系列价值观和方法论的集合。

2.软件工程=开发流程+工具

3.常见的开发流程有:

·RUP(Rational Unified Process)
·PSP(Personal Software Process )
·TSP(Team Software Process )
·Agile Process
……

4.极限编程(eXtreme Programming,XP)是一种全新而快捷的软件开发方法:

·XP是以开发符合客户需要的软件为目标而产生的一种方法论
·XP是一种以实践为基础的软件工程过程和思想
·XP认为代码质量的重要程度超出人们一般所认为的程度
·XP特别适合于小型的有责任心的、自觉自励的团队开发需求不确定或者迅速变化的软件

5.XP准则:

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

实践在XP环境中成功使用的依据通过XP的法则呈现,包括:快速反馈、假设简单性、递增更改、提倡更改、优质工作。

6.XP软件开发的基石是XP的活动,包括:编码、测试、倾听、设计。

7.我们关注的XP实践:编码标准,结对编程,代码集体所有,测试,重构等。

- 编码标准

1.编程标准使代码更容易阅读和理解,保证其中的错误更少。

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

3.使用IDEA时,将原本没有缩进的代码直接粘贴至其编写代码的区域就会自动缩进,方便快捷、可读性强:

4.Java中的一般的命名规则:

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

5.标识符名字应当望文知意,一般采用英文单词或其组合。标识符的长度“min-length && max-information”的原则,可以通过去元音法把变量名变短;全局变量用具有说明性的名字,局部变量用短名字:单字符的名字,常见的如i,j,k等用作局部变量。

- 结对编程

1.结对编程中有两个角色:

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

1.XP的集体所有制意味着每个人都对所有的代码负责;这一点,反过来又意味着每个人都可以更改代码的任意部分。集体所有制的一个主要优势是提升了开发程序的速度,因为一旦代码中出现错误,任何程序员都能修正它。这意味着代码要放到一个大家都能方便获取的地方,我们叫代码仓库。

2.版本控制提供项目级的 undo(撤销)功能:没有什么事情是终结版本, 任何错误必须很容易回滚。

3.版本控制允许多人在同一代码上工作,只要遵守一定的控制原则就行。不会发生诸如一个人覆盖了另一个人编辑的代码,导致那个人的修改无效这样的情况。

4.版本控制系统保存了过去所作的修改的历史记录。如果你遭遇到一些惊讶的代码,通过版本控制系统可以很容易找出是谁干的,修改了什么,修改的时间,还能找出原因。

5.版本控制系统还支持在主线上开发的同时发布多个软件版本。在软件发布的时候也不需要整个团队的停止工作,不需要冻结代码。

6.git上传基本步骤:

·修改代码文件

·添加修改文件

·git add 所有修改的文件

·提交到环境中本地代码仓库

·git commit -m '本次修改的描述'

·push到你的项目中

·git push

使用git克隆其他用户代码仓库只需要知道对方的仓库链接。

- 重构

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

2.IDEA菜单中有个refactor菜单,可以帮助我们进行代码重构。

·功能1:Rename,可以给类、包、方法、变量改名字,使代码在没有注释的情况下也可以被了解基本信息。修改方法是选择IDEA中菜单中的Refactor->Rename

·功能2:封装。修改方法是选择菜单中的

Refactor->Refactor this->Encapsulate Field...

每次打印学生信息都这么写代码违反了DRY原则,造成代码重复,正常的重构可以使用IDEA中的`Extract->Method...`

由于Java中所有的类都有个专门的toString方法,还可以使用IDEA中`Code->Generate->toString()...` 给Student类产生一个toString方法。

6.一个完整的重构流程:

·从版本控制系统代码库中Check out code
·读懂代码(包括测试代码)
·发现bad smell
·Refactoring
·运行所有的Unit Tests
·往代码库中Check in code

  • 实践项目

1.建立小组;

2.下载同组成员代码;

3.下载代码的命名格式不正确,重新命名并上传代码;

4.下载代码违反了DRY原则,造成代码重复,使用Refactor->Extract->Method...改进并上传代码;

实验中的问题和解决过程

  • 问题:练习重构时,使用IDEA给Student类产生一个toString方法的结果与老师的实验步骤的结果并不一样,虽然产生了一个toString()方法,但是最后的System.out.println()那一句还是原来样子,并没有改变成System.out.println(s.toString());。

  • 解决:我不太清楚IDEA中转换的原理到底是什么,最后我手动改变了这一句。

PSP(Personal Software Process)时间

步骤 耗时 百分比
需求分析 40min 16.70%
设计 80min 33.35%
代码实现 80min 33.35%
测试 20min 8.30%
分析总结 20min 8.30%

参考资料

20155324 《Java程序设计》实验三 敏捷开发与XP实践的更多相关文章

  1. 20155229实验三 《Java面向对象程序设计实验三 敏捷开发与XP实践 》实验报告

    实验题目 1.在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能. 2.下载搭档实验二的Complex代 ...

  2. 20145213《Java程序设计》实验三敏捷开发与XP实践

    20145213<Java程序设计>实验三敏捷开发与XP实践 实验要求 1.XP基础 2.XP核心实践 3.相关工具 实验内容 1.敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法 ...

  3. 20145308刘昊阳 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

    20145308刘昊阳 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...

  4. 20145225《Java程序设计》 实验三 "敏捷开发与XP实践"

    20145225<Java程序设计> 实验三 "敏捷开发与XP实践" 实验报告 实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 git 上 ...

  5. 20165205 2017-2018-2 《Java程序设计》实验三 敏捷开发与XP实践

    20165205 2017-2018-2 <Java程序设计>实验三 敏捷开发与XP实践 实验内容 检查点1: 安装alibaba 插件,解决代码中的规范问题 首先把搭档加入到自己的项目中 ...

  6. 20155314 2016-2017-2 《Java程序设计》实验三 敏捷开发与XP实践

    20155314 2016-2017-2 <Java程序设计>实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验知识点总结 (一)敏捷开发与XP 软件工程:把系统 ...

  7. 20165230 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

    20165230 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: 指导教 ...

  8. 20155207王雪纯 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

    20155207王雪纯 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...

  9. 20155233 《Java程序设计》 实验三 敏捷开发与XP实践

    20155233 <Java程序设计> 实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤与内容 1.在IDEA中使用工具(Code->Reformat ...

随机推荐

  1. hdu6148 百度之星程序设计竞赛复赛 (数位dp)

    Valley Numer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  2. HTML 5 canvas globalCompositeOperation 属性

    做一个canvas鼠标跟随动画的时候用到了,就copy w3c的解释整理一番: globalCompositeOperation 属性设置或返回如何将一个源(新的)图像绘制到目标(已有)的图像上. 源 ...

  3. Eureka

    Consul vs. Eureka Eureka is a service discovery tool. The architecture is primarily client/server, w ...

  4. Quick Guide to Microservices with Spring Boot 2.0, Eureka and Spring Cloud

    https://piotrminkowski.wordpress.com/2018/04/26/quick-guide-to-microservices-with-spring-boot-2-0-eu ...

  5. Ubuntu更改主目录文件名为英文

    Ubuntu的语言设置成中文之后,自己主目录下的桌面.下载.文档等文件夹全部为中文汉字,使用终端时,输入十分不方便.需要把文件夹改成英文,而不更改系统语言. 在终端中输入以下命令 export LAN ...

  6. bzoj2553 禁忌

    题目链接 题意 给出一个\(n\)个字符串的字典.对于一个字符串,他的贡献是这个字符串中最多的在字典中出现的不重叠子串的数量. 然后问一个长度为\(len\)的,字符集为前\(alphabet\)个字 ...

  7. MySQL字符集 utf8 和 utf8mb4 区别及排序规则 general_ci 和 unicode_ci 和 bin 的区别

    先说字符集 utf8mb4说明:MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode.好在utf8mb4是utf8的超 ...

  8. Day16--Python--初识面向对象

    今日主要内容一. 面向对象思想 1. 面向过程. 重点在'过程'. 按照事物迭代发展流程. 优点: 简单,流水线式的操作 缺点: 可扩展性差.可维护性差. 2. 面向对象. 对象是属性和动作的集合体. ...

  9. JVM调优工具

    JMap 首先要知道Java进程的pid. Windows: .. .. .. Linux: ps -ef | grep java 查看堆栈信息(jmap -heap pid) jmap -heap ...

  10. 【 强大的Mac/iOS开发工具】AppCode for Mac 2017.3

    [简介] 最新的 AppCode 2017.3 版本,完全支持最新的Swift 4.0语言,这是一款JetBrain出品的强大的OS X 和 iOS开发工具,AppCode可以用于开发 Mac OS ...