La minería de software es una aplicación del descubrimiento de conocimiento en el área de modernización de software que implica comprender los artefactos de software existentes. Este proceso está relacionado con un concepto de ingeniería inversa . Por lo general, el conocimiento obtenido del software existente se presenta en forma de modelos a los que se pueden realizar consultas específicas cuando sea necesario. Una relación de entidad es un formato frecuente de representación del conocimiento obtenido del software existente. Object Management Group (OMG) desarrolló la especificación Knowledge Discovery Metamodel (KDM) que define una ontología para los activos de software y sus relaciones con el fin de realizar el descubrimiento de conocimiento del código existente.
La minería de software está estrechamente relacionada con la minería de datos , ya que los artefactos de software existentes contienen un enorme valor comercial, clave para la evolución de los sistemas de software. El descubrimiento de conocimiento de los sistemas de software aborda la estructura, el comportamiento y los datos procesados por el sistema de software. En lugar de extraer conjuntos de datos individuales , la minería de software se centra en los metadatos , como los esquemas de bases de datos. OMG Knowledge Discovery Metamodel proporciona una representación integrada para capturar metadatos de aplicaciones como parte de un metamodelo de sistema existente holístico. Otra especificación de OMG, Common Warehouse Metamodel, se centra completamente en la extracción de metadatos empresariales .
Las herramientas de software de minería de texto permiten un fácil manejo de documentos de texto con fines de análisis de datos, incluida la generación automática de modelos y la clasificación de documentos , la agrupación de documentos , la visualización de documentos, el manejo de documentos web y el rastreo de la web .
El descubrimiento de conocimiento en el software está relacionado con un concepto de ingeniería inversa . La minería de software aborda la estructura, el comportamiento y los datos procesados por el sistema de software.
Los sistemas de software de minería pueden ocurrir en varios niveles :