A method for structuring software in a telecommunication system, comprising
- creating a plurality of structural objects each incorporating data and software responsive to the data and each having a predetermined structural identity,
- providing each said structural object with a respective interface and at least one service access point module adapted to receive in accordance with an incoming communication protocol, an incoming message having an incoming header and parameters, said incoming header identifying said each structural object by its associated structural identity, and to transmit, in accordance with an outgoing communication protocol, an outgoing message having an outgoing header identifying another said structural object,
- providing each said structural object with one or more respective kernel modules adapted to perform respective operations whereby one or more of said outgoing messages are generated in response to one or more of said incoming messages,
- defining functional relationships which functionally relate at least some of said structural objects to other said structural objects, said functional relationships including dependency, use, inclusion and homology,
- providing a communication service structural object for relaying a message from an originating structural object identified in the outgoing header by its structural identity to an already existing recipient structural object identified only functionally but not structurally in said outgoing header, said communication service structural object being separate and distinct from the originating structural object and from the recipient structural object and including functional relationship data defining said functional relationships between said originating and recipient structural objects and means responsive both to the functional relationship data and to the functional identity in the outgoing header for determining the structural identity of said recipient structural object.