1、例子

发现:

1)、操作契约也是用例模型的一部分。
2)、SSD+用例文本+领域模型----》操作契约

2、定义

1)、契约有哪些部分?

操作:操作的名称和参数(就是SSD中的系统操作)
交叉引用:发送此操作的用例
前置条件:执行操作前,对系统或领域模型对象状态的重要假设。比如:终态的订单不能修改。
后置条件:最重要的部分。完成操作后,领域模型对象的状态。后续会详细讨论。

2)、什么是系统操作?

就是SSD中的操作名称(相当于类中的方法),由此定义操作契约。

3)、后置条件

  • 定义:描述了领域模型内对象状态的变化。该状态变化包含:
A、创建或删除实例
B、属性值的变化
C、形成或消除关联(领域模型中的关联)
  • 后置条件如何与领域模型相关?
可以创建什么实例?(来自领域模型)
可以形成什么关联?(来自领域模型)
属性值如何变化?(来自领域模型)
  • 如何编写后置条件?
A、采用过去时态。
较好:创建了XXX
较差:创建XXX或XXX被创建
B、后置条件不必尽善尽美,只做轻量分析即可

由此可知,后置条件是操作契约的重点,其来自领域模型。

UML-操作契约是什么?的更多相关文章

  1. UML和模式应用5:细化阶段(6)---操作契约

    1.前言 操作契约使用前置和后置条件,描述领域模型里对象的详细变化,作为系统操作的结果. 操作契约可以作为有用的OOA相关的制品. 操作契约可以视为UP用例模型的一部分,它是对用例之处的系统操作的效用 ...

  2. 6.4 操作契约 Operation Contracts

    4.操作契约 Operation Contracts  “用例描述”的补充  强调: 用例中重要的动作,其开始与结束是需要一些约束 4.5 操作契约的后置条件  定义Definition  后 ...

  3. UML-如何画操作契约?

    1.在编写契约过程中,发现之前的领域模型不对,此时是否需要修改? 需要修改.包括:概念类.属性.关联.这就是不断迭代和进化 2.用例中复杂场景里的状态变化细节,描述过多导致用例臃肿,让人看不下去,因此 ...

  4. WCF分布式开发步步为赢(5)服务契约与操作重载

    继上一节WCF分布式开发步步为赢系列的(4):WCF服务可靠性传输配置与编程开发,本节我们继续学习WCF分布式开发步步为赢的第(5)节:服务契约与操作重载.这里我们首先讲解OOP面向对象的编程中方法重 ...

  5. UML和模式应用

    引言 Applying UML and Patterns,以一个商店POS系统NextGen和一个掷骰子游戏Monopoly为例,围绕OOA/D的基本原则GRASP,以迭代作为基本方法.以UML为表达 ...

  6. UML期末复习题——2.5:System Sequence Diagram & Post-condition

    第五题:系统顺序图 重要概念: 1.对象: 对象是特定行为与属性的集合. 对象的表示方式有三种: a.包括对象名和类名 b.只有类名. c.只有对象名 2.消息表示形式: 消息用于描述对象间交互的方式 ...

  7. [WCF编程]4.契约概述

    一.契约的基本概念 契约是消息参与者之间的约定.在SOA架构中,契约提供了服务通信所必需的元数据.契约用来定义数据类型,操作,消息交换模式和消息交换使用的传输协议.契约通常是在标准化平台中使用与编程语 ...

  8. 重温WCF之构建一个简单的WCF(一)(2)通过Windows Service寄宿服务和WCF中实现操作重载

    参考地址:http://www.cnblogs.com/zhili/p/4039111.html 一.如何在Windows Services中寄宿WCF服务 第一步:创建Windows 服务项目,具体 ...

  9. WCF初探-15:WCF操作协定

    前言: 在前面的文章中,我们定义服务协定时,在它的操作方法上都会加上OperationContract特性,此特性属于OperationContractAttribute 类,将OperationCo ...

  10. 跟我一起学WCF(9)——WCF回调操作的实现

    一.引言 在上一篇文章中介绍了WCF对Session的支持,在这篇文章中将详细介绍WCF支持的操作.在WCF中,除了支持经典的请求/应答模式外,还提供了对单向操作.双向回调操作模式的支持,此外还有流操 ...

随机推荐

  1. ajax异步提交 有时会出现无bug的数据处理异常-----debug没有问题,正常运行却数据处理不正确,极少机会会出现正常的处理结果

    ajax  被使用时,常默认的就使用了异步处理. 当遇到后面的代码对同样的数据进行处理 或 要依赖前面ajax处理的结果时,就会导致数据处理结果不正确,未达到预期值. 且,debug时却能正常完成功能 ...

  2. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-bold

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  3. 代理模式(Proxy Pattern)C#版本的

    引用地址 https://www.cnblogs.com/zhili/p/ProxyPattern.html --------------------------------------------- ...

  4. 图床工具PicGO实现七牛云图片上传

    图床工具PicGO实现七牛云图片上传 我们在写博客或者网络文章时经常需要上传图片.目前最有名气的图床工具就是PicGO. 简单的界面,完整的功能,在相册里也能直接复制markdown图片链接.一直深受 ...

  5. 编码对象或者字串中包含Unicode字符怎样转换为中文

    In [18]: c = '你好' In [20]: d = c.encode('unicode_escape') In [21]: d Out[21]: b'\\u4f60\\u597d' In [ ...

  6. 使用IDEA打对应结构的Jar包

    发布环境的内容和自己项目默认打包的样式不一样,就需要自定义打印jar包内容. 1.打开右上角项目结构 2.进行图片相关设置 3.直接进行打包,包会出现在class文件里面.解压软件解压开就是自己想要的 ...

  7. cron 表达式0 0/10 * * * 与 0 */10 * * *的区别

    0 0/10 * * * 与 0 */10 * * * 的差别在于什么地方.在说这两者的差别之前,先说下各个字符代表的含义.0代表从0分开始,*代表任意字符,/代表递增. 0 0/10 * * *代表 ...

  8. 二十六、CI框架之分页

    一.在模型中读取数据库中的表 二.在控制器中添加dividePage函数 三.在View中写入显示代码 四.查看效果,还是挺漂亮的分页效果 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信 ...

  9. Java IO 乱码

    InputStreamReader isr = new InputStreamReader(new FileInputStream("./test/垃圾短信训练集80W条.txt" ...

  10. Swift字符串截取与Range使用

    1.String.Index String.Index表示一个位置,使用String与String.Index可以获取该位置的Character let str = "123456789&q ...