第三单元总结——JML契约式编程】的更多相关文章

OO第三单元博客作业--JML与契约式编程 OO第三单元的三次作业都是在课程组的JML规格下完成.完成作业的过程是契约式编程的过程:设计者完成规格设计,实现者按照规格具体实现.作业正确性的检查同样围绕规格进行:主要验证作业是否严格按照规格实现. 课程组承诺如果作业严格实现规格,作业的正确性就没有问题.此即是契约式编程的意义之一:工程的每一个环节都有人负责,兼顾高效性和正确性. JML基础 JML(Java Model Language)是一种建模语言,用形式化的符号语言对Java的类和方法进行描…
一.前言 本单元作业都是关于JML(Java Modeling Language),JML是一种契约式设计(Design by Contract)的语言,契约式设计的主要目的是希望程序员能够在设计程序时明确地规定一个模块单元(具体到面向对象,就是一个类的实例)在调用某个操作前后应当属于何种状态,它强调三个概念:前置条件,后置条件和不变式,要求输入的参数满足前置条件,要求函数完成时的状态满足后置条件,要求函数开始运行和结束运行时满足不变式,即对调用者来说不变式总是为真,而对函数内部来说不变式可以为…
PHP高级程序设计 学习笔记 2014.06.09 什么是面向对象编程 面向对象编程(Object Oriented Programming,OOP)是一种计算机编程架构.OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成.OOP 达到了软件工程的三个主要目标:重用性.灵活性和扩展性.为了实现整体运算,每个对象都能够接收信息.处理数据和向其它对象发送信息. 1.PHP中的抽象类 PHP 5 支持抽象类和抽象方法.定义为抽象的类不能被实例化.任何一个类,如果它里面至少…
契约式编程不是一门崭新的编程方法论.C/C++ 时代早已有之.Microsoft 在 .NET 4.0 中正式引入契约式编程库.博主以为契约式编程是一种相当不错的编程思想,每一个开发人员都应该掌握.它不但可以使开发人员的思维更清晰,而且对于提高程序性能很有帮助.值得一提的是,它对于并行程序设计也有莫大的益处. 我们先看一段很简单的,未使用契约式编程的代码示例. // .NET 代码示例 public class RationalNumber { private int numberator; p…
OO第三单元--基于JML的社交网络总结 一.JML知识梳理 1)JML的语言基础以及基本语法 JML是用于java程序进行规格化设计的一种表示语言,是一种行为接口规格语言.其为严格的程序设计提供了一套行之有效的方法.通过JML以及其支持工具,不仅可以基于规格自动构造测试用例,并整合了SMT Solver等工具以静态方式来检查代码实现对规格满足情况.一般来说,其运用于以下两种情况:①开展规格化设计②针对已有的代码,书写其对应的规格,从而提高代码的可维护性. 基本语法: 关键词 含义 pure 纯…
OO第三单元作业(JML)总结 目录 OO第三单元作业(JML)总结 JML语言知识梳理 使用jml的目的 jml注释结构 jml表达式 方法规格 类型规格 SMT Solver 部署JMLUnitNG与使用 三次作业架构设计梳理 第一次作业 第二次作业 第三次作业 三次作业中代码的bug及修复 规格撰写与理解的心得体会 JML语言知识梳理 使用jml的目的 开展规格化设计 针对已有的代码实现,书写其对应的规格,从而提高代码的可维护性 jml注释结构 在我目前看来,jml其实就是一门被规定好格式…
一.JML简介 1.1 JML与契约式设计 说起JML,就不得不提到契约式设计(Design by Contract).这种设计模式的始祖是1986年的Eiffel语言.它是一种限定了软件中每个元素所必需的责任与义务的开发模式,程序设计中的每个元素都需要用规范的语言精准地限定其前置条件(Preconditions).后置条件(Postconditions)和不变式(Invariants).通过这三项限定,我们可以清晰地获得对一个函数功能的刻画,从而达成设计与实现的分离,便于优化.测试和生成文档.…
目录 写在前面 JML理论基础 JML工具链 JMLUnitNG的使用 架构设计 Bug分析 心得体会 写在前面 OO的第三单元学习结束了,本单元我们学习了如何使用JML语言来对我们的程序进行规格化设计.并对openjml以及JMLUnitNG.JUnit等工具的使用有了初步的了解. JML理论基础 注释结构 JML以javadoc注释的方式来表示规格,每行都以@起头. JML表达式 JML表达式有一下几种: 原子表达式:如\result,\old等. 量化表达式:如\forall,\exist…
title: 2020 OO 第三单元总结 date: 2020-05-21 10:10:06 tags: OO categories: 学习 第三单元终于结束了,这是我目前为止最惨的一单元,第十次作业强测20分,互测杀成狗--虽然都知道只关注分数没有什么意义,我更应该去体会的是通过JML学习对于程序设计理念的认知,但是--心真的很痛.下面就进入单元总结: 1. JML语言理论基础与工具链 1.1 JML语言是什么 参考课程组下发的<JML(Level 0)使用手册>,JML语言的定义如下:…
• 1.JML语言的理论基础.应用工具链情况 JML(Java Modeling Language)—— java建模语言,是一种行为接口规范语言( behavioral interface specification language, BISL).同时,JML也是一种进行详细设计的符号语言,它鼓励你用一种全新的方式来看待Java的类和方法,既规定了方法或抽象数据类型的接口,也规定了它们的行为. 面向对象的分析和设计(OOAD)的一个重要原则就是过程性的思考应该尽可能地推迟,先以一定的规范建立…