Modulizing Application Components
Hello all, first time posting. I'm working on my senior project and my partner and I are creating a sales and information system for one of our college departments. However we are aproaching this from an OO design standpoint. Part of the functionality of this program is to be able to quickly update the program functionality. We are trying to do this by making the program module based. Having a central exe that will combine everything together and seperate modules to perform each function. So I'm trying to figure out how to do this.
The Program Architecture I think should have a central EXE and within subfolders contain the actaul application modules. exp. a Sales Module, a Reports Module, an Inventory Module, etc. All of these would work with and around a single SQL server db as well. What the goal is, is to be able to make a module seperate from the program, plug it into a folder, modify a text file or something and there you go, program updated.
So here my question. Where can I find out how to do this stuff in Java. If all there is out there is theory, where's that. I could use that and modify it to work for Java. Do you guys know. Hell, I don't even know if I'm asking the right question. HELP PLEASE! lol not shouting but I am lost right now.
[1288 byte] By [
danatcofoa] at [2007-9-27 23:23:14]

Well, the exaspiration is understandable as well as appreciated. The fact of the matter is that there are plenty of theories out there to do just that but an substancialization of the theory is difficult to come by - not because the theory was never employed but because the substancialization is locked in design documents and heads of architects and designers who did it.
What you will get, however, are more formalized abstracts of the real things that have been done - of course, I am refering to the architectural and design patterns.
The architectural quality attribute that you are trying to address is "Modifyability" which will have adverse effect on another architectural quality attribute "Performance". However, that is the architectural trade-off that one has to make.
What you are trying to do hinges upon two critical factors - "Coupling" and "Cohesion". In other words, which ever way you choose to distribute responsibilities to your modules, they must have "Low Coupling" - flexible dependencies and "High Cohesion" - absolutely focused on performing their responsibility.
What exactly you do to achieve this is application/problem dependent and how best you balance the forces to achieve this shall make you a good or "not so wise" an architect.
I would recommend you to go through the below two links:
1) www.ootips.org
2) www.c2.com - the portland patterns repository
However, please understand that nobody can give you the exact prescription as to what you should do - you must decide that yourself. Lot of softwares use the same concept. Try looking through the sources of Tomcat it might help.
Ironluca