zoukankan      html  css  js  c++  java
  • pair project--elevator

    结对编程人员:张梦达(11061166)  聂健(11061199)

    一、结对编程实感(聂健):

      对于从没有结对编程经验的人,结对编程可能只能通过想象来感受。这次通过实际练习,让我们体会到了相较于个人完全独立开发,结对编程的特点:

    1、原本以为一个人独立思考独立实现可以保证自己开发的独立性,而结对编程就无法达到这样的统一,然而在实践中,我们发现通过讨论和提醒,我们能更明确自己的目的,减少差错,其实只要把各自的想法表述清楚,把自己观察到的问题直接指出,让对方明白自己的整体和细节思路,这样即使出现分歧,也能在短时间内解决,整个开发的进度和效率也会随之提高。

    2、像我这样开发能力较弱的人会不会拖团队的后腿?在整个开发工程中,我体会到的是,只要敢于把自己的想法说出来大家讨论,比一个人编程时付出更大的热情更多的耐性,就不会拖后腿。大家敞开心扉,在交流之中就可以提高水平。

    3、两个人开发能够更好地激发出双方的激情和想象力,培养双方积极主动参与合作的意识,促进双方的交流,也许不经意间就想到一个一个的解决方法或者优化方法,并且有时候互相激励,使费时枯燥的敲代码工作变得有些趣味了,这样都能使项目做的更好。

    4、有的时候自己的思维惯性导致某些Bug或者冗余代码自己反复检查都检查不出来,但队友检查一遍便可发现,这一点对于没耐性反复检查调试的开发人员来说很是受用。

    梦达的优点是思维活跃(优),心胸开阔想法也多(优),并且会督促开发,很积极(优),但是coding能力(单纯C#能力)较弱(缺)。

    聂健的优点是比较耐心(优),总想寻找新的好的方法(优),但是不够细心(缺),阅读代码、coding速度较慢(缺)。

    二、

    接口设计:清晰度是首要工作,设计接口时尽量细化功能,从而使得功能更专一。借口是促进交互而存在的。

    信息隐蔽:类的成员变量的可见性统一成private,并设计相应的属性。从而用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽。

    使用:只是在scheduler.cs中很少的class中进行了使用,因为相当多的已经明确给出。

    三、UML例图(VS2012下)

    四、调度算法说明:

     *首先统计上楼下楼请求个数,存放在PasFromID和PasToID(From1和To1的单独记录)

     *当电梯停在第X楼层时,先把整个请求队列中已完成的请求删除,在判断请求队列是否为空,为空,则停止,不为空,先把初始目的楼层设为第一请求楼层

     * 当高峰时期,电梯先去往一楼,即下楼,按远近捡要下行的乘客

     * 否则电梯上楼,按远近捡要上行的乘客,之后,按照远近捡下行的乘客,之后捡要上行的乘客

     * 不是高峰时间,楼下要下楼、楼上要上楼,按照请求远近(近)送客,楼下的要上楼、楼上的要下楼,同样按照远近(远)送客

     * 同时设计了一个顺道捡人的算法(借鉴同学的),如果电梯正在下行,中途有人也要下而且楼层比电梯目的楼层还高,那就捡他

     * 如果电梯正在上行,中途有人也要上而且楼层比电梯目的楼层还低,那也捡他

     五、自己在这次作业中负责的部分

    算法的讨论、代码的初步编写、UML类图的构建。

    附:UnitTest截图:

  • 相关阅读:
    HTML5程序设计web workers API 学习笔记
    HTML5 拖拽API 学习笔记
    2013.03.23这天的一点感触和计划
    localStorage实现返回到原位置以及pjax的反思
    HTML5 localStorage浅谈
    javascript学习之函数对象简介
    display:-webkit-box
    由登录表单的用户体验细节说开
    前端和用户体验
    Laravel实践step1,一个简单的crud
  • 原文地址:https://www.cnblogs.com/muwodashu/p/3358103.html
Copyright © 2011-2022 走看看