lunes, 16 de agosto de 2010

MODELO HIBRIDO

En la programación de software, los sistemas híbridos inteligentes denotan a los sistemas software que emplean, en paralelo, una combinación de modelos de inteligencia artificial, métodos y técnicas de éstos subcampos como:
 Neuro-Fuzzy programación
 Sistemas Difusos expertos
 Sistemas Conexionistas expertos
 Redes neuronales evolutivas
 Sistemas Genetic-Fuzzy-Neural
 Sistemas difusos genéticos (Michigan, Pitsburg, Incremental)
 Rough fuzzy y Sistemas Rough fuzzy, también llamado Hibridación Rough Fuzzy
Simbólica y conocimiento/regla-basada (knowledge/rule-based) programación
Desde la perspectiva de la ciencia cognitiva, cada sistema inteligente natural es un híbrido porque éstdesarrollan operaciones mentales tanto en niveles simbólicos como sub-simbólicos. Desde hace pocos años se ha ido desarrollando una discusión sobre la importancia en la inteligencia artificial de la integración de todos éstos sistemas. o software que emplean alguno de los modelos mencionados arriba) algunos autores proponen aque es ahora el momento de la integración para crear complejos, grandes sistemas de inteligencia artificial. Investigadores destacados sobre estas ideas son Marvin Minsky, Aaron Sloman, Deb Roy, Kristinn R. Thórisson y Michel Arbib.



MODELO PROTOTIPADO

En la ingenieria de software de  el desarrollo con prototipación, también llamado modelo de prototipos que pertenece a los modelos de desarrollo evolutivo, se inicia con la definición de los objetivos globales para el software, luego se identifican los requisitos conocidos y las áreas del esquema en donde es necesaria más definición. Entonces se plantea con rapidez una iteración de construcción de prototipos y se presenta el modelado (en forma de un diseño rápido).
El diseño rápido se centra en una representación de aquellos aspectos del software que serán visibles para el cliente o el usuario final (por ejemplo, la configuración de la interfaz con el usuario y el formato de los despliegues de salida). El diseño rápido conduce a la construcción de un prototipo, el cual es evaluado por el cliente o el usuario para una retroalimentación; gracias a ésta se refinan los requisitos del software que se desarrollará. La interacción ocurre cuando el prototipo se ajusta para satisfacer las necesidades del cliente. Esto permite que al mismo tiempo el desarrollador entienda mejor lo que se debe hacer y el cliente vea resultados a corto plazo.    

                                         














MODELO EN ESPIRAL

El modelo de desarrollo en espiral es actualmente uno de los más conocidos y fue propuesto por Boehm [7]. El ciclo de desarrollo se representa como una espiral, en lugar de una serie de actividades sucesivas con retrospectiva de una actividad a otra.
Cada ciclo de desarrollo se divide en cuatro fases:
1.   Definición de objetivos: Se definen los objetivos. Se definen las restricciones del proceso y del producto. Se realiza un diseño detallado del plan administrativo. Se identifican los riesgos y se elaboran estrategias alternativas dependiendo de estos.
2.   Evaluación y reducción de riesgos: Se realiza un análisis detallado de cada riesgo identificado. Pueden desarrollarse prototipos para disminuir el riesgo de requisitos dudosos. Se llevan a cabo los pasos para reducir los riesgos.
3.   Desarrollo y validación: Se escoge el modelo de desarrollo después de la evaluación del riesgo. El modelo que se utilizará (cascada, sistemas formales, evolutivo, etc.) depende del riesgo identificado para esa fase.
4.   Planificación: Se determina si continuar con otro ciclo. Se planea la siguiente fase del proyecto.


MODELO EVOLUTIVO

Este modelo es el desarrollo de una implantación del sistema inicial.Una ventaja de este modelo es que se obtiene una rápida realimentación del usuario, ya que las actividades de especificación, desarrollo y pruebas se ejecutan en cada interación. 

Tiene dos tipos:
 Desarrollo Exploratorio: El objetivo de este enfoque es explorar con el usuario los requisitos hasta llegar a un sistema final. El desarrollo comienza con las partes que se tiene más claras. El sistema evoluciona conforme se añaden nuevas características propuestas por el usuario.
Enfoque utilizando prototipos: El objetivo es entender los requisitos del usuario y trabajar para mejorar la calidad de los requisitos. A diferencia del desarrollo exploratorio, se comienza por definir los requisitos que no están claros para el usuario y se utiliza un prototipo para experimentar con ellos. El prototipo ayuda a terminar de definir estos requisitos.
Caracteristicas Importantes: 
Evoluciona con el tiempo.


MODELO DE CASCADA

El primer modelo de desarrollo de software que se publicó se derivó de otros procesos de ingeniería [8]. Éste toma las actividades fundamentales del proceso de especificación, desarrollo, validación y evolución y las representa como fases separadas del proceso.
El modelo en cascada consta de las siguientes fases:
1.    Definición de los requisitos: Los servicios, restricciones y objetivos son establecidos con los usuarios del sistema. Se busca hacer esta definición en detalle.
2.    Diseño de software: Se particiona el sistema en sistemas de software o hardware. Se establece la arquitectura total del sistema. Se identifican y describen las abstracciones y relaciones de los componentes del sistema.
3.    Implementación y pruebas unitarias: Construcción de los módulos y unidades de software. Se realizan pruebas de cada unidad.
4.    Integración y pruebas del sistema: Se integran todas las unidades. Se prueban en conjunto. Se entrega el conjunto probado al cliente.
5.   Operación y mantenimiento: Generalmente es la fase más larga. El sistema es puesto en marcha y se realiza la corrección de errores descubiertos. Se realizan mejoras de implementación. Se identifican nuevos requisitos.



Modelo de desarrollo en cascada