zoukankan      html  css  js  c++  java
  • OO第四单元总结

    本单元两次作业的架构设计

    这一单元有两次作业,第一次是UML类图的架构设计,第二次是对于UML顺序图与状态图的架构设计。因为时间关系,大四毕业匆忙,我非常遗憾没有很好地完成第二次作业,在此我先表达歉意。但是架构设计对于这两次作业而言可谓是举足轻重,对于UML类图而言,我的设计是读取输入然后用一个由HashMap组成的ArrayList去存储这些UML类图的键值对,每一个HashMap对应一个节点,有唯一的Id。对于每一个函数,都遍历这个ArrayList去查找到响应的HashMap,然后执行相关的操作。

    对于这一单元作业的架构设计,我将采用以下方法进行分析:

    Complexity Metrics(复杂度分析)

    这部分我们需要使用的主要是方法的复杂度分析。
    方法的复杂度分析主要基于循环复杂度的计算。循环复杂度是一种表示程序复杂度的软件度量,由程序流程图中的“基础路径”数量得来。

    1. ev(G):即Essentail Complexity,用来表示一个方法的结构化程度,范围在[1,v(G)]之间,值越大则程序的结构越“病态”,其计算过程和图的“缩点”有关。
    2. iv(G):即Design Complexity,用来表示一个方法和他所调用的其他方法的紧密程度,范围也在[1,v(G)]之间,值越大联系越紧密。
    3. v(G):即循环复杂度,可以理解为穷尽程序流程每一条路径所需要的试验次数。

    对于类,有OCavgWMC两个项目。

    1. OCavg:类的方法的平均循环复杂度。
    2. WNC:类的方法的总循环复杂度。

    Dependency Metrics(依赖度分析)

    1. Cyclic:指和类直接或间接相互依赖的类的数量。这样的相互依赖可能导致代码难以理解和测试。
    2. DcyDcy:计算了该类直接依赖的类的数量,带表示包括了间接依赖的类。
    3. DptDpt:计算了直接依赖该类的类的数量,带表示包括了间接依赖的类。

    整体的架构如下图所示:

    度量表如下所示:


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

    这四个单元的OO作业各有其侧重点,却层层递进。

    1. 第一个单元处于熟悉java语言的阶段, 为了让我们理解面向对象的思想, 更多的是通过封装的方式实现高内聚低耦合, 用层次化结构设计降低代码错误的方式。
    2. 到了第二单元, 有一些设计模式的东西在里面, 通过对生产者消费者模型的理解, 实现了多线程电梯, 理解了多线程结构的设计原则。
    3. 第三单元, 我体会到的是一个软件的由最初逐步迭代, 最终变的很复杂的过程。 这需要把每一个功能抽象出来,实现软件的可扩展性。
    4. 最后一个单元UML,是对前面所有单元的综合, 虽然只有两次, 但是前面所用的技能都有体现。

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

    在进行作业完成的同时,需要同时对代码进行测试,我由最初的手动调试,想边界测试点,到最后的自主测试处理,产生了很大的进步。主要是从自动生成实例,进行输入测试与比对,到人为生成复杂实例,针对特别功能进行针对性测试,再到最后的完全自动化,使用Junit进行测试,自动检测出相应错误。

    自己的课程收获

    我感觉自己从对面向对象思想和Java语言什么都不懂的小白,变成了理解Java,熟悉面向对象思想,多线程编程和软件架构设计的编程者。这其中,老师和助教们对我起到了莫大的帮助。相对于助教和老师们的工作,我们做的真的很少了。我通过这门课,对java语言掌握更熟练,对多线程掌握更熟练,学会了软件测试的方法,对设计模式有了一定的了解,对UML的类图,状态图和顺序图有了更深的理解。感谢这门课给我带来的收获!

    给课程提三个具体改进建议

    先凑齐三点小建议吧:

    1. 希望作业的发布能够尽可能的再准时一些吧。
    2. 希望指导书能够尽可能的完善,减小之后修改指导书的次数。
    3. 希望能够更多地增加讨论环节,增加互动,让我们能够得到更多的历练。

    最后还是要感谢课程组,改写OO这门课,虽然我没有完美地完成所有作业,但是我还是学到了很多,希望这门课越开越好!

  • 相关阅读:
    Asp.Net.Core 5 传值 (控制器->界面)
    Asp.Net Core5创建项目
    .Net5 环境搭建准备
    git拉子分支代码
    【给每个人的摄影史22】国家地理硬照之外的风景:“新地形”摄影,新在哪?
    【给每个人的摄影史21】国家地理硬照之外的风景:风景摄影的三条路
    【给每个人的摄影史20】全球最贵的照片是在欺骗观众?:杜塞尔多夫学派的实践者
    【给每个人的摄影史19】全球最贵的照片是在欺骗观众?:杜塞尔多夫学派和贝歇夫妇
    【给每个人的摄影史18】全球最贵的照片是在欺骗观众?:从《莱茵河II》说起
    【给每个人的摄影史17】为彩色照片正名:当代彩色摄影的实践者们
  • 原文地址:https://www.cnblogs.com/Arrow0/p/11062105.html
Copyright © 2011-2022 走看看