To understand and use UML as intended by its authors, software architects and developers should be familiar with general concepts and methods of Object Oriented Modeling and Design and/or of the object-oriented development (OOD), and how those were applied to UML itself. There is one problem with this requirement: though OOMD/OOD is being used for several decades, there is still no concensus on what is OOMD and even what are the fundamental concepts («quarks») of the OOMD. Ok, so we are really in trouble: UML specifications use OOMD concepts which have no clear and generally accepted definitions without providing own interpretations or definitions of those concepts.