zoukankan      html  css  js  c++  java
  • 20145206《Java程序设计》实验三实验报告

    20145206《Java程序设计》实验三实验报告

    实验内容

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

    实验步骤

    (一)敏捷开发与XP
    软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。
    一个常见的公式是:软件工程=开发流程+工具
    敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。其中,极限编程(eXtreme Programming,XP) 是一种全新而快捷的软件开发方法。
    一项实践在XP环境中成功使用的依据通过XP的法则呈现,包括:快速反馈、假设简单性、递增更改、提倡更改、优质工作。
    XP软件开发的基石是XP的活动,包括:编码、测试、倾听、设计。
    (二)编码标准
    编程标准包含:具有说明性的名字、清晰的表达式、直截了当的控制流、可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性。
    程序没有最基本的缩进,让人读起来很费劲,这个问题在Eclipse中比较容易解决:
    处理之前:

    我们单击Eclipse菜单中的source->Format处理之后:

    Java中的一般的命名规则有:

    ·要体现各自的含义
    ·包、类、变量用名词
    ·方法名用动宾
    ·包名全部小写,如:io,awt
    ·类名第一个字母要大写,如:HelloWorldApp
    ·变量名第一个字母要小写,如:userName
    ·方法名第一个字母要小写:setName
    ·...

    标识符名字应当直观且可以拼读,可望文知意,不必进行“解码”,一般采用英文单词或其组合,便于记忆和阅读,切忌使用汉语拼音来命名。

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

    (三)结对编程
    结对编程中有两个角色:

    ·驾驶员(Driver)是控制键盘输入的人。
    ·领航员(Navigator)起到领航、提醒的作用。
    如何结对编程,为何要结对编程,重点是:
    ·驾驶员:写设计文档,进行编码和单元测试等XP开发流程。
    ·领航员:审阅驾驶员的文档、驾驶员对编码等开发流程的执行;考虑单元测试的覆盖率;思考是否需要和如何重构;帮助驾驶员解决具体的技术问题。
    ·驾驶员和领航员不断轮换角色,不要连续工作超过一小时,每工作一小时休息15分钟。领航员要控制时间。
    ·主动参与。任何一个任务都首先是两个人的责任,也是所有人的责任。没有“我的代码”、“你的代码”或“他/她的代码”,只有“我们的代码”。
    ·只有水平上的差距,没有级别上的差异。两人结对,尽管可能大家的级别资历不同,但不管在分析、设计或编码上,双方都拥有平等的决策权利。

    (四)版本控制

    XP的集体所有制意味着每个人都对所有的代码负责;这一点,反过来又意味着每个人都可以更改代码的任意部分。这意味着代码要放到一个大家都能方便获取的地方,我们叫代码仓库。
    版本控制提供了很多好处:
    ·版本控制提供项目级的 undo(撤销) 功能;
    ·版本控制允许多人在同一代码上工作, 只要遵守一定的控制原则就行;
    ·版本控制系统保存了过去所作的修改的历史记录;
    ·版本控制系统还支持在主线上开发的同时发布多个软件版本;
    ·版本控制也是项目级的时间机器,你可以选择任何一个时间, 精确地查看项目在当时的情况;

    由于对git不是很熟悉,所以学习了一下git教程:


    最终,HelloWorld推送成功!

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

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

    ·从版本控制系统代码库中Check out code
    ·读懂代码(包括测试代码)
    ·发现bad smell
    ·Refactoring
    ·运行所有的Unit Tests
    ·往代码库中Check in code

    (六)实践项目

    和结对同学完成实验,她把实验一的代码上传至git,我进行下载。

    重构过程:
    给类、包、方法、变量改名字。

    重构完效果如下:

    队友把我的实验一代码进行下载并修改,完成结对编程。

    实验中遇到的问题及解决过程

    问题1:在托送代码时,不知道如何能一次推送多个.java,是一个一个.java文件名敲上去吗?

    解决过程:通过询问同学得知需要哪个文件就可以敲哪个上去,也可以直接传整个文件夹的内容,只要敲上文件夹的名字就可以。

    问题2:在下载结对同学的代码时,只能下载对方的文件夹,不能做到只下载一个.java文件,这样就会很不方便,我们尝试着下载其中一个文件,但是没有成功,我觉得一定是有办法的,只是我们还没有找到。

    解决过程:未解决。

    实验体会与感悟

    本次实验采用了新的形式,即两个同学一组完成实验,让我体会到了合作的重要性,两个人要分工明确,刚开始我和合作的小伙伴对于git的操作不是很熟悉,于是我们通过学习教程以及询问同学弄懂了git,并且尝试着上传了一些代码(比如helloworld),然后我们把自己实验的代码上传,并且让对方进行下载,修改对方的代码,再进行上传,这个过程我觉得是互相学习的过程,可以知道自己原来的代码有什么不足之处,也可以了解对方对于自己代码有什么想法、思路,对于我们今后的学习是很有好处的,一项工作的完成通常都不是一个人努力的结果,而是团队合作,这体现了合作的重要性,所以我们对于这方面能力的培养也不容忽视。

    PSP时间

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

    对方博客链接

    http://www.cnblogs.com/schwarizard/

    参考资料

  • 相关阅读:
    在线学习git操作
    logstash使用ruby 修改事件戳时间
    mysql磁盘问题记录
    mkdir --help
    php过滤前端post提交过滤html标签
    【摸鱼范式】【一】UVM入门教程【文字版】
    第一次运行svlib
    svlib文档翻译(第五章)
    svlib文档翻译(第一至四章)
    【三】基于Montgomery算法的高速、可配置RSA密码IP核硬件设计系列
  • 原文地址:https://www.cnblogs.com/ZouJR/p/5419112.html
Copyright © 2011-2022 走看看