20145307 《Java程序设计》第三次实验报告 北京电子科技学院(BESTI)实验报告

课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.22 实验名称:敏捷开发与XP实践

一、实验内容

XP基础
XP核心实践
相关工具

二、实验要求

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

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

三、实验步骤

敏捷开发与XP

软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。 软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。 人们在开发、运营、维护软件的过程中有很多技术、做法、习惯和思想体系。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”。软件开发流程的目的是为了提高软件开发、运营、维护的效率,并提高软件的质量、用户满意度、可靠性和软件的可维护性。

一个常见的公式是:软件工程=开发流程+工具。

Agile Process 敏捷开发包括很多模式:

极限编程(eXtreme Programming,XP)

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

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

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

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

以测试为核心的开发流程

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

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

项目成员用户成功执行XP活动的技术通过XP实践来呈现,包括编程、团队、过程相关的12条实践。

二、编码标准

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

三、结对编程

结对编程中有两个角色:

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

如何结对编程,为何要结对编程,大家参考一下结对编程和两人合作 ,重点是:

驾驶员:写设计文档,进行编码和单元测试等XP开发流程。

领航员:审阅驾驶员的文档、驾驶员对编码等开发流程的执行;考虑单元测试的覆盖率;思考是否需要和如何重构;帮助驾驶员解决具体的技术问题。

驾驶员和领航员不断轮换角色,不要连续工作超过一小时,每工作一小时休息15分钟。领航员要控制时间。

主动参与。任何一个任务都首先是两个人的责任,也是所有人的责任。没有“我的代码”、“你的代码”或“他/她的代码”,只有“我们的代码”。

只有水平上的差距,没有级别上的差异。两人结对,尽管可能大家的级别资历不同,但不管在分析、设计或编码上,双方都拥有平等的决策权利。

四、分工

组员:20145335 http://www.cnblogs.com/20145335hh/

分工:我下载修改后再上传,体现重构的至少五个功能。

五、重构

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

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

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

读懂代码(包括测试代码)

发现bad smell

Refactoring

运行所有的Unit Tests

往代码库中Check in code

最新文章

  1. Oracle学习笔记五 SQL命令(三):Group by、排序、连接查询、子查询、分页
  2. Oracle表格建立
  3. spring mvc 初始化错误
  4. python故障查找:超时未设置
  5. php 获取目录下文件列表
  6. AsyncActivity异步加载网页
  7. 在Ubuntu下直接通过SSH登录到OpenWrt
  8. 【转】 bio 与块设备驱动
  9. go语言调度器源代码情景分析之六:go汇编语言
  10. java实现定时任务的三种实现方法
  11. DAY 23 面向对象(二)
  12. C++ new/malloc、delete/free
  13. fgt2eth Script
  14. chrome 版本 29.0.1547.76 m 解决打开新标签页后的恶心页面的问题
  15. javascript设计模式系列二-封装
  16. 椭圆曲线密码体制(ECC)简介
  17. laravel request 增加字段
  18. [sloved] IDE JavaServlet "Error: Could not find or load main class Servlet"
  19. Markdown简易使用
  20. java循环删除List元素的方法总结

热门文章

  1. 对 js 高程 Preflighted Reqeusts 的理解
  2. [Gradle] 给已存在的 task 添加依赖
  3. HDU 5667 Sequence(矩阵快速幂)
  4. authz_core_module
  5. ubuntu14下创建软件的快捷启动方式
  6. python在处理CSV文件时,字符串和列表写入的区别
  7. 使用selenium
  8. POJ 3171
  9. 9.如何让ubuntu的ssh免密码登录
  10. data.table进阶