• 2016-2017-2 20155227实验三《敏捷开发与XP实践》实验报告


    2016-2017-2 20155227实验三《敏捷开发与XP实践》实验报告

    实验内容

    一、实验内容

    1. XP基础
    2. XP核心实践
    3. 相关工具

    二、实验过程

    (一)敏捷开发与XP

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

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

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

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

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

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

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

    (二)编码标准

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

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

    • Java中的一般的命名规则有:
    1.要体现各自的含义
    
    2.包、类、变量用名词
    
    3.方法名用动宾
    
    4.包名全部小写,如:io,awt
    
    5.类名第一个字母要大写,如:HelloWorldApp
    
    6.变量名第一个字母要小写,如:userName
    
    7.方法名第一个字母要小写:setName
    

    (三)结对编程

    • 结对编程是XP中的重要实践。

    • 结对编程中有两个角色:

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

    (四)版本控制

    可以先用git status查看代码状态,显示有未跟踪的代码,用git add ...添加,我们使用git add HelloWorld.*把要提交的文件的信息添加到索引库中。当我们使用git commit时,git将依据索引库中的内容来进行文件的提交。这只是在本地操作,关闭实验环境会删除代码,如果想把代码保存到远程托管服务器中,需要使用git push,实验完成前使用git push相当于完成保存操作。

    (五)重构

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

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

    2.封装类

    修改软件的目的:

    1.增加新功能;
    
    2.原有功能有BUG;
    
    3.改善原有程序的结构;
    
    4.优化原有系统的性能 。
    

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

    1.从版本控制系统代码库中Check out code
    
    2.读懂代码(包括测试代码)
    
    3.发现bad smell
    
    4.Refactoring
    
    5.运行所有的Unit Tests
    
    6.往代码库中Check in code
    
    • 功能1:Rename,可以给类、包、方法、变量改名字,使代码在没有注释的情况下也可以被了解基本信息。修改方法是选择IDEA中菜单中的Refactor->Rename

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

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

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

    3.Bad Smell与相应的重构手法:

    4.Refactor菜单中的重构手法的应用时机:

    (六)实践项目

    1. 以结对编程的方式编写一个软件,Blog中要给出结对同学的Blog网址,可以拍照展现结对编程情况,可以参考一下其他学校的作业
    
    2.记录TDD和重构的过程,测试代码不要少于业务代码,Eclipse中refactor菜单下的重构技能不要少于5个
    
    3.团队代码要使用git在实验楼中托管,要使用结对同学中的一个同学的账号托管。
    
    4. 程序要有GUI界面,参考用户界面和用户体验
    
    5.程序功能从豌豆荚游戏中选择一款用Java实现,注意:团队之间项目不能有重复,课代表协调一下。
    
    6.实验报告中统计自己的PSP(Personal Software Process)时间
    

    PSP(Personal Software Process)时间

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

    参考资料

  • 相关阅读:
    PMD安装使用
    FindBugs安装使用
    Checkstyle安装使用
    SourceMonitor的基本使用教程
    论文选题
    github for Test
    Junit的安装与使用
    安装并使用PICT,生成测试用例
    安装并使用CheckStyle/PMD与FindBug && 安装并使用SourceMonitor检测代码复杂度
    github账号 及文章选题
  • 原文地址:https://www.cnblogs.com/guyanlin/p/6816047.html
Copyright © 2020-2023  润新知