sistemas basados en el conocimiento (2010/2011) · resolución de problemas a lo largo de la vida...

42
Sistemas Basados en el Conocimiento (2010/2011) Luis Valencia Cabrera [email protected] ( http://www.cs.us.es/~lvalencia) Ciencias de la Computacion e IA ( http://www.cs.us.es/) Universidad de Sevilla

Upload: lyhanh

Post on 14-Oct-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Sistemas

Basados en el

Conocimiento

(2010/2011)

Luis Valencia Cabrera

[email protected]

(http://www.cs.us.es/~lvalencia)

Ciencias de la Computacion e IA

(http://www.cs.us.es/)

Universidad de Sevilla

Resolución de problemas

Tipos de problemas a resolver

Problemas a resolver por los SBC y SE

Del problema a la solución

Tipos de SBC y SE

Componentes de un Sistema Experto

Desarrollo de un SE: ciclo de vida

Índice

Resolución de problemas A lo largo de la vida el hombre se encuentra con

muchos problemas, de modo que para maximizar su bienestar emplea su inteligencia con el objetivo principal de la resolución de problemas.

El primer paso para resolver cualquier problema es definir el área o dominio del problema.

Generalmente las prestaciones para la solución de un problema vienen condicionadas con frecuencia por la existencia de amplias cantidades de conocimiento sobre la tarea en cuestión y no por grandes colecciones de métodos independientes del dominio.

Tipos de problemas

Los problemas con los que pueden tratar

los sistemas expertos pueden clasificarse

atendiendo a distintos criterios:

En función de su estructura

En función de su contexto

Clasificación de los

problemas por su estructura Estructurados:

Se conocen todas las componentes de una solución: los datos que representan los estados del problema, los operadores y los procedimientos. Son totalmente resolubles por computador sin necesidad de ayuda humana.

Semiestructurados: Aquellos que en alguno(s) de sus sub-problema(s) no se

conoce alguna de las componentes de la solución. Por ejemplo, los sistemas tradicionales de ayuda a la toma de decisiones.

No estructurados: Todas o alguna(s) componente(s) de la solución son vagas

o desconocidas; la meta no está totalmente establecida, por lo que determinar la meta forma parte del problema.

Clasificación de los

problemas por su contexto Independientes del contexto:

Ajedrez

Espectrografía …

Sensibles al contexto (dependientes del contexto):

Lenguaje natural

Explicaciones cualificadas …

Los problemas que aborda la Ingeniería del Conocimiento son los problemas semiestructurados o no estructurados y/o dependientes del contexto.

Problemas a resolver por los

SSBBCC y los SSEE Los problemas con los que pueden tratar los sistemas

expertos pueden clasificarse en dos tipos: esencialmente deterministas esencialmente estocásticos.

Por ejemplo, aunque el ejemplo 1.1 (transacciones bancarias) y el Ejemplo 1.2 (control de tráfico) pueden contener algunos elementos de incertidumbre, son esencialmente problemas deterministas.

Sin embargo, analicemos una de las aplicaciones más importantes en el ámbito de los sistemas expertos: el diagnóstico médico…

SSEE de Diagnóstico Médico.

Preguntas a abordar (I) ¿Cómo se puede recoger, organizar, almacenar, poner al día y

recuperar la información médica (ej, registros de pacientes) de forma eficiente y rápida? Suponga que un doctor en un centro médico está interesado en conocer información sobre una enfermedad (E) y tres síntomas asociados (S1, S2, y S3). Se puede utilizar un sistema experto para buscar en la base de datos, extraer y organizar la información deseada. Esta información puede resumirse en tablas o en gráficos como los siguientes:

SSEE de Diagnóstico Médico.

Preguntas a abordar (II) ¿Cómo se puede aprender de la experiencia? Es

decir, ¿cómo se actualiza el conocimiento de los doctores en medicina cuando el número de pacientes que éstos tratan aumenta?

Supuesto que un paciente presenta un conjunto de síntomas; ¿cómo se sabe o se decide qué enfermedad es la más probable que tenga el paciente?

¿Cuáles son las relaciones entre un conjunto (normalmente no observable) de enfermedades y un conjunto (observable) de síntomas? En otras palabras, ¿qué modelos pueden utilizarse para describir las relaciones entre los síntomas y las enfermedades?

SSEE de Diagnóstico Médico.

Preguntas a abordar (III) Dado que el conjunto de síntomas conocidos no es suficiente

para diagnosticar la enfermedad con cierto grado de certeza, ¿qué información adicional debe ser obtenida (por ejemplo, ¿qué síntomas adicionales deben ser identificados? o ¿qué pruebas médicas deben realizarse?).

¿Cuál es el valor de cada una de estas piezas de información? En otras palabras, ¿cuál es la contribución de cada uno de los síntomas adicionales o pruebas a la toma de decisión?

Como vemos, en el campo médico las relaciones entre síntomas y enfermedades se conocen sólo con un cierto grado de certeza (la presencia de ciertos síntomas no siempre implica la enfermedad). Estos tipos de problemas pueden incluir elementos deterministas, pero se trata fundamentalmente de problemas estocásticos.

Del problema a la solución. Ingeniería del conocimiento

Al encontrarnos con un problema de la naturaleza anterior, hemos de encarar algunas cuestiones iniciales:

¿Cómo adquirir y representar el conocimiento humano mediante una representación abstracta efectiva?

¿Cómo representar el conocimiento en términos de una estructura de datos que una máquina pueda procesar?

¿Cómo generar inferencias, haciendo uso de esas estructuras abstractas para generar información útil en el contexto de un caso específico?

Del problema a la solución. Datos, información y agentes Para la adquisición y representación del

conocimiento en sistemas artificiales inteligentes hemos de tener presentes algunos conceptos sobre los datos y la información: Un agente es un sistema que percibe el entorno y

puede actuar sobre él con una función acotada y específica.

Los datos son estímulos del entorno que el agente percibe, es decir, meras entradas al sistema.

La información está formada por datos con significado; este significado se obtiene al interpretar el agente, mediante su conocimiento previo, los datos que recibe.

Del problema a la solución. Conocimiento y razonamiento El conocimiento es la información una vez

incorporada en los mecanismos de razonamiento del agente. Como estos mecanismos están orientados por los objetivos del agente, la definición concuerda con la que dice que el conocimiento es información con propósito.

Un agente racional tiene conocimiento sobre un dominio de competencia, mecanismos de razonamiento y objetivos, y utiliza los dos primeros para, en función de los datos que percibe, generar las acciones que conducen a los objetivos.

Una representación del conocimiento es la expresión de ese conocimiento en un lenguaje.

Del problema a la solución. Representación del conocimiento Requisitos de los formalismos de representación del

conocimiento: potencia expresiva

facilidad de interpretación

eficiencia deductiva

posibilidad de explicación y justificación

Principales formalismos de representación lógica

reglas de producción

redes semánticas

marcos

Cada formalismo de representación usa un método de inferencia específico: Resolución, SLD-resolución

Razonamiento hacia a delante y hacia atrás

Herencia

Tipos de SBC y SE (I) Tomando como base los distintos tipos de problemas que

pueden plantearse y distintos esquemas de adquisición y representación del conocimiento, mecanismos de inferencia y razonamiento, podemos realizar una clasificación de los distintos tipos de Sistemas Expertos (y SBC, en general).

En primer lugar, partiendo de la distinta naturaleza de los problemas para los que están diseñados, los sistemas expertos pueden clasificarse en dos tipos principales: deterministas y estocásticos.

Los problemas de tipo determinista pueden ser formulados usando un conjunto de reglas que relacionen varios objetos bien definidos. Los sistemas expertos que tratan problemas deterministas se suelen implementar mediante sistemas basados en reglas, porque sacan sus conclusiones basándose en un conjunto de reglas utilizando un mecanismo de razonamiento lógico.

Tipos de SBC y SE (II) En situaciones inciertas, es necesario introducir algunos

medios para tratar la incertidumbre. Algunos sistemas expertos usan la misma estructura de los sistemas basados en reglas, pero introducen una medida asociada a la incertidumbre de las reglas y a la de sus premisas. Se pueden utilizar algunas fórmulas de propagación para calcular la incertidumbre asociada a las conclusiones.

Algunos ejemplos de estas medidas son los factores de certeza, usados en las aplicaciones para generar sistemas expertos tales como el sistema experto MYCIN (véase Buchanan y Shortliffe (1984)); la lógica difusa (véase, por ejemplo, Zadeh (1983) y Buckley, Siler, y Tucker (1986)); y la teoría de la evidencia de Dempster y Shafer (véase Shafer (1976)).

Tipos de SBC y SE (III) Otra medida intuitiva de incertidumbre es la probabilidad, en la que la

distribución conjunta de un conjunto de variables se usa para describir las relaciones de dependencia entre ellas, y se sacan conclusiones usando fórmulas muy conocidas de la teoría de la probabilidad. Este es el caso del sistema experto PROSPECTOR (véase Duda, Gaschnig, y Hart (1980)), que utiliza el teorema de Bayes para la exploración de mineral.

Los sistemas expertos que utilizan la probabilidad como medida de incertidumbre se conocen como sistemas expertos probabilísticos y la estrategia de razonamiento que usan se conoce como razonamiento probabilístico, o inferencia probabilística. Una visión detallada de este tipo de sistemas se encuentra en el libro de la bibliografía:

http://personales.unican.es/gutierjm/papers/BookCGH.pdf

Otros libros que sirven para introducirse de forma general en otras medidas de incertidumbre son Buchanan y Shortliffe (1984), Waterman (1985), Pearl (1988), Jackson (1990), Neapolitan (1990), Castillo y Álvarez (1991), Durkin (1994) y Jensen (1996).

Tipos de SBC y SE (IV) Dificultad de los sistemas expertos probabilísticos anteriores:

definir la distribución de probabilidad conjunta de las variables.

Solución: introducción de los modelos de redes probabilísticas, que han superado el obstáculo anterior, retomándose enérgicamente los SSEE probabilísticos.

Estos modelos, que incluyen las redes de Markov y las Bayesianas: Se basan en una representación gráfica de las relaciones entre las

variables.

Esta representación conduce no sólo a formas más eficientes de definir la distribución conjunta de probabilidad sino también a una propagación de incertidumbre muy eficiente, que permite sacar conclusiones.

Ejemplos de este tipo de sistemas expertos son el sistema HUGIN (véase Andersen y otros (1989)) y X-pert Nets(Enrique Castilla et al).

Resumen Tipos de SBC y SE.

Sistemas basados en reglas (I)

Sistemas basados en reglas:

Introducción de los sistemas de producción de reglas:

A. Newell y H.A. Simon Human problem solving (Prentice–Hall, 1972)

Correspondencia entre sistemas de producción y memoria humana:

Memoria de trabajo y memoria temporal

Base de conocimiento y memoria permanente

Resumen Tipos de SBC y SE.

Sistemas basados en reglas (II)

S.E. basados en sistemas de producción:

DENDRAL: S.E. para determinar estructuras moleculares (Buchanan, U. Stanford, 1964)

MYCIN: S.E. para diagnosticar meningitis e infecciones sanguíneas (Shortliffe, U. Stanford, 1972)

PROSPECTOR: S.E. para estudio de exploraciones geológicas (Duda, Stanford Research Institute, 1978)

R1 (XCON): SE para configurar equipos VAX (Mc-Dermott, CMU y DEC, 1978)

Resumen Tipos de SBC y SE.

Sistemas basados en reglas (III)

Ejemplos:

SI el problema no me sale Y es la hora de consulta

ENTONCES consultar al profesor

SI la luz del semáforo es verde Y no hay peatones cruzando

ENTONCES continúa la marcha

SI el programa Lisp no carga

ENTONCES comprobar paréntesis

Inferencias:

Razonamiento hacia adelante (de abajo a arriba)

Razonamiento hacia atrás (de arriba a abajo)

Resumen Tipos de SBC y SE.

Redes semánticas.

Ejemplo:

Inferencia:

Herencia

Resumen Tipos de SBC y SE.

Lógica (I).

Ejemplos:

Inferencia:

Deducción natural.

Cálculo de secuentes.

Regla de resolución.

Reescritura.

Razonamiento automático.

Resumen Tipos de SBC y SE.

Lógica (II). Ejemplo en Prolog r1 # si Coche tiene cilindrada X

entonces Coche tiene velocidad X.

r2 # si Coche tiene motor inyeccion y Coche es mono-volumen entonces Coche tiene velocidad media.

...

r9 # si Coche tiene frenos abs y Coche tiene airbag entonces Coche tiene seguridad alta.

f1 hecho opel_astra tiene 1600 c_cubicos.

f2 hecho opel_astra tiene airbag.

f3 hecho opel_astra no_tiene frenos abs.

f4 hecho fiat_punto tiene 1400 c_cubicos.

f5 hecho fiat_punto no_tiene airbag.

f6 hecho fiat_punto no_tiene frenos abs.

f7 hecho renault_space es mono_volumen.

f8 hecho renault_space tiene motor diesel.

f9 hecho renault_space tiene frenos abs.

f10 hecho renault_space tiene airbag.

Resumen Tipos de SBC y SE.

Lógica (II). Ejemplo en Prolog (II) ?- se_deduce(opel_astra es gama X).

¿Es cierto opel_astra tiene 2000 c_cubicos? Posibles respuestas: [si, no, porque] (seguidas de un punto):

¿Es cierto opel_astra tiene 1600 c_cubicos? Posibles respuestas: [si, no, porque] (seguidas de un punto):

=== Porque: La regla r7 dice que probando:

opel_astra tiene 1600 c_cubicos

se tiene: opel_astra tiene cilindrada media

Repito: ¿Es cierto opel_astra tiene 1600 c_cubicos? Posibles respuestas: [si, no, porque] (seguidas de un punto):

****** Se ha encontrado respuesta afirmativa: ------ Opciones: ------ 1) Ver la prueba completa y continuar. ------ 2) Navegar dentro de la prueba. ------ 3) Continuar.

Posibles respuestas: [1, 2, 3] (seguidas de un punto): 1.

Resumen Tipos de SBC y SE.

Lógica (II). Ejemplo en Prolog (III) ****** Prueba encontrada:

por usted, sabemos que opel_astra tiene 1600 c_cubicos,

luego, segun r7 se concluye que opel_astra tiene cilindrada

luego, segun r2 se concluye que opel_astra tiene velocidad media,

y

por f3, sabemos que opel_astra no_tiene frenos abs,

y

por f2, sabemos que opel_astra tiene airbag,

luego, segun r10 se concluye que opel_astra tiene seguridad

luego, segun r1 se concluye que opel_astra es gama media,

X = media ; %% Con el ; se está solicitando otra respuesta

¿Es cierto opel_astra tiene 1400 c_cubicos? Posibles respuestas: [si, no, porque] (seguidas de un punto): No.

Componentes de un

Sistema Experto

Componentes de un SE(I). La

Componente Humana Un Sistema Experto surge de la colaboración entre:

expertos humanos e

ingenieros del conocimiento teniendo en mente a los usuarios

Los expertos humanos suministran el conocimiento básico en el tema de interés

Los ingenieros del conocimiento trasladan este conocimiento a un lenguaje, que el sistema experto pueda entender.

La colaboración entre estos tres perfiles es el elemento más importante en el desarrollo de un sistema experto.

Requiere gran dedicación, implicación por las partes y esfuerzo de entendimiento (cada parte habla un lenguaje diferente en base a su rol y experiencia).

Componentes de un SE(II). La

Base de Conocimiento Especialistas/expertos Suministrar a los ingenieros del conocimiento:

Conocimiento ordenado y estructurado. Relaciones bien definidas y explicadas.

Requiere que los expertos humanos repiensen, reorganicen, y reestructuren su conocimiento profundiza en el conocimiento de su propia especialidad.

Conocimiento: Afirmaciones de validez general como reglas, distribuciones de

probabilidad, etc. Este conocimiento es permanente, y se almacena en la

base de conocimiento. Por ejemplo, los síntomas, las enfermedades y las relaciones entre ellos.

Datos: Información relacionada con una aplicación particular. Son efímeros, y se almacenan en la memoria de trabajo. Todos los procedimientos de los diferentes sistemas y subsistemas que son

de carácter transitorio se almacenan también en la memoria de trabajo.

Por ejemplo, los síntomas particulares de un paciente dado.

Componentes de un SE(III).

Adquisición de Conocimiento

El subsistema de adquisición de conocimiento: controla el flujo del nuevo conocimiento que

fluye del experto humano a la base de datos.

El sistema determina: qué nuevo conocimiento se necesita

si el conocimiento recibido es en realidad nuevo, es decir, si debe incluirse en la BD en caso necesario, incorpora estos

conocimientos a la misma.

<Veremos en más detalle este mecanismo en el siguiente tema de teoría.>

Componentes de un SE(IV).

Control de la Coherencia Este subsistema apareció en los sistemas expertos tras un proceso de

maduración, pasando a ser esencial para un sistema experto.

Controla la consistencia de la base de datos, evitando que se produzcan inconsistencias entre unidades de conocimiento de la misma.

En situaciones complejas un experto humano puede formular afirmaciones inconsistentes. Sin este subsistema, se podría encontrar conocimiento contradictorio en la base de conocimiento, originando un comportamiento insatisfactorio del sistema.

Ej: en sistemas con mecanismos de propagación de incertidumbre, conclusiones absurdas como generar probabilidades mayores que la unidad o negativas.

Comprueba e informa a los expertos de las inconsistencias.

Además, cuando solicita información de los expertos humanos, éste subsistema informa sobre las restricciones que ésta debe cumplir para ser coherente con la existente en la base de conocimiento.

De esta forma, ayuda a los expertos humanos a dar información fiable.

Componentes de un SE(V).

El Motor de Inferencia Es el corazón de todo sistema experto.

Cometido principal: sacar conclusiones aplicando el conocimiento a los datos. Ej: En diagnóstico médico, los síntomas de un paciente (datos) son analizados

a la luz de los síntomas y las enfermedades y de sus relaciones (conocimiento).

Las conclusiones pueden basarse en conocimiento determinista o probabilístico. El tratamiento de situaciones de incertidumbre (probabilísticas) puede ser considerablemente más difícil que el de situaciones ciertas (deterministas).

En muchos casos, algunos hechos (datos) no se conocen con certeza. Ej: un paciente no está seguro de sus síntomas. Caso de trabajar con

conocimiento de tipo no determinista, se dispone sólo de información aleatoria o difusa.

El motor de inferencia es también responsable de la propagación del conocimiento incierto. En los SSEE basados en probabilidad, la propagación de incertidumbre es la tarea principal del motor de inferencia, permitiendo sacar conclusiones bajo incertidumbre. Es tan complejo que da lugar a que ésta sea la componente más débil de casi todos los SSEE existentes.

<La mayor parte de Sistemas Expertos y Modelos de Redes Probabilísticas se dedica al análisis y resolución de la propagación de incertidumbre.>

Componentes de un SE(VI).

Adquisición de Información Si el conocimiento inicial es muy limitado y no se

pueden sacar conclusiones, el motor de inferencia utiliza el subsistema de adquisición de información para obtener la información necesaria y continuar con el proceso de inferencia hasta que se hayan sacado conclusiones.

En algunos casos, el usuario puede suministrar la información requerida para éste y otros objetivos. De ello resulta la necesidad de una interfaz de usuario y de una comprobación de la consistencia de la información suministrada por el usuario antes de introducirla en la memoria de trabajo.

Componentes de un SE(VII).

Interfaz de Usuario Enlace entre el sistema experto y el usuario.

Para que un SE sea una herramienta efectiva, debe incorporar mecanismos eficientes para mostrar y obtener información de forma fácil y agradable.

Tras el trabajo del motor de inferencia se deben mostrar las conclusiones, las razones que expliquen las mismas y una explicación de las acciones iniciadas por el sistema experto.

Cuando el motor de inferencia no puede concluir debido, por ejemplo, a la ausencia de información, la interfaz de usuario es un vehículo para obtener la información necesaria del usuario.

Una implementación inadecuada de la interfaz de usuario minaría notablemente la calidad de un sistema experto.

Los usuarios evalúan comúnmente los sistemas expertos y otros por la calidad de la interfaz más que por la del SE mismo.

<Los interesados en el diseño de una interfaz de usuario pueden consultar Shneiderman, B. (1987), Designing the Human Interface y Brown, J. R. and Cunningham, S. (1989), Programming the User Interface: Principles and Examples.>

Componentes de un SE(VIII).

El Subsistema de Ejecución de Órdenes

Componente que permite al sistema experto iniciar acciones. Estas acciones se basan en las conclusiones sacadas por el motor de inferencia.

Ejemplos:, Un sistema experto diseñado para analizar el

tráfico ferroviario puede decidir retrasar o parar ciertos trenes para optimizar el tráfico global

Un sistema para controlar una central nuclear puede abrir o cerrar ciertas válvulas, mover barras, etc., para evitar un accidente.

La explicación de las razones por las que se inician estas acciones pueden darse al usuario mediante el subsistema de explicación.

Componentes de un SE(IX).

El Subsistema de Explicación El usuario puede pedir una explicación de las conclusiones

sacadas o de las acciones iniciadas por el sistema experto.

Es necesario un subsistema que explique el proceso seguido por el motor de inferencia o por el subsistema de ejecución.

Ej:, si un cajero automático decide rechazar la palabra clave (una acción), la máquina puede mostrar un mensaje (una explicación) como la siguiente: ¡Lo siento!, su palabra clave es incorrecta tras tres intentos.

Retenemos su tarjeta para garantizar su seguridad. Póngase en contacto con su banco.

En muchos dominios de aplicaciones, es necesaria la explicación de las conclusiones debido a los riesgos asociados con las acciones a ejecutar.

Ej:, en el diagnóstico médico, los doctores son responsables de los diagnósticos. Si emplean un SE sin un subsistema de explicación, los doctores pueden no ser capaces de explicar a sus pacientes las razones de su diagnóstico.

Componentes de un SE(X).

El Subsistema de Aprendizaje Una de las principales características de un sistema experto es su

capacidad para aprender. Diferenciaremos entre aprendizaje estructural y aprendizaje paramétrico. Por aprendizaje estructural nos referimos a algunos aspectos

relacionados con la estructura del conocimiento (reglas, distribuciones de probabilidad, etc.). Por ello, el descubrimiento de nuevos síntomas relevantes para una enfermedad o la inclusión de una nueva regla en la base de conocimiento son ejemplos de aprendizaje estructural.

Por aprendizaje paramétrico nos referimos a estimar los parámetros necesarios para construir la base de conocimiento. Por ello, la estimación de frecuencias o probabilidades asociadas a síntomas o enfermedades es un ejemplo de aprendizaje paramétrico.

Otra característica de los sistemas expertos es su habilidad para obtener experiencia a partir de los datos disponibles. Estos datos pueden ser obtenidos por expertos y no expertos y pueden utilizarse por el subsistema de adquisición de conocimiento y por el subsistema de aprendizaje.

Componentes de un SE.

Resumen de tareas implicadas Los sistemas expertos pueden realizar varias tareas entre

las que se incluyen: Adquisición de conocimiento y verificación de su

coherencia; Por lo que el sistema experto puede ayudar a los expertos

humanos a dar conocimiento coherente.

Almacenar (memorizar) conocimiento. Preguntar cuándo se requiere nuevo conocimiento.

Aprender de la base de conocimiento y de los datos disponibles.

Realizar inferencia y razonamiento en situaciones deterministas y de incertidumbre.

Explicar conclusiones o acciones tomadas. Comunicar con los expertos y no expertos humanos y con

otros sistemas expertos.

Desarrollo de un SE:

ciclo de vida

Desarrollo de un SE:

etapas del desarrollo (I) 1. Planteamiento del problema.

La primera etapa consiste en la definición del problema a resolver.

El objetivo principal de un sistema experto es responder a preguntas y resolver problemas Es fundamental tener claro el problema que se trata, pues si el sistema está mal definido podrá suministrar respuestas erróneas.

2. Encontrar expertos humanos que puedan resolver el problema.

En algunos casos, las bases de datos pueden jugar el papel del experto humano proporcionando información, si bien la experiencia del experto humano ofrece información de carácter cualitativo que raramente podemos encontrar en las bases de datos usuales.

Desarrollo de un SE:

etapas del desarrollo (II) 3. Diseño de un sistema experto.

Incluye el diseño de estructuras para almacenar el conocimiento, el motor de inferencia, el subsistema de explicación, la interfaz de usuario, etc.

4. Elección de la herramienta de desarrollo, esqueleto o framework, o lenguaje de programación.

Debe decidirse si realizar un sistema experto a medida, utilizar un esqueleto, una herramienta, o un lenguaje de programación.

Si existiera un framework satisfaciendo todos los requerimientos del diseño, ésta debería ser la elección, tanto por razones de tipo financiero como por fiabilidad. Los frameworks y herramientas comerciales están sujetas a controles de calidad, a los que otros programas no lo están.

Desarrollo de un SE:

etapas del desarrollo (III) 5. Desarrollo y prueba de un prototipo.

Si el prototipo no pasa las pruebas requeridas, las etapas anteriores (con las modificaciones apropiadas) deben ser repetidas hasta que se obtenga un prototipo satisfactorio.

6. Refinamiento y generalización. En esta etapa se corrigen los fallos y se incluyen

nuevas posibilidades no incorporadas en el diseño inicial.

7. Mantenimiento y puesta al día. En esta etapa el usuario plantea problemas o

defectos del prototipo, corrige errores, actualiza el producto con nuevos avances, etc.