Mjukvaruutveckling är en process som kräver noggrann planering och framförhållning. Det finns flera tekniker tillgängliga för att dokumentera utveckling av programvara. Unified Modeling Language (UML) är en standardmetod som används för att dokumentera de artefakter som krävs för mjukvaruutveckling.
UML är en samling av bästa praxis för design som har använts i många år inom mjukvaruutvecklingsgemenskapen. Unified Modeling Language introducerades först 1996 av Object Management Group (OMG). Den första versionen av UML skapades av en grupp experter på mjukvaruutveckling som ofta kallas de tre amigos.
De tre amigos är Grady Booch, James Rumbaugh och Ivar Jacobson. De anses vara ledare och grundare av standardmetodens enhetsprojekt 1996 som ledde till skapandet av Unified Modeling Language. Detta sammanslagningsarbete tog de bästa metoderna för mjukvarudesign och utveckling och skapade ett återanvändbart ramverk som lätt kunde förstås.
UML-designmetoden använder grafiska notationer som en kommunikationsanordning för programvaruprojekt och användargemenskapen. Dessa grafiska notationer hjälper programvaruutvecklingsteamet att utforska potentiella design och fallgropar. Unified Modeling Language används vanligtvis som en ritning för utformningen av ett program. Denna ritning förklarar hur en mjukvaruapplikation kommer att byggas.
Agile Modeling (AM) är ett exempel på ett tillvägagångssätt för mjukvarudesign som använder UML. AM är en samling metoder och principer för att designa programvara. UML-processen kritiseras ofta för att vara betungande för utvecklingsteamet, särskilt inom området dokumenthantering. Agile Modeling försöker ta de nödvändiga bitarna av UML och effektivisera dem till ett agilt designramverk. Agile Modeling använder UML-dokumenten som grova utkast till designen snarare än de slutliga ritningarna eller det formella dokumentet. Detta tar bort behovet av regelbundna uppdateringar av UML-dokumenten.
Model Based Testing (MBT) är en process där testning genomförs utifrån definierade design. Dessa konstruktioner är byggda utifrån kraven i ett system. De definierade kraven används sedan för att generera testfall, som skrivs som testskript. MBT-artefakterna kan sedan generera den nödvändiga informationen för att förklara det förväntade tillståndet för ett system.
En av de mest komplexa processerna inom mjukvaruutveckling är integrering av komponenter. Model-Driven Integration (MDI) är en process utformad för att förenkla integrationen av en applikation. Inom MDI skapas en design i Unified Modeling Language för att representera kontrollen av utbytesvägar i mjukvara.