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.
Minería de software y minería de datos
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 .
Herramientas de software de minería de texto
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 .
Niveles de minería de software
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 :
- Nivel de programa (declaraciones individuales y variables)
- nivel de patrón de diseño
- Nivel de gráfico de llamadas (procedimientos individuales y sus relaciones)
- nivel arquitectónico (subsistemas y sus interfaces)
- Nivel de datos (columnas individuales y atributos de los almacenes de datos)
- Nivel de aplicación (elementos de datos clave y su flujo a través de las aplicaciones)
- Nivel empresarial (conceptos de dominio, reglas de negocio y su implementación en código)
Formas de representar los resultados de la Minería de Software
- modelo de datos
- metadatos
- metamodelos
- ontología
- Representación del conocimiento
- Regla de negocio
- Metamodelo de descubrimiento de conocimiento (KDM)
- Notación de modelado de procesos de negocio (BPMN)
- representación intermedia
- Marco de descripción de recursos (RDF)
- árbol de sintaxis abstracta (AST)
- métricas de software
- interfaces gráficas de usuario