• 结对编程之电梯调度


    编程任务:电梯调度

    结对人员:左少辉-12061209,杨昊兰-12061202,吕雨朗

    一、此次软工作业确实是让人却步的不敢开始,不过结对编程使得我对完成作业又有了信心,开始没有积极组队的我落单了,后来只能是申请加入已经组好的队伍,所以我们其实是一个三人组,都说人多力量大,想法也就会开阔许多,做起作业来也会顺利许多。起初对作业不是很了解,光是看英文要求就已经醉了,后来还是硬着头皮开始了漫长的代码阅读,浅学c#觉得语法也就一般般,不过看到如此绚丽的代码还是各种懵~确实一个人做起来简直是困难,但是我们是一个团队,众人拾柴火焰高。队友们给我许多感触和帮助。下面谈谈队友们的优缺点。杨昊兰是一个很有想法 的人,对新的事物他总能很快的去适应和掌握,而且会毫无保留的和我们交流,只是危机感不足。吕雨朗有较好的团队精神,能积极投入到协作中并时常给出一些建议。

    照片:

    二、结对编程优缺点

    优点:

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

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

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

    (4)结对编程的过程也是一个互相督促的过程,每个人的一举一动都在别人的视线之内,所有的想法都要受到对方的评价。由于这种督促的压力,使得程序员更认真地工作。结对编程“迫使”程序员必须频繁地交流,而且要提高自己的技术能力以免被别人小看。

    (5)结对编程让两个人所写的代码不断地处于“复审”的过程。复审是不断地审核,提高设计和编码质量的过程,这样能够及时地发现问题和解决问题,避免把问题拖到后面的阶段。

    缺点:

    (1)结对编程是一个相互学习、相互磨合的渐进过程。开发人员需要时间来适应这种新的开发模式。刚开始的结对编程很可能不比单独开发效率更高。

    (2)如果团队的人员要在多个项目中工作,不能充分保证足够的结对编程时间,那么成员要经常处于等待的状态,反而影响效率。

    (3)当其中一人希望独自思考一段时间时,有可能会被认为是一种不合作的表现。

    三、(1)Information hiding 信息隐藏

    信息隐藏是程序设计过程中的一种隔离原则,可以防止用户接触到一个类的某些部分。一个程序模块可以将它的信息隐藏起来,对外仅仅展现出一种接口。当 这个模块的具体实现发生改变时,只要保证它的接口不发生变化,则就算不修改模块外的其他代码,程序依旧可以正确执行。这种接口的设计保证了整个工程的稳定 性。通过阅读和了解教科书和其它资料中关于 Information Hiding, interface design, loose coupling 的章节,我知道了要想切实掌握一个方法或者库函数的运用,首先你必须学会从阅读开始,认真了解方法的属性,知道方法调用的作用是什么,然后根据自己程序的需要选择是否调用以及如何调用方法实现程序的简洁化和最优化。

    (2)interface 接口设计

    软件的接口设计元素描述了信息如何流入和流出系统以及被定义为体系结构一份的构件之间是如何通信的。这次的作业中用到的主要是各种设计构件之间的内 部接口,通过这些接口让软件体系结构中的构件之间进行内部通信与协作。接口实现时,保证所有操作和消息传递模式都得到实现,且不同类的操作之间能够进行通 信和协作。

    (3)losing coupling 松耦合

    耦合是类之间彼此联系程度的一种定性度量。因为随着通信和协作数量的增长,类之间的联系程度越来越强,系统的复杂性也随之增长了,类之间的耦合程度 也就增加了。通过增加接口,使类之间的通信协作通过接口很好的完成,保证程序尽可能保持低耦合。松耦合系统通常是基于消息的系统,此时客户端和远程服务并 不知道对方是如何实现的。客户端和服务之间的通讯由消息的架构支配。只要消息符合协商的架构,则客户端或服务的实现就可以根据需要进行更改,而不必担心会 破坏对方。松耦合通讯机制提供了紧耦合机制所没有的许多优点,并且它们有助于降低客户端和远程服务之间的依赖性。

    四、Code Contracts--设计合同(DBC),也被称为契约编程,通过合同和合同的程序设计编程,是一个设计软件的方法。它规定的软件设计师应该定义形式,精确的、可验证的软件组件的接口规范,从而扩展的先决条件一般抽象数据类型的定义,后置条件和不变量。这些规范被称为“合同”按照商业契约的条件和义务概念隐喻。初步了解了设计合同的概念以及其在软件设计中的作用,所以还是试着在程序中运用到这方面的知识,所以在程序中也用到了规范的组件接口,数据类型。

    五、UML设计图

     六、UNit-test

     七、算法说明

    建立请求队列用来存储乘客及请求,现有四个电梯,发现请求时考虑可以到达的最近的电梯将它分配给乘客请求,分配的过程中需判断载重量是否可行并且进电梯后检验目标楼层和是否在电梯可以到达的范围内,若可行则分配电梯通往目标楼层,期间考虑顺路的情况,若顺路并满足搭载请求则顺路带走,若电梯不能搭载则将请求返回请求队列,等待下一个电梯分配的到来,电梯到达目的地后无请求则返回一层等待。

  • 相关阅读:
    mysql的统计函数(聚合函数)
    mysql中的五子查询
    mysql-蠕虫复制--快速插入数据
    mysql 外键的使用
    我的mysql入门笔记
    阿里云官方 Centos7 源码安装 LAMP环境
    xml格式数据转excel
    mysql的安装配置
    sublime中,怎么把所有的函数代码都折叠起来?
    点击文字或按钮弹出一个DIV窗口(DIV悬浮窗口)
  • 原文地址:https://www.cnblogs.com/metto/p/4032886.html
Copyright © 2020-2023  润新知