一、度量分析程序结构

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. ionic 3 热更新 Hot Code Push

    最近用ionic 3 做的app业务做的差不多了,突然想到以后app如果有更新该怎么搞?想到我们的app后期更新应该不大,,最多就是改改bug和增加下用户体验,如果只有一些小的更新,然后提交各个应用商 ...

  2. spark_to_es

    package es import java.io.InputStream import java.text.SimpleDateFormat import java.util.{Calendar, ...

  3. Skeleton Screen -- 骨架屏--应用

    案例:使用 现已经在支付的项目使用 用户体验一直是前端开发需要考虑的重要部分,在数据请求时常见到锁屏的loading动画,而现在越来越多的产品倾向于使用Skeleton Screen Loading( ...

  4. 141. 环形链表 [JS Undefined类型的运用]

    [解析] 1.遍历每个节点 2.遍历过的节点用新的空间来标记 JS新的空间不用在使用前声明,用法参考实现. 3.如果遇到标记过的节点则是环形 [实现] /** * Definition for sin ...

  5. less那些事儿

    1.计算函数 less写法要特殊处理一下,否则会被识别成calc(60%); /* css */ width: calc(100% - 40px); / * less */ width : calc( ...

  6. 第七篇 Flask 中路由系统以及参数

    Flask中的路由系统其实我们并不陌生了,从一开始到现在都一直在应用 @app.route("/",methods=["GET","POST" ...

  7. MySql数据and高级查询

    1.CREATE TABLE grade(stuID INT AUTO_INCREMENT PRIMARY KEY NOT NULL,stuName VARCHAR(32),stuAge INT ) ...

  8. [LeetCode] Design HashSet 设计HashSet

    Design a HashSet without using any built-in hash table libraries. To be specific, your design should ...

  9. ng7 设置http proxy

    看文档 proxy.conf.json { "/api": { "target": "http://localhost:5000", &qu ...

  10. Java 中 String 的字面量与 intern 方法

    下方代码主要说明: String b = new String("xyz")  创建2个对象,一个在常量池中的 "xyz",一个 String 实例对象,返回的 ...