State of the Comparator
The package layout for the Comparator as it appears here is mostly conceptual. PASTA isn't very flexible for mocking up anything except an exact correspondence between design and Java packages. Here are the major things that are different than they appear in the design:
- The design diagram was drawn as if many dependencies were transitive. The source diagram is drawn with all dependencies were shown. The two are never going to match.
- The
projectpackage is not really a Comparator dependency. It's a placeholder for interaction with the Project Manager. The Project Manager doesn't currently exist so there are no actual dependencies yet. - The
runmanagerpackage is also not really a Comparator dependency. It's a placeholder for the Run Manager and wrappers. The actual dependencies match the design.
The real discrepencies is a cyclic dependency. The data package
should not depend on the ui package. This is caused by the
interface in ProgrammaticDataGenerator. This should be broken off
into a separate class as was done with transforms and objective functions.
State of JigCell
The reality of JigCell took a big step forwards recently with the splitting
off of the SBML parser to the sbml2 package. That eliminated a lot
of bad interactions between the modelbuilder,
biopack, and wrappers. The wrong way dependencies
with biopack have been promised a fix by Jason this summer.
Currently, the modelbuilder and wrappers package
depend on biopack which causes all kinds of problems with getting
a working Biopack installation.
That leaves wrappers as the next real trouble spot to deal
with. It is actually not as bad as it appears in the reality diagram. Anything
to do with the Report Generator should be kicked out of wrappers
and into the reportgen package. The cyclic dependencies with
modelbuilder and runmanager can probably be fixed by
shuffling a few havily referenced classes around, most notably the SBML to XPP
translator. Moving that class out of sbml2 was a big win in making
a separate SBML parser. The design is going to get a change eventually: the
xppwrapper package is not really necessary and doesn't add
much.
The cyclic dependencies involving the Comparator are bogus due to PASTA's limited organization of packages. Here's the current status which matches the design:
runmanagerdepends oncomparefor data storage and plottingmodelbuilderdepends oncomparealthough this should be unnecessarybiopackdepends oncomparepossibly for data storagewrappersdepends oncomparefor data storagecellcycledepends oncompareas seen in the Comparator designcellcycledepends onwrappersto perform simulationscellcycledepends onmodelbuilderto do the Model Builder plugin which is more an experiment than real code
Since compare does not depend on cellcycle that
breaks all the dependencies that PASTA thinks are present. That means that
fixing the wrappers and biopack packages would leave
just the aberrant dependency from modelbuilder to
runmanager. And, that would get fixed for free if the SBML to XPP
translator got moved. That's the only time modelbuilder uses the
runmanager package.