A Software Engineering Approach to LabVIEW