The inception phase of a development project includes problem analysis and requirements engineering. The main goal in this phase is to make a conceptual information model that lays the foundations for the app’s information architecture, which is defined by an implementation-agnostic information design model made in the design phase. Then, in the implementation phase, a platform-specific data model is derived from the information design model and coded in the platform's programming language. In the case of an OOP platform, platform-specific data models take the form of class models that are coded as a set of model classes.
UML class diagrams provide a visual language for defining an information architecture. Their main building blocks are class rectangles and association lines (connecting class rectangles).
A class rectangle has one, two or three compartments, containing the name of the class, its properties, and its methods.
An association line connects two classes. The purpose of an association is to classify relationships (links) between objects. In the special case of a unidirectional functional association there is a direct OOP counterpart: a reference property for referencing the objects that are linked to a given object by the association.