码迷,mamicode.com
首页 > 其他好文 > 详细

控制台的学生管理系统---结对编程

时间:2015-09-18 15:10:02      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:

需求分析:

学生管理系统定义:

    基于控制台的学生管理系统,对基本的学生信息通过控制台打印输出进行管理

学生管理系统:

功能:

  •   进行学生的基本注册。
  •   进行学生登陆。
  •   对学生的基本信息进行查询。

 

结对编程概述:

定义:

      结对编程技术是指两位程序员坐在同一工作台前开发软件。与两位程序员各自独立工作相比,结对编程能编写出质量更高的代码。

概述:

      结对编程技术是一个非常简单和直观的概念,能达到事半功倍的工作效果。但是,人与人之间的合作不是一件简单的事情——尤其当人们都早已习惯了独自工作的时候。实施结对编程技术将给软件项目的开发工作带来好处,只是这些好处必须经过缜密的思考和计划才能真正体现出来。而另一方面,两个有经验的人可能会发现配对编程里没有什么技能的转移,但是让他们在不同的抽象层次解决同一个问题会让他们更快地找到解决方案,而且错误更少。

两个程序员具有相同的缺点和盲点的可能性很小,所以当我们采用结对编程的时候会获得一个强大的解决方案。而这个解决方案恰恰是其它软件工程方法学中所没有的。
在我们平时的编程当中,如果遇到一个非常难解决的问题(困难到对该项目产生厌烦的态度),那么你势必会希望录求帮助,无论是从信息量庞大的网上,还是从身边的技术大师那里,你都会努力去解决(前提是你有对计算机知识的热爱)。这个时候不妨采用结对编程试一下,其它的不说,可能感觉就不同。
 
为什么要结对编程?

    每人在各自独立设计、实现软件的过程中不免要犯这样那样的错误。在结对编程中,因为有随时的复审和交流,程序各方面的质量取决于一对程序员中各方面水平较高的那一位。这样,程序中的错误就会少得多,程序的初始质量会高很多,这样会省下很多以后修改、测试的时间。具体地说,结对编程有如下的好处:

              (1)在开发层次,结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力。

              (2)对开发人员自身来说,结对工作能带来更多的信心,高质量的产出能带来更高的满足感。

              (3)在心理上,  当有另一个人在你身边和你紧密配合, 做同样一件事情的时候,  你不好意思开小差, 也不好意思糊弄。

              (4)在企业管理层次上,结对能更有效地交流,相互学习和传递经验,能更好地处理人员流动。因为一个人的知识已经被其他人共享。

              总之,如果运用得当,结对编程能得到更高的投入产出比(Return of Investment)。

结对编程的角色分配:

     结对编程中有两个角色:

          (a)驾驶员(Driver)是控制键盘输入的人。

          (b)领航员(Navigator)起到领航、提醒的作用。

这两个角色是可以互换的。和现实生活中的例子类似,一个人负责具体的执行(驾驶,用键盘编辑程序等),另一人负责导航、检查、掩护等。

正式编写:

代码编写规范:

1. 类名首字母应该大写。属性(成员变量)、方法、对象变量以及所有标识符(如形式参
    数、实际参数、局部变量)的首字母应小写,其中包含的所有单词都应紧靠在一起,而
   且大写中间单词的首字母。
       例如:类名:HomeWorkClass  属性或方法名:homeWorkClass

2. Java 包(Package)属于一种特殊情况,它们全都是小写字母,即便中间的单词亦是如
    此。对于全局包,将你的 Internet 域名反转并接上包名,
       例如:cn.qilu.homework

3. 接口(Interface):采用完整的英文描述符说明接口封装,所有单词的第一个字母大
    写。习惯上,名字后面加上后缀 able, ible 或者 er。
       例如:Contactable,Prompter。
4. 组件(Component)使用完整的英文描述来说明组件的用途,末端应接上组件类型,并且应以驼峰法命名。
       例如:okButton,customerList,fileMenu。
5. 类中常用方法的命名:
       (1)类的获取方法(一般具有返回值)一般要求被方法名使用被访问字段名,前面加上
           前缀get,如getFirstName(), getLastName()。

       (2)  类的布尔型的判断方法一般要求方法名使用单词 is 做前缀,如isPersistent(),
            isString()。或者使用具有逻辑意义的单词,例如equal 或equals
       (3)类的设置方法(一般返回类型为void):被访问字段名的前面加上前缀 set,如
          setFirstName(),setLastName()。
       (4)类的普通方法一般采用完整的英文描述说明成员方法功能,第一个单词尽可能采用
          一个生动的动词,第一个字母小写,如 openFile(), addAccount()。

6.  静态常量字段(static final)一般全部采用大写字母,单词之间用下划线分隔

       例如: HOME_WORK

驾驶员和领航员的角色互换过程:

    1. 注册功能设计: 

     领航员: 刘效坤

     驾驶员: 安鹏亮

    2 学生登陆功能实现:

     领航员: 安鹏亮

     驾驶员: 刘效坤

     3 信息查询功能实现:

     领航员 :刘效坤

     驾驶员: 安鹏亮

     4 退出系统

      领航员: 安鹏亮

      驾驶员: 刘效坤

 

技术分享

 

技术分享

 

技术分享

 

 

心得体会:

      在当今的软件工程概念中,代码走查是一个很重要的过程。代码走查的目的是提高软件的质量,以及可维护性,经过走查的代码是能够更容易地被项目组其他成员看懂的。然后代码走查的成本不低,有经验的软件工程师都清楚,要一个开发人员完全理解另一个人的代码是一件不容易的事情,不只是代码编程习惯的不同会导致阅读代码的困难,在复杂的业务逻辑下,不同的开发人员的设计思路也有很大不同的,导致不同的人对代码的理解有很大差异。所有很多时候代码走查紧紧只是看看代码中是否有语法上的错误,是否符合编程规范,而要发现业务逻辑上的深层错误是很困难的,以至很多浮躁的软件开发公司甚至直接省略代码走查这个步骤。

      结对编程则正是提高代码走查效率和质量的非常有效的手段。两个开发人员坐在一起,共同思考和讨论设计思路,轮流编写程序代码,轮流走查另一个人在写的代码,代码走查和编码并行开展,而不是等完全编码之后才做代码走查,产生的程序代码风格是两个人都能接受的。这样就不存在要一个人去理解另一个的代码的问题,实际是两个人共同理解代码。而且由于两个人的思想盲区要远小于一个人的思想盲区,所以能够在编码过程中及时地发现程序在业务逻辑实现上的深层问题,大大提高代码走查的效率和质量。对于包含代码走查阶段的软件开发过程而言,结对编程是能大大提升软件开发效率的。

 

      结对编程还有很多优点,比如提高软件代码的质量,促进知识传递,降低新员工学习成本等。除此之外,作者还发现结对编程还有一个很大的优点,就是能让敏捷开发所倡导的共同责任理念落到实处。

      敏捷开发强调项目是整个项目团队共同拥有的,所以项目的问题是项目团队所有成员的责任,而不只是某个人的责任,项目团队的所有成员应该共同努力来解决和避免所有的项目问题。结对编程则能很好地体现这个理念,在结对编程中两个人频繁变换角色,对于程序代码存在错误,就很难分清是谁的责任,甚至很难分清楚哪里的代码是谁写的,所以代码问题至少是结对的两个人的共同责任,从根本上促进了共同责任的理念。

 

 

 

控制台的学生管理系统---结对编程

标签:

原文地址:http://www.cnblogs.com/charleslxk/p/4818988.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!