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
project
package 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
runmanager
package 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:
runmanager
depends oncompare
for data storage and plottingmodelbuilder
depends oncompare
although this should be unnecessarybiopack
depends oncompare
possibly for data storagewrappers
depends oncompare
for data storagecellcycle
depends oncompare
as seen in the Comparator designcellcycle
depends onwrappers
to perform simulationscellcycle
depends onmodelbuilder
to 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.