To keep development during the implementation phase organized, I set naming conventions for the project, I created a domain diagram and at last I create a full fledged class diagram containing a detailed overview of the inner workings of CP Social
Naming convention
![](https://joriseijmberts.nl/wp-content/uploads/2020/06/Naming-conventions.png)
To make sure no classes from CP Social would intervene with any other classes other project I made sure would all be contained within the same ‘CPSocial’ namespace and all classes would start with the prefix ‘CP_‘ and all interfaces would start with the prefix ‘ICP_‘.
Domain diagram
To keep the realization phase organized I first created a domain diagram during the design process, this diagram is an abstract representation of the inner workings of CP Social. It shows the most important relationships between services within CP Social.
![](https://joriseijmberts.nl/wp-content/uploads/2020/06/CPSocial.Runtime-1024x748.png)
In the above diagram it shows that the main point of entry to CP Social goes via the ‘CP_Social’ class. This class contains an instance of the interface ‘ICP_Social’ this is interface contains all platform specific implementations of the Authentication service (ICP_AuthSerivce), cloudsave service (ICP_CloudSaveService) and the achievement service (ICP_AchievementService).
Class diagram
The domain diagram doesn’t show a lot about the inner workings per service. It only realy shows how all services are connected within CP Social.
For a more detailed view of the inner workings per service a class diagram was created, the class diagram below is just a fraction of the entire class diagram for CP Social. To see the entire class diagram per namespace click here.
![](https://joriseijmberts.nl/wp-content/uploads/2020/06/CPSocial.Runtime.Shared.Services-1024x481.png)