Leveraging software architectures to guide and verify the development of sense/compute/control applications