Sensor networks represent a new frontier in technology that holds the promise of unprecedented levels of autonomy in the execution of complex dynamic missions by harnessing the power of many inexpensive electromechanical devices. A sensor network operates on an infrastructure for sensing, computation, and communication, through which it perceives the time evolution of physical dynamic processes in its operational environment. Hence the communications and computation software that enables the distributed time critical interactions of individual devices is characteristically different from traditional software. In particular, the operational environment for its execution is not predetermined and operational specifications are dynamic and therefore difficult to pin down. Hence existing programming methods like structured programming are not applicable. The ad hoc build, test, scrap approach will not work. This paper presents a deliberate high assurance design and debugging methodology, akin to the spiral model for software development, for building and validating dynamic, interoperable, programmable applications of sensor networks that involve management, information gathering, querying and tasking of the nodes for resource-constrained time-critical missions. A middleware architecture has been developed for sensor networks that extends agent communication languages for designing specific behaviors of sensor networks. Building on this architecture, we develop a high assurance software design coordination network for designing and validating dynamic agents that maintain desired behaviors of sensor network software despite faults, failures, uncertainties and environmental perturbations.