an exploration of convergent evolution in academia: why ecosystem ecologists and biogeochemists...
TRANSCRIPT
An exploration of convergent evolution in academia:
Why ecosystem ecologists and biogeochemists should think about the tools of software engineering
Robert A. Payn, Dept. of Land Res. & Environmental Sci.Clemente Izurieta, Computer Science DepartmentGeoffrey C. Poole, Dept. of Land Res. & Environmental Sci.
Montana State University andMontana University System Institute on Ecosystems
2015 Annual Meeting of the Society for Freshwater ScienceMilwaukee, Wisconsin, USAThursday, 21 May, 10:45 – Room 102C
An exploration of convergent evolution in academia:
Why ecosystem ecologists and biogeochemists should think about the tools of software engineering
Robert A. Payn, Dept. of Land Res. & Environmental Sci.Clemente Izurieta, Computer Science DepartmentGeoffrey C. Poole, Dept. of Land Res. & Environmental Sci.
Montana State University andMontana University System Institute on Ecosystems
2015 Annual Meeting of the Society for Freshwater ScienceMilwaukee, Wisconsin, USAThursday, 21 May, 10:45 – Room 102C
Why ecosystem ecologists and biogeochemists should think about the tools of software engineering
Robert A. Payn, Dept. of Land Res. & Environmental Sci.Clemente Izurieta, Computer Science DepartmentGeoffrey C. Poole, Dept. of Land Res. & Environmental Sci.
Montana State University andMontana University System Institute on Ecosystems
2015 Annual Meeting of the Society for Freshwater ScienceMilwaukee, Wisconsin, USAThursday, 21 May, 10:45 – Room 102C
Software Engineering LabFluvial Landscape Lab
Timberlake Observatory WetlandNational Science Foundation grant # DEB-1021001National Science Foundation EPSCoR Track-1
program under grant # EPS-1101342.
An exploration of convergent evolution in academia:
Convergence in ecosystem and information sciences:Same ontology... different semantics...
Ecosystem ecology Software engineering
System componentStructure
Function
ClassAttributes
Methods
Tansley 1935Integrate abiotic and biotic controls on plant succession
Dahl and Nygaard ca. 1965“In silico” simulation of
complex systems
UML
Two kinds of ontological hierarchies in UML
Inheritance
More specific class
More abstract class
FunctionStructure
“Tipula is a Dipteran”
UML example of inheritance in benthos
Inheritance
Tipula
Diptera
UML example of inheritance in benthos
Tipula
Diptera
“Gammarus is an Amphipod”
Amphipoda
Gammarus
“Tipula is a Dipteran”
UML example of inheritance in benthos
Tipula
Amphipoda
Arthropoda
Gammarus
Diptera
“Tipula is a Shredder”“Gammarus is a Shredder”
<<interface>>Shredder
Shred method
<<interface>>Collector
Collect method
“Gammarus is a Collector”
“Gammarus is an Amphipod”
“Tipula is a Dipteran”
“Tipula is an Arthropod”
“Gammarus is an Arthropod”
UML example of inheritance in biogeochemistry
Obligate Aerobe
Autotroph
Microbe
Nitrifier
Heterotroph
Facultative Denitrifier
<<interface>>Aerobe
reduceO2()
<<interface>>Nitrate Reducer
reduceNO3()
Two kinds of ontological hierarchies in UML
Inheritance Composition
More specific class
More abstract class
“... is a ...” “... has a ...”FunctionStructure
Composite class
Component class
Component class
UML example of composition in biology
Biosphere
Ecosystem
Organism
Organ
Tissue
Cell
Biological composite
Biological component
UML example of composition in biology
Biosphere Ecosystem Organism Organ Tissue Cell
BioComposite
BioComponent
BioLeaf
Composite “pattern”
UML example of composition in cross-disciplinary models
Biosphere Ecosystem Organism Organ Tissue Cell
Composite
Component
Leaf
Computer file system
folderfolder
folder
file
file
Examples in literature
BioSystems 2005
Briefings in Bioinformatics 2009
Take home messages
Inheritance
More specific class
More abstract class
“... is a ...”
FunctionStructure
Composition
“... has a ...”
Composite class
Component class
Component classClearer definitions of structural or functional hierarchies
Clearer abstractions of repeated pattern across nature
Composite pattern
Biosphere Ecosystem Organism Organ Tissue Cell
Composite
Component
Leaf
(even if you never write code)