| |
| |
List of Figures | |
| |
| |
List of Tables | |
| |
| |
Foreword to the First Edition | |
| |
| |
Foreword to the Second Edition | |
| |
| |
Preface and Introduction | |
| |
| |
Who Should Read This Book | |
| |
| |
How This Book Should Be Used | |
| |
| |
Typeface Conventions | |
| |
| |
Information on Related Subjects | |
| |
| |
Acknowledgments | |
| |
| |
| |
User Manual | |
| |
| |
| |
MDA and the Use of OCL | |
| |
| |
| |
Introducing OCL | |
| |
| |
| |
Model Driven Architecture | |
| |
| |
| |
Modeling Maturity Levels | |
| |
| |
| |
Building Better Models | |
| |
| |
| |
Characteristics of OCL | |
| |
| |
| |
Summary | |
| |
| |
| |
OCL By Example | |
| |
| |
| |
The "Royal and Loyal" System Example | |
| |
| |
| |
Adding Extra Information | |
| |
| |
| |
Adding Invariants | |
| |
| |
| |
Working with Collections of Objects | |
| |
| |
| |
Adding Preconditions and Postconditions | |
| |
| |
| |
Taking Inheritance into Account | |
| |
| |
| |
Comments | |
| |
| |
| |
Let Expressions | |
| |
| |
| |
Summary | |
| |
| |
| |
Building Models with OCL | |
| |
| |
| |
What Is a Model? | |
| |
| |
| |
Use UML Diagrams as a Base | |
| |
| |
| |
Completing Class Diagrams | |
| |
| |
| |
Completing Interaction Diagrams | |
| |
| |
| |
Completing Statecharts | |
| |
| |
| |
Completing Activity Diagrams | |
| |
| |
| |
Completing Component Diagrams | |
| |
| |
| |
Completing Use Cases | |
| |
| |
| |
Modeling Styles | |
| |
| |
| |
Tips and Hints | |
| |
| |
| |
Summary | |
| |
| |
| |
Implementing OCL | |
| |
| |
| |
Implementation Process | |
| |
| |
| |
Implementing UML Model Elements | |
| |
| |
| |
Implementing the OCL Standard Library | |
| |
| |
| |
Implementing OCL Expressions | |
| |
| |
| |
Merging Code Fragments | |
| |
| |
| |
Considerations for Constraints | |
| |
| |
| |
Summary | |
| |
| |
| |
Using OCL for MDA | |
| |
| |
| |
Relation of OCL to MDA | |
| |
| |
| |
Metamodels | |
| |
| |
| |
The OCL and UML Metamodels | |
| |
| |
| |
Using OCL to Define Languages | |
| |
| |
| |
Using OCL to Define Transformations | |
| |
| |
| |
Summary | |
| |
| |
| |
Reference Manual | |
| |
| |
| |
The Context of OCL Expressions | |
| |
| |
| |
A Combined Model | |
| |
| |
| |
Classes and Other Types | |
| |
| |
| |
Attributes and Association Ends | |
| |
| |
| |
Operations | |
| |
| |
| |
Expressions in Behavior Diagrams | |
| |
| |
| |
Use Cases | |
| |
| |
| |
Constraints and Inheritance | |
| |
| |
| |
Basic OCL Elements | |
| |
| |
| |
Expressions, Types, and Values | |
| |
| |
| |
Basic Types and Operators | |
| |
| |
| |
Precedence Rules | |
| |
| |
| |
Use of Infix Operators | |
| |
| |
| |
Comments | |
| |
| |
| |
User-defined Types | |
| |
| |
| |
Features of User-defined Types | |
| |
| |
| |
Associations and Aggregations | |
| |
| |
| |
Enumeration Types | |
| |
| |
| |
Collection Types | |
| |
| |
| |
The Collection Types | |
| |
| |
| |
Operations on Collection Types | |
| |
| |
| |
Loop Operations or Iterators | |
| |
| |
| |
Advanced Constructs | |
| |
| |
| |
Constructs for Postconditions | |
| |
| |
| |
Operations of the OclMessage Type | |
| |
| |
| |
Packaging Expressions | |
| |
| |
| |
Local Variables | |
| |
| |
| |
Tuples and Tuple Types | |
| |
| |
| |
Undefined Values, the OclVoid Type | |
| |
| |
| |
Retyping or Casting | |
| |
| |
| |
Type Conformance Rules | |
| |
| |
| |
Accessing Overriden Features | |
| |
| |
| |
The OclAny Type | |
| |
| |
| |
Glossary | |
| |
| |
| |
OCL Grammar Rules | |
| |
| |
| |
EBNF Rules for Context Declaration | |
| |
| |
| |
EBNF Rules for Expression | |
| |
| |
| |
A Business Modeling Syntax for OCL | |
| |
| |
| |
Introduction | |
| |
| |
| |
Informal Definition | |
| |
| |
| |
Iterators | |
| |
| |
| |
Collection Operations | |
| |
| |
| |
Other Differences | |
| |
| |
| |
Some Remarks on the Resemblance to SQL | |
| |
| |
| |
More Elaborate Examples | |
| |
| |
| |
Example Implementation | |
| |
| |
| |
Differences Between OCL Versions 1.1 and 2.0 | |
| |
| |
| |
Syntax Changes | |
| |
| |
| |
Context Declaration | |
| |
| |
| |
Enumerations and Class Attributes and Operations | |
| |
| |
| |
Missing Rolenames and Using Association Classes | |
| |
| |
| |
Operations | |
| |
| |
| |
New Types | |
| |
| |
| |
Extra Predefined Operations | |
| |
| |
| |
New Options in Postconditions | |
| |
| |
| |
Other Changes | |
| |
| |
Bibliography | |
| |
| |
Index | |