In any emerging area it is possible to be too early, and with DMN Method and Stylepublished in 2016, I plead guilty to that.  It seemed like a good idea at the time.  DMN 1.1 was finalized, and the bugs that had prevented implementation of DMN 1.0 were fixed.  But it’s one thing to have a standard be implementable and quite another for real tools actually to implement it.  The best tool at that time didn’t support BKMs or proper decision table syntax or FEEL, and it couldn’t execute everything it could model.  So yeah, it was too early for a serious book.

But times have changed!  It’s 2018.  Even though DMN 1.2 has just gone final, the best tools already fully support it – DRDs, decision tables, BKMs, decision services, model import, etc. – all with the proper boxed expressions, XML serialization and model interchange, model execution, even one-click cloud deployment.  Much better!

And back in 2016, I admit, I myself did not have enough experience in decision modeling to give good advice.  Now I have a lot more, along with a better understanding of what matters, what decision modelers care about, what’s too technical.  A few months back, Edson Tirelli and I published the DMN Cookbook, a DMN guide for technical modelers and programmers.  Now I’ve gone back and updated DMN Method and Style in a second edition, addressed to business users, completely rewritten and updated to DMN 1.2, and closely aligned to my DMN Basics and DMN Advanced training.  It should be on Amazon in about a week.  Below is the table of contents.

Preface to the Second Edition. v

  • Outline of the Book. vii
  • Acknowledgments. viii

1.    Business Decision Modeling. 9

  • From Business Rules to Decision Models. 10
  • Origins of DMN.. 12
  • Ensuring Model Interoperability. 14
  • The Business Value of Decision Models. 15
  • Predictive Analytics, Machine Learning, and Explainable AI 16

2.    Fundamentals. 19

  • What Is DMN?. 19
    • Decision Requirements. 19
    • Decision Tables. 20
    • Other Boxed Expressions. 21
    • FEEL. 22
    • A Language for Stateless Decision Services. 24
    • A Common Language Shared by Business and IT. 24
    • A Vendor-Independent Standard. 25
    • Full DMN Support 25
    • What’s NOT in DMN.. 26
  • DMN Elements. 27
    • Decisions. 27
    • Datatypes. 27
    • Decision Requirements. 28
    • Decision Tables. 29
  • Let’s Try It! 30

3.    Decision Requirements. 37

  • Decision Requirements Diagram.. 38
  • Modeling Decision Requirements. 39
  • Decision Requirements by Example. 40

4.    Basic Decision Logic. 47

  • Decision Table Basics. 47
  • What Can You Put in a Decision Table Condition Cell?. 50
    • Example: Affordability category. 52
  • Literal Expressions. 52
  • BKMs and Invocation. 53
  • Test Execution. 57

5.    Routing Decisions. 59

  • Bad BPMN.. 60
  • Invoking a Routing Decision. 60
  • Routing Decision Logic. 61

6.    Decision Table Hit Policy. 65

  • Handling ORed Conditions. 65
  • Hit Policy Overview.. 66
  • A Tables Often Simpler than U Tables. 67
  • Hit Policy P. 68
  • Which Hit Policy Is Best?. 69
  • Category with Reasons Pattern. 72
  • The Problem with P Tables. 73

7.    Decision Table Analysis. 77

  • Completeness. 77
  • Overlaps and Table Consistency. 78
  • Masked Rules. 79
  • Subsumption. 80
  • Normalization. 81
    • First Normal Form.. 82
    • Second Normal Form.. 82
    • Third Normal Form.. 84

8.    Data Modeling and Logic Reuse. 87

  • DMN Data. 87
  • Data in Decision Tables. 88
  • Structured Types and Collections. 90
  • Data Standardization and Reuse. 91
    • Business Glossary. 92
    • Model Libraries. 94
    • Model Import 94

9.    Classification Patterns. 97

  • Classification and Machine Learning. 97
  • Normalizing Raw Data. 99
  • Supporting Decisions as Classifications. 100
  • Combining Ordered Classifications. 105
  • Category-Score Pattern. 105

10.  Decision Services. 109

  • Visualize Execution Steps. 109
  • Wizard-Based Service Definition. 110
  • Importing Services as Reusable Logic. 112
  • Services as Delegated Implementation. 113
  • Modeling Multistep Decisions. 117
    • Decision Flows. 117
    • Spec Lending Example Revisited. 118

11.  DMN Beyond the Basics. 121

  • FEEL. 121
  • Boxed Expressions. 124

12.  Literal Expressions. 127

  • Values vs Expressions. 127
  • Literal Expression Elements. 128
    • Functions. 129
    • Parameters. 129
    • Arguments. 130
    • Operators. 131
  • FEEL String Functions. 132
  • FEEL Number Functions. 133
  • Formatting Numbers. 134

13.  Contexts. 137

  • Simplifying the Decision Logic. 139
  • Creating Structured Variables. 141
  • BKMs with Context. 142
  • Context Entry as a Function Definition. 143

14.  Calendar Arithmetic. 145

  • Date and Time Components. 146
  • Type Conversion. 147
  • Durations. 147
  • Date-Time Arithmetic. 148
    • Addition. 148
    • Subtraction. 148
    • Multiplication. 149
    • Division. 149
    • Example. 149

15.  Handling Lists and Tables. 151

  • What Is a List?. 151
  • Creating a List. 152
    • List Datatypes. 152
    • List Operator 152
    • Collect Decision Table. 153
    • Embedded Data Tables. 153
    • Generating a List from Another List 154
  • FEEL List Functions. 154
  • Filter Expressions. 157
  • Iteration. 159
    • Enhanced Iteration. 160
  • Adding Columns to a Table. 162
  • Testing All Members of a List. 165
  • Table Joins. 166
  • List Membership and Set Operations. 168
    • Item Membership. 168
    • Set Operations. 168
    • Intersection. 168
    • Containment 169
    • Identity. 169
  • Sorting a List. 169

Index. 171

About the Author. 175