• OO第四次博客作业


    测试和正确性论证的效果差异

    • 测试:测试一般分为功能性测试和边界条件测试,功能性测试是为了保证程序能够完成要求的正常功能,边界测试是测试边界条件,比如游戏中地图越界的问题,一般来说,如果不能正常处理边界条件,程序崩溃也是经常的事情。测试的优点是 效率比较高,缺点是即使所有的测试点都过了,也不能保证程序没有bug。
    • 正确性论证:正确性论证是从代码逻辑的角度来论证代码是否有无bug,优点是能够全面覆盖程序正确性,缺点是十分繁琐,而且耗时多。目前各种招聘网站有很多测试工程师岗位,但却没有正确性论证工程师。可见,测试才是一般商业项目开发的重点流程。

    OCL语言调研

    调研OCL语言,比较和JSF的相似和不同之处:
    OCL(Object Constraint Language)直译是对象约束语言,OCL最早是由IMB在1995年提出的business engineering language,后被采用为正式规范语言作为UML(Unified Modeling Language)的一部分,目前的版本是OCL 2.0。
    OCL和JSF相似,也有Precondition、Postcondition和Invariant,定义和语法如下:




    可见和JSF语法上差异比较大,相同之处是两者都是形式化语言,起约束定义的作用。

    第十四次电梯作业Graph

    类图UML

    enter description here

    UML图

    UML图中可以看出,单线程ALS电梯结构比较简单,至下而上首先是调度输入处理InputHandler,返回的Request集合通过main函数传递给Scheduler类,而Scheduler调度时结合电梯灯的情况,结果通过OutputHandler输出到控制台。

    时序图

    UML Sequence

    UML Sequence

    状态图

    State UML

    State UML

    OO学期总结

    模块知识点

    本学期OO作业基本概况如下:

    作业 主要完成功能
    1 多项式处理
    2 单线程傻瓜电梯
    3 单线程ALS电梯
    5 多线程ALS电梯
    6 文件系统IFTTT
    7 出租车:多线程
    9 出租车:增加道路开关
    10 出租车:增加红绿灯
    11 出租车:增加类规格和LSP原则
    13 单线程ALS电梯:Junit4覆盖测试
    14 单线程ALS电梯:正确性论证

    大致可以分为四个单元:

    • 第一单元:Java基础语法入门,掌握正则表达式
    • 第二单元:多线程电梯,掌握基本的多线程和互斥处理
    • 第三单元:出租车,继续多线程,程序套上图形接口
    • 第四单元:重构代码、修复Bug以及规格化测试和JSF约束

    设计、测试上的进步

    本学期应该是大学以来代码量最多的一个学期,收获比较大。
    感受就是coding是最好的学习方式,看不太懂的东西,写着写着就会了。

    • 模块化:最开始写的面向过程式、面条式代码,中期发现修改功能非常痛苦,后期重构代码后能够保证大多数方法控制在40行以内。
    • 设计进步:在后期重构的过程中,设计上能够各个类的功能更加清晰。
    • 程序规范:对各种变量的命名规范化,保证程序过一段时间还能看懂。

    对工程开发的理解

    • 工程开发一般需要严格的规范,以便组内能够互相看懂代码,比如命名和函数功能。
    • git、maven等工具在工程开发中比较重要。
    • 自己写的接口需要提供文档,方便别人使用。

    课程建议

    • 多线程部分难度跨度比较大,入门就写多线程捎带电梯接受不来。
    • 对于Java SE的基础语法考察覆盖不够,比如泛型、Collection框架和图形界面如Swing。
    • 课程后期的测试部分,恶意扣分比较严重,并且繁琐的正确性论证占用了大量的课余时间。
  • 相关阅读:
    shell进阶——expect免交互工具的使用
    SSH非交互式密码授权远程执行脚本---转载
    github新项目上传操作(下面的例子以centos7-redis-shell项目为实例)
    camstar跨平台开发
    C/C++语言中的int所能表示的最大值最小值
    剑指offer 15:二进制中1的个数
    剑指offer33:二叉搜索树的后序遍历序列
    剑指offer31:栈的压入弹出序列
    剑指offer:包含min函数的栈
    剑指offer50拓展:字符流中第一个不重复的字符
  • 原文地址:https://www.cnblogs.com/Hooooober/p/9217435.html
Copyright © 2020-2023  润新知