System and method for coordination-centric design of software systems
First Claim
1. A methodology for designing a software system independent of a target hardware implementation, the methodology comprising designing the software system as comprising a first component for realizing a predetermined functionality, a first coordinator for managing interactions between the first component and a second component, and a first pair of coordination interfaces comprising a first and a second coordination interface for implementing a connection between the first component and the first coordinator so as to preserve component modularity while exposing only the parts of the component that participate in coordination.
2 Assignments
0 Petitions
Accused Products
Abstract
Coordination-centric design methodology facilitates the design and the debugging of software systems. Software systems comprise the following elements: components, coordinators and coordination interfaces. Components are function blocks. Coordinators manage all control and dataflow interactions between components based on a predetermined protocol. Coordination interfaces connect components to coordinators and allow control and dataflow information to be passed between components and coordinators.
-
Citations
62 Claims
-
1. A methodology for designing a software system independent of a target hardware implementation, the methodology comprising designing the software system as comprising
a first component for realizing a predetermined functionality, a first coordinator for managing interactions between the first component and a second component, and a first pair of coordination interfaces comprising a first and a second coordination interface for implementing a connection between the first component and the first coordinator so as to preserve component modularity while exposing only the parts of the component that participate in coordination.
-
15. A computer software design methodology comprising a coordination interface for software packaging, wherein the coordination interface comprises at least one named port.
-
19. A software system for execution on a hardware platform, the software system comprising:
-
a first component having a first coordination interface;
a second component having a second coordination interface; and
a coordinator for coordinating control and data flow between the first and second components and having a third coordination interface that is complimentary to the first coordination interface and a fourth coordination interface that is complimentary to the second coordination interface.
-
-
27. A method for designing software systems comprising:
-
designing a first software component for performing a first predetermined functionality that when activated produces a defined result;
designing a first coordination interface for logically connecting the first component to the first coordination interface in order to export the result produced by the first component;
designing a second component for performing a second predetermined functionality that can respond to the defined result produced by the first component;
designing a second coordination interface for logically connecting the second component to the second coordination interface in order to importing the result produced by the first software component;
designing a coordinator with a third coordination interface that is complimentary to the first coordination interface and a fourth coordination interface that is complimentary to the second coordination interface, for transferring the result exported by the first coordination interface from the first coordination interface to the second coordination interface.
-
-
37. A method for designing a software program without reference to a target system architecture comprising:
-
creating a first component comprising software code for performing a first function and a first coordination interface for sending and receiving separate control and dataflow information;
creating a second component comprising software code for performing a second function and a second coordination interface for sending and receiving separate control and dataflow information;
creating a coordinator to manage control interactions and dataflow interactions between the first component and the second component comprising a third coordination interface for logically connecting to the first coordination interface, and a fourth coordination interface for logically connecting to the second coordination interface.
-
-
48. A software system comprising:
-
a first software component comprising a first action;
a second software component comprising a second action; and
a coordinator for implementing a communication protocol between the first software component and the second software component and connected to the first software component and the second software component.
-
-
57. A method for designing a software system comprising:
-
creating a first software component comprising a first action, a first mode and a first coordination interface;
creating a second software component comprising a second action, a second mode and a second coordination interface; and
creating a coordinator, to implement a predetermined communication protocol between the first and second component by coordinating control and dataflow interactions between the first component and the second component, comprising;
a third action;
a third mode;
a third coordination interface connected to the first coordination interface; and
a fourth coordination interface connected to the second coordination interface.
-
-
58. A software system comprising;
-
n components, where n is an integer greater than zero, each component designed to perform a predetermined functionality;
m coordinators, where m is an integer greater than zero, each coordinator designed to implement a predetermined coordination protocol between a set of the n components;
n coordination interface pairs, each coordination interface pair designed to logically connect a component to a coordinator for transferring information between the component and the coordinator.
-
Specification