20145203盖泽双java实验三 敏捷开发与XP实践

java实验三 敏捷开发与XP实践

实验内容

  1. XP基础

  2. XP核心实践

  3. 相关工具

实验要求

1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程

2.完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导

  1. 严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。

实验步骤

(一)敏捷开发与XP

1、软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。

2、软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。

3、人们在开发、运营、维护软件的过程中有很多技术、做法、习惯和思想体系。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”。

软件开发流程的目的:为了提高软件开发、运营、维护的效率,并提高软件的质量、用户满意度、可靠性和软件的可维护性。
4、编程:Java中单元测试要和JUnit的应用结合起来,建模要和Umbrello或StarUML的应用结合起来。

5、①软件工程=开发流程+工具 ②软件=程序+软件工程 ③软件企业=软件+商业模式

6、常见的开发流程有:

•RUP(Rational Unified Process)

•PSP(Personal Software Process )

•TSP(Team Software Process )

•Agile Process
•……

7、敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。敏捷开发宣言:

①个体交互胜过过程和工具。

②可以工作的软件胜过面面俱到的文档。

③客户合作胜过合同谈判。

④响应变化胜过遵循计划。

8、极限编程(eXtreme Programming,XP)是:

①XP是以开发符合客户需要的软件为目标而产生的一种方法论

②XP是一种以实践为基础的软件工程过程和思想

③XP认为代码质量的重要程度超出人们一般所认为的程度

④XP特别适合于小型的有责任心的、自觉自励的团队开发需求不确定或者迅速变化的软件

9、XP准则:
①沟通 :成员之间的沟通。②简单 :集中力量解决燃眉之急。③反馈 ④勇气:人让项目取得成功。

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

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

(二)编码标准

1、重要的认识:“程序大多时候是给人看的”

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

890515-20160424233451023-759924077.png

带有缩进

890515-20160424233629898-148899952.png

带有空格

890515-20160424233708445-1709719229.png

3、java中给包、类、变量、方法等标识符命名的一般规则有:

①要体现各自的含义

②包、类、变量用名词

③方法名用动宾

④包名全部小写,如:io,awt

⑤类名第一个字母要大写,如:HelloWorldApp

⑥变量名第一个字母要小写,如:userName

⑦方法名第一个字母要小写:setName

例如:
①标识符名字应当直观且可以拼读,可望文知意,不必进行“解码”,一般采用英文单词或其组合,便于记忆和阅读,切忌使用汉语拼音来命名,用词要准确例如“当前值”应该起名currentValue,写成nowValue就不准确了,但还凑合,写成dqz(dang qian zhi 首字母)就是笑话了。

②标识符的长度“min-length && max-information”的原则,比如:maxVal 比 maxValueUntilOverflow要好些,可以通过去元音法把变量名变短,如returnValue->rtnVal ,message->msg;一般全局变量用具有说明性的名字,局部变量用短名字:单字符的名字,常见的如i,j,k等用作局部变量。

4、代码标准,可以遵循以下原则:

①不要预先花费太多时间。

②目标应该是团队中没有人辨认各自的代码。

③以团队为单位对某一标准达成协议,然后遵循这一标准。

④不是事无巨细的规则标准列表,而是确保代码可交流的指导方针。

⑤代码标准开始时应很简单,然后根据团队经验逐步进化。

⑥创建能够工作的最简单标准,然后逐步发展。

⑦只制定适合本团队的。

(三)结对编程

1、结对编程是XP中的重要实践。在结对编程模式下,一对程序员肩并肩、平等地、互补地进行开发工作。他们并排坐在一台电脑前,面对同一个显示器,使用同一个键盘、同一个鼠标一起工作。他们一起分析,一起设计,一起写测试用例,一起编码,一起做单元测试,一起做集成测试,一起写文档等。
结对编程中有两个角色:

①驾驶员(Driver)是控制键盘输入的人。写设计文档,进行编码和单元测试等XP开发流程。

②领航员(Navigator)起到领航、提醒的作用。审阅驾驶员的文档、驾驶员对编码等开发流程的执行;考虑单元测试的覆盖率;思考是否需要和如何重构;帮助驾驶员解决具体的技术问题。领航员要控制时间。每工作一小时休息15分钟。

2、主动参与。①我们的代码。②只有水平上的差距,没有级别上的差异。两人结对,尽管可能大家的级别资历不同,但不管在分析、设计或编码上,双方都拥有平等的决策权利。
团队精神是好多地方都强调的一个精神,最小的团队就是一对一的二人团队了,培养团队精神从结对编程开始吧。社会生活中人与人相处最重要的是诚信,有同理心,互利。结对编程中大家会出现分歧,如何更有效地合作要做到对事不对人,掌握这些是可以终生受益的,如何影响小伙伴,大家参考一下两人合作:要会做汉堡包。

结对编程小组成员博客20145324王嘉澜:http://www.cnblogs.com/SJZGM10/p/5422303.html

1、下载她上传好的代码

890515-20160424234309257-509730219.png

890515-20160424234407257-1116390485.png

2、自己做修改

890515-20160424234454507-1330610804.png

3、重新上传

890515-20160424234528085-2029997820.png

(四)版本控制

1、XP的集体所有制意味着每个人都对所有的代码负责,每个人都可以更改代码的任意部分。

2、结对编程对这一实践贡献良多:借由在不同的结对中工作,所有的程序员都能看到完全的代码。集体所有制的一个主要优势是提升了开发程序的速度,因为一旦代码中出现错误,任何程序员都能修正它。这意味着代码要放到一个大家都能方便获取的地方,我们叫代码仓库。这引出另外一个话题叫版本控制(Version Control)。

3、版本控制的特点和功能:

①版本控制提供项目级的 undo(撤销) 功能: 没有什么事情是终结版本,任何错误必须很容易回滚。这让你的团队工作自由快速的工作, 而且对于修正错误也非常自信。

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

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

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

⑤版本控制也是项目级的时间机器,你可以选择任何一个时间, 精确地查看项目在当时的情况。 这对研究非常有用, 也是重现以前某个有问题的发布版本的基础。

4、流行的版本控制工具有CVS,SVN,Git等,更多的可以参考这里。Git是Linus除了Linux操作系统外的另外一个重要发明。

(五)重构

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

2、不改变软件外部行为,它保证了我们在重构原有系统的同时,不会为原系统带来新的BUG,以确保重构的安全。

如何保证不改变软件外部行为?

重构后的代码要能通过单元测试。如何使其更加易于阅读、易于维护和易于变更 ?

重构重要吗?重构几乎是现代IDE的标配了。

3、重构的第一项功能就是Rename,可以给类、包、方法、变量改名字。

如下例:

890515-20160424234751679-2012886856.png

重构类名:

890515-20160424235055007-415544690.png

重构变量名:

!890515-20160424235033195-1647124855.png

重构name:

890515-20160424235710695-1479378816.png

封装id:

890515-20160424235755335-395857373.png

封装age:

890515-20160424235824101-544756224.png

4、一个完整的重构流程包括:

①从版本控制系统代码库中Check out code

③发现bad smell

④Refactoring

⑤运行所有的Unit Tests

⑥往代码库中Check in code

转载于:https://www.cnblogs.com/GZSdeboke/p/5428970.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值