Package - Struktur

Ich habe in meinem Projekt mehrere abgeschlossene Pakete (Module) wie “Benutzerverwaltung”, “Adressverwaltung”, “Artikelverwaltung” etc.
Ich bin am Überlegen wie man die Packagestruktur am besten anlegen sollte.

Bei mir sieht es momentan in etwa wie folgt aus:

com.skunitz.adress.dao // Alle Klassen die für die Datenbankverwaltung bzgl. Adressverwaltung benutzt werden
com.skunitz.adress.model // Das Business Objekt für die Adressveraltung
com.skunitz.adress.web // Die ManagedBean für JSF
com.skunitz.atikel.dao // Alle Klassen die für die Datenbankverwaltung bzgl. Artikelverwaltung benutzt werden
com.skunitz.artikel.model // Das Business Objekt für die Artikelverwaltung
com.skunitz.artikel.web // Die ManagedBean für JSF
com.skunitz.include.database // Alle Klassen die global für die Datenbankverwaltung benutzt werden wie z.B. meine GenericDAO
com.skunitz.include.utils // Alle Hilfsklassen die global benutzt werden, wie z.B. StringUtils
com.skunitz.user.dao // Alle Klassen die für die Datenbankverwaltung bzgl. Benutzervewaltung benutzt werden
com.skunitz.user.model // Das Business Objekt für die Benutzerverwaltung
com.skunitz.user.web // Die ManagedBean für JSF

Ich denke an und für sich ist dieses eine gute Struktur. Was ich allerdings, es liegt wahrscheinlich auch noch der kleinen größe meines Projektes, ist das teilweise nur eine Klasse in dem “Order” / Package enthalten ist.

Was sagt ihr zu meiner Struktur? Wie würdet ihr die Sturktur anlegen?

Hängt davon ab inwieweit die Inhalte ausgetauscht oder wiederverwendet werden sollen.
Ich würde eher vom Groben zum Detail gehen.

Für einfache Projekte eher in der Art:
com…model
|— AdressModel.class
|— ArtikelModel.class
|— UserModel.class
com…model.dao
|— Artikel.class
|— Adress.class
com…web

Alternativ wenn es wirklich umfangreich werden sollte in die Richtung:
com…model.artikel
com…model.adress
com…model.user