Es ist wichtig, zwischen der UML als Beschreibungssprache und einem darauf basierenden Softwareentwicklungsprozess zu unterscheiden. Die UML beinhaltet bewusst keine Vorgehensweise zur Software- oder Systementwicklung, sondern konzentriert sich auf die deskriptive Modellierung von Systemen.
Obwohl die Verfügbarkeit von Beschreibungskonzepten starken Einfluss auf die verwendbare Methodik hat, konnten sich in letzter Zeit mehrere, teilweise recht unterschiedliche Methodiken etablieren, die weitgehend auf der Sprache UML basieren. Zu nennen sind hier Catalysis, der Unified Development Process, der Rational Unified Process, Fusion, Open, oder die Weiterentwicklung von ROOM. Mit Ausnahme von ROOM sind die genannten Methodiken stark auf Business Software konzentriert. Dagegen bietet die Weiterentwicklung von ROOM einige für eingebettete Systeme geeignete Erweiterungen der UML. Diese Spezifika werden im dritten Beitrag dieser Artikelreihe gesondert behandelt.
Allen Methodiken ist gemeinsam, dass sie den Softwareentwicklungsprozess in eine Reihe von Aktivitäten gliedern und diese in die Phasen Analyse, Entwurf, und Implementierung gruppieren. Diese Phasen sind oft weiter zerteilt, z.B. in logische und physische Implementierung. Durch Iteration und die zeitlich überlappende Durchführung kann eine starke Verschränkung der Aktivitäten erreicht werden. So kann bereits in den ersten Iterationen ein Prototyp für den kritischen Funktionskern entwickelt werden, um damit technische und funktionelle Risiken zu erkennen und bei der weiteren Entwicklung darauf zu reagieren.