Vad är programvaru visualisering?
Visualisering av programvara är att använda program eller plug-ins för integrerad utvecklingsmiljö (IDE) under utveckling och testning av mjukvaruapplikationer; detta möjliggör skapandet av en grafisk representation av någon aspekt av programvaran i syfte att avgöra om det finns några problem eller ineffektivitet i programmet. Det finns ett antal typer av visualiseringstekniker för programvara, men de används oftast för att se information om programkällkod, för att undersöka förhållanden mellan programvarukomponenter eller för att se en abstrakt bild av hur ett program körs, inklusive information om hur det är interagera med omgivande processer. I allmänhet används mjukvaru visualisering i komplexa system för att upptäcka out-of-the-vanliga beteenden eller resursanvändning, eller för att se områden i en design som är onödiga eller felaktiga. Den faktiska visuella representationen som används varierar kraftigt från sammankopplade textblock till tvådimensionella (2D) stapeldiagram för att utarbeta tredimensionella (3D) objekt som ändrar form när ett program körs.
I vissa fall kan det vara användbart att använda visualisering av programvara för att titta på källkoden för ett program. Genom att använda färgläggning och abstraktion kan massiva mängder skriftlig kod visas på en gång. Avsikten kan vara att bestämma hur mycket kod som används för vilket ändamål eller alternativt kan skärmen vara bunden till en profiler eller felsökare som belyser kodblock som tar lång tid att köra eller som körs ofta.
Objektorienterade programmeringsspråk kan använda mjukvaruvisualisering för att bestämma förhållanden mellan olika bibliotek, klasser och metoder i ett program. Detta hjälper till att bestämma beroenden mellan de olika områdena i ett program, av vilka vissa kan vara oavsiktliga. Det kan också visa klasser eller metoder i ett program som aldrig kallas eller att programlogiken gör ouppnåelig. Visuellt kan ett beroende- eller förhållande diagram se ut som ett nätverk av banor och linjer, överlappande sfärer med olika storlekar eller till och med grenarna på ett träd.
När ett program körs kan visualisering av programvaror i realtid visa abstrakt representation av hur programmet körs, hur olika köer hanteras och hur input och output flyter. Detta kan hjälpa utvecklare att se toppar eller luckor i prestanda och områden som får exceptionellt hög aktivitet. Dessa typer av visualiseringar kan se ut som nästan allt från rörliga färgade block och vågformer till ändrade topografiska kartor som representerar kodsegment som körs. I allmänhet hålls dock visualiseringen ganska grundläggande så anomala händelser kan tydligt ses och observeras utan överdriven grafisk röran.
Det finns andra applikationer för visualisering av mjukvara, varav en är omvänd konstruktion av en applikation. Genom att observera hur ett program interagerar och körs kan olika segment av koden fokuseras på utan att kräva en brant inlärningskurva. En mer specifik användning är på datorsäkerhetsområdet för att observera vilka områden i ett program som interagerar med processer utanför, eller vilka områden som är öppna för attack.