Next: , Previous: , Up: Software Objects   [Contents][Index]


2.2 Software Methods

2.2.1 Software Genome and Phenome

A software object has both a genome and a phenome. These are the two most important methods on software objects. They return the code and executable versions of the software respectively.

Genome

In biology, the genome is the genetic material (DNA/RNA) of the cell. In the software evolution library, this field should contain the instructions which define the behavior of a software object. In most cases, the code (source or assembly), should be stored on this field.

Phenome

A phenome is an expression of all the traits described in the genome. In the software evolution library, this is an executable binary.

2.2.2 Defining new software object types

New software objects should inherit from the most-relevant base class. For source code based software objects, this is the sel/sw/parseable:parseable class. To define a new software object type from an existing base class, use the sel:define-software macro. All software objects should ultimately inherit from the sel:software class.

(define-software new-software-type (base-software-type)
  ())

2.2.3 Core methods on Software

The following lists the core methods which are defined for all software object types exposing a common interface for use by user programs or in heuristic search.


Next: , Previous: , Up: Software Objects   [Contents][Index]