Razvoj programske opreme tradicionalno spremljajo različni zapleti, od slabega načrta prek hroščev do nemogočega vzdrževanja »špagetaste« kode. Nova orodja končno prinašajo celoten nabor orodij, s katerimi je mogoče te slabe navade vsaj začeti zdraviti, če že ne odpraviti v celoti. Pomemben člen v naboru zmožnosti je vsekakor modelirnik bodoče programske opreme, kjer orodja nekako vsa po vrsti sprejemajo diagrame UML.