软件工程项目-结对编程-增强版总结:School-View Enhacement of Microsoft Academic Search

  我们刚刚完成了软件工程课程的一个项目,是通过结对编程来做的,是我和陈凯飞一起合作完成的。我们的题目是School-View Enhacement of Microsoft Academic Search,目的是提高微软的学术搜索的学校显示部分的效果。例如显示更多的信息,让动画更加简洁好用等等。

  我们一开始先调研使用了当前的学术搜索的学校显示的功能,观察其中的不足,找出能够改进的地方。于是我们发现当前的学术搜索的学校显示的功能有如下两个缺点:

  1. 当一个作者被选中时,想立刻直接选中其下方的作者,鼠标会被当前选中的作者的信息栏挡住,非常不方面,示例图如下:

  2. 当我们对某个作者感兴趣的时候,想了解她/他的更多信息,我们必须点开这个作者的页面,进入另一个标签或者窗口,然后看完再回到学校显示的窗口。示例图如下:

 

  于是我们想出一些可以改进的方面,总结如下:把显示作者的大圆圈移到屏幕左端,把作者的信息栏移到屏幕右边,并且在信息栏显示更多的信息。

得到了这个目标,我们就开始做起。首先我们学习了C#和Silverlight。然后研读了相关部分的代码,知道了大概的结构和实现方法。接着开始设计我们的结构并且进行分工。最后我们每个人开始实现自己的任务,但是与以往不同的是,我们是在同一台机器上轮流编程的,也就是开头所说的结对编程。

  具体来说,我们把我们的任务通过work breakdown structure(WBS)的方法分工,详细的分工内容如下图:

  我负责实现Info Retrieval, Data Structure,Info Panel Structure部分,陈凯飞负责实现Components Arrangement, Info Panel Structure部分。

对于每个部分,我们估计的所需完成时间是Components Arrangement (一天,然而实际上由于不了解XAML,同时首先要理解大量的代码,花费了整整两天的时间),Info Panel Structure(5小时,最后我们花了比这更多的时间,却由于没有能把各自的那部分工作整合在一起,导致了panel的不美观), Data Structure(6小时,我们重新整合了Academic Map中树型数据结构,实际花费时间差不多),Info Retrieval(4小时,实际花费差不多,模仿着学习了json并实现了二次检索).

 

  本次项目中我们使用了结对编程的方法,一个人驾驶(打代码),一个人导航(掌握整体,给出意见),两个人按照分配的部分进行轮换。尽管看上去像是两个人在干同一件事,但是我们惊奇地发现效率变高了!尤其是在没有思路时,两个人互相讨论,往往能达到事半功倍的效果。

在实际运用中,我们又对结对编程的方法进行了一些改善:导航员也配一台电脑,可以在驾驶员写代码的时候进行一些查找/阅读文档的工作,进一步提高了效率。

  当然我们也饱尝无法合理安排时间的问题。结对编程要求两个人同时工作,由于还有别的研究工作要做,我和凯飞都有各自的日程安排。为了一起进行结对编程,其中一方经常要做出牺牲。

 

  经过一周多断断续续的努力,我们的School View初步效果图如下:

result

 

  经过这次pair project,我收获了许多,尤其是结识了陈凯飞这个优秀的队友。我尤其惊讶于他在debug上的直觉(或者说经验),任何的bug出现,他总能很快的意识到出错的地方。我相信他以后再多多研习XAML的话,一定能成为这方面的好手。总之,和陈凯飞的合作我非常愉快,期待下一次!

  最后附上我们结对编程的照片:

 

posted @ 2011-08-29 12:56  SouthSeven  阅读(320)  评论(0编辑  收藏  举报