原创基于C#的结对编程的分析和设计_第1页
原创基于C#的结对编程的分析和设计_第2页
原创基于C#的结对编程的分析和设计_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要:编程对每个计算机从事者来说都是不可或缺的,程序员们往往需要通过合作来完成一个规模较大的项目。如何高效的完成团队任务就成为亟待解决的现实问题。基于此种情况,提出了结对编程的分析与设计方案。在visual studio 8.0的平台上,设定倒计时功能,于规定的时间对导航者和驾驶者进行角色互换。这样既可以提高双方的编程效率,也可以改进代码的质量,同时还能够培养程序员之间的团队精神。 中国论文网 关键词:结对编程;相容性;设备号;角色;团队合作 中图分类号:tp311文献标识码:a文章编号:1009-3044(2012)10-2270-02 the analysis and design of

2、pair programming based on c# yin jing (computer college, nanjing normal university, nanjing 210046, china) abstract: computer programming is essential to every computer pursuer. programmers usually accomplish a large-scale project by cooperation. it becomes an urgent matter how to complete a team ta

3、sk efficiently. the analysis and design of pair programming is raised in this condition. in the development platform of visual studio 8.0, the countdown function is set up. and the system will exchange the roles of navigator and driver within the set time. in this case, not only the programming effi

4、ciency is improved but also the quality of code is advanced. meanwhile, it develops the team spirit of programmers. key words: pair programming; compatibility; device number; role; teamwork 在传统的模式下,程序员独立编写各自的程序模块。长时间的工作让程序员被疲劳,厌烦等不利因素所困扰。一旦产生瓶颈,就会延迟工作并降低程序员编程的信心,不利于培养程序员的编程兴趣。此外,传统模式下,程序员们也很少交流,团队意识

5、较弱。 相反的,结对编程由于有了双方的合作,同一段代码被反复检查,保障了代码的可读性和可维护性,减少了修改的成本。结对编程时,由于对方的监督,带给编程者潜意识的压力,让编程者不得不思想高度集中,这就提高了编程的效率。两人合作时可能对问题产生不同的看法,这就迫使程序员频繁的交流意见,加深了彼此对问题的了解。最终还会增强程序员的信心感和成就感。 该文的目的就在于为程序员提供这样一个高效的编程平台。下面将从总体架构设计,主要模块和设计方案等三个方面具体阐述结对编程的设计思想。 1总体架构设计 采用visual studio 8.0以及sql server 2005实现结对编程的主要功能。整体的架构则

6、可以从硬件和软件两个方面来描述。 从硬件的角度来看,需要准备一台电脑,两个鼠标,两个键盘,两个显示器以及一个共享器。两个显示器可以通过共享器连接同一台电脑上,以方便程序员同步地接受程序编写的进度。主机上还需配套两人份的鼠标和键盘,这样程序员就可以单独地对程序进行编写和修改。 如果从软件的角度考虑,可以按照用户操作的顺序来划分。首先是程序员的身份验证。在程序员输入用户名和密码后,系统通过与数据库中信息的比对来判断是否为会员用户。此处登录成功是指结对编程双方的登录信息都为正确,否则,视为登录失败。 与之相配套的是注册界面,和其他注册不同,注册界面提供了一个新的内容:从题库中随机地抽取固定数量的选择

7、题,规定为必做项目。程序员完成后提交给系统,系统算出程序员的得分,满分为一百分。系统根据程序员的得分划分等级。结对双方在登录之后,系统自动调用数据库中所存等级进行相容性分析,大致判断是否适合合作,并给出建议。程序员点击按钮开始编程,系统就进入倒计时状态,规定时间到达后强制交换角色。程序员也可以主动提出交换请求。 2主要模块 2.1相容性分析 两个程序员合作之前,需要了解双方的编程风格,编程能力和性格倾向。如果性格都是内向,就可以初步断定为不适合合作编程,这就是所谓的相容性分析。为了保证结对编程的效率,在开始编程之前,系统给出结对双方相容性测试结果,让双方了解是否 适合结对,以避免程序编写效率的

8、低下。 注册中提供的相容性分析问卷还包含程序员要完成的项目的难度,这也是决定相容性分析结果的重要因素。一般来说,项目难度较高时,适合两个编程能力都突出的程序员合作完成,这种搭配可以提高双方效率。中等难度的项目可以让一个能力较强和一个能力中等的合作,这样可以提高能力中等的程序员的水平。如果项目简单,可以让能力都一般的合作,完成任务的同时积累双方的编程经验。 2.2角色转换 当负责键入代码的驾驶者在编程时出现低级的错误或自己并未察觉的方向性的偏差时,监看的导航员可以点击角色转换,纠正错误,写入正确的代码。此外,若驾驶者工作时间过长,可能会出现过度思考并影响观察力和判断力。若驾驶者有意转换,就可点击

9、角色转换按钮,让领航员接手编程的任务。 2.3强制转换 由于每个人每天的有效工作时间只有3-4个小时,因此在结对编程中需要强调的一点是限制程序员的工作时间。系统给定固定的时间,程序员们也可以根据自己的需求在系统设置中修改这个时间。程序员在编程时,系统将处于后台运行状态,只留下悬浮窗供程序员了解剩余时间。在系统强制转换之前,会给出提示,若程序员不同意,系统将在5分钟之后再给出提示。 3设计方案 3.1登录和注册 事先在sql server 2005中建立名为pair的表,用于存放注册信息。在visual studio 8.0操作平台上,调用using system.data. sqlclient

10、命名空间,建立与数据库的连接,并对数据库进行读写操作。注册模块中,拖动textbox等控件以便让程序员填写用户名,密码以及相容性分析的问卷题目。下面是部分代码: sqlconnection conn = new sqlconnection(data source=.sqlexpress; integrated security=sspi;database=pairs); sqlcommand cmd = new sqlcommand(select * from m, conn); conn.open(); trysqldatareader datareader = cmd.executerea

11、der(); while (datareader.read() string str5 = (string)datareader0; string str6 = (string)datareader1; int n= (int)datareader2; if(str1=str5.trim()&str2=str6.trim()count+; if(str3=str5.trim()&str4=str6.trim()count+; if (count = 2 ) index f = new index(); f.uname = str1;f.pwd = str3; 3.2鼠标和键盘的切换 结对编程最

12、为核心的设计就是设备的启动和禁用。程序员通过主动交换或强制交换两种方式转换角色。转换之后,导航者的鼠标和键盘被禁用,驾驶者的变为有效状态。对设备的操作需要使用到微软所提供的与驱动程序相关的api函数,这些需要使用的函数就封装在hardware类中。使用dllimport(user32.dll, charset = charset.auto)语句,用非托管动态链接库作为静态入口点公开。设备禁用的实现思想主要是通过managementobjectsearcher类查找微软提供的设备类并获得所要禁用的鼠标或键盘的设备名称,获取控件绑定到的窗口句柄,并清理非托管的资源。最后将设备的状态置为false。

13、部分代码如下: using system.runtime.interopservices; using hardware; hardwareclass hc = new hardwareclass(); managementobjectsearcher searcher = new managementobjectsearcher (select * from win32_usbcontroller); foreach (managementobject share in searcher.get() string dev = new string1; dev0 = sharename.tostring(); hc.setstate(dev, false); hc.dispose(handle); 4存在的问题及可能的方向 结对编程技术能够为两个程序员提供合作编程的平台,保证代码的高质量,增强程序员对于编程的兴趣。但是,由于程序员并不是总能方便的约好时间和地点一起编程的,这就导致了空间和时间上的局限性。 现代的网络通信技术较为发达,异地结对编程不失为一个很好的发展方向。程序员们不需要并排坐在一起使用同一台电脑,而是借助互联网在距离较远的电脑之间远程通信。面对面的交流也可以通过视频,语音

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论