• OO第四单元总结


    Table of Contents generated with DocToc

    任务:

    1. 总结本单元作业的架构设计
    2. 总结自己在四个单元中架构设计及OO方法理解的演进
    3. 总结自己在四个单元中测试理解与实践的演进
    4. 总结自己的课程收获
    5. 立足于自己的体会给课程提三个具体改进建议

    架构设计

    总结本单元作业的架构设计

    首先评价以下自己的架构设计——非常丑,有一个类快700行。

    再丑的架构也是自己写出来的。

    第一次作业不懂事,不知道后面还有顺序图和状态图的部分,架构如下:

    MyUmlInteraction
    	|- MyClass
    		|- MyOperation
    		|- MyInterface
    

    后来将类图、状态图和顺序图剥离出来,架构如下:

    MyUmlInteraction
    	|- ClassInteraction
    	|	|- MyClass
    	|		|- MyOperation
    	|		|- MyInterface
    	|
    	|- SequenceInteraction
    	|	|- MySequence
    	|
    	|- StateInteraction
    		|- MyStateMachine
    

    从小往大的说,MyOperationMyInterface封装了UmlOperationUmlInterface,然后MyClass就表示一个“类”,ClassInteraction保存了所有的类及其关系。

    MySequence是一整个顺序图的抽象,MyStateMachine是一整个状态图的抽象。

    SequenceInteractionStateInteraction分别保存了所有的顺序图和状态图。

    XXXInteraction内实现了各个检查和查询的接口。

    架构设计及OO方法理解

    总结自己在四个单元中架构设计及OO方法理解的演进

    学到了第四单元,了解了一些设计上的规则后,我才知道,自己曾经写出过那么拉废不堪的代码和架构。

    现在来看OO,我觉得,就是抽象出了“类”和“关系”两大实体,作业和上机,就是在帮助我们掌握抽象出“类”以及维护好关系上。

    第一单元,表达式与求导,我较早地使用了OO的思想,将各个factor封装成相应的类,从第一次作业到第二次作业没有推倒重来,但是架构上,写出了关系上相互依赖的两个类,维护非常困难。

    第二单元,多线程模拟电梯,除了几天速成多线程外,重点学习了线程之间的交互。也就是说,维护好线程之间的关系,既要高效,也要避免死锁。

    第三单元,看到了各式各样的JML,我体会到了设计架构时,那种自然语言表达上的艰辛,以及将JML翻译成人话时痛苦。

    第四单元,UML的解析。依旧是被课程组下发的官方包震惊到的一次,官方包里琳琅满目的类,有条不紊的设计,让我大开眼界。借用李安导演一句话,“我虽然看不懂,但是大受震撼“。类、异常、解析器,还有很多看不懂的东西,我觉得这就是一个项目应该有的架构,一家人整整齐齐。

    测试理解与实践

    总结自己在四个单元中测试理解与实践的演进

    我在上OO课前,对测试的理解就是,用正常数据、边缘数据和异常数据去测试自己的项目,对输出进行检查。

    学习了OO后,我才知道,自己的看法还是太单薄了。

    如果测试的行为有等级,我想可以分成三层,

    第一层,手动构造样例。比如第一单元写完以后,手动输入一些表达式;

    第二层,对拍。实现了机械化的输入,提高了效率;

    第三层,使用JUnit,将测试模块化。

    在实践上,第一单元和第二单元我都只做到了第一层,到了第三单元和第四单元,在同学的帮助下,使用对拍机。很可惜,我只做到了手动构造样例和对拍,并没有涉足JUnit使用。

    课程收获

    总结自己的课程收获

    1. 收获了OO的知识,做好架构,组织整个工程结构的能力;
    2. 收获了测试的方法,对拍机给我留下了深刻的印象;
    3. 收获了友谊。

    改进建议

    立足于自己的体会给课程提三个具体改进建议

    实话实说,我上课就没怎么听过,每周的OO课,要么在看OS,要么在做离散作业。

    我记得听过一节JML,后来发现课上老师默认我会JML语法,以及课的内容对我完成homework没有大的帮助,我就听地更少了。

    说到具体的建议,我有一个,有一次上机,我在最后5分钟左右提交了一次,我没做完,只是想保存下进度,然后,做完了,发现再也交不上了。。。。

    要是在倒数5分钟提交的时候,系统弹出一个对话框,警告我这是最后一次提交的机会,那该多好。

    第二个建议,本次博客要求“三个建议”太多了,少一点。

    总结

    OO这门课,让我见识到了北航课程组实力的强劲,比同校的其他课、其他学校的同样的课,都要强不少。

    指导书、官方包、测评机、互测环节,很强。

  • 相关阅读:
    EggJs+Vue服务端渲染实践
    使用Charles代理功能将网络请求定向至本地文件
    iOS内存管理(一)
    RumTime实践之--UITableView和UICollectionView缺省页的实现
    CollectionView水平和竖直瀑布流的实现
    解决在HTTPS页面里嵌套HTTP页面浏览器block的问题
    利用servlet做转发,实现js跨域解决同源问题
    js将数字转换成大写的人民币表达式
    《将博客搬至CSDN》 分类: 勉励自己 2014-09-05 14:29 43人阅读 评论(0) 收藏
    jquery插件,美化select标签
  • 原文地址:https://www.cnblogs.com/ticlab/p/14921657.html
Copyright © 2020-2023  润新知