Publicado el 17 de Febrero del 2019
935 visualizaciones desde el 17 de Febrero del 2019
249,1 KB
41 paginas
Creado hace 12a (04/02/2013)
Desarrollo de SBC
Desarrollo de SBC
Ingeniería de los SBC
El punto más importante del desarrollo de SBC es la extracción del
conocimiento
Requiere la interacción entre el Ingeniero del Conocimiento y el
experto
Las metodologías de ingeniería de software han de encajar este
proceso entre sus fases
Las metodologías de ingeniería del software han de adaptarse a las
características específicas de los SBC
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
1 / 41
IS: Modelo en cascada
Desarrollo de SBC
Ingeniería de los SBC
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
2 / 41
AnalisisEspecificacionDiseñoImplementacionPruebaMantenimientoIS: Modelo en espiral
Desarrollo de SBC
Ingeniería de los SBC
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
3 / 41
FormulacionEvaluacionIdentificacionAnalisisDiferencias de los SBC
Desarrollo de SBC
Ingeniería de los SBC
Sistemas software convencionales =⇒ Algoritmos conocidos y de uso
común
SBC =⇒ Conocimiento incompleto, impreciso, heurístico
Sistemas software convencionales =⇒ Posible estimar la naturaleza y
cantidad del conocimiento
SBC =⇒ Difícil estimar la naturaleza y cantidad del conocimiento
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
4 / 41
Diferencias de los SBC
Desarrollo de SBC
Ingeniería de los SBC
Es complicado obtener un diseño adecuado en las fases iniciales
Decisiones iniciales erróneas pueden provocar el replanteamiento
radical del diseño durante el desarrollo
El ingeniero del conocimiento debe realizar un proceso de
adquisición del conocimiento =⇒ Entrevistas con los expertos
El IC debe aprender los elementos básicos del dominio
Encontrar un formalismo representación que pueda entender el experto
Los expertos prefieren casos al razonamiento a partir de definiciones
generales
A los expertos les es difícil explicitar su conocimiento en detalle
(paradoja del experto)
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
5 / 41
Diferencias de los SBC
Desarrollo de SBC
Ingeniería de los SBC
Solución: Diseño incremental y prototipado rápido
Objetivo: Desarrollar un prototipo funcional que recoja las
funcionalidades básicas del sistema
El análisis y la especificación deben tener en cuenta el sistema
completo
El diseño e implementación se limita al prototipo inicial
Este prototipo se completa incrementalmente
Ventaja: Disponemos de un sistema funcional durante todo el proceso
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
6 / 41
Ciclo de vida de un SBC
Desarrollo de SBC
Ingeniería de los SBC
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
7 / 41
EvaluacionAnalisisEspecificacionDiseñoPreliminarPrototipoinicialDiseñoFinalVerificacionValidacionAjustesImplementacionMantenimientoCiclo de vida de un SBC (I)
Desarrollo de SBC
Ingeniería de los SBC
1. Análisis del problema: Recopilar información sobre el proyecto y
determinar su viabilidad.
2. Especificación de requerimientos: Fijar los objetivos y métodos
para conseguirlos.
3. Diseño preliminar: Decisiones a alto nivel sobre el diseño
(formalismo de representación del conocimiento, herramientas,
fuentes de conocimiento)
4. Prototipo Inicial y evaluación: Construir un prototipo con cobertura
limitada, evaluar las decisiones de diseño a partir del prototipo
5. Diseño final: Validar las decisiones y proponer el diseño del sistema
de manera que permita un desarrollo incremental.
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
8 / 41
Ciclo de vida de un SBC (II)
Desarrollo de SBC
Ingeniería de los SBC
6. Implementación: Completar la adquisición del conocimiento, ampliar
incrementalmente el prototipo inicial.
7. Validación y verificación: Comprobar que el sistema cumple las
especificaciones.
8. Ajustes de diseño: Realimentar el proceso (los cambios en el diseño
deberían se mínimos)
9. Mantenimiento: Mantener el sistema.
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
9 / 41
Metodologías especializadas
Desarrollo de SBC
Ingeniería de los SBC
CommonKADS
MIKE
Ciclo de vida en espiral y modelado mediante herramientas parecidas a
UML
Se construyen seis modelos: Organización, tareas, agentes,
comunicación, conocimiento y diseño.
Ciclo de vida en espiral: Adquisición del conocimiento (modelo de
adquisición y modelo de estructura), diseño, implementación,
evaluación.
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
10 / 41
Una metodología simplificada
Desarrollo de SBC
Una metodología simplificada
Para aplicaciones pequeñas se puede aplicar una metodología en
cascada que integra todo el proceso de desarrollo
Identificación del problema
1
2 Conceptualización
3 Formalización
4
5 Validación y Prueba
Implementación
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
11 / 41
Identificación
Desarrollo de SBC
Una metodología simplificada
Debemos determinar si el problema es adecuado
¿Hay una solución algorítmica?
¿Disponemos de fuentes de conocimiento?
¿El tamaño/objetivo/complejidad del problema es adecuado?
Buscar y evaluar las fuentes de conocimiento
Determinar el conocimiento necesario para el sistema
Establecer los objetivos del sistema (¿Que respuesta esperamos?)
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
12 / 41
Conceptualización
Desarrollo de SBC
Una metodología simplificada
Esta fase nos debería dar la perspectiva del problema desde el punto de
vista del experto
Deberemos:
Detallar los elementos del dominio =⇒ Descripción informal de la
ontología
Descomponer el problema en subproblemas mediante refinamientos
sucesivos, descubriendo los bloques de razonamiento
Detallar el flujo de razonamiento y las entradas y salidas de cada
subproblema
Detallar y distinguir entre evidencias, hipótesis y acciones y descubrir
sus relaciones
Toda esta información la obtendremos a partir de la interacción con el
experto (entrevistas) y las fuentes de conocimiento
El resultado será un modelo semiformal del dominio y de los
problemas y métodos de resolución
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
13 / 41
Formalización
Desarrollo de SBC
Una metodología simplificada
Esta fase transformará la perspectiva del experto en la perspectiva del
ingeniero del conocimiento
Decidir el formalismo de representación del conocimiento adecuado
Identificar el espacio de búsqueda
Analizar la tipología de los problemas y bloques de razonamiento y
decidir los métodos de resolución de problemas adecuados
Analizar la necesidad de tratamiento de incertidumbre y/o
información incompleta
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
14 / 41
Implementación
Desarrollo de SBC
Una metodología simplificada
Construir una ontología del dominio
Encajar los problemas identificados en las metodologías de resolución
de problemas escogidas
Construir los diferentes módulos que correspondan a cada problema
siguiendo el conocimiento obtenido
Si utilizamos una aproximación basada en prototipado rápido
construiremos el prototipo inicial y lo iremos aumentando
incrementalmente
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
15 / 41
Validación y Prueba
Desarrollo de SBC
Una metodología simplificada
Escoger casos representativos y resolverlos mediante el sistema
Los casos deberían incluir tanto casos usados para la construcción del
sistema como casos nuevos
Si seguimos una estrategia de construcción incremental esta fase se
irá repitiendo a medida que se desarrolle el prototipo
La validación de SBC es más compleja que la de los sistemas de
software habituales
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
16 / 41
Resolución de problemas en SBC
Clasificación de problemas
Tipos de problemas en SBC
La identificación de tipologías de problemas en SBC facilita su
desarrollo
Cada tipo permite determinar:
Un conjunto de tareas usuales
Un conjunto de metodologías de resolución específicas
Métodos de representación del conocimiento e inferencia adecuados
Clasificaremos los problemas a resolver en un SBC a partir de dos
tareas genéricas:
Tareas de análisis: Interpretación de un sistema
Tareas de síntesis: Construcción de un sistema
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
17 / 41
Resolución de problemas en SBC
Clasificación de problemas
Síntesis - Análisis
Ambas tareas se pueden especializar
Tareas de análisis
Identificación, nos dice que tipo de sistema tenemos
Monitorización, detecta discrepancias de comportamiento
Diagnóstico, explica las discrepancias
Predicción, nos dice que salida podemos esperar
Control, determina que entradas nos permiten obtener cierta salida
Tareas de síntesis
Especificación, busca las restricciones que se deben satisfacer
Diseño, genera una configuración de elemenos según unas restricciones
Ensamblaje, construye un sistema juntando elementos
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
18 / 41
Resolución de problemas en SBC Métodos de resolución de problemas
Métodos de resolución de problemas
Cada tipo de problema genérico tiene unas características especiales
Existen métodos de resolución adecuados para cada tipo
Nos centraremos en dos métodos:
Clasificación Heurística (Heuristic Classification)
Resolución Constructiva (Constructive Problem Solving)
c b e a (LSI - FIB)
Sistemas Basados en el Conocimiento
IA - Curso 2008/2009
19 / 41
Resolución de problemas en SBC
Clasificación Heurística
Clasificación Heurística
Es adecuado para tareas de análisis
El objetivo es escoger una solución de entre un conjunto limitado
Asociamos los datos de entrada con las soluciones (simple o mediante
razonam
Comentarios de: Desarrollo de SBC (0)
No hay comentarios