6.4 操作契约 Operation Contracts
Posted mayzhou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6.4 操作契约 Operation Contracts相关的知识,希望对你有一定的参考价值。
4、操作契约 Operation Contracts
? “用例描述”的补充
? 强调: 用例中重要的动作,其开始与结束是需要一些约束
4.5 操作契约的后置条件
? 定义Definition
? 后置条件描述了领域对象状态的变化 describe changes in the state of objects in the domain model
? 状态变化包括
? 是否创建、删除了对象?instances created / deleted
? 对象间的关系是否发生变化?associations formed or broken
? 有对象的属性变化了吗?and attributes changed
? 为什么要后置条件? Why post-condition
? 也不是始终都需要的 they aren‘t always necessary
? 如果开发人员很容易明白该如何去做,就不用写操作契约了
If developers can comfortably understand what to do without them, then avoid writing contracts ? 操作契约比较细节地、精确地定义了一个操作应该承担的职责
? 契约,是面向对象分析过程中非常有用的工具
? 把问题说清楚、无歧义
? 先不考虑设计,集中于分析 what must happen 而不是how it is to be accomplished
4.6 创建后置条件
? 建议 Apply the following advice to create contracts
? Identify system operations from the SSDs .
? For system operations that are complex and perhaps subtle in their results,
or which are not clear in the use case, build a contract
? To describe the postconditions, use the following categories:
? instance creation and deletion
? attribute modification
? associations formed and broken
? 常见错误
? 描述契约
? (better) A SalesLineItem was created
? (worse) A SalesLineItem is created; or Create a SalesLineItem
? 忘记对象之间的关系发生了变化
? The SalesLineItem was associated with the Sale (association formed)
4.7 后置条件 & 领域模型
? 后置条件体现在领域模型的对象 postconditions are expressed in the context of the Domain Model objects ? What instances can be created?
? those from the Domain Model
? What associations can be formed?
? those in the Domain Model
? and so on
? 在定义契约的过程中,经常触发对领域模型的修改
? 记录新的概念类、属性 ?
? 领域模型是否有新的关系 ?
4.8 对领域模型的修改
以上是关于6.4 操作契约 Operation Contracts的主要内容,如果未能解决你的问题,请参考以下文章
WCF服务编程一书中写到:契约操作不能使用引用对象参数,只允许使用基本类型或者数据契约?
为啥示例不编译,也就是(co-,contra-和in-)方差如何工作?