IA Y LA GENERACIÓN DE CÓDIGO
Unas de las definiciones sobreinteligencia artificial son las siguientes:
- Unos dicen que es hacer que las computadoras piensen (Haugeland 1985)
- Automatización de actividades que se vinculan con procesos de pensamiento humano (Bellman 1978)
- Automatización de la conducta inteligente (Luger Stubblefield 1993)
El objetivo que persigue este capítulo es brindar algunas ideas, desde el punto de vista del autor, sobre la combinación de la Inteligencia Artificial y la generación de código.
El factor crítico a la hora de la construcción de un generador de código es la tarea bastante difícil de la automatización de la codificación de las reglas del negocio. Los planteamientos hasta el momento sobre generación de código del presente libro, tratan sobre la generación de código para aquellas capas de una arquitectura que no pertenecen a la codificación de las reglas del negocio. Como ejemplo de estas capas tenemos:
La capa de acceso a datos Los procedimientos de inserción, modificación y actualización. La generación de las clases con sus atributos y la declaración de los métodos. Los métodos solamente se declaran. Algunos tipos de procedimientos almacenados de consulta. Inclusive se ha planteado la generación de la capa de presentación, con unos estándares previamente definidos. Scripts de Creación de la base de datos y sus objetos.La capa donde se codifican las reglas del negocio, esta capa es llamada habitualmente BL (Business Logic), es la capa donde se concentra la mayor complejidad de la codificación de software; y que decir cuando las reglas del negocio afectan el comportamiento de los eventos en formularios y ventanas.
Figura 7.1. Arquitectura de una aplicación basada en el enfoque de capas.
Para un ejemplo de reglas del negocio se puede pensar en un programa para nómina con que ,entre otras, tiene estas dos Características:
- Cuando los trabajadores pertenecen a arreas administrativas el pago se realiza quincenalmente. A los trabajadores de contratos por prestación de servicios el pago se realiza mensualmente.
- Para algunos trabajadores que tienen prestamos se les hace un descuento de una cuota mensual, quincenal o semanal; dependiendo del área y tipo de contrato del trabajador.
- A los trabajadores con contrato de prestación de servicios no se les debe cobrar los aportes de salud y pensión.
Pero el interrogante a resolver es: ¿ se puede construir un generador de código "inteligente" capaz de ayudar en la generación de código para la capa dereglas del negoció?
El primer concepto que se abordará será el de los Agentes. Específicamente programas agentes. El agente en su estructura más simple seria:
Aquel que acepta percepciones desde un ambiente y genera acciones respectivas. Para nuestro enfoque seria: La aceptación de las reglas del negocia y la generación del código para el lenguaje respectivo.
Figura 7.2. Posible agente generador de código
Este hipotetico agente generador de código consta de un almacenador de Reglas del negocio, donde las percibe y almacena. Un estado del mundo o sintaxis del lenguajes de programación actualizada por versiones. Las reglas de codificación, acción representada en código a generar y el motor generador de código.
SISTEMAS EXPERTOS
En lo que se refiere a la teoria de los sistemas expertos, estos concuerdan con la idea de software para hacer software.
Los sistemas expertos encapsulan el conocimiento de una persona en un campo especifico. Con este conocimiento los sistemas expertos pueden solucionar problemas, tomar decisiones y hasta perfeccionar su comportamiento e incrementar su conocimiento.
En un acercamiento a un hipotetico sistema experto generador de código, que encapsule las habilidades de un programador con experiencia y pueda crear software.
El cuestionamiento aquí es el siguiente: ¿se puede desarrollar un sistema experto que cumpla con la teoria de: "Programas con un nivel habilidades profesionales,similares a las de una persona experta en un area especifica" ?
Se puede pensar en la construcción de un sistemas experto que contenga el conocimiento y la experiencia de un habilidoso programador. Por supuesto actualmente esto puede sonar un poco lejano, pero es necesario el contemplamiento de otros enfoques en el campo de la ingeniería del software.
Las ideas presentes en este capitulo tratan de incentivar a los desarrolladores, estudiantes, profesionales a plantear nuevas alternativas para los proceso de actuales de construcción de software.
Hay 3 opiniones. Opina sobre este curso.
| Cursos | Valoración | Alumnos | Vídeo | |
|---|---|---|---|---|
|
Programación de juegos para móviles con J2ME Hoy en día se pueden realizar infinidad de cosas con el móvil. Desde la tradicional llamada telefónica hasta conectarse a Internet. Sin embargo, una de las más divertidas... [07/09/04] |
|
11.910 | ||
|
PHP y MySQL. Aplicaciones Web: HTML I (segunda parte) Programación de aplicaciones Web con PHP y MySQL. Ahora estudiaremos las páginas Web HTML, la estructura de los documentos HTML y los tipos de documentos... [02/12/08] |
|
1.137 | ||
|
PHP y MySQL. Aplicaciones Web (undécima parte) Programación de aplicaciones Web con PHP y MySQL. Ahora te capacitamos para entender el funcionamiento en Internet de una tienda online. Aprenderás ... [02/12/08] |
|
796 | ||
Publicar en
del.icio.us
digg
meneame