Wat is softwaremining?
Softwaremining is een proces waarbij een persoon of groep, meestal betrokken bij de informatietechnologie (IT) -industrie, naar de broncode van een softwareprogramma kijkt om informatie daarover te bepalen. Dit kan op verschillende manieren, hoewel andere software vaak wordt gebruikt om het proces eenvoudiger of sneller te maken. Informatie die via deze methode wordt gevonden, kan vervolgens op verschillende manieren worden gebruikt en wordt routinematig gebruikt bij het maken van modellen voor toekomstige softwareontwikkeling. Softwaremining is in sommige opzichten vergelijkbaar met datamining, hoewel het type verkregen informatie en het gebruik ervan heel anders kan zijn.
Het proces van softwaremining wordt vaak gebruikt door bedrijven en softwareontwikkelaars om gegevens uit een programma te extraheren voor gebruik bij de ontwikkeling van nieuwe software. Dit wordt meestal gedaan door softwareontwikkelaars die de verschillende coderegels doorlopen die een programma vormen en gegevens uit die code extraheren. Andere programma's worden vaak gebruikt om software mining te vergemakkelijken, vaak door te zoeken naar bepaalde termen of segmenten in de code zelf. Informatie die op deze manier wordt gevonden, kan op vele manieren worden gebruikt, vaak als model voor de ontwikkeling van nieuwe programma's.
Softwaremining wordt meestal gedaan door een bedrijf of persoon op software die door dat bedrijf is ontwikkeld, juridisch eigendom is van het bedrijf of die wordt aangeboden onder een open source-licentie. Dit maakt het gebruik van alle via het mijnproces geëxtraheerde gegevens legaal. Softwaremining uitgevoerd op een programma dat eigendom is van een andere persoon of bedrijf, kan echter inbreuk maken op auteursrechtwetten die software beschermen als intellectueel eigendom. In sommige gevallen kan dit echter een vaag juridisch gebied zijn, dus mijnbouw moet zorgvuldig worden gedaan door een programmeur of ontwikkelaar.
In veel opzichten is softwaremining vergelijkbaar met een ander proces dat datamining wordt genoemd. Datamining maakt vaak gebruik van vergelijkbare technieken en toepassingen als die worden gebruikt in mining-software, hoewel het wordt gedaan met databases en andere grote hoeveelheden onbewerkte gegevens in plaats van met een bepaald softwareprogramma. De twee termen worden echter door sommige IT-professionals door elkaar gebruikt en dus kan "datamining" ook worden gebruikt met betrekking tot een softwareprogramma. Hoewel datamining doorgaans nuttige en specifieke gegevens uit een grote dataset wil verzamelen, wordt softwaremining vaak uitgevoerd om te achterhalen hoe datatabellen en code in de eerste plaats zijn gemaakt.