Upload
phebe-collins
View
215
Download
2
Embed Size (px)
Citation preview
Lessons from Integrating Functionalities
Fred C. MartinWA Dept. Natural Resources
Olympia, WA
Open-FVS: Lessons from Integrating
Functionalities into A Multi-Developer Framework
"The art of research [is] the art of making difficult problems soluble by devising means of getting at them." Sir Peter Medawar.
Open participation structure - expand contributor baseUSFS Forest Mgmt. Service CenterUniversitiesConsultantsOther Agencies
Pros: larger community. Cons: larger community.
Lessons from Integrating Functionalities
"With some glee and considerable professional acclaim, we seem to keep at least one jump ahead of the man-agers' comprehension of our methods." Albert R. Stage.
Framework for potential additions & extensionsHabitat classificationOptimizerClimate changes interactions: pests, cover, etc.
Alternative growth engines – Organon, Forest BGC, etc.
Pros: API for extending functionality. Cons: loss of independence.
Lessons from Integrating Functionalities
“To know what I think, I need to read what I've written.” Unknown.
Documentation standards - consistency & availabilityUsers manualsWIKIsInternal code documentation, spctrn.fSVN commit commentsSupposeOutputs/results – reports, database, visualization, etc.
Pros: central hosting. Cons: multiple points of reference, coordination effort.
Lessons from Integrating Functionalities
“Give me a fruitful error any time, full of seeds, bursting with its own corrections. You can keep your sterile truths for yourself." Vilfredo Pareto.
Testing – incorporate into building process Protects existing contentFunctionality testing, black box testingInternal testing, white box testingTest driven development – unit tests
Pros: continuous quality assurance. Cons: can double development time.
Lessons from Integrating Functionalities
"We do think in language, and so the quality of our thoughts and ideas can only be as good as the quality of our language." George Carlin.
Programming standards & architecture – code consistency Procedural versus object oriented, spaghetti codeStructure, style - camel notation, comments, linkagesVariable & method naming
Pros: guides design, common patterns, aids understanding. Cons: constrains progress.
Lessons from Integrating Functionalities
"All science is the search for unity in hidden likenesses." J. Bronowski.
Integration implications – logical behavior among entitiesDatabase connectivity - file versus database outputsTiming issues – simulation periods, end of period versus
beginning of periodHarvest in first period versus activities later in a cycleStart and stop operations and retrieval of state
Pros: affirms expected interactions, extends solution space. Cons: constrains creativity.
Lessons from Integrating Functionalities
"They didn't want it good, they wanted it Wednesday." Robert Heinlein.
It’s a framework not a panacea – it ain’t easy & it takes timeSystem is largeInherits limitations from the pastNeed to work as a teamLonger learning curve
Pros: contributes to larger good. Cons: higher tolerance level.
Lessons from Integrating Functionalities
"Don't analyze constraints; we ignore them until we get caught, so just tell us how good it could be if we didn't have any." Local forest manager.
ECON Extension integration – linkages between programsKeyword inputIndividual tree and log volumesControlling harvest implementation via PRETENDEvent Monitor actionsPublish results
Lessons from Integrating Functionalities
Lessons from Integrating Functionalities
FVSKeyword Entry
Initiate Trees
Grow Trees
Burn, Infect, Infest
Publish Outcomes
Harvest Trees
Regeneration
ECONPass Keywords
Get Tree/Log Volumes
Get Harvests
Get Events
Value Harvest & Events
Pass Results
Summarizing:
"Entities should not be multiplied unnecessarily," "law of parsimony" or "law of succinctness." Franciscan friar William of Ockham.
"Art is never finished, only abandoned." Leonardo da Vinci. "You cannot predict the future because it depends on how you react to it." George Soros.
Lessons from Integrating Functionalities