电梯系列——OO Unit2分析和总结】的更多相关文章

一.摘要 本文是BUAA OO课程Unit2在课程讲授.三次作业完成.自测和互测时发现的问题,以及倾听别人的思路分享所引起个人的一些思考的总结性博客.主要包含设计策略.代码度量.BUG测试和心得体会等内容. 二.设计策略分析 2.1 第一次作业 第一次作业较为简单,主要由Elevator线程和InputHandler线程互相合作完成,是消费者.生产者模式,InputHandler生产AllRequest类中的Request对象存在ArrayList中,电梯从中取出Request对象并完成送乘服务…
一.本单元的架构设计 1.类图 第一次 第二次 2.关键方法和架构简述 总体而言是读取图的时候就完成大部分计算(完成缓存),调用查询方法时只是展示计算的结果,少部分直接计算.主要是设计了各种自己定义的类,处理输入数据时完成各种类的创造和放入容器.第二次作业中,使用预处理器对输入的UML元素进行了多次遍历,先创建具体的对象,再创建次级的从属对象,再读取关系而调用之前创造的对象的特定方法,从而实现把输入的信息重新组合,以便于符合要求地查询.因而各功能是单元化的,对开发和测试比较有利. 二.架构设计和…
一.摘要 本文是BUAA OO课程Unit1在课程讲授.三次作业完成.自测和互测时发现的问题,以及倾听别人的思路分享所引起个人的一些思考的总结性博客.本文第二部分介绍三次作业的设计思路,主要以类图的形式展现,并有简单的优劣分析:第三部分为程序代码复杂度的分析(二.三两部分为基于度量的对自己程序结构的分析):第四部分为对自己.对他人程序的测试.DEBUG.Hack的思考:第五部分是分析作业中可以应用对象创建模式的可能性,和重构的思考. 二.开发设计思路 1.程序类图展示 第一次作业 第二次作业 第…
本文是BUAA OO课程Unit3在课程讲授.三次作业完成.自测和互测时发现的问题,以及倾听别人的思路分享所引起个人的一些思考的总结性博客.主要包含JML相关梳理.SMT Solver验证.JML单元测试.设计策略.代码度量.BUG测试和心得体会等内容. 目录 一.JML简单梳理 二.SMT Solver的部署和验证 三.JML单元测试 四.架构设计梳理 五.测试与BUG分析 六.心得体会 一.JML简单梳理 1.1 JML语言理论基础 The Java Modeling Language (J…
OO Unit2多线程电梯总结博客 传说中的电梯居然就这样写完了-撒花…
OO Unit2 总结 OO课Unit2电梯仿真项目技术回顾 BUAA.1823.邓新宇 2020/4/17 Part1 设计策略 从多线程的协同和同步控制方面,分析和总结自己三次作业的设计策略 第一次作业 关于共享资源,主要是单例模式的Building,其内部为每一个楼层建立一个Floor实例,分上行和下行保存正在该层等待电梯的乘客. 整体的逻辑分为三个部分: 输入器,单独一个线程. 控制器,单例模式,单独一个线程.有一个请求队列和一个等待队列,暂时无法处理的请求会添加到等待队列. 电梯,单独…
[前言] 本系列主要讲述sonarqube的安装部署以及如何集成jenkins自动化分析.netcore项目.目录如下: SonarQube系列一.Linux安装与部署 SonarQube系列二.分析dotnet core/C#代码 SonarQube系列三.如何集成jenkins实现分析自动化 [实现功能] 这篇文章将要介绍的主要内容如下: sonarqube分析.netcore项目下的C#代码 sonarqube生成单元测试报告(代码覆盖率) [SonarQube分析C#代码] 1.sona…
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA跟我学HANA系列之创建分析视图一   前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分…
目录 前言 HW5 度量分析 UML类图与协作图 bug分析 HW6 度量分析 UML类图与协作图 bug分析 HW7 度量分析 UML类图与协作图 bug分析 SOLID原则 感想 前言 紧张刺激的第二单元结束了,本单元体验极佳, 进行作业前有注重架构的稳定,在良好的架构上考虑优化,如此也便利了迭代. 另外,没遇上线程安全bug的电梯,不是完整的电梯[doge] HW5 本次作业要求实现单部可捎带电梯,典型的生产者消费者模式, 输入线程Request是生产者, 电梯线程Elevator是消费者…
目录 前言 HW5 HW6 第二次作业uml协作图 HW7 第三次作业uml协作图 前言 本单元作业在优化方面确实有一些想法值得分享,故单开一篇博客分享一下三次作业的优化以及架构. 三次作业的共同之处在于线程之间通讯所依赖的都是共享对象,采用生产者消费者模式. 这样做的好处是框架清晰,迭代起来往往不需要再添加很多类,改调度也是一个函数的事情:D HW5 第一次作业是单部电梯可捎带,主体上采用的是look算法,电梯在可达楼层上下扫描,当前方向无请求则掉头,两边都无请求则等待,这里用了个小trick…