  An important factor in guaranteeing the quality of a system is developing a
conceptual model that reflects the knowledge about its domain as well as
knowledge about the functions it has to perform. In software engineering,
conceptual modeling has gained importance as a discipline that offers
languages, methods, and methodologies to address the complexity of software
development. The key to understanding such complexity is using tools such as
diagrams at various levels of representation. A conceptual model must include
all relevant static and behavioral aspects of its domain. In UML, the static
aspects include structural diagrams that represent the internal architecture of
a system with a special focus on the classes, the connections and interactions
that they have, and integrity constraints over the state of the domain. UML
does not have sufficient expressiveness for complete specifications of certain
constraints. Constraints assist in analyzing permissible design requirements
and the limitations of the intended functions. To overcome the limitations of
the graphical notation, other types of languages are used to complement the
diagrammatic language (e.g., the textual Object Constraint Language [OCL]). In
this paper, we study how to express constraints diagrammatically using the
thinging machine (TM) through examples taken from the UML/OCL literature. This
would contribute to further understanding the notion of constraint in
conceptual modeling. It also demonstrates the expressiveness and limitation of
the TM. The paper suggests that the TM can provide a diagrammatic constraints
language in conceptual models.
