首页 > 其他分享 >HITSC_5_Designing Specification

HITSC_5_Designing Specification

时间:2024-05-27 20:00:13浏览次数:18  
标签:规约 方法 Specification cache HITSC Designing static 前置条件 客户端

目标

规约,前置后置条件,欠定规约、非确定规约、陈述式、操作式规约、规约的强度及其比较

规约

作用

  1. 给自己和别人写出设计决策:如final、数据类型定义
  2. 作为契约,服务端与客户端达成一致
  3. 调用方法时双方都要遵守
  4. 便于定位错误
  5. 解耦,无需告诉客户端具体实现,变化也无需通知客户端,扮演防火墙角色
  6. 判断行为等价性

内容

  1. 输入输出的数据类型
  2. 功能和正确性
  3. 性能

行为等价性

站在客户端视角看一个行为是否具有等价性。如果两个函数都符合同一个Spec,则他们等价

Spec的结构

  1. 前置条件:对客户端的约束,在使用方法时必须满足的条件,用@param,并用@requires进行说明
  2. 后置条件:对开发者的约束,方法结束时必须满足的条件,用@return@throws,并用@effects进行描述
  3. 契约:前置条件满足了,则后置条件必须满足
    Spec不需要说明方法内部变量和类的私有方法或变量

    标签:规约,方法,Specification,cache,HITSC,Designing,static,前置条件,客户端
    From: https://www.cnblogs.com/Ch1ldKing/p/18216410

相关文章

  • HITSC_4_Data Type and Type Checking
    目标静态/动态,可变/不变,Snapshot图,集合类,NULL数据类型基本数据类型没啥好说的对象数据类型String,Integer等区别Boxedprimitives将基本类型包装为对象类型,但不常用,通常是为了集合类而用层次结构对象结构有extends(继承)等关系操作既可以是普通的运算符,也可以是Object对......
  • HITSC_3_Software Construction Process and Configuration Management
    目标软件开发流程及模式,敏捷开发,软件配置管理SCM,Git,软件构造过程和构造工具SDLC传统软件开发模型瀑布模型线性模型优点:划分阶段,管理简单缺点:不迭代,所以缺少灵活性,也难以适应需求;并且用户看不到原型,导致风险高,前期错误后期发现增量模型瀑布串行,容易适应需求增加V模型......
  • HITSC_Testing and Test-First Programming
    目标测试优先模块设计:等价划分、边界值分析覆盖度本节内容如下Softwaretesting测试是为了“破坏”好的测试?能发现错误不冗余有最佳特性别太复杂也别太简单测试等级回归测试包含三类单元、集成、系统,对应不同的级别一些概念静态和动态测试:静态只能发现一些......
  • HITSC 1
    软件视角Views三维度八视图Code-level:代码逻辑,函数、方法、类等component-level:物理组织,包,库,文件等Moment:某一时刻Period:某一段时间的变化Build,Code,Moment一段具体代码实现,也可用AST,或者类图。用它们表示一段代码Build,Code,Period一段代码的变化(Git追踪)Build,Component,M......
  • Protobuf - Designing Effective APIs
       ......
  • 设计规约(Specification)
    转载自[https://zhuanlan.zhihu.com/p/523630664][https://zhuanlan.zhihu.com/p/523630664]并做部分内容上的补充和修改上一节,我们讲了编程语言中、、的概念,尤其详细分析了这三者可变与不可变设计的区别,并导出这一节,我们转向分析编程语言中的以及其对应的,并探究如何定义它们—......
  • 1688商品详情跨境属性数据接口(1688.item_get_specifications)
    1688商品详情跨境属性数据接口(1688.item_get_specifications)是一个专为跨境电商商家设计的API,它允许商家获取商品的国际贸易相关属性。这些属性对于跨境电商至关重要,因为它们帮助商家遵守不同国家和地区的法律法规,确保商品的顺利报关和交易。具体来说,这个接口的应用主要体现在......
  • Spring Data JPA应用之动态查询JpaSpecificationExecutor
    JPA提供了基于准则查询的方式即Criterial查询——Specification接口。该接口定义了一个toPredicate方法用例构造查询条件。在SpringBoot对SpringDataJPA的支持案例的基础上对该接口实操进行探讨。1)数据访问接口必须实现JpaSpecificationExecutor......
  • MySQL建索引报错:BLOB/TEXT column used in key specification without a key length
    MySQL建索引报错:BLOB/TEXTcolumnusedinkeyspecificationwithoutakeylength因为text类型的字段值太长,没办法为全部内容建立索引,只能指定前多少位字符建立索引;就像这样createindex`索引名`on表名(字段名(600));所以能用varchar能放下的尽量使用varchar吧......
  • 2024 礼品 Power Adapter and Connnect Specifications
    1.PowerAdapter30WChargeyourdevicesUSB-C,USB-A(Plugtypevariesbyregion,OnlyEU&UKplugareapprovedandsuitableforuseinSingapore.)Model:ILINC30WOutputpower:30WMax.Operatingtemperature:0-45°CAverageactiveefficiency:Min81.......