sábado, 4 de junio de 2011

PROYECTO ACCESS

CLAVE PRINCIPAL

La clave o llave principal es una manera de identificar de forma única a cada registro de una tabla, así que Access verificará que no se repitan los valores de los campos de la clave principal. La clave principal puede formarse con uno o más campos, generalmente no más tres. Para crear una clave principal hay que decidir primero qué campos actuarán como clave principal. Estando en la ventana de diseño de la tabla dé un clic sobre el campo, después de eso un clic sobre el campo, después de eso dé un clic en el icono de la llave que aparece en la barra de herramientas.





ENTIDAD

Una entidad es un objeto que existe y que es distinguible de otros objetos Una entidad puede ser concreta o abstracta (como un algoritmo, un curso o una dirección en Internet).






Entidad persona y sus atributos.



ATRIBUTO

Un atributo de una entidad es una característica interesante sobre ella, es decir, representa alguna propiedad que nos interesa almacenar.





Entidad persona y sus atributos.



RELACION

En una B.D se almacenan además de las entidades, las relaciones existentes entre ellas.
Una relación es una asociación entre entidades, generalmente dos. Una relación puede ocurrir entre dos entidades de un mismo conjunto de entidades.





Dos entidades y una relación entre ellas

DIAGRAMA ENTIDAD RELACION


Describen el esquema de una base de datos.
Este modelo representa a la realidad a través de un esquema gráfico empleando los terminología de entidades, que son objetos que existen y son los elementos principales que se identifican en el problema a resolver con el diagramado y se distinguen de otros por sus características particulares denominadas atributos, el enlace que rige la unión de las entidades está representada por la relación del modelo.





Sus elementos fundamentales son:

Una coleccion de objetos similares.





Conecciones entre dos o mas conjuntos de entidades.





Propiedades de entidades en un conjunto de entidades.



CAMPO

Unidad básica de una base de datos. Un campo puede ser, por ejemplo, el nombre de una persona. Los nombres de los campos, no pueden empezar con espacios en blanco y caracteres especiales. No pueden llevar puntos, ni signos de exclamación o corchetes. Si pueden tener espacios en blanco en el medio. La descripción de un campo, permite aclarar información referida a los nombres del campo. El tipo de campo, permite especificar el tipo de información que cargáramos en dicho campo, esta puede ser:





Tipos de campo:

  • Texto: para introducir cadenas de caracteres hasta un máximo de 255
  • Memo: para introducir un texto extenso. Hasta 65.535 caracteres
  • Numérico: para introducir números
  • Fecha/Hora: para introducir datos en formato fecha u hora
  • Moneda: para introducir datos en formato número y con el signo monetario
  • Autonumérico: en este tipo de campo, Access numera automáticamente el contenido
  • Sí/No: campo lógico. Este tipo de campo es sólo si queremos un contenido del tipo Sí/No, Verdadero/Falso, etc.
  • Objeto OLE: para introducir una foto, gráfico, hoja de cálculo, sonido, etc.
  • Hipervínculo: podemos definir un enlace a una página Web
  • Asistente para búsquedas: crea un campo que permite elegir un valor de otra tabla o de una lista de valores mediante un cuadro de lista o un cuadro combinado.

REGISTRO

Un registro es un conjunto de campos que contienen los datos que pertenecen a una misma repetición de entidad. Se le asigna automáticamente un número consecutivo (número de registro) que en ocasiones es usado como índice aunque lo normal y práctico es asignarle a cada registro un campo clave para su búsqueda.

                 
Tipos de registros:
  • Registros de longitud fija: todos los campos que lo forman son de longitud fija.
  • Registros de longitud variable: uno o varios de los campos que lo integran tiene longitud variable aunque tiene una dimensión máxima que no se sobrepasará.
  • Registros de longitud indefinida: la longitud es imposible de determinar. Incluye marcas de final de campo y de fin de registro.



INFORMACION

La información es un conjunto organizado de datos procesados, que constituyen un mensaje que cambia el estado de conocimiento del sujeto o sistema que recibe dicho mensaje.
Alude a un conjunto de datos organizados de manera tal que portan o arrojan un significado, significado ausente sin esta condición de orden u organización.



DATO

El dato es una representación simbólica (numérica, alfabética, algorítmica etc.), un atributo o una característica de una entidad. Los datos son hechos que describen sucesos y entidades. No tienen ninguna información. Puede significar un número, una letra, o cualquier símbolo que representa una palabra, una cantidad, una medida o una descripción. El dato no tiene valor semántico (sentido) en sí mismo, pero si recibe un tratamiento (procesamiento) apropiado, se puede utilizar en la realización de cálculos o toma de decisiones.

 


miércoles, 30 de marzo de 2011

RELACIONES ENTRE BASES DE DATOS

Las diferentes formas de relación entre diversas bases de datos que podemos encontrar son:

 

Relaciones "uno a uno"

Estas relaciones entre bases de datos se dan cuando cada campo clave aparece sólo una vez en cada una de las tablas.
Tomando un ejemplo del mundo real, una clara relación de "uno a uno" podría ser, el nombre de cualquier persona y su número de teléfono. Si partimosdel supuesto en que cada persona tiene un solo número de teléfono, se podría hablar de una relación "uno a uno".
Gráficamente, se podría representar de la siguiente manera:
Este tipo de relaciones se caracteriza poque cad uno de los campos define a aquél con el que se relaciona. Es decir, conociendo el nombre de una persona podemos conocer su número telefónico. O si sabemos su número telefónico, podemos identificar al dueño. En estos cases, se suele aconsejar incluir todos los datos dentro de una sola tabla.

 

Relaciones de "uno a varios"

El ejemplo del caso anterior (cada persona, un teléfono), si bien es correcto teóricamente, es muy improbable desde el punto de vista de la realidad. Conla gran expansión de los teléfonos, por lo general, cada persona tiene un número de teléfono fijo, y ademas del teéfono móvil. Debemos tener en cuenta que de el de su casa también tendrá un número de teléfono de empresa, y que quizá también sus móviles estén divididos en ocio y trabajo.
Por ello, debemos tener nuestras bases de datos preparadas para ello. Este tipo de relaciones es conocido como "uno a varios", y se podría representar de la siguiente manera:
En este caso, lo aconsejable no es almacenar todos los datos en una sola tabla, sino lo eficiente es hacerlo en tablas separadas, utilizando el identificador ID para relacionarlas.
Relaciones de "varios con varios"
 
La última de la relaciones que podemos encontrar es la de "varios con varios". Dado que en la vida las cosas rara vez son sencillas, éste será el tipo de relación que nos encontraremos más a menudo.
Volviendo al tema de los teéfonos, hemos encontrado la manera de relacionar cada una de las personas con sus diversos teléfonos: el de su casa, el de su empresa, el móvil. Pero no será extraño tener en nuestra base de datos diversas personas que trabajen en la misma empresa, por lo que el número de su trabajo será el mismo, o miembros de una misma familia, por lo que compartirán el mismo teléfono de su hogar.
¿Cómo tratar este tipo de relaciones? Si nos limistamos a repetir dicho número de tablas, estaremos creando problemas de redundancia de datos, que a largo plazo lastrarán la rapidez y eficacia de nuestras tablas.
Este tipo de relaciones podría ilustrarse de la siguiente manera:
Como vemos, cada elemento de la bas de datos puede relacionarse libremente con uno o varios miembros de las distintas tablas.
En estos casos no hay una regla fija a la que podamos acogernos, pero lo aconsejable es aproximarse lo más posible a la realidad, y no dudar en establecer tablas intermedias que nos ayuden a asociar mejor los datos.
Volviendo al tema de los teléfonos, imaginemos que varias personas de nuestra tabla trabajan en la misma empresa ACME Productions tiene varias líneas, por lo que los números de teléfono de trabajo de estas personas serían varios. ¿Cómo representarlo en nuestra base de datos?


Relaciones de "varios a uno"

Una entidad en A se relaciona exclusivamente con una entidad en B. Pero una entidad en B se puede relacionar con 0 o muchas entidades en A.

 

jueves, 17 de marzo de 2011

BASE DE DATOS

Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar fácilmente.
Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada  o estructurada, en la cual se pueden almacenar datos de manera estructurada, con la menor redundancia posible.
Diferentes programas y diferentes usuarios deben poder utilizar estos datos. Por lo tanto, el concepto de base de datos generalmente está relacionado con el de red ya que se debe poder compartir esta información. De allí el término base. "Sistema de información" es el término general utilizado para la estructura global que incluye todos los mecanismos para compartir datos que se han instalado.

¿Para que nos sirve una Base de Datos?

Una base de datos proporciona a los usuarios el acceso a datos, que pueden visualizar, ingresar o actualizar, en concordancia con los derechos de acceso que se les hayan otorgado. Se convierte más útil a medida que la cantidad de datos almacenados crece.
Una base de datos puede ser local, es decir que puede utilizarla sólo un usuario en un equipo, o puede ser distribuida, es decir que la información se almacena en equipos remotos y se puede acceder a ella a través de una red.
La principal ventaja de utilizar bases de datos es que múltiples usuarios pueden acceder a ellas al mismo tiempo.

martes, 15 de marzo de 2011

APLICACION DE ESTRUCTURAS DE CONTROL




Imagen donde observamos los codigos para que
el programa funcione correctamentre




Una imagen donde se muestra el programa en ejecución








miércoles, 23 de febrero de 2011

HISTORIA DE LA PROGRAMACION



Sobre los últimos 50 años, los idiomas que programan han evolucionado del código binario de máquina a herramientas poderosas que crean las abstracciones complejas. Es importante entender por qué los idiomas han evolucionado, y qué capacidades que los idiomas más nuevos nos dan.


Primera Generación
Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de programarlas, es decir, de almacenar en memoria la información sobre la tarea que iban a ejecutar. Las primeras se usaban como calculadoras simples; se les indicaban los pasos de cálculo, uno por uno.
John Von Neumann desarrolló el modelo que lleva su nombre, para describir este concepto de "programa almacenado". En este modelo, se tiene una abstracción de la memoria como un conjunto de celdas, que almacenan simplemente números. Estos números pueden representar dos cosas: los datos, sobre los que va a trabajar el programa; o bien, el programa en sí.
¿Cómo es que describimos un programa como números? Se tenía el problema de representar las acciones que iba a realizar la computadora, y que la memoria, al estar compuesta por switches correspondientes al concepto de bit, solamente nos permitía almacenar números binarios.
La solución que se tomó fue la siguiente: a cada acción que sea capaz de realizar nuestra computadora, asociarle un número, que será su código de operación (opcode) . Por ejemplo, una calculadora programable simple podría asignar los opcodes :
1 = SUMA, 2 = RESTA, 3 = MULTIPLICA, 4 = DIVIDE.
Podemos ver que con esta representación, es simple expresar las operaciones de las que es capaz el hardware (en este caso, nuestra calculadora imaginaria), en la memoria.
Los lenguajes más primitivos fueron los lenguajes de máquina. Esto, ya que el hardware se desarrolló antes del software, y además cualquier software finalmente tiene que expresarse en el lenguaje que maneja el hardware.
La programación en esos momentos era sumamente tediosa, pues el programador tenía que "bajarse" al nivel de la máquina y decirle, paso a pasito, cada punto de la tarea que tenía que realizar. Además, debía expresarlo en forma numérica; y por supuesto, este proceso era propenso a errores, con lo que la productividad del programador era muy limitada. Sin embargo, hay que recordar que en estos momentos, simplemente aún no existía alternativa.

Segunda Generación
El primer gran avance que se dio, como ya se comentó, fue la abstracción dada por el Lenguaje Ensamblador, y con él, el nacimiento de las primeras herramientas automáticas para generar el código máquina. Esto redujo los errores triviales, como podía ser el número que correspondía a una operación, que son sumamente engorrosos y difíciles de detectar, pero fáciles de cometer. Sin embargo, aún aquí es fácil para el programador perderse y cometer errores de lógica, pues debe bajar al nivel de la forma en que trabaja el CPU, y entender bien todo lo que sucede dentro de él.


Tercera Generación

Con el desarrollo en los 50s y 60s de algoritmos de más elevado nivel, y el aumento de poder del hardware, empezaron a entrar al uso de computadoras científicos de otras ramas; ellos conocían mucho de Física, Química y otras ramas similares, pero no de Computación, y por supuesto, les era sumamente complicado trabajar con lenguaje Ensamblador en vez de fórmulas. Así, nació el concepto de Lenguaje de Alto Nivel, con el primer compilador de FORTRAN (FORmula TRANslation), que, como su nombre indica, inició como un "simple" esfuerzo de traducir un lenguaje de fórmulas, al lenguaje ensamblador y por consiguiente al lenguaje de máquina. A partir de FORTRAN, se han desarrollado innumerables lenguajes, que siguen el mismo concepto: buscar la mayor abstracción posible, y facilitar la vida al programador, aumentando la productividad, encargándose los compiladores o intérpretes de traducir el lenguaje de alto nivel, al lenguaje de computadora.

Hay que notar la existencia de lenguajes que combinan características de los de alto nivel y los de bajo nivel (es decir, Ensamblador). Mi ejemplo favorito es C: contiene estructuras de programación de alto nivel, y la facilidad de usar librerías que también son características de alto nivel; sin embargo, fue diseñado con muy pocas instrucciones, las cuales son sumamente sencillas, fáciles de traducir al lenguaje de la máquina; y requiere de un entendimiento apropiado de cómo funciona la máquina, el uso de la memoria, etcétera. Por ello, muchas personas consideramos a lenguajes como C (que fue diseñado para hacer sistemas operativos), lenguajes de nivel medio.



Cuarta Generación

Los idiomas de la cuarta generación parecen según las instrucciones a las de la tercera generación. Lo nuevo de estas lenguajes son conceptos como clases, objetos y eventos que permiten soluciones más fáciles y lógicos. Lenguajes como C++, java y C# se llaman lenguajes orientadas al objeto.

Los idiomas modernos, tal como C++ y Java, no sólo permite las abstracciones, pero permite la implementación impuesta de restricciones en abstracciones. La mayoría de los idiomas modernos son objetivas orientado, que permite que mí modele el mundo verdadero que usa mi idioma. Además, puedo limitar el acceso para modelar las restricciones de mundo verdadero en datos. La llave es que usé el término "mundo verdadero." Por la primera vez, yo modelo mi solución en términos del problema. Quiero que mi solución sea orientado de problema, para que la solución refleje el mundo verdadero en términos de estructuras de datos y acceso a los datos. Yo también puedo aplicar directamente y para poder modelar objetos de mundo verdadero usando las clases (en C + + o Java).



Quinta Generación


Como la quinta generación están conocidos los Lenguajes de inteligencia artificial. Han sido muy valorados al principio de las noventa - mientras ahora el desarrollo de software toma otras caminos.

Lo que veremos en el futuro es menos dependencia en el idioma, y más en el modelando herramientas, tal como el Unificado Modelando el Idioma (UML). La salida del modelando herramienta producirá mucho de nuestro código para nosotros; en el muy menos, producirá arquitectónico y los modelos del diseño y la estructura de nuestro código. Esto producirá un diseño (y posiblemente código) eso puede ser validado por el cliente antes de completar la implementación y probar. Cuando los problemas diarios que resolvemos llegan a ser más grande, nosotros tenemos cada vez menos tiempo "volver a hacer" el código. Los días de decir, "acabamos de escribir una versión de Beta y el cliente entonces pueden decir nosotros lo que ellos quieren realmente," son pasados. Las organizaciones que fallan de obtener completa y corrige los requisitos de cliente antes de escribir el código saldrá del negocio. ¿Por qué? Porque toma demasiado largo, y cuesta también mucho, para escribir código dos o más vez. Las organizaciones que tienen un compromiso a la comprobación y la validación antes de producir código prosperarán - los otros fallarán.

PSEUDOCODIGO


Es un lenguaje que se asemeja a los lenguajes de programación en los que se crea software de programación para la P.C pero sin el rigor y exactitud que estos tienen a nivel sintáctico; es una forma clara de escribir programas en un lenguaje común o cotidiano.
El principal objetivo del pseudocódigo es el de representar la solución a un algoritmo de la forma más detallada posible, y a su vez lo más parecida posible al lenguaje que posteriormente se utilizará para la codificación del mismo.




Pseudocódigo


Inicio/Área de un triangulo
     Variables
                A, B, H
   Constantes
                X=2
Inicio del programa
   Escribir ‘Cuanto mide la base’
                Leer B
   Escribir ‘La altura es’
                Leer H
                A = (B*H)/x
Escribir ‘El área es’
Fin








TIPOS DE DATOS

Numericos
  • Enteros (integer) : Son los valores que no tienen punto decimal, pueden ser positivos o negativos y el cero.
  • Real (real): Estos caracteres almacenan números muy grandes que poseen parte entera y parte decimal.


Cadena (string)
  • Cadena (string): Puedes contener en una sóla variable más de un carácter. Por ejemplo, puedes tener en una variable tu nombre.
  • Caracter (char): Puedes tener objetos que representen una letra, un número, etc. Es decir, puedes usar variables o constantes que representen un valor alfanumérico. Pero ojo, cada variable sólo podrá almacenar un carácter.


Logicos o boolean:  El tipo de datos lógico es el que te permite usar variables que disponen sólo de dos posibles valores: cierto o falso. Debido a esto, su utilidad salta a la vista, y no es otra que variables de chequeo. Nos sirven para mantener el estado de un objeto mediante dos valores:



Si/no
Cierto/falso
Funciona/no funciona
On/off
etc.




TECNICAS DE DISEÑOS


Existen tres tipos de tecnicas, las cuales son:

TOP DOWN (Diseño descendente): Consiste en tomar el problema inicial y descomponerlo en problemas más pequeños, de solución sencilla es decir establece una serie de niveles de mayor a menor complegidad que den solucion al problema esta es una serie de descomposiciones secesivas del problema inicial.

Objetivos básicos:
  • Simplificación de problema y de los subprogramas de cada descomposición.
  • Las diferentes partes del problema pueden ser programadas de modo independiente e incluso por diferentes personas.
  • El programa final queda estructurado en forma de bloque o módulos lo que hace más sencilla su lectura y mantenimiento.

BOTTON UP: Consiste en partir de los detalles más precisos del algoritmo completando módulos de mayor complejidad – es inverso al anterior - .
WARNIER ORR: Utiliza una representación semejante a cuadros sinópticos para Mostar el funcionamiento y organización del algoritmo.

VARIABLES Y CONSTANTES


Variables

Una variable es un nombre asociado a un elemento de datos que está situado en posiciones contiguas de la memoria principal, y su valor puede cambiar durante la ejecución de un programa.



Constantes

Una constante es un dato cuyo valor no puede cambiar durante la ejecución del programa. Recibe un valor en el momento de la compilación y este permanece inalterado durante todo el programa.


Constantes literales
Son valores de cualquier tipo que se utilizan directamente, no se declaran ya que no tienen nombre.


Constantes declaradas
También llamadas constantes con nombre, son las que se declaran en la sección const asignándoles un valor directamente.


Constantes expresión
También se declaran en la sección const, pero a estas no se les asigna un valor directamente, sino que se les asigna una expresión. Esta expresión se evalúa en tiempo de compilación y el resultado se le asigna a la constante.


DIAGRAMA DE FLUJO


Un diagrama de flujo es una representación gráfica de un algoritmo o proceso. Se utiliza en disciplinas como la programación, la economía, los procesos industriales y la psicología cognitiva. Estos diagramas utilizan símbolos con significados bien definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de término. El cual muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema . Su correcta construcción es sumamente importante porque, a partir del mismo se escribe un programa en algún Lenguaje de Programación.


¿Qué Símbolos se Emplean en los Diagramas de Flujo?

Los símbolos tienen significados específicos y se conectan por medio de flechas que indican el flujo
entre los distintos pasos o etapas.
Los símbolos más comunes son : 











Ejemplo


     DIAGRAMA DE FLUJO  (Area de un triangulo)










ALGORITMO


Es un método paso a paso o bien una serie de instrucciones a seguir para llegar a una solución dichas instrucciones de pasos deberán ser finitas o finito.

CARACTERISTICAS PRINCIPALES DE UN ALGORITMO

  • FINITO: Las instrucciones o pasos deberán tener término o fin (un número determinado de instrucciones o pasos).
  • PRECISO: Dichas instrucciones o pasos deberán ser de forma concreta y los más claras posibles; de tal forma que al realizar el algoritmo más de una vez el resultado deberá ser el mismo.
  • CONSISO: El algoritmo deberá tener o ser lo más simplificado posible pero que de el resultado correcto.


     EJEMPLO

Algoritmo para cambiar la llanta a un automóvil:


1.       Se saca el gato hidráulico.
2.       Se coloca debajo del automóvil.
3.       Se levanta el auto.
4.       Se empiezan a destornillar los birlos.
5.       Se quita la llanta.
6.       Se procede a colocar la refacción.
7.       Se aprietan los birlos.
8.       Se baja el auto.
9.       Se saca el gato hidráulico
10.     Se aprieta nuevamente para asegurar la llanta al automóvil.


METODOLOGIA PARA LA SOLUCION DE PROBLEMAS



1. Definición del problema

Es el enunciado del problema, el cual debe ser claro y completo. Es fundamental conocer y delimitar por completo el problema, saber que es lo que se desea realice la computadora, mientras esto no se conozca del todo, no tiene caso continuar con el siguiente paso.


2. Análisis de la solución

Consiste en establecer una serie de preguntas acerca de lo que establece el problema, para poder determinar si se cuenta con los elementos suficientes para llevar a cabo la solución del mismo, algunas preguntas son:

¿Con qué cuento?
Cuáles son los datos con los que se va a iniciar el proceso, qué tenemos que proporcionarle a la computadora y si los datos con los que cuento son suficientes para dar solución al problema.

¿Qué hago con esos datos?
Una vez que tenemos todos los datos que necesitamos, debemos determinar qué hacer con ellos, es decir que fórmula, cálculos, que proceso o transformación deben seguir los datos para convertirse en resultados.

¿Qué se espera obtener?
Que información deseamos obtener con el proceso de datos y de qué forma presentarla; en caso de la información obtenida no sea la deseada replantear nuevamente un análisis en los puntos anteriores.

3. Diseño de la solución

Una vez definido y analizado el problema, se procede a la creación del algoritmo (Diagrama de flujo ó pseudocódigo), en el cual se da la serie de pasos ordenados que nos proporcione un método explícito para la solución del problema.


4. Codificación

Consiste en escribir la solución del problema (de acuerdo al pseudocódigo); en una serie de instrucciones detalladas en un código reconocible por la computadora; es decir en un lenguaje de programación (ya sea de bajo o alto nivel), a esta serie de instrucciones se le conoce como PROGRAMA.

5. Prueba y Depuración

Prueba es el proceso de identificar los errores que se presenten durante la ejecución del programa; es conveniente que cuando se pruebe un programa se tomen en cuenta los siguientes puntos:



  •  Tratar de iniciar la prueba con una mentalidad saboteadora, casi disfrutando la tarea de encontrar un error.


  •  Sospechar de todos los resultados que arroje la solución, con lo cual se deberán verificar todos.


  •  Considerar todas las situaciones posibles, normales y aún las anormales.

La Depuración consiste en eliminar los errores que se hayan detectado durante la prueba, para dar paso a una solución adecuada y sin errores.

6. Documentación

Es la guía o comunicación escrita que sirve como ayuda para usar un programa, o facilitar futuras modificaciones.

A menudo un programa escrito por una persona es usado por muchas otras, por ello la documentación es muy importante; ésta debe presentarse en tres formas: EXTERNA, INTERNA y AL USUARIO FINAL.

  • Documentación Interna

Consiste en los comentarios o mensajes que se agregan al código del programa, que explican las funciones que realizan ciertos procesos, cálculos o fórmulas para el entendimiento del mismo.

  • Documentación Externa

También conocida como Manual Técnico, está integrada por los siguientes elementos: Descripción del Problema, Nombre del Autor, Diagrama del Flujo y/o Pseudocódigo, Lista de variables y constantes, y Codificación del Programa, esto con la finalidad de permitir su posterior adecuación a los cambios.

  • Manual del Usuario

Es la documentación que se le proporciona al usuario final, es una guía que indica el usuario como navegar en el programa, presentando todas las pantallas y menús que se va a encontrar y una explicación de los mismos, no contiene información de tipo técnico.

7. Mantenimiento

Se lleva a cabo después de determinado el programa, cuando se ha estado trabajando un tiempo, y se detecta que es necesario hacer un cambio, ajuste y/o complementación al programa para que siga trabajando de manera correcta. Para realizar esta función, el programa debe estar debida mente documentado, lo cual facilitará la tarea.