实验内容

XP基础

XP核心实践

相关工具

敏捷开发与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.在记事本中编写java程序时,程序没有最基本的缩进,看起来很不方便:

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

然后,再根据代码逻辑加入一些空行(例如,遇见for语句、if语句、print语句等),让程序更有逻辑性。

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

重构

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

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

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



封装。修改方法是选择菜单中的Refactor->Refactor this->Encapsulate Field...

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

故最后生成的代码

class Student{
private String name;
private int age;
private int id; @Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", id=" + id +
'}';
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
}
} public class StudentTest {
public static void main(String[] args) {
Student s= new Student();
s.setName("zhangsan");
s.setAge(19);
s.setId(201552219);
System.out.println("学生信息:姓名:"+ s.getName() +"年龄:"+ s.getAge() +"学号:"+ s.getId());
}
}

以结对的方式完成Java密码学相关内容的学习

上周已经学习了部分Java密码学的一些内容,本周又同搭档20155224一起学习了一下凯撒密码,DES及AES等内容,其中以学习了一以DES算法为学习范例截图如下:

PSP(Personal Software Process)时间

步骤 耗时 百分比
需求分析 15min 12.5%
设计 15min 12.5%
代码实现 60min 50.0%
测试 15min 12.5%
分析总结 15min 12.5%

参考资料

20155219实验三 敏捷开发与XP实践的更多相关文章

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

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

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

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

  3. JAVA课程实验报告 实验三 敏捷开发与XP实践

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计  班级:1353  姓名:韩玉琪  学号:20135317 成绩:             指导教师:娄嘉 ...

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

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

  5. 20145215实验三 敏捷开发与XP实践

    20145215实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上的过程.软 ...

  6. 20145325张梓靖 实验三 "敏捷开发与XP实践"

    20145325张梓靖 实验三 "敏捷开发与XP实践" 程序设计过程 实验内容 使用 git 上传代码 git上传中遇到的问题 使用 git 相互更改代码 实现代码的重构 git ...

  7. 20162311 实验三 敏捷开发与XP实践 实验报告

    20162311 实验三 敏捷开发与XP实践 实验报告 实验内容 一.研究学习IDEA中的Code菜单 使用Code ->Reformate Code功能将以下代码格式化 public clas ...

  8. 2018-2019-20175205 实验三敏捷开发与XP实践《Java开发环境的熟悉》实验报告

    2018-2019-20175205 实验三敏捷开发与XP实践<Java开发环境的熟悉>实验报告 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)>&l ...

  9. 20175314 实验三 敏捷开发与XP实践

    20175314 实验二 Java面向对象程序设计 一.实验内容 XP基础 XP核心实践 相关工具 二.实验步骤 (一)代码格式化 创建"175314.exp3"项目,在该项目下创 ...

随机推荐

  1. Oracle使用expdp/impdp导出导入数据

    这里假设已存在数据库用户,并是计划通过该用户导入导出该用户表空间上的数据.(我们这里假定用户名称为ls) 1.创建逻辑目录(数据库命令,sqlplus中执行) Oracle不能直接指定系统目录让他去读 ...

  2. ASP.NET Core Web 项目 发布的IIS7提示“HTTP Error 502.5 - Process Failure

    原因就是NUGET引用的DLL和SDK的版本不对, 你打开CMD,在项目bin目录运行dotnet xxx.dll, 会看到具体错误信息 所以你要么引用低版本的dll,要么升级最新SDK

  3. js 判断某个元素是否隐藏或显示

    //判断某个元素是否显示 true:是 false:不是 var isVisible = $('#myDiv').is(':visible'); //判断某个元素是否隐藏 true:是 false:不 ...

  4. Integer与int的区别(转)

    如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null.但是如果面试官再问一下Integer i = 1; ...

  5. 以黄门镇黄湾村某一扶贫文档为例——将Excel数据填入到已存在的Word模板

    傻瓜可以写出机器读得懂代码,但写出让人能读懂的代码的是优秀程序员 作用:通过Excel文件中的一列数据作为文件名创建Word文档,并将Excel中的一行数据填一表,实现自动化 Excel的VBA宏代码 ...

  6. 2.7 C++构造函数

    参考:http://www.weixueyuan.net/view/6339.html 总结: 如果在类中声明了任何一个构造函数,则系统不会自动生成默认构造函数.构造函数同样能够使用类中的成员变量. ...

  7. Ubuntu 14.04 安装 Xilinx ISE 14.7 全过程(转)

    reference:https://www.cnblogs.com/tracyone/p/3561781.html 按照ISE后,建立ISE启动连接: 这个帖子作为我安装xilinx ISE 14.7 ...

  8. string使用方法

    转载自:https://blog.csdn.net/tengfei461807914/article/details/52203202 使用场合: string是C++标准库的一个重要的部分,主要用于 ...

  9. UGUI动态绑定事件

    using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;using UnityEngine. ...

  10. JavaScript和它父亲的故事

    附赠脱单秘籍:了解一些JavaScript的历史,聊天的时候说不好可以获得更多程序员小妹子的崇拜的哟~ ๑乛◡乛๑~ 阅读本文可以让你更好的理解什么是ECMAScript. 本次文章内容来自:< ...