Patent ID: 7392505

Claim:
A method for developing software, the software being produced by a programmer and being run by an operator separate from the programmer, the programmer also maintaining the software by responding to events that occur in connection with the running software, the method comprising: determining, via consensus of the programmer and the operator, a form of events to be included in a specification; the operator defining the specification including a plurality of the events that may occur during running of the software, and for each event a plurality of properties descriptive of the event; the programmer producing the software based on the defined specification by including for each event in the defined specification instructions in the software to generate a signal when the event occurs; at least one of the operator and the programmer producing a library including methods that can be invoked by the running software, each method corresponding to one of the plurality of events, and data structures that can be populated by the running software, each data structure corresponding to one of the plurality of events and being populated with the plurality of properties corresponding to the event when the event occurs; and the operator running the produced software, including the act of said operator receiving information which indicates the occurrence of said one of the events, wherein said running act includes said operator receiving said properties descriptive of the occurring one of the events in accordance with the populated data structure corresponding to the event, the populated data structure having been populated by the software upon the occurrence of the one of the events by calling the corresponding method in the library.