• OO第四单元总结


    OO第四单元总结

    前言

    ​随着第四单元解析uml的两次作业的完结,本学期的oo课程落下帷幕。从最开始的oo思想,到多线程程序设计,到规格化设计,到最后的uml建模语言,可以说每个单元的学习,都让我收获颇丰。本单元的练习,旨在学习、理解并简单解析uml模型。第一次作业是对uml的类图进行查询;第二次作业,在其基础上,增加了顺序图和状态图。这两次作业让我对uml语言有了更深的认识。

    一、作业架构设计

    第一次作业

    因为只有一个类图,我就直接一个类把图存储、计算都解决了。

    对UmlElement的type进行分类,将需要的数据用hashmap存起来,

    查找的时候直接通过UmlClass的id进行数据获取。

    由于使用了switch,加上较长的case,进行分类(包括参数的direction和UmlElememt的type),

    因而部分方法复杂度有些高,但实际上代码还是很清晰的。

    第二次作业

    主要有四个类,MyUmlGeneralInteraction类对UmlElement进行初步整理,

    并分发给MyUmlModel, MyUmlCollaboration, MyUmlStateMachine,

    三个类分别进行类图、顺序图、状态图的存储、计算。

    MyUmlGeneralInteraction类,通过调用这三个类的方法,实现了所有的交互接口。

    类图的部分,几乎完全重用了第一次作业的代码。

    二、架构设计与oo方法理解的演进

    第一次作业中,完全没有考虑过架构问题;

    第二次作业开始,就开始用层次化的方法处理数据:表达式、项、因子;

    在第二单元中,开始了解到了设计模式,更多的考虑了架构

    在电梯问题中,电梯线程、请求器线程和共享对象调度器(队列)的设计,就有比较好的考虑架构问题。

    第三、四单元中,频繁的使用接口实现、继承重用的方式,去满足规格或需求的要求。

    对于架构设计的问题,其实每次写程序都有考虑很久,感觉自己还是不太能够从容的边想边写的完成一个很好的架构。还需要熟悉一些经典的设计模式,同时多读、多写一些代码。

    三、测试理解与实践的演进

    最开始是,自己手工分类各种易错的数据,进行测试;

    到第二单元,多线程程序的测试有一定的偶然性,因而开始使用大量随机数据进行测试,与其他同学程序输出结果进行对比;

    第三单元,学习了规格化设计jml语言。学习了通过junit进行单元测试,还尝试了JMLunit测试代码实现是否符合规格要求。

    第四单元,涉及各种查询指令,对这些查询指令的方法,用junit进行了单元测试。

    四、课程收获

    1、面向对象程序设计思想,层次化、代码重用;

    2、多线程程序设计:线程安全问题,线程同步与互斥、共享对象访问控制;

    3、规格化设计:jml语言的学习,规格化设计的优势,各种相关软件的使用;

    4、能较好的考虑架构问题;

    5、uml建模语言:学习了uml模型;

    6、熟悉使用了java语言;

    五、课程建议

    1、可以精选出开源代码,让同学们课下学习。甚至可以选择非常有代表性的,课上集体讲解面向对象的思想在其中具体发挥了什么样的作用,给程序带来了什么样的好处,利于同学更好的理解、运用。

    2、优化评分规则,给发挥失常的同学机会(例如去掉一个最高分和最低分)。

    3、设计并组织互帮互助服务(可有偿)。

  • 相关阅读:
    沃尔玛的问题
    为什么没有“128位”的通用处理器
    用户模式驱动模型(UMDF)简介
    Live Space的谢幕
    Cheap HDD bracket
    让 UV4 支持STC 单片机
    SQLServer 分组查询相邻两条记录的时间差
    ERP采购系统流程
    C++运算符的优先级和结合性
    Entity Framework 4.1延时加载与贪婪加载之我的理解和数据库中如何存入图片
  • 原文地址:https://www.cnblogs.com/DengTC/p/11077387.html
Copyright © 2020-2023  润新知