Background: I couldn't find a standard definition for "rich domain model". I may call it non-anemic domain model. So, it could be defined as a software domain model where the domain objects contain
little or no intensive business logic (validations, calculations, business rules etc.).
Anemic domain models are widely defined in ERD. But, entity relationship model obviously is not sufficient for rich domain objects. Domain models can be expressed in UML. However, it lacks representation for business logic (constraints, rules, etc.). I've read some articles on OCL describing rules for UML. But, I've never seen any industrial use of it.
Question: Could you suggest any approach for defining rich domain objects? This approach should focus on data, constraints and rules rather than classes and sequences. For example, I don't want to define Student class with enroll method. I want to define Student entity with some enrollment rules. Of course, I could simply define the rules with some comment on code, but I seek a formal method for this.
Edit: I don't expect an answer like "use that tool, it's wonderful". I expect experiences and advises about for example DSL creation, UML profiles, etc.