一、度量分析程序结构

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代表制表符,而我在字符串中写\\t代表制表符,从而出现了bug。   

3.第三次作业

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

三、发现别人的bug

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

四、Applying Creational Pattern

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

2019-oo-第一次总结的更多相关文章

  1. OO第一次作业总结

    OO第一次学习总结 1.第一次作业:多项式加法 从未接触过java的我,在从输入输出开始学了几天后,按照C语言的思路,写出了一个与面向过程极其接近的程序. 在这个程序中,存在两个类:一个是Comput ...

  2. OO第一次博客作业

    OO第一次博客作业 一.三次作业的bug反省 1.自己发现别人的问题 (1)输入处理的问题,比如第一次作业,主要就是处理输入的字符串,然后有同学的正则表达式有问题,则对于一些错误输入就不能正确判断. ...

  3. oo 第一次博客作业

    oo 第一次博客作业 早在大一就听说了oo的各种传奇故事,大二下学期终于也开始了我的oo之旅. 基于度量来分析自己的程序结构 第一次作业 类图分析 耦合度分析 可以看出在第一次作业中,我的耦合度非常高 ...

  4. 2019年北航OO第一次博客总结

    一.基于度量对程序结构的分析 1. 第一次作业 1.1 基于类的分析的度量 首先,基于类的属性个数,方法个数,每个方法的规模,每个方法的控制分支数目,类总代码规模等特征对本次作业的结构进行分析. 1. ...

  5. OO第一次单元总结

    第一次总结性博客 16071070 陈泽寅 2019.3.23 一.第一单元所学总结 首先先来总结一下第一单元我所学到的知识以及所感所悟.第一个单元,是我第一次接触JAVA语言,并且再使用了几次之后, ...

  6. OO第一次阶段性总结

    经过三次作业的历练之后终于来到了写博客这一周.回顾开学来的这一个月,令我印象最深刻也是最累的一门课就是OO了.虽然上学期学过一部分Java,但这学期开学就来的OO作业还是让我在第二周就开始熬夜了.不过 ...

  7. OO第一次博客作业--第一单元总结

    OO第一单元总结 面向对象设计与构造的第一单元,对“面向对象”的概念还根本不理解不熟悉,只觉得需要“分模块”,但不知道怎么分,分多少模块,怎么根据需要的模块的功能建立类.学习的进度又太慢,根本跟不上出 ...

  8. OO第一次博客

    过去的三周里我们完成了表达式求导的程序设计与构造.表达式求导程序,大致思路是实现一个表达式类,支持表达式的输入.求导运算和输出功能.可能的话,还可以增加表达式的化简方法,从而得到更高质量的输出结果.总 ...

  9. oo第一次作业

    前言: 这是一篇面向对象作业总结,作业内容是对多项式进行求导,一共有三个阶段,具体要求不详述,第一阶段只要求’+’连接coeff*x^pow的形式,第二次支持*连接的幂函数及三角函数,第三次则需要支持 ...

  10. OO第一次博客总结

    虽然早在开学之前就已耳闻过OO这门课的威力,也在寒假自学了一些java的语法,但在真正面对OO这样的工程训练时才发现寒假所学的那点语法简直不值一提,也深刻的感受到在这个过程中自己的提升确实很快,毕竟d ...

随机推荐

  1. java实验5

    实验一要求: 两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA 结对实现中缀表达式转后缀表达式的功能 MyBC.java ...

  2. net core 获取配置文件

    IConfiguration服务是net core 默认依懒注入的一个对象 直接注入(推荐使用) 新建控制器 然后构造函数直接注入 [Route("api/[controller]" ...

  3. js处理有序列表、js处理无序列表

    有序列表.无序列表 显示id为s下所有的li..隐藏同样 $("#s li").show();

  4. 调试webpack配置文件

    webpack运行在nodejs上,调试webpack就相当于调试nodejs程序.下面介绍一种通用的办法. 1.配置package.json,加一个debug. { 'scripts': { 'de ...

  5. mysql的event(事件)用法详解

    SELECT * FROM mysql.event;SET GLOBAL event_scheduler = 1; -- 开启定时器 0:off 1:on SHOW VARIABLES LIKE 'e ...

  6. harpoxy 配置

    HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性.负载均衡,以及基于TCP和HTTP的应用程序代理. HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保 ...

  7. 一键安装metasploit(linux,os x)

    curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit- ...

  8. 关于 vuex 的使用忠告

    第一.看明白这张图在说话 简单解释一下,actions接收到components的行为后actions请求api 等获取数据,提交到mutations,然后mutations中才改变state ,反映 ...

  9. 第一次c++作业小结

    之前从未接触过c++,上完第一节课后也还是懵懵懂懂.当知道有作业要完成时,也是无从下手.在仔细阅读教材以及同学的帮助下,我了解了如何编写最简单的程序,也算是踏入c++的大门.希望自己的第一次作业能够符 ...

  10. ThinkPHP5 添加多个文字水印及疑难解答

    public function imageload() { $imgpath = ROOT_PATH . 'public' . DS . 'static' . DS . 'www' . DS . 'i ...