Interfejs to pierdoła. W przeszłości zawsze zaczynałem od interfejsu. Któregoś dnia postanowiłem zacząć z drugiej strony. I to mi się spodobało dużo bardziej. Interfejs może Ci podpowiedzieć, czego faktycznie potrzebujesz, ale równie dobrze możesz go sobie narysować na kartce.
Ja to robię tak, że siadam z jakimś zamysłem aplikacji. Myślę, jakie klasy powinna zawierać. Projektuję taką klasę na kartce (lub w jakimś prostym programie do UML) - wpisując do niej PUBLICZNE metody, o których wiem, że raczej na pewno będę potrzebował. Dzięki temu mogę już się dowiedzieć, czy klasa nie robi czasem za dużo. Potem robię kolejną klasę - powiązaną z tą w jakiś sposób. Itd itd. W końcu mam jakiś diagram klas, który mniej - więcej spełnia swoje zadania. Na tym etapie też wyjdzie Ci kilka problemów, więc od razu przemyślisz kilka rozwiązań i pozmieniasz trochę strukturę.
Jestem bardzo niecierpliwy i zawsze od razu chciałbym usiąść i pisać kod. Ale walczę z tym na rzecz diagramu klas, bo przekonałem się, że to bardzo dużo daje.
Więc jak już jest w miarę gotowy diagram klas... gdy dojdziesz do wniosku, że ten diagram powinien się sprawdzić, to zaczynasz pisać. W trakcie pisania okazuje się, że jednak coś jest nie tak (za mało metod, za dużo metod, za mało klas, za dużo klas, złe powiązania...). Więc robisz pewne zmiany. Na tym etapie dobrze jest uwzględnić te zmiany w diagramie klas. I tak to sobie piszesz.
W między czasie możesz pisać testy. Albo w ogóle zacząć od pisania testów jednostkowych. Chociaż w moim przypadku TDD (Test Driven Development) nie zawsze się sprawdza, ale czasami podpowiada, czego tak naprawdę oczekujesz od danej klasy.
Co do parkingu - tak, potrzebujesz bazy danych. Musisz gdzieś w końcu trzymać informacje o samochodach, które wjechały, nie? Może też o tych, które wyjechały. Może będziesz robił jakieś raporty / statystyki - jak często klienci wracają.
Taka aplikacja jest stosunkowo prosta do napisania i nie powinna zająć dużo czasu. W tym przypadku może faktycznie diagram klas jest lekkim przegięciem, ale możesz to zrobić w ramach ćwiczeń.