Die Softwareentwicklung und -wartung von automotiven Systemen stellt eine der großen aktuellen und zukünftigen Herausforderung für die Automobilindustrie dar, da inzwischen 80% der Innovationen im Automobil durch Software realisiert werden und die Komplexität automotiver Software augenblicklich deswegen rapide ansteigt. Ein Ansatz, diesem zu begegnen, ist der Einsatz von UML zur Modellierung der Software. Ziel ist es, dem steigenden Entwurfs- und Entwicklungsaufwand dadurch zu begegnen, dass die Architektur und Verteilung der Software frühzeitig geplant und dokumentiert wird. Solch eine frühzeitige Festlegung der Architektur und der Verteilung bietet dann auch die Grundlage für die Wiederverwendung von Softwarekomponenten in verschiedenen Fahrzeugtypen, der Entwicklung und Integration komplexer Software über mehrere Hersteller, Zulieferer und Unterauftragnehmer hinweg, und der Beherrschung komplexer Entwicklungsaufgaben in den einzelnen beteiligten Unternehmen.
Ressourcenbedarf und Zeitverhalten, beides Größen, die für den zuverlässigen Betrieb und die Wirtschaftlichkeit der Software im Automobil von entscheidender Bedeutung sind, hat man früher für eher isolierte Funktionen gut auf Basis der Erfahrung abschätzen können. Das bisherige Vorgehen hat dabei dazu geführt, dass heutzutage Fahrzeuge die bis zu 10 Mio. LOC beinhalten über bis zu 80 verschiedene eingebettete Prozessoren (ECUs) verfügen und über mit bis zu 4 Feldbussen (CAN, LIN, MOST, FlexRay) Nachrichten austauschen (siehe Graphik). In Zukunft wird erwartet, dass mehr Funktionen auf komplexeren ECUs realisiert werden, so dass das oben beschriebene einfache Vorgehen aufgrund der Wechselwirkung zwischen den verschiedenen Funktionen nicht mehr so ohne weiteres möglich ist. Vielmehr benötigt man Techniken, die einem erlauben frühzeitig alternative Architekturentwürfe bzgl. Ressourcenbedarf und Zeitverhalten zu bewerten und systematisch zu vergleichen.