Programutvinning

Software mining är en tillämpning av kunskapsupptäckt inom området mjukvarumodernisering som involverar förståelse av befintliga mjukvaruartefakter. Denna process är relaterad till ett koncept av reverse engineering . Vanligtvis presenteras kunskapen från befintlig programvara i form av modeller till vilka specifika frågor kan ställas vid behov. En entitetsrelation är ett frekvent format för att representera kunskap erhållen från befintlig programvara. Object Management Group (OMG) utvecklade specifikation Knowledge Discovery Metamodel (KDM) som definierar en ontologi för mjukvarutillgångar och deras relationer i syfte att utföra kunskapsupptäckt av befintlig kod.

Programutvinning och datautvinning

Mjukvaruutvinning är nära besläktat med datautvinning , eftersom befintliga programvaruartefakter innehåller enorma affärsvärden, nyckeln för utvecklingen av mjukvarusystem. Kunskapsupptäckt från mjukvarusystem tar upp struktur, beteende samt data som bearbetas av mjukvarusystemet. Istället för att bryta individuella datamängder fokuserar mjukvaruutvinning på metadata , till exempel databasscheman. OMG Knowledge Discovery Metamodel tillhandahåller en integrerad representation för att fånga applikationsmetadata som en del av en holistisk existerande systemmetamodell. En annan OMG-specifikation, Common Warehouse Metamodel fokuserar helt på gruvföretagsmetadata .

Verktyg för textmining

för textutvinning möjliggör enkel hantering av textdokument för dataanalys, inklusive automatisk modellgenerering och dokumentklassificering , dokumentkluster , dokumentvisualisering, hantering av webbdokument och genomsökning av webben .

Nivåer av mjukvaruutvinning

Kunskapsupptäckt i mjukvara är relaterat till begreppet reverse engineering . Programutvinning tar upp struktur, beteende samt data som bearbetas av mjukvarusystemet.

Miningprogramvarusystem kan hända på olika nivåer :

  • programnivå (individuella påståenden och variabler)
  • designmönsternivå _
  • samtalsdiagramnivå (individuella procedurer och deras relationer)
  • arkitektonisk nivå (delsystem och deras gränssnitt)
  • datanivå (individuella kolumner och attribut för datalager)
  • applikationsnivå (nyckeldataobjekt och deras flöde genom applikationerna)
  • affärsnivå (domänkoncept, affärsregler och deras implementering i kod)

Former för att representera resultaten av Software Mining

Se även