Automatisierungssoftware besteht aus vielen kleinen Teilkomponenten, die auf unterschiedlichen Komplexitätsstufen arbeiten. Die Software auf der untersten Ebene steuert beispielsweise Sensoren und Aktoren, die mit der physischen Welt interagieren, während die Software auf der höchsten Ebene die gesamte Infrastruktur steuert, wie z. B. Enterprise-Resource-Planning-Systeme in der Fertigung. Die Software so zu strukturieren, das sie funktional und wartbar bleibt, ist der Schlüssel zum reibungslosen Betrieb des Systems.