Jeżeli wiemy, że szykuje się większe zadanie, to w C++ możemy łatwo zaprojektować rozwiązanie dowolnego zagadnienia. Do tego celu wykorzystuje się UML (Universal Model Language). Za pomocą diagramów, w naturalny sposób można ująć pojęcia biznesowe. Darmowym programem do projektowania jest WhiteStarUML, który umożliwia projektowanie metodą przeciągnij i upuść oraz automatyczną zamianę takiego projektu na kod programu.

Oczywiście projektując program można przewidzieć wiele problemów, które pojawią się w trakcie implementacji, czego oczywiście nie można powiedzieć o programie pisanym z marszu. Im większe jest zagadnienie, którym się zajmujemy, tym większe zalety projektowania i szybsze osiągniecie zdefiniowanego celu analitycznego.
Proste projektowanie powinno obejmować następujące kroki:
1) ustalenie celu działania i określenie wyników
2) wybór interfejsu użytkownika
3) zdefiniowanie wejścia i wyjścia
4) zdefiniowanie warstw programu
5) modelowanie dziedziny
6) opracowanie struktury
7) wybór rozwiązań programistycznych
Narzędzie UML wspomaga kroki od 1 do 6. Działania z pkt 5 mimo trudnej nazwy są całkiem proste i polegają na wypisaniu pojęć i określeniu związków między nimi. Przykład widać na ilustracji, a więcej na ten temat można przeczytać na przykład tutaj: http://wazniak.mimuw.edu.pl/index.php?title=PO_Obiektowe_modelowanie_dziedziny
