zoukankan      html  css  js  c++  java
  • 2019-oo-第一次总结

    一、度量分析程序结构

    1.UML类图分析

    1.1第一次作业

                 

      1.2第二次作业

            

    1.3第三次作业

               

    1.4总结

     从UML类图三次作业的可以看出,我从一个类到逐渐利用多个类,代码结构在不断的进步。有许多模块是可以独立出                        来的,而且这样修改起来也不用考虑对其他模块的影响,例如我将判断与求导还有输出分成3个类,这样3个类之间就互                        不干扰。

    2.Statistics分析

    2.1第一次作业

             

    2.2第二次作业

               

    2.3第三次作业

              

    2.4总结

      可以看到代码量在随着作业难度的提升逐渐增长。

    3.MetricsReloader分析

    3.1第一次作业

                    

     3.2第二次作业

                    

    3.3第三次作业

                    

    3.4总结

      ev(G)基本复杂度是用来衡量程序非结构化程度的,基本复杂度高意味着非结构化程度高,难以模块化和维护。

      Iv(G)模块设计复杂度是用来衡量模块判定结构,软件模块设计复杂度高意味模块耦合度高,模块设计复杂度不能大于圈复杂度,通常是远小于圈复杂度。

      v(G)是用来衡量一个模块判定结构的复杂程度,圈复杂度大说明程序代码可能质量低且难于测试和维护。

    可以看到三次作业,模块的耦合度都比较高,甚至某个类的Iv(G)已经快接近v(G)。总的来说,自己还未成功的把程序模块化,不同类之间联系过大。自己对于面对对象的思维还是不够明确。

    二、自己程序bug分析

    1.第一次作业

       第一次bug由于我最后晚上优化程序时,优化完了就上交,自己并未检验到底优化是否增添了bug导致只要表达式里没有x就会报错。原因是我只在ArrayList中存了x的项,而我后面访问该ArrayList时并未检验是否是空的,导致出现问题。

    2.第二次作业

        第二次bug由于正则表达式中\t代表制表符,而在字符串中 代表制表符,而我在字符串中写\t代表制表符,从而出现了bug。   

    3.第三次作业

         第三次bug中我在判断正误的一个正则表达式中少加了[ \t],导致本来应该正确的表达式出错。还有一个还是由于我优化出现了问题。

    三、发现别人的bug

          在这三次作业,第一个找到的bug是空白符,应该是WF,但是有些人却什么都没有输出。第二个bug是一个表达式化简之后为           0,但是他却未考虑这种情况。第三个bug是--x但是他却判断其是错误。

    四、Applying Creational Pattern

        在这三次作业中,当我在互测屋中看到别人的代码时,看到很多人都是讲项分成不同的类,而我就只有一个项,包括了幂函                数,三角函数和常数,而且求导也是在同一个类,现在看到别人,就想到,可以把项当做父类,而其他的就是其子类,也就是用继          承。而同理,求导也可以这样做。虽然自己面向过程的思想还是在体现。但是可以看到自己也慢慢的具有了面对对象的思想了,也          在不断地进步。

  • 相关阅读:
    计算成像最新进展及应用
    计算成像资料笔记
    成像中的倏逝波与衍射极限
    Eclipse安装Activiti插件(流程设计器)
    Python3.x:代理ip刷评分
    Python3.x:代理ip刷点赞
    Python3.x:正则 re.findall()的用法
    Python3.x:python: extend (扩展) 与 append (追加) 的区别
    Python3.x:zip()函数
    Python3.x:获取代理ip以及使用
  • 原文地址:https://www.cnblogs.com/ilwf/p/10602027.html
Copyright © 2011-2022 走看看