标签:
实验三 敏捷开发与XP实践
实验内容
1. XP基础
2. XP核心实践
3. 相关工具
实验步骤
(一)敏捷开发与XP
软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。 人们在开发、运营、维护软件的过程中有很多技术、做法、习惯和思想体系。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”。软件开发流程的目的是为了提高软件开发、运营、维护的效率,并提高软件的质量、用户满意度、可靠性和软件的可维护性。 光有各种流程的思想是不够的,我们还要有一系列的工具来保证这些思想能够在实践中有效率地运作。软件开发很重要的一点不是看你能对多少理论讲的头头是道,还要看你对相关工具应用的如何,比如Java中单元测试要和JUnit的应用结合起来,建模要和Umbrello或StarUML的应用结合起来。编程学习是一个习而学的过程。 一个常见的公式是:软件工程=开发流程+工具 邹欣老师给出的两个公式:软件=程序+软件工程和软件企业=软件+商业模式 开发流程大家可以参考学习邹欣老师的软件团队和开发流程。常见的开发流程有:
敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。“敏捷流程”是一系列价值观和方法论的集合。从2001年开始,一些软件界的专家开始倡导“敏捷”的价值观和流程,他们肯定了流行做法的价值,但是强调敏捷的做法更能带来价值。
其中,极限编程(eXtreme Programming,XP)是
是一种全新而快捷的软件开发方法。XP团队使用现场客户、特殊计划方法和持续测试来提供快速的反馈和全面的交流:
XP软件开发是什么样的通过 XP准则来表达:
一项实践在XP环境中成功使用的依据通过XP的法则呈现,包括:快速反馈、假设简单性、递增更改、提倡更改、优质工作。
XP软件开发的基石是XP的活动,包括:编码、测试、倾听、设计。
(二)编码标准
编写代码一个重要的认识是“程序大多时候是给人看的”,编程标准使代码更容易阅读和理解,甚至可以保证其中的错误更少。编程标准包含:具有说明性的名字、清晰的表达式、直截了当的控制流、可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性。
编码标准中的版式就是一个很好的例子,版式虽然不会影响程序的功能,但会影响可读性。程序的版式追求清晰、美观,是程序风格的重要因素。
三)结对编程
结对编程是XP中的重要实践。在结对编程模式下,一对程序员肩并肩、平等地、互补地进行开发工作。他们并排坐在一台电脑前,面对同一个显示器,使用同一个键盘、同一个鼠标一起工作。他们一起分析,一起设计,一起写测试用例,一起编码,一起做单元测试,一起做集成测试,一起写文档等。 结对编程中有两个角色:
如何结对编程,为何要结对编程,大家参考一下结对编程和两人合作,重点是:
团队精神是好多地方都强调的一个精神,最小的团队就是一对一的二人团队了,培养团队精神从结对编程开始吧。社会生活中人与人相处最重要的是诚信,有同理心,互利。结对编程中大家会出现分歧,如何更有效地合作要做到对事不对人,掌握这些是可以终生受益的,如何影响小伙伴,大家参考一下两人合作:要会做汉堡包。
(四)版本控制
XP的集体所有制意味着每个人都对所有的代码负责;这一点,反过来又意味着每个人都可以更改代码的任意部分。结对编程对这一实践贡献良多:借由在不同的结对中工作,所有的程序员都能看到完全的代码。集体所有制的一个主要优势是提升了开发程序的速度,因为一旦代码中出现错误,任何程序员都能修正它。 这意味着代码要放到一个大家都能方便获取的地方,我们叫代码仓库。这引出另外一个话题叫版本控制(Version Control)。
不论是对于团队还是个体,版本控制都提供了很多好处。
(五)重构
我们先看看重构的概念:
重构(Refactor),就是在不改变软件外部行为的基础上,改变软件内部的结构,使其更加易于阅读、易于维护和易于变更。
重构中一个非常关键的前提就是“不改变软件外部行为”,它保证了我们在重构原有系统的同时,不会为原系统带来新的BUG,以确保重构的安全。如何保证不改变软件外部行为?重构后的代码要能通过单元测试。如何使其更加易于阅读、易于维护和易于变更 ?设计模式给出了重构的目标。
(六)实验过程截图:
1,Eclipse菜单中的source->Format 或用快捷键Ctrl+Shift+F就可以按Eclipse规定的规范缩进
2,学习git简单的使用
3,重构
重构的一个具体实例:
4,结对实验
另附一次实验报告博客
实验时间(不含结对游戏编程)
步骤 |
耗时 |
百分比 |
需求分析 |
1h |
30.7% |
设计 |
30min |
15.4% |
代码实现 |
45min |
23.1% |
测试 |
0 |
0% |
分析总结 |
1h |
30.7% |
实验总结(不含结对游戏编程)
1、首先,通过这次实验学习到在编程序过程中最实用的知识是使用重构的raname:如何修改名称。以前在编程序时名称不小心打错,或者是需要对名称进行修改使它更有意义时,在Eclipse中都是一个一个的改进,现在可以快捷简便的进行修改。我认为这个功能十分的便捷、人性化。
其次,学会了重构的封装功能,可以对成员变量进行封装,以及Source->Generate toString()... 给Student类产生一个toString方法。实验中体会到了通过重构改善了结构,优化了代码。
最后,学习了git的使用,在实验楼里代码的git push存到远程托管服务器,十分方便。
2、实验中出现的问题:在这次实验中主要的问题产生在git push学习使用中,根据实验步骤比较容易学习,但是由于对Gvim的不了解导致出现问题。
突然跳到到这个界面时不知道发生了什么,以为自己按错了键盘,在查阅关于Gvim的使用命令后知道 ctrl+C-----:-------wq(:wq 保存文档然后退出vim编辑器。)解决了这个问题。
同时也学到了其他的一些命令如::q 不保存文档,退出vim编辑器。L 光标移至屏幕底第一个非空白字符。这和PageDown,PageUp 不一样,内文内容并未动,只是光标在动而已。:n 将光标定位到第n行。
(一定是在Notmal的情况下)
标签:
原文地址:http://www.cnblogs.com/zzzz5/p/4550648.html