当前位置: 首页 > news >正文

OO第四次博客作业

OO第四次博客作业


 

 

1. 论述测试与正确性论证的效果差异,比较其优缺点


 

测试是对代码在特定的现实情境中进行模拟,你可以根据实际情况来判断输出是否正确,即时发现问题,可能找不到出问题的根源,通过自己不断分析才能找到需要改到的代码片段。

优点:符合现实场景,让人容易接受。

缺点:不能直接发现哪块代码有问题。

正确性论证是一个偏向于公式化的体系,通过这些“公式”可以精准严谨的判断代码是否有问题。

优点:能够直接发现问题。

缺点:略微抽象、繁琐。

 

2.调研OCL语言,并比较其与课程所介绍的JSF规格之间的相似和不同之处


 

对象约束语言简称OCL(Object Constraint Language),它是一种用于施加在指定的模型元素上约束的语言。OCL表达式以附加在模型元素上的条件和限制来表现对该对象的约束,其中包括附加在模型元素上的不变量或约束的表达式,附加在操作和方法上的前置条件和后置条件等。

OCL预定义的标准类型定义了一组基本类型和集合类型。OCL的基本类型有"Boolean"、"Integer"、"Real"、"String"等。集合类型包括"Collection"、"Set"、"Bag"、"Sequence"等。这些标准型是OCL表达式的组成部分。

OCL具有如下特点:
    1、OCL是一种精确的,无二义性的语言。
    2、OCL是一种规范说明性语言,所有有关实现的问题都不能用OCL来表达。
    3、OCL是一种纯表达式语言,它是具有没有任何副作用的申明性语言。
    4、OCL是一种类型化语言,即OCL中的每一个表达式都是具有类型的。
    5、OCL不是一种程序设计语言,不能用OCL编写程序逻辑和控制流程。

OCL表达式对于一个OCL类型求值。OCL表达式有以下特点:
    1、OCL表达式可以附加在模型元素上,模型元素的所有实例都应该满足表达式的条件。
    2、OCL表达式可以附加在操作上。
    3、OCL表达式可以指定附加在模型元素上的监护条件。
    4、OCL表达式的计算顺序是从左到右。
    5、OCL表达式既可以使用基本类型又可以使用集合类型。

相似之处:

  1. 目的相同,都想通过数学的方式验证正确性
  2. 结构相同:都有前置条件和后置条件

 

不同之处:

  1. OCL相比于JSF来说更加完善
  2. OCL的基本类型更多
  3. OCL和JSF符号系统不一样

 

3.根据第十四次作业的单电梯系统,针对调度器、电梯、请求队列和 请求,至少整理出 一幅UML类图、一幅顺序图和一幅状态图,并使用 图(graph)来表示出模型


 

UML

 

 

时序图

 

 

状态图

 

 

4. 整理总结一个学期所学所练


 

 

4.1阐述四个单元模块知识点之间的关系


 

第一单元——基础。我们从基础了解“面向对象”,正则表达式,各种内置函数的应用,各种算法的实现。

第二单元——进阶。开始接触线程,多线程的应用,线程安全。

第三单元——完善。对程序进行规格化整理,确保正确性。

第四单元——总结。用覆盖率去检验自己是否已经检测了自己代码的每一个细节,正确性论证。

 

4.2梳理自己所设计实现的程序,分析自己在设计、测试和质量上的进步


 

   我觉得自己的进步可以说是很大了,因为在这个学期之前完全不会JAVA,一学期速成,然后从各个方面补缺自己的不足,再到后面学会了多线程,学会了线程安全,学会了规格方法,学会了正确性论证,学会了覆盖率测试等等。以前的我只会局限于面向过程,现在可以更加精准的面向对象了。而且相比于开始,更会仔细思考怎么写代码才好,怎么写才能避免更多问题,怎么写才能用最少的行数完成功能。

 

4.3阐述自己对工程化开发的理解


 

  虽然自己对工程化开发并没有过多的接触,但是一学期的任务下来,也有了一些基本的体会。

  首先,工程化开发在了解了需求之后,首先一定要对需求进行分析,而不是基于开始开发写代码,在花大量的时间对需求进行了分析后,再开始规划思维模式与代码的框架,接着才来编写代码,有了预先的规划工作,写起代码来自然得心应手,同时要注意的是,工程化开发中写代码一定要严格按照规格来,一来有便于过后的优化与更改,二来工程化开发有可能经常需要与别人合作,要使得自己代码有较强的可读性。

  在代码编写完成后,要对代码进行有效且覆盖性尽量强的测试,找出代码中存在哪些遗漏的问题,这一步即相当于与开发的代码进行验证与优化

 

4.4对课程的任何期望或建议


 

    还是希望能够将指导书弄得更加全面一些,避免好多好多issue上的问题你不得不看,因为可能会存在指导书之外的要求。虽然觉得助教老师说的:“在以后的工作客户给你的指导书会更加不完整。”有一些道理,但是,毕竟我们现在还不是真正的工程人员不是么?而且我也觉得不把指导书写完善我们从中学到了什么,只觉得...助教的工作压力还挺大的。

  希望OO越来越好。

转载于:https://www.cnblogs.com/zyq16061126/p/9224337.html

相关文章:

  • CentOS7网卡重启错误,配置IP方案
  • 真·面试题
  • 英语基础语法-时态(谓语动词的变化-一般时态/进行时态)
  • 安装mysql时出现应用程序无法正常启动(0xc000007b)、初始化失败以及密码忘记怎样重置?...
  • Java多线程(六) —— 线程并发库之并发容器
  • NEO VM原理及其实现(转载)
  • ES6的函数
  • review02
  • 5.2.12.读写接口实践
  • JAVA进程CPU使用率使用过高故障排查
  • 基础面试题
  • C++ 构造函数_初始化列表
  • 【keepalived】CentOS7.0下安装教程
  • React-Native Fetch使用Promise封装(一)
  • 文件操作的补充
  • 【Amaple教程】5. 插件
  • 2017年终总结、随想
  • crontab执行失败的多种原因
  • Electron入门介绍
  • HTTP那些事
  • JavaScript-Array类型
  • JS基础之数据类型、对象、原型、原型链、继承
  • js如何打印object对象
  • MySQL用户中的%到底包不包括localhost?
  • PAT A1092
  • php的插入排序,通过双层for循环
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 聊聊flink的TableFactory
  • 每天10道Java面试题,跟我走,offer有!
  • 深度学习在携程攻略社区的应用
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 推荐一个React的管理后台框架
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (2015)JS ES6 必知的十个 特性
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • ../depcomp: line 571: exec: g++: not found
  • ./configure、make、make install 命令
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET BackgroundWorker
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET 中 GetProcess 相关方法的性能
  • .net和php怎么连接,php和apache之间如何连接