Inom informationsteknologi är ett datorstödt systemteknikverktyg (CASE) programvara som hjälper till med mjukvaruutveckling. Huvudsyftet med att använda ett CASE-verktyg är att producera felfri, lättskött programkod. Det tillåter också användare att utveckla mjukvarusystem snabbare än vad som skulle vara möjligt utan användning av ett sådant verktyg.
CASE-verktyg kan användas under hela utvecklingscykeln för informationssystem, inom så olika områden som projektledning, analys av affärskrav, systemanalys och design, programmering och kvalitetssäkring. Även om ett CASE-verktyg kan användas i vilken som helst av utvecklingsfaserna, används verktygen oftast i systemdesign- och datorprogrammeringsfaserna. Dessa verktyg började utvecklas på 1970-talet och byggde på trender från tillverkningsprocesser för hårdvara. Metoder för mjukvaruutveckling var inte väldefinierade vid den tiden, och CASE-verktygen lade till struktur och stränghet till mjukvaruutvecklingsprocessen.
Ett CASE-verktyg tillåter ofta utvecklare att programmera visuellt såväl som att använda OOP-metoder (Object Oriented Programming). Ett UML-designverktyg (Unified Markup Language) är ett exempel på ett CASE-verktyg. Systemdesigndokument och programkod kan genereras av verktyget som en del av den visuella designen, vilket minskar utvecklingstiden och ökar dokumentens och kodens noggrannhet.
Att använda ett CASE-verktyg för mjukvaruutveckling ger ett antal fördelar, särskilt när det implementeras för varje fas av utvecklingscykeln. Sammantaget stödjer verktygen strukturerad systemdesign och datorprogrammering genom att använda en organiserad metodik, vilket förbättrar återanvändning av design och kod. Med en fullständig implementering av CASE-verktyg dokumenteras och spåras affärskrav för systemet, vilket gör det enkelt att verifiera att varje krav i systemet har implementerats och testats. Det färdiga systemet bör ha färre programmeringsfel. Även om vissa faser av utvecklingscykeln kan ta längre tid, såsom kravanalys, bör den övergripande processen vara snabbare än att utveckla utan verktygen.
Flera trender visar på behovet av utvecklingsteam för mjukvaror för att få dessa fördelar. Datorapplikationer blir allt mer komplexa och därför är de svårare att förstå och hantera. Fler mjukvaruutvecklingsteam är spridda geografiskt och medlemmar kan arbeta i olika tidszoner och för olika företag. Höga systemutvecklingskostnader och ett behov av minskad time-to-market pressar utvecklingsprocessen. Med denna blandning av utmaningar har implementeringen av ett CASE-verktyg blivit allt viktigare för en framgångsrik mjukvaruutvecklingsprocess.