【完结】OO第四阶段总结,内涵大量对测试者的批判

1、测试与正确性论证的比较

测试:

效果直观,便于调试,可操作性强,但是覆盖率不如正确性论证。

正确性论证:

覆盖率高,可靠性高,但是可能会忽略代码实现的错误细节,不够直观,篇幅过长,不易于阅读。

比较:

测试和正确性论证都是测试工程的好方法,但是面向对象本身就是一种极为具体化的简单设计思路,正确性论证的必要性很小,大多数情况使用单元测试就能很好的应付测试需求。

2、OCL和JSF的比较

OCL是一种对象约束语言,没有二义性,能够完善建模元素的相关细节。

相似之处:思想类似,目标相同,框架相仿。

不同之处:OCL实用性更强,JSF不知所谓;OCL更加完善,JSF表达混乱;OCL用途广泛,JSF……不知道说什么好,先点菜吧。

3、

类图

时序图

状态图

4、总结

四个单元模块:面向对象基础,多线程开发,代码工程化,测试论证。

关系:多线程开发需要前一模块的代码基础;代码工程化需要有线程的代码来工程化,前两个模块就是创造了足够多的代码;测试论证也需要代码,第一个模块提供了这些代码。

梳理:实际上面向对象基础的部分我基本没学到什么东西,写代码挺简单的,也不会有什么BUG,感觉花费了很多时间却没有学到知识。多线程开发由于指导书混乱的原因让人很痛苦,最终选择了比较低劣的同时只有一个线程运行的模式,也没有学到什么东西,真的很惭愧。代码工程化由于JSF这个规格语言太愚蠢也只忙着互测撕逼了。测试论证部分让我很满意,学到了很重要的内容,但是一些同学在互测中的丑恶嘴脸也一览无余,极大地增长了人生阅历,认识到了社会的残酷,改变了对一些平日里看似友善淳朴实则阴险恶毒的同学的第一印象,让我不仅学到了重要的测试方法(真的很重要),也看清了许多同学的本质面貌,一举两得,大快人心。

总体来讲,程序设计部分真的没有学到多少东西,可能是因为我本身的代码水平就在平均之上。java的学习也很轻松,百度和谷歌是最好的老师。经过OO的锻炼,我的代码可以说有了一定程度的工程化改观,至少不那么难看了,这还是值得欣慰的。但是本学期花大量时间的JSF在日后一点用处也没有,除了能锻炼钢铁一般的意志以及百折不挠的心态以外我真的想不出这个规格有什么意义。

工程化开发的理解:

你的代码别的开发者能看懂,反之亦然。

你的代码一年之后你自己还能看懂,而不会出现完全难以维护的情景。

你的建模别的开发者也能看懂,反之亦然、

你的代码简洁而美观,你的代码可读性强,让人有阅读的欲望。

但是OO课程的工程化实在是让人不知道怎么说……先点菜吧。

OO课程的工程化的核心是JSF,但是这个JSF具体怎么样上文已经描述过了,而且实际工作中也不可能有这么愚蠢的规格写法。

对课程的期望和建议:

希望课程组能够正视多年以来的广泛的批评,仔细思考并处理这些建议,同时要深入群众,了解同学们不满的关键。摊开来说就是,恶意扣分并不是同学们厌恶这门课的首要原因,首要原因是因为课程评价机制的不完善,即课程组难以遏制恶意扣分现象。社会是复杂的,只要采用互测的机制就不可能杜绝恶意扣分,所以课程组的体系建设核心应该立足于让恶意扣分的同学得不偿失,而非现在的试图让同学没办法恶意扣分。要知道我们北航的同学一个比一个精明,钻空子恶意扣分的本领真的是全国数一数二,课程组的几位老师就算再辛苦再强调也根本无法扑灭互测下的恶意扣分现象。相反,恶意扣分的行为不但得不到惩罚,连被纠正都很难。很多同学完全被恶意扣分之后,完全就是虽然心里很不爽,但是找不到什么反驳的理由,只能一边大骂测试者一边直接申请仲裁,给助教带来了很大的工作负担。另一方面,有一些同学心术不正,视规则如无物。有的同学在发现对方暴露了个人信息之后,即使对面只暴露了学号,他也会不辞辛劳的查找各种资料,想方设法找出这个学号对应哪位同学,然后还把这个同学的名字打错了,然后狠狠讹诈这名同学,恶意扣上十多个BUG,却不申报无效,还无理由的挂了一个CRASH,试图混取大量分数。在遭到申诉之后,这名同学竟然有脸说出我本可以报你一个无效,但是我现在还要处理你的申诉,你这个人怎么能这样呢?这种话。作为一个有意违反了两条规定(故意不申报无效,恶意扣分)的同学,能够说出这种话也是让人很服气的。我相信如果一个同学不慎暴露了个人信息,他心中是可以接受被申报无效的,因为这确实是他做的不好。但是,每一个有自尊,有契约精神的同学,都无法容忍上述行径。上述行为一来是对规则的熟视无睹,这样的测试者理应受到制裁,个人认为与“作弊”别无二致。二来是对认真完成作业,却不慎暴露个人信息的同学的侮辱,因为一份完成度很好的作业,却莫名其妙被冠以十多个莫须有的BUG,这是任何一个有自尊的同学无法接受的。

因此,我提议,在以后的OO课程中严惩这种不守规则的测试者,对乱扣BUG的行为一经发现,两倍扣分;对故意不申报无效的测试者,直接记测试者无效,以儆效尤。

原文地址:https://www.cnblogs.com/mkibera/p/9224451.html

时间: 2024-10-31 02:47:24

【完结】OO第四阶段总结,内涵大量对测试者的批判的相关文章

OO第四阶段总结

一.测试与正确性论证的区别 从哲学的角度来说,正确性论证与测试的关系就像理论与实践的关系一样. 使用测试的方法检验程序正确性确实是一个非常方便可行且广泛运用的方法.可以通过几个简单或复杂的测试样例,迅速地校验程序主要逻辑是否正确,运行结果是否符合预期.但是对于较为复杂的问题来说,测试样例很可能并不能覆盖所有的情况,因此我们曾经引入代码覆盖率和分支覆盖率的概念.但是在操作过程中我发现,即使某个不完全的测试样例代码覆盖率达到100%,分支覆盖率高于95%,它仍然并不一定完全检验程序的逻辑是否正确,即

Linux运维 第四阶段(八)MySQL REPLICATION(SSL)

Linux运维 第四阶段(八)MySQLREPLICATION(SSL) 一.准备: mysql replication(ssl加密方式传输) mysql-5.5.45-linux2.6-i686.tar.gz(通用二进制格式包) 两node,一主一从 master(node1:192.168.41.131,既是CA又是master) slave(node2:192.168.41.132) 环境: [[email protected] ~]# uname -a Linux node1.maged

第四阶段返程

今天周一,早晨8点起床,到食堂吃个早餐,办理退房手续,结束第四阶段12天的出差,启程回公司. 昨天晚上还加班到2点,临时做了个移动端展示功能,基于bootstrap的静态页面,ajax调用后端接口,跟pc端保持一样的后端逻辑.时间主要花在布局样式和js上了,这是短板,或者说是空白.现阶段主要是没有好的交互形式,在pc上也是如此,加上前端三无让这块工作一直滞后,自己突破临时做一个权当应付. 到办公楼找业务员开发票,这是自营改增后第一次开票,没以前方便了,据说可以减免税收,然后取一个平板电脑回公司调

Linux运维 第四阶段 (五) MySQL用户和权限管理

Linux运维 第四阶段 (四)MySQL用户和权限管理 1.相关概念: >mysql用户: 类似VSFTPD虚拟用户: 密码,自己独有的加密机制,PASSWORD函数: 用户名@主机: 用户名16字符以内,主机(主机名.IP.网络地址.通配符(%,_): --skip-name-resolve(跳过名称解析,可提高用户连接速度) 账号是用来认证的: >RENAME USER  'old_name'@'host'  TO  'new_name'@'host;  (重命名用户) >权限,授

Linux运维 第四阶段 (六)MySQL备份&&还原(mysqldump、LV’s snapshot、xtrabackup)

Linux运维 第四阶段 (六)MySQL备份&&还原(mysqldump.LV's snapshot.xtrabackup) 一.相关概念 备份:副本,mysql-database备份不同于RAID(RAID是保证硬件损坏而不会业务终止) 备份内容:数据.配置文件.二进制日志.事务日志 1.备份类型: >热备份.温备份.冷备份 热备份:读写不受影响,复杂度高,InnoDB(xtrabackup,mysqldump),lvm快照功能可实现几乎热备: 温备份:仅可执行读操作,MyISA

自己动手写处理器之第四阶段(1)——第一条指令ori的实现

将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第11篇,我尽量每周四篇 第4章 第一条指令ori的实现 前面几章介绍了很多预备知识,也描绘了即将要实现的OpenMIPS处理器的蓝图,各位读者是不是早已摩拳擦掌,迫切希望一展身手了,好吧,本章我们将实现OpenMIPS处理器的第一条指令ori,为什么选择这条指令作为我们实现的第一条指令呢?答案就两个字--简单,指令ori用来实现逻辑"或"运算,选择一条简单的指令有助于我们排除干扰,将注意力集中在流水线结构的实现

自己动手写CPU之第四阶段(2)——验证第一条指令ori的实现效果

将陆续上传本人写的新书<自己动手写CPU>(尚未出版),今天是第12篇,我尽量每周四篇 书名又之前的<自己动手写处理器>改为<自己动手写CPU> 4.3 验证OpenMIPS实现效果 4.3.1指令存储器ROM的实现 本节将验证我们的OpenMIPS是否实现正确,包含:流水线是否正确.ori指令是否实现正确.在验证之前,需要首先实现指令存储器,以便OpenMIPS从中读取指令. 指令存储器模块是只读的,其接口如图4-7所示,还是采用左边是输入接口,右边是输出接口的方式绘

第四阶段 (七)MySQL REPLICATION(主从复制、半同步复制、复制过滤)

Linux运维 第四阶段 (七)MySQL REPLICATION(主从复制.半同步复制.复制过滤) 一.MySQL Replication相关概念: 1.复制的作用:辅助实现备份:高可用HA:异地容灾:分摊负载(scaleout):rw-spliting(mysql proxy工作在应用层). 2.master有多个CPU允许事务并行执行,但往二进制日志文件只能一条条写:slave比master要慢:master-slave默认异步方式传送. 3.半同步:仅负责最近一台slave同步成功,其它

自己动手写CPU之第四阶段(4)——Makefile文件建立

将陆续上传本人写的新书<自己动手写CPU>(尚未出版),今天是第14篇,我尽量每周四篇 4.4.6 编写Makefile文件 为了得到指令存储器初始化文件,我们需要输入4条命令,有点麻烦,最好只输入一条命令就可以了,这需要使用到Makefile文件.在汇编程序inst_rom.S所在目录下新建一个Document,文件名为Makefile,内容如下. ifndef CROSS_COMPILE CROSS_COMPILE = mips-sde-elf- endif CC = $(CROSS_CO