Modulare Softwarearchitektur

Hallo,

ich möchte eine modular strukturierte Software entwickeln.
D.h. es soll möglich sein relativ einfach Module einzubinden, die sowohl den Kern des Programms als auch bereits eingebundene Module verwenden können.

Mein konkretes Problem ist, dass ich nicht so richtig weiß wie ich so ein Modulsystem richtig strukturiere, damit es nachher auch Hand und Fuß hat. Zusätzlich müsste es ja auch eine Art Abhängigkeitsprüfung enthalten.

Es soll um ein Schulsystem gehen:
Der Kern soll Klassen für Personen, Schüler, Lehrer, Klassen, Räume, etc enthalten.
Mögliche Module wären dann z.B. Sitzplan, Notenvergabe etc.

Ich habe auch schon einige Fachleute befragt, die mir dann Begriffe wie Maven und BPEL nannten.
Soweit mich meine Recherchen dazu gebracht haben, geht es dabei darum, dass man bestimmte Prozesse und Abhängigkeiten abbildet … aber soweit ich das verstanden habe ist dies ja nur die halbe Miete … das wäre dann ja „nur“ die Abhängigkeitsauflösung (in einem XML-Dialekt) - aber die Umsetzung der Modularität können diese Konstrukte ja nicht bieten - oder habe ich das evtl. falsch interpretiert?

Vielen Dank für eure Hilfe!

Gruß
Thomas