Object-oriented Biology

I have just read an interesting article which discusses about the application of object-orientation paradigm, used in popular programming languages such as Ruby, Java or C#, in dynamical and statical description of different gene products and their derived forms. Object attributes and properties, which could refer to proteins and their ulterior complexes, come from vocabulary terms created in Gene Ontology initiative.
This is a very suggestion approximation, since it can unite the different ontologies and organization principles of GO (Molecular Function, Biological Process and Cellular Component) in the object context.
This enable, for instance, to use class diagrams generated with UML, in order to describe and simulate biological processes, and particularly, the interaction of their components.
I reproduce from the paper the correspondence between object-orientation principles and the integration of the model with Gene Ontology:

Object-Oriented Term Object-Oriented Definition Object-Oriented use of the GO Example
Class A class is a template from which object instances are created. It specifies the common characteristics that objects created from it will contain Classes are created from gene products whose characteristics are defined by the GO molecular function and cellular component terms The class Smad 2 is created based on the properties of the gene product Smad 2, which are defined by molecular functions such as “protein homodimerization’ (GO:0042803) and ‘ATP binding’ (GO:0042301)
Object An instance of a class that contains unique properties Objects are created from the template classes, but may contain properties unique to a particular object Two different Smad 2 objects may be created, one of which is phosphorylated, and one which is not
Inheritance Relationships between classes, whereby a more specific class inherits all the properties and methods of the classes they belong to Relationships defined by ‘is a’ are generalizations in which child classes of the DAG inherit the properties of the parent class (if a child class has multiple parent classes, multiple inheritance applies) The cellular component ‘plasma membrane’ (GO:0005886) inherits the properties of the general class cellular component ‘membrane’
Composition Certain objects may be assembled from collections of other objects ‘part_of’ relationships defined in the GO DAG are rendered as
composition relationships in an OOM
The ‘membrane’ (GO:0005623) and ‘intracellular’ (GO:0005622)
space are part of the ‘cell’ (GO:0005623)
Polymorphism The ability of an object to interpret messages differently when received by different objects GO functions may change for different proteins and be given different input and output values The function ‘protein homodimerization activity’ (GO:0042803) in the context of SMAD2 accepts two SMAD2s and outputs a dimerized SMAD2, whereas in the context of TGF-beta receptor II it accepts two receptors and outputs a dimerized receptor
Encapsulation Hiding the state and implementation of an
The exact mechanism by which an object is created is hidden in an OOM The details involved in the translation (GO: 0043037) of Smad
2 are hidden, but a Smad 2 molecule is still created