Software development time, cost, and ease of (re)use are now among the major issues in development of advanced machines, whether for machine tools, automation systems, or process systems. Two keys to reducing development time are powerful, user-friendly development tools and software architectures that provide clean, well-documented interfaces to the various real-time functions that such machines require. Examples of essential functions are signal conditioning, servo-control, trajectory generation, calibration/registration, coordination of a synchronous events, task sequencing, communication with external systems, and user interfaces. There are a number of existing standards that can help with software development, such as the IEEE POSIX standards for operating systems and real time services; software tools to compliment these standards are beginning to see use. This paper will detail some of the existing standards, some new tools, and development activities relevant to advanced, 'smart' machines.