DESARROLLO DEL APLICATIVO PARA EL CONTROL Y SEGUIMIENTO DE
LOS PROCESOS DE LA UNIDAD DE CERTIFICACIÓN DE LA
CORPORACIÓN COLOMBIA INTERNACIONAL CCI
PRISCILA ESPERANZA SÁENZ DUARTE
MAURICIO ANTONIO CASTRO ARIZA
UNIVERSIDAD SAN BUENAVENTURA
FACULTAD DE INGENIERÍA
INGENIERÍA DE SISTEMAS
BOGOTÁ DC
2008
DESARROLLO DEL APLICATIVO PARA EL CONTROL Y SEGUIMIENTO DE
LOS PROCESOS DE LA UNIDAD DE CERTIFICACIÓN DE LA
CORPORACIÓN COLOMBIA INTERNACIONAL CCI.
PRISCILA ESPERANZA SÁENZ DUARTE
MAURICIO ANTONIO CASTRO ARIZA
Proyecto de grado para optar por el título de
Ingeniero de Sistemas
Asesora
María Teresa Amorocho Gaviria
Ingeniero de Sistemas
UNIVERSIDAD SAN BUENAVENTURA
FACULTAD DE INGENIERÍA
INGENIERÍA DE SISTEMAS
BOGOTÁ DC
2008
TABLA DE CONTENIDO
pág.
INTRODUCCIÓN ................................................................................................ 1
1. DESCRIPCIÓN Y FORMULACIÓN DEL PROBLEMA ................................. 2
1.1 ANTECEDENTES ........................................................................................ 2
1.2 DESCRIPCIÓN DEL PROBLEMA .............................................................. 3
1.3 PREGUNTA DE INVESTIGACIÓN .............................................................. 4
1.4 JUSTIFICACIÓN ......................................................................................... 4
2. OBJETIVOS DE LA INVESTIGACIÓN ......................................................... 5
2.1 OBJETIVO GENERAL ................................................................................ 5
2.2 OBJETIVOS ESPECÍFICOS ....................................................................... 5
3. ALCANCES DEL PROYECTO ...................................................................... 6
3.1 ALCANCES ................................................................................................. 6
4. MARCO REFERENCIAL ............................................................................... 7
4.1 MARCO TEÓRICO - CONCEPTUAL .......................................................... 7
4.1.1 Metodología Extreme Programming ..................................................... 9
4.1.1.1 Planificación del proyecto (1 fase) ................................................... 10
4.1.1.2 Fase de Diseño (2 fase) ..................................................................... 12
4.1.1.3 Codificación (3 fase) .......................................................................... 14
4.1.1.4 Pruebas: (4 fase) ................................................................................ 15
4.1.2 Microsoft Solution Framework (MSF) ................................................. 19
4.1.3 Modelo Incremental .............................................................................. 22
4.1.4 Metodologías Ágiles y Tradicionales .................................................. 23
4.1.5 Bases de Datos ..................................................................................... 24
4.1.5.1 Sistema de Gestión de Bases de datos MYSQL .............................. 26
4.1.6 Lenguajes de Programación ................................................................ 27
4.1.6.1 Asp.Net ............................................................................................... 27
4.1.6.2 Java ..................................................................................................... 30
4.1.6.3 Ajax ..................................................................................................... 31
4.1.6.4 Php ...................................................................................................... 35
4.1.7 Sistema de administración de bases de datos ................................... 39
4.1.7.1 PhpMyAdmin ...................................................................................... 40
4.1.8 Herramienta para modelamiento de las bases de datos ................... 41
4.1.8.1 E- R Studio .......................................................................................... 41
4.2 MARCO NORMATIVO ............................................................................. 43
4.2.1 Reglamento Sistema de producción ecológica .................................. 43
4.2.2 Licenciamiento del software ................................................................ 44
4.2.2.1 Software Libre .................................................................................. 44
4.2.2.2 Licencia Pública General GNU (GNU GPL) .................................... 45
5. METODOLOGÍA .......................................................................................... 47
5.1 ENFOQUE DE INVESTIGACIÓN .............................................................. 47
5.2 LÍNEA DE INVESTIGACIÓN USB ............................................................ 47
5.3 TÉCNICAS DE RECOLECCIÓN DE INFORMACIÓN ............................... 47
5.4 HIPÓTESIS ................................................................................................ 48
5.5 VARIABLES .............................................................................................. 48
5.5.1 Variables dependientes ........................................................................ 48
5.5.2 Variables independientes ..................................................................... 48
6. DESARROLLO INGENIERIL ...................................................................... 49
6.1 PLANIFICACIÓN ....................................................................................... 49
6.1.1 Historias de Usuario ............................................................................. 50
6.1.2 Iteraciones ............................................................................................. 58
6.2 DISEÑO ..................................................................................................... 59
6.2.1 Base de datos ........................................................................................ 60
6.2.1.1 Modelo Conceptual ............................................................................ 60
6.2.1.2 Modelo Lógico .................................................................................... 61
6.2.1.3 Diccionario de la base de datos ....................................................... 62
6.2.2 Tarjetas CRC (Clases- Responsabilidades-Colaboradores) ............. 88
6.2.3 Bosquejo de las Interfaces del Aplicativo .......................................... 91
6.2.4 Tareas de las Historias de Usuario ..................................................... 96
6.3 CODIFICACIÓN ....................................................................................... 104
6.4 PRUEBAS ............................................................................................... 108
7. PRESENTACIÓN Y ANÁLISIS DE RESULTADOS .................................. 120
8. CONCLUSIONES ...................................................................................... 121
9. RECOMENDACIONES .............................................................................. 123
BIBLIOGRAFÍA .............................................................................................. 124
CIBERGRAFÍA ............................................................................................... 124
ANEXOS ......................................................................................................... 127
LISTA DE TABLAS
pág.
Tabla 1. Metodologías Ágiles y Metodologías Tradicionales ...................... 24
Tabla 2. Comparativo de Bases de Datos ..................................................... 25
Tabla 3. Comparativo de lenguajes de Programación ................................. 27
LISTA DE FIGURAS
pág.
Figura 1. Metodología Extreme Programming ................................................ 9
Figura 2. Metodología MSF ....................................................................... 20
Figura 3. Modelo Incremental .................................................................... 23
Figura 4. Microsoft.Net ................................................................................... 30
Figura 5. Tecnologías agrupadas bajo el concepto de ajax ........................ 32
Figura 6. Modelo tradicional de aplicación web y modelo propuesto por
ajax. .................................................................................................................. 34
Figura 7. Funcionamiento de las páginas php ............................................. 39
Figura 8. PhpMyAdmin ................................................................................... 41
LISTA DE ANEXOS
pág.
ANEXO A.SOLICITUD DEL SERVICIO DE CERTIFICACIÓN……...………..103
ANEXO B.VISITA INSCRIP. Y/O SEGUIMIENTO SERV.CERTIFICACIÓN..104
ANEXO C .MANUAL DE USUARIO……………………………..……...……….129
ANEXO D.MANUAL TÉCNICO…………………………………………………..156
Nota de Aceptación:
______________________________ ______________________________ ______________________________ ______________________________ ______________________________ ______________________________
______________________________ Firma del presidente del jurado
______________________________ Firma del jurado
______________________________ Firma del jurado
Bogotá D.C.18 de Noviembre de 2008
A Dios por ser el motor que nos impulsa a seguir adelante cumpliendo
nuestros propósitos, sin importar que tan grandes sean los obstáculos que se
nos presentan.
A nuestros hermosos padres : Santiago , Ramiro, Luz Marina y Deyanira ; por
el esfuerzo tan grande que han hecho para poder darnos el estudio,
inculcarnos el amor , la comprensión y todos aquellos valores que nosotros
desde niños hemos aprendido, nos han enseñado a no desfallecer en nuestros
sueños, en nuestras ilusiones tanto en lo personal como en lo profesional .
Siempre han querido para nosotros lo mejor; lo que somos ahora, es el reflejo
de la educación que recibimos en casa y en nuestra querida Universidad.
Los amamos con alma y corazón.
Priscila y Mauricio
AGRADECIMIENTOS
A Dios siempre le agradeceremos lo bueno que ha sido con nosotros, siempre
ha estado ahí, dándonos consuelo, fortaleza, alegrías a cada instante. Gracias
a Él porque hemos podido terminar una etapa más en nuestras vidas, gracias
por este equipo de trabajo que lo conformamos nosotros, hemos aprendido a
tenernos paciencia, compartir entre nosotros nuestros sueños, vivencias y
anhelos.
A nuestra querida Ingeniera María Teresa Amorocho por su apoyo, dedicación
y tiempo en la realización de este proyecto.
A nuestro querido Ingeniero Nelson Forero, que siempre se preocupó por el
cumplimiento de nuestro compromiso con la Universidad y la Corporación
Colombia Internacional.
A Patricia Carreño, nuestra querida docente de metodología, por brindarnos su
apoyo y ayuda en la redacción de este proyecto.
Al Ingeniero Rodrigo por su colaboración, paciencia y apoyo para el desarrollo
de este proyecto. Su conocimiento y experiencia fue de mucha enseñanza para
nosotros.
Gracias a Henry Gaitán, gran amigo, me apoyó mucho durante mi carrera, sus
consejos fueron siempre una ayuda para enfrentar diversos obstáculos que se
presentaron en mi desarrollo personal y profesional. Priscila.
A todos los profesores que de una u otra manera intervinieron en nuestra
formación profesional.
A todos nuestros compañeros, amigos y familiares que estuvieron con nosotros
durante la carrera profesional.
INTRODUCCIÓN
Durante los últimos años el mundo ha demostrado un interés por la producción
agropecuaria, utilizando sistemas alternativos de producción en armonía con el
medio ambiente, éste sistema es denominado agricultura orgánica, el cual
favorece también a los animales, porque se alimentan con estos productos y se
comercializan como producto ecológico, éste tipo de agricultura conlleva a la
conservación de los recursos naturales y mejorar las condiciones de vida.
Se consideran "orgánicos" aquellos alimentos, en donde ninguna etapa de su
producción intervienen fertilizantes, herbicidas o pesticidas químicos, así como
tampoco en los suelos donde son cultivados, esto los hace más saludables
para el consumo humano, a diferencia de los alimentos convencionales que
generan daños ecológicos y riesgos en la salud, por esto el consumo de
alimentos orgánicos ha aumentado.
Para que un producto pueda ser avalado como orgánico por un organismo que
tenga esta capacidad debe pasar por dos procesos fundamentales que son la
inspección y la certificación; en la inspección se evalúa si el proceso de la
producción cumple o no con los requisitos de la agricultura orgánica, una vez
validada esta inspección se determina si este proceso productivo puede ser
certificado; esto se hace con el fin de darle garantía al empresario y confianza
al consumidor. Dado este escenario de crecimiento, el uso de las tecnologías
de información y las comunicaciones son una herramienta fundamental en el
crecimiento de la productividad y la competitividad en las empresas
certificadoras de productos orgánicos en Colombia; la mayoría de estas
empresas, no tienen un sistema que agilice el control, generación de reportes y
manipulación de datos en los procesos de certificación de calidad ecológica,
como este aplicativo para el control y seguimiento de empresas agropecuarias
1
2
1. DESCRIPCIÓN Y FORMULACIÓN DEL PROBLEMA
1.1 ANTECEDENTES
En el mercado existe software que está orientado hacia el manejo de la
información de muchos tipos de empresas, pero ninguno satisface las
necesidades específicas de la Corporación Colombia Internacional CCI.
La CCI fue fundada en 1992, como iniciativa de los sectores público y privado
para impulsar la agricultura no tradicional de Colombia, mediante asistencia y
ayuda en ejecución de proyectos. Es una entidad autónoma de economía
mixta, sin ánimo de lucro, con 14 años de experiencia en el campo de los
negocios de agro exportación1. Desde su creación ha llevado todos sus
procesos de forma manual.
El objetivo de la CCI es promover el desarrollo y modernización del subsector
de agricultura no tradicional. Impulsa, anima y apoya la creación y desarrollo de
grupos regionales de trabajo incorporados a las cadenas productivas agrícolas,
desde el cultivo y pos cosecha hasta la comercialización2. La corporación
cumple con los requerimientos bajo la norma ISO 9001:2000.
1¿Quiénes somos? (Online- citado 05/04/07 5:00pm) Disponible en:http://www.cci.org.co/cci/cci_x/scripts/home.php?men=2&con=1&idHm=5&opc=99
2 Ibíd., p. 2.
3
1.2 DESCRIPCIÓN DEL PROBLEMA
La CCI desde su creación no ha implementado una solución informática que les
brinde apoyo en el cumplimiento de su labor. Como ya se mencionó el software
del mercado no cumple con las expectativas de la unidad de certificación de la
CCI, por lo que es necesario desarrollarlo a la medida.
Las "planillas de Excel" son especializadas para analizar información pero no
reemplazan las bases de datos, la posibilidad de errores voluntarios e
involuntarios y la falta de control es muy grande. Los costos por dichos errores
suelen ser muy altos y la mayoría de las veces mucho más, que el valor de una
solución integrada y confiable.
Para la verificación y consulta que realizan las empresas certificadas y en
proceso de certificación sobre su estado y demás información, el funcionario
de la CCI hace la consulta de forma manual, por lo tanto tarda en dar la
información porque no esta disponible en el momento en que la solicitan.
Los convenios entre la CCI y las empresas, pueden tener una larga y corta
duración, no existe un previo aviso de las renovaciones y vencimientos, el
funcionario encargado revisa la información de estas fechas de forma manual y
en algunos casos ya se han vencido.
4
Es necesario que se identifiquen indicadores de seguimiento y se generen
reportes donde se puedan visualizar, entre otra información saber cuáles son
las empresas pendientes por facturar, visitar, renovar, saber con cuántas
empresas activas o inactivas se cuenta y en qué municipios y ciudades están
ubicadas. Además de otros reportes y consultas necesarias para la adecuada
gestión de los procesos de la Corporación.
1.3 PREGUNTA DE INVESTIGACIÓN
¿Cómo diseñar e Implementar el aplicativo para el servicio de certificación de
producción ecológica en la unidad de certificación de la Corporación Colombia
Internacional?
1.4 JUSTIFICACIÓN
El número de empresas certificadas y en proceso de certificación va en
aumento, lo que hace que el manejo de la información de forma manual se
haga inmanejable, razón por la cual la CCI requiere implementar un aplicativo
que facilite y permita un adecuado control de la información de los procesos de
certificación, permita mejorar los tiempos de respuesta en los procesos internos
y en las solicitudes de información de las empresas citadas anteriormente.
La información se encontrará centralizada, permitiendo el fácil acceso a los
datos de cada una de las empresas. La Corporación será más competitiva con
el uso del aplicativo, además el aplicativo ayudará con el cumplimiento de los
requisitos del Sistema de Gestión de Calidad interno generando mayor
satisfacción a los clientes internos y externos.
5
2. OBJETIVOS DE LA INVESTIGACIÓN
2.1 OBJETIVO GENERAL
• Desarrollar el aplicativo para el control y seguimiento de los procesos de
la unidad de certificación de la Corporación Colombia Internacional CCI.
2.2 OBJETIVOS ESPECÍFICOS
• Analizar los subprocesos del servicio de certificación de calidad que se
llevan a cabo en la unidad de certificación en la corporación.
• Diseñar los módulos bajo una metodología de desarrollo de software.
• Diseñar la base de datos.
• Diseñar la interfaz gráfica del aplicativo.
• Implementar el aplicativo.
• Realizar pruebas.
• Realizar la documentación del aplicativo.
6
3. ALCANCES DEL PROYECTO
3.1 ALCANCES
Este proyecto culmina con el desarrollo del aplicativo para el seguimiento y
control del servicio de certificación de la unidad de certificación de la
Corporación Colombia Internacional, logrando así dedicar mayor tiempo en la
promoción del servicio, atender más clientes interesados en certificarse y
cumplir con el objeto misional de la unidad, minimizando los procesos
mecánicos y rutinarios.
El aplicativo cumple las siguientes funciones:
• Registro posibles clientes y/o empresas.
• Listado de los posibles clientes.
• Registro de Cotización.
• Agendar Visita.
• Registro de Unidad Productiva.
• Registro de Planta de Procesamiento.
• Registro de Comercializadora.
• Registro de Productores.
• Registro de Lotes.
• Registro de Proveedores.
• Gestión Auditaría Agrícola y/o Pecuaria.
7
• Gestión Auditaría Planta Procesamiento.
• Gestión Auditoría Comercializadora.
• Consultas y Reportes.
El aplicativo no contempla el desarrollo de los módulos cuentas por cobrar,
cuentas por pagar, facturación, contabilidad de la empresa y los informes de
activos e inversiones. Los procesos para la certificación comprenden dos fases:
Fase I: visita de inscripción y Fase II: Visitas de seguimiento (véase anexos).
4. MARCO REFERENCIAL
4.1 MARCO TEORICO – CONCEPTUAL
La Certificación es una herramienta que busca identificar en el mercado un
producto con un atributo específico, ofreciéndole respaldo y garantía al
empresario agropecuario y confianza al consumidor, propósito y destino final
de todo producto. La Certificación Orgánica es un procedimiento que
garantiza que un determinado producto animal, vegetal, equipos y proceso de
producción, cumplen con las normas de un Organismo regulador orgánico acreditado, que es una entidad autorizada por un ente competente como lo es
el Ministerio de Agricultura y Desarrollo Rural. Este organismo extiende el
certificado de producción, procesamiento o comercialización ecológica, una vez
se cumpla con los requerimientos se obtiene un producto con uno o varios
atributos de calidad ecológica que es la totalidad de los rasgos y
características de un producto o servicio que se sustenta en su habilidad para
satisfacer las necesidades establecidas implícitas.
8
Las metodologías de desarrollo de software definen un conjunto distinto de
actividades, acciones, tareas, fundamentos y productos de trabajo que se
requieren para desarrollar software de alta calidad, proporcionan una guía útil
para el desarrollo y además ofrecen estabilidad, control y organización a las
actividades.
Para el desarrollo del proyecto se empleó la metodología Extreme Programming (XP) que es una metodología para el desarrollo de software, se
implementó una base de datos que es un conjunto exhaustivo no redundante
de datos estructurados organizados independientemente de su utilización y su
implementación en computadores accesibles en tiempo real, la cual fue creada
por una herramienta de modelamiento, que ofrece mayor desempeño, mejor
diseño y comprensión en el modelado de datos, exportando los mismos a un
sistema de gestión de base de datos libre que son un tipo de software muy
especifico, que una vez obtenido, puede ser usado, copiado, estudiado,
modificado y redistribuido libremente.
Este sistema cuenta con una interfaz de usuario que es la forma en que los
usuarios pueden comunicarse con un computador y comprende todos los
puntos de contacto entre el usuario y el equipo, sus principales funciones son la
manipulación de archivos y directorios, herramientas de desarrollo de
aplicaciones, comunicación con otros sistemas, configuración de la propia
interfaz y entorno, intercambio de datos entre aplicaciones, control de acceso,
sistema de ayuda interactivo. Ésta interfaz de usuario se creó mediante la
herramienta de diseño de páginas web Adobe Dreamweaver CS3,creado
por diseñadores web profesionales , para diseñadores y desarrolladores que
ofrecen la posibilidad de trabajar en una interfaz de diseño visual intuitiva o en
un entorno de codificación agilizado. De forma rápida y sencilla se puede
diseñar, desarrollar y realizar el mantenimiento integral de sitios y aplicaciones
web3, que permite un acceso en línea desde cualquier computador a la red
corporativa por parte de usuarios válidos en el sistema y con la posibilidad de
accederlo desde Internet por medio del sitio Web.
4.1.1 Metodología Extreme Programming. Es una de las metodologías de
desarrollo de software más exitosas en la actualidad utilizada para proyectos
de corto plazo. La metodología consiste en una programación rápida o
extrema, cuya particularidad es tener como parte del equipo, al usuario final,
pues es uno de los requisitos para llegar al éxito del proyecto.
Figura 1. Metodología Extreme Programming
Fuente: http://libreclic.files.wordpress.com/2008/02/metodologia-xp.png
3 Adobe Dreamweaver CS3. (Online- citado 12/06/07 11:30 am). Disponible en: (http://www.adobe.com/education/products/dreamweaver/)
9
10
Las 4 fases de la metodología XP (Extreme Programming):
4.1.1.1 Planificación del proyecto. (1 fase)
Historias de usuario. El primer paso de cualquier proyecto que siga la
metodología XP es definir las historias de usuario con el cliente. Las
historias de usuario tienen la misma finalidad que los casos de uso pero con
algunas diferencias: Constan de 3 ó 4 líneas escritas por el cliente en un
lenguaje no técnico sin mucho detalles; no se debe hablar ni de posibles
algoritmos para su implementación ni de diseños de base de datos
adecuados, entre otras. Son usadas para estimar tiempos de desarrollo de
la parte de la aplicación que describen. También se utilizan en la fase de
pruebas, para verificar si el programa cumple con lo que especifica la
historia de usuario. Cuando llega la hora de implementar una historia de
usuario, el cliente y los desarrolladores se reúnen para concretar y detallar
lo que tiene que hacer dicha historia. El tiempo de desarrollo ideal para una
historia de usuario es entre 1 y 3 semanas.
Release planning o Release plan. Después de tener definidas las
historias de usuario es necesario crear un plan de publicaciones, donde se
indiquen las historias de usuario que se crearán para cada versión del
programa y las fechas en las que se publicarán estas versiones. Un
"Release plan" es una planificación donde los desarrolladores y clientes
establecen los tiempos de implementación ideales de las historias de
usuario, la prioridad con la que serán implementadas y las historias que
serán implementadas en cada versión del programa. Después de un
"Release plan" tienen que estar claros estos cuatro factores: los objetivos
que se deben cumplir (que son principalmente las historias que se deben
11
desarrollar en cada versión), el tiempo que tardarán en desarrollarse y
publicarse las versiones del programa, el número de personas que
trabajarán en el desarrollo y cómo se evaluará la calidad del trabajo
realizado......
Iteraciones. Todo proyecto que siga la metodología XP se ha de dividir en
iteraciones de aproximadamente 3 semanas de duración. Al comienzo de
cada iteración los clientes deben seleccionar las historias de usuario
definidas en el "Release planning" que serán implementadas. También se
seleccionan las historias de usuario que no pasaron el test de aceptación
que se realizó al terminar la iteración anterior. Estas historias de usuario son
divididas en tareas de entre 1 y 3 días de duración que se asignarán a los
programadores.
Velocidad del proyecto. La velocidad del proyecto es una medida que
representa la rapidez con la que se desarrolla el proyecto; estimarla es muy
sencillo, basta con contar el número de historias de usuario que se pueden
implementar en una iteración; de esta forma, se sabrá el cupo de historias
que se pueden desarrollar en las distintas iteraciones. Usando la velocidad
del proyecto controlaremos que todas las tareas se puedan desarrollar en el
tiempo del que dispone la iteración. Es conveniente reevaluar esta medida
cada 3 ó 4 iteraciones y si se aprecia que no es adecuada hay que negociar
con el cliente un nuevo "Release Plan".
Programación en pareja. La metodología aconseja la programación en
parejas pues incrementa la productividad y la calidad del software
desarrollado. El trabajo en pareja involucra a dos programadores trabajando
12
en el mismo equipo; mientras uno codifica haciendo hincapié en la calidad
de la función o método que está implementando, el otro analiza si ese
método o función es adecuado y está bien diseñado. De esta forma se
consigue un código y diseño con gran calidad.
Reuniones diarias. Es necesario que los desarrolladores se reúnan
diariamente y expongan sus problemas, soluciones e ideas de forma
conjunta. Las reuniones tienen que ser fluidas y todo el mundo tiene que
tener voz y voto.
4.1.1.2 Fase de Diseño (2 fase).
Diseños simples. La metodología sugiere que hay que conseguir diseños
simples y sencillos. Hay que procurar hacerlo todo lo menos complicado
posible para conseguir un diseño fácilmente entendible e implementable
que a largo plazo costará menos tiempo y esfuerzo desarrollar.
Glosarios de términos. Usar glosarios de términos y una correcta
especificación de los nombres de métodos y clases ayudará a comprender
el diseño y facilitará sus posteriores ampliaciones y la reutilización del
código.
13
Riesgos. Si surgen problemas potenciales durante el diseño, XP sugiere
utilizar una pareja de desarrolladores para que investiguen y reduzcan al
máximo el riesgo que supone ese problema.
Funcionalidad extra. Nunca se debe añadir funcionalidad extra al
programa aunque se piense que en un futuro será utilizada. Sólo el 10% de
la misma es utilizada, lo que implica que el desarrollo de funcionalidad extra
es un desperdicio de tiempo y recursos.
Refactorizar. Es mejorar y modificar la estructura y codificación de códigos
ya creados sin alterar su funcionalidad, supone revisar de nuevo estos
códigos para procurar optimizar su funcionamiento. Es muy común reutilizar
códigos ya creados que contienen funcionalidades que no serán usadas y
diseños obsoletos. Esto es un error porque puede generar código
completamente inestable y muy mal diseñado; por este motivo, es necesario
refactorizar solamente cuando se va a utilizar código ya creado.
Tarjetas C.R.C. El uso de las tarjetas C.R.C (Class, Responsabilities and
Collaboration) permiten al programador centrarse y apreciar el desarrollo
orientado a objetos olvidándose de los malos hábitos de la programación
procedural clásica. Las tarjetas C.R.C representan objetos; la clase a la que
pertenece el objeto se puede escribir en la parte de arriba de la tarjeta, en
una columna a la izquierda se pueden escribir las responsabilidades u
objetivos que debe cumplir el objeto y a la derecha, las clases que
colaboran con cada responsabilidad.
14
4.1.1.3 Codificación (3 fase). A la hora de codificar una historia de usuario la
presencia del cliente es aún más necesaria. Los clientes son los que crean las
historias de usuario y negocian los tiempos en los que serán implementadas.
Antes del desarrollo de cada historia de usuario el cliente debe especificar
detalladamente lo que ésta hará y también tendrá que estar presente cuando
se realicen los test que verifiquen que la historia implementada cumple la
funcionalidad especificada.
La codificación debe hacerse ateniendo a estándares de codificación ya
creados. Programar bajo estándares mantiene el código consistente y facilita
su comprensión y escalabilidad.
XP opta por la programación en pareja ya que permite un código más eficiente
y con una gran calidad, sugiere un modelo de trabajo usando repositorios de
código dónde las parejas de programadores publican cada pocas horas sus
códigos implementados y corregidos junto a los test que deben pasar. De esta
forma el resto de programadores que necesiten códigos ajenos trabajarán
siempre con las últimas versiones. Para mantener un código consistente,
publicar un código en un repositorio es una acción exclusiva para cada pareja
de programadores.
Esta metodología también propone un modelo de desarrollo colectivo en el que
todos los programadores están implicados en todas las tareas; cualquiera
puede modificar o ampliar una clase o método de otro programador si es
necesario y subirla al repositorio de código. El permitir al resto de los
programadores modificar códigos que no son suyos no supone ningún riesgo
15
ya que para que un código pueda ser publicado en el repositorio tiene que
pasar los test de funcionamiento definidos para el mismo.
La optimización del código siempre se debe dejar para el final. Hay que hacer
que funcione y que sea correcto, más tarde se puede optimizar, afirma que la
mayoría de los proyectos que necesiten más tiempo extra que el planificado
para ser finalizados no podrán ser terminados a tiempo se haga lo que se haga,
aunque se añadan más desarrolladores y se incrementen los recursos. La
solución que plantea XP es realizar un nuevo "Release plan" para concretar los
nuevos tiempos de publicación y de velocidad del proyecto.
A la hora de codificar no se sigue la regla de XP que aconseja crear test de
funcionamiento con entornos de desarrollo antes de programar. Los test se
obtienen de la especificación de requisitos ya que en ella se especifican las
pruebas que deben pasar las distintas funcionalidades del programa,
procurando codificar pensando en las pruebas que debe pasar cada
funcionalidad.
4.1.1.4 Pruebas (4 fase). Uno de los pilares de la metodología XP es el uso de
test para comprobar el funcionamiento de los códigos que se vaya
implementando.
.El uso de los test en XP es el siguiente:
• Se deben crear las aplicaciones que realizarán los test con un entorno
de desarrollo específico para test.
• Hay que someter a test las distintas clases del sistema omitiendo los
métodos más triviales.
16
• Se deben crear los test que pasarán los códigos antes de
implementarlos; en el apartado anterior se explicó la importancia de
crear antes los test que el código.
• Un punto importante es crear test que no tengan ninguna dependencia
del código que en un futuro evaluará. Hay que crear los test
abstrayéndose del futuro código, de esta forma se asegura la
independencia del test respecto al código que evalúa.
Los distintos test se deben subir al repositorio de código acompañados del
código que verifican. Ningún código puede ser publicado en el repositorio sin
que haya pasado su test de funcionamiento, de esta forma, asegura el uso
colectivo del código.
El uso de los test es adecuado para observar la refactorización. Los test
permiten verificar que un cambio en la estructura de un código no tiene porqué
cambiar su funcionamiento.
Test de aceptación: Los test mencionados anteriormente sirven para evaluar
las distintas tareas en las que ha sido dividida una historia de usuario. Para
asegurar el funcionamiento final de una determinada historia de usuario se
deben crear "Test de aceptación"; estos test son creados y usados por los
clientes para comprobar que las distintas historias de usuario cumplen su
cometido.
17
Al ser las distintas funcionalidades de la aplicación no demasiado extensas, no
se harán test que analicen partes de las mismas, sino que las pruebas se
realizarán para las funcionalidades generales que debe cumplir el programa
especificado en la descripción de requisitos4
Características de XP, la metodología se basa en:
• Pruebas Unitarias: se basa en las pruebas realizadas a los principales
procesos, de tal manera que se puedan detectar las fallas que pudieran
ocurrir.
• Refabricación: se basa en la reutilización de código, para lo cual se
crean modelos estándares, siendo más flexible al cambio.
• Programación en pares: Una particularidad de esta metodología es
que propone la programación en pares, la cual consiste en que dos
desarrolladores participen en un proyecto en una misma estación de
trabajo. Cada miembro lleva a cabo la acción que el otro no está
haciendo en ese momento.
4 Fases de la programación extrema. (Online- citado 12/06/07 3:30pm). Disponible en: http://programacionextrema.tripod.com/fases.htm
18
XP propone
• Empieza en pequeño y añade funcionalidad con retroalimentación
continua.
• El manejo del cambio se convierte en parte sustantiva del proceso
• El costo del cambio no depende de la fase o etapa
• No introduce funcionalidades antes que sean necesarias
• El cliente o el usuario se convierte en miembro del equipo.
Derechos del Cliente
• Decidir que se implementa
• Saber el estado real y el progreso del proyecto
• Añadir, cambiar o quitar requerimientos en cualquier momento
• Obtener lo máximo de cada semana de trabajo
• Obtener un sistema funcionando cada 3 ó 4 meses.
Derechos del Desarrollador
• Decidir cómo se implementan los procesos
• Pedir al cliente en cualquier momento aclaraciones de los
requerimientos
19
• Estimar el esfuerzo para implementar el sistema
• Cambiar los requerimientos en base a nuevos descubrimientos
Lo fundamental en este tipo de metodología es:
• La comunicación, entre los usuarios y los desarrolladores
• La simplicidad, al desarrollar y codificar los módulos del sistema
• La retroalimentación, concreta y frecuente del equipo de desarrollo, el
cliente y los usuarios finales
4.1.2 Microsoft Solution Framework (MSF)5. Esta es una metodología
flexible e interrelacionada con una serie de conceptos, modelos y prácticas de
uso, que controlan la planificación, el desarrollo y la gestión de proyectos
tecnológicos. MSF se centra en los modelos de proceso y de equipo dejando
en un segundo plano las elecciones tecnológicas. (Ver Figura 2)
5 Microsoft Framework MSF (Online citado 13/06/07 5:00pm). Disponible en: http://www.incom.cl/implementacion.html
Figura 2. Metodología MSF
Fuente:http://www.microsoft.com/technet/prodtechnol/exchange/guides/ExMgmtGuide/62fab0e
2-a570-4921-a0f1-7fdc6ffff2a9.mspx?mfr=true
MSF tiene las siguientes características:
• Adaptable: Es parecido a un compás, usado en cualquier parte como un
mapa, del cual su uso es limitado a un específico lugar.
• Escalable: Puede organizar equipos tan pequeños entre 3 ó 4 personas,
así como también, proyectos que requieren 50 personas o más.
• Flexible: Es utilizada en el ambiente de desarrollo de cualquier cliente.
• Tecnología Agnóstica: Porque puede ser usada para desarrollar
soluciones basadas en cualquier tecnología.
20
21
MSF se compone de varios modelos encargados de planificar las diferentes
partes implicadas en el desarrollo de un proyecto: Modelo de Arquitectura del
Proyecto, Modelo de Equipo, Modelo de Proceso, Modelo de Gestión del
Riesgo, Modelo de Diseño de Proceso y finalmente el modelo de Aplicación.
• Modelo de Arquitectura del Proyecto: Diseñado para acortar la
planificación del ciclo de vida. Este modelo define las pautas para
construir proyectos empresariales a través del lanzamiento de versiones.
• Modelo de Equipo: Este modelo ha sido diseñado para mejorar el
rendimiento del equipo de desarrollo. Proporciona una estructura flexible
para organizar los equipos de un proyecto. Puede ser escalado
dependiendo del tamaño del proyecto y del equipo de personas
disponibles.
• Modelo de Proceso: Diseñado para mejorar el control del proyecto,
minimizando el riesgo, y aumentar la calidad acortando el tiempo de
entrega. Proporciona una estructura de pautas a seguir en el ciclo de
vida del proyecto, describiendo las fases, las actividades, la liberación de
versiones y explicando su relación con el Modelo de equipo.
• Modelo de Gestión del Riesgo: Diseñado para ayudar al equipo a
identificar las prioridades, tomar las decisiones estratégicas correctas y
controlar las emergencias que puedan surgir. Este modelo proporciona
un entorno estructurado para la toma de decisiones y acciones
valorando los riesgos que puedan provocar.
22
• Modelo de Diseño del Proceso: Diseñado para distinguir entre los
objetivos empresariales y las necesidades del usuario. Proporciona un
modelo centrado en el usuario para obtener un diseño eficiente y flexible
a través de un enfoque iterativo. Las fases de diseño conceptual, lógico
y físico proveen tres perspectivas diferentes para los tres tipos de roles:
los usuarios, el equipo y los desarrolladores.
• Modelo de Aplicación: Diseñado para mejorar el desarrollo, el
mantenimiento y el soporte, proporciona un modelo de tres niveles para
diseñar y desarrollar aplicaciones software. Los servicios utilizados en
este modelo son escalables, y pueden ser usados en un solo ordenador
o incluso en varios servidores.
4.1.3 Modelo Incremental6. El modelo incremental corrige la necesidad de
una secuencia no lineal de pasos de desarrollo. En el modelo incremental se va
creando el sistema software añadiendo componentes funcionales al sistema
(llamados incrementos). En cada paso sucesivo, se actualiza el sistema con
nuevas funcionalidades o requisitos, es decir, cada versión o refinamiento parte
de una versión previa y le añade nuevas funciones. El sistema software ya no
se ve como una única entidad monolítica con una fecha fija de entrega, sino
como una integración de resultados sucesivos obtenidos después de cada
iteración.
El modelo incremental se ajusta a entornos de alta incertidumbre, por no tener
la necesidad de poseer un conjunto exhaustivo de requisitos, especificaciones
y diseños al comenzar el sistema, ya que cada refinamiento amplía los
requisitos y las especificaciones derivadas de la fase anterior.
6 Modelo Incremental (Online - citado 13/06/07 7:30pm). Disponible en: http://www.ra-ma.es/cf/html/catalogo/libros/down/adaigGS.pdf
El modelo incremental constituyó un avance sobre el modelo en cascada, pero
también presenta problemas. Aunque permite el cambio continuo de requisitos,
aún existe el problema de determinar si los requisitos propuestos son válidos.
Los errores en los requisitos se detectan tarde y su corrección resulta tan
costosa como en el modelo en cascada. (Ver figura 3)
Figura 3. Modelo Incremental
Fuente: http://bp1.blogger.com/.../s1600/INCREMENTAL.JPG
4.1.4 Metodologías Ágiles y Tradicionales7. La evolución de la disciplina de
ingeniería de software ha traído consigo propuestas diferentes para mejorar los
resultados del proceso de construcción. Las metodologías tradicionales hacen
énfasis en la planeación, y las metodologías ágiles en la adaptabilidad del
proceso.
7 Metodologías Ágiles y Tradicionales (Online -citado 14/06/07 5:00pm).Disponible en: www.acis.org.co/index.php?id=551
23
24
Tabla 1. Metodologías Ágiles y Metodologías Tradicionales Metodologías Ágiles Metodologías Tradicionales
Basadas en heurísticas provenientes de prácticas de producción de código
Basadas en normas provenientes de estándares seguidos por el entorno de desarrollo
Especialmente preparados para cambios durante el proyecto
Cierta resistencia a los cambios
Impuestas internamente (por el equipo)
Impuestas externamente
Proceso menos controlado, con pocos principios
Proceso mucho más controlado, con numerosas políticas/normas
No existe contrato tradicional o al menos es bastante flexible
Existe un contrato prefijado
El cliente es parte del equipo de desarrollo
El cliente interactúa con el equipo de desarrollo mediante reuniones
Grupos pequeños (<10 integrantes) y trabajando en el mismo sitio
Grupos grandes y posiblemente distribuidos
Pocos artefactos Más artefactos Pocos roles Más roles Menos énfasis en la arquitectura del software
La arquitectura del software es esencial y se expresa mediante modelos
4.1.5 Bases de Datos. Ante la demanda de soluciones informáticas han
surgido multitud de gestores de bases de datos, siendo estos programas que
permiten manejar la información de modo sencillo y que prestan servicios para
el desarrollo y el manejo de bases de datos. (Ver Tabla 2).
25
Tabla 2. Comparativo de Bases de Datos.
Características Mysql Firebird Postgresql
Procedimientos Almacenados
Si Si Si
Escalabilidad Si Si Si
Concurrencia Si Si Sí
Triggers Si Si Si
Estabilidad Alta Alta Media
Replicación Sí Si Sí
Seguridad Alta Media Media/alta
Bloqueo de registros
Sí No Sí
Plataformas Soportadas
Windows 2000 Windows XP Windows Server2003
Linux, Mac OS.
Windows 2000 Windows XP Windows Server2003
Linux, Mac OS.
Windows 2000 Windows XP Windows Server2003
Linux, Mac OS.
Velocidad Media/Alta Media/Alta Media
Licencias MySQL Dual Licensing
Model
Interbase Public License (PL)
BSD License
Lenguajes de programación
ODBC, JDBC, C/C++,.Net/Mono, ADO, OLE DB,Delphi,Perl, Python, PHP, .Net ,Java
ODBC, JDBC, C/C++, Python PHP, Perl, Delphi,.Net/Mono,ADO, Java
ODBC, JDBC, C/C++,Embeded SQL (in C), Java,Perl,Tcl/Tk, , Python,PHP
26
4.1.5.1 Sistema de Gestión de Bases de datos MYSQL8 Es un sistema de
gestión de bases de datos relacionales que almacena datos en tablas
separadas en lugar de poner todos los datos en un gran almacén, esto añade
velocidad y flexibilidad. La parte SQL de "MySQL" se refiere a "Structured
Query Language" (lenguaje estructurado de consulta). Es el lenguaje
estandarizado más común para acceder a bases de datos y está definido por el
estándard ANSI/ISO SQL.
Es Open Source, significa que es posible para cualquier persona usar y
modificar el software, usa la licencia GPL (GNU General Public License).
MySQL Server se desarrolló originalmente para tratar grandes bases de datos
mucho más rápido que soluciones existentes y ha sido usado con éxito en
entornos de producción de alto rendimiento durante varios años. Ofrece hoy en
día una gran cantidad de funciones, su conectividad, velocidad, y seguridad
hacen de MySQL Server altamente apropiado para acceder bases de datos en
Internet.
El software de bases de datos MySQL es un sistema cliente/servidor que
consiste en un servidor SQL multi-threaded que trabaja con diferentes bakends,
programas y bibliotecas cliente, herramientas administrativas y un amplio
abanico de interfaces de programación para aplicaciones (APIs).
8 Panorámica del sistema de gestión de base de datos MySQL (Online ‐ citado 13/06/07 7:00pm). Disponible en: (http://dev.mysql.com/doc/refman/5.0/es/what‐is.html)
27
4.1.6 Lenguajes de Programación. En programación web se creó la
necesidad de conocer diferentes lenguajes de programación como lo son Java,
PHP, Asp y otros más. A continuación se muestra un análisis comparativo
realizado sobre estos lenguajes de programación. (Ver Tabla 3).
Tabla 3. Comparativo de lenguajes de Programación
Características Java Php Asp.net
Sencillez No Sí No
Robustez Sí Menor Menor
Seguridad Si Si Si
Interpretado Si No No
Portabilidad Si Si Si
Threads Si Si Si
Garbage Collection Si No No
Excepciones Si Si Si
Licencia Libre Libre Microsoft
4.1.6.1 Asp.Net
Es un conjunto de tecnologías de desarrollo de aplicaciones Web
comercializado por Microsoft. Es usado por programadores para construir sitios
Web domésticos, aplicaciones Web y servicios XML. Forma parte de la
plataforma .NET de Microsoft y es la tecnología sucesora de la tecnología
Active Server Pages (ASP). Grandes corporaciones optan por utilizar esta
tecnología para el desarrollo de sus aplicaciones interdepartamentales, páginas
28
web e intranets gracias a su seguridad, escalabilidad y disponibilidad,
simplicidad y fácil uso.
Los Servicios Web son la más innovadora tecnología para los negocios en la
Web. Los Servicios Web XML utilizan tecnologías programables y reutilizables
que aprovechan la flexibilidad de Internet. Con ellos es posible tener una
infinidad de aplicaciones conectados en red, ya sea que se ejecuten en
diferentes plataformas, proporcionando información a todos sus clientes, socios
de negocios y empleados. (Ver figura 4).
Se ha construido bajo los siguientes principios:
• Facilidad de desarrollo. Los "server controls", permiten a modo de
etiquetas HTML tener controles manejados por el servidor que
identifican el navegador usado adaptándose para cada navegador,
posibilidad de elección del lenguaje de programación, por defecto lleva
integrado C#, VB.NET y J#, pero se podría usar otro lenguaje.
• Alto rendimiento y escalabilidad. El código es compilado para ser
ejecutado en el CLR. Puede optar por tenerlo en el servidor
precompilado o dejar que el servidor lo compile la primera vez que lo
ejecute. El resultado es de 3 a 5 veces superior en velocidad que las
antiguas páginas ASP. El uso adecuado del potente caché incorporado
aumenta el rendimiento y la escalabilidad de la aplicación. La caché
permitirá acceder desde páginas completas a partes completas,
pasando por conjuntos de datos extraídos de la base de datos.
29
• Mejora de la fiabilidad. Es capaz de detectar pérdidas de memoria,
problemas con bloqueos y protección ante caídas. También puede,
detectar aplicaciones web que pierden memoria, arrancando otro
proceso limpio con una nueva instancia de la aplicación para cerrar la
que pierde memoria liberando así la memoria perdida.
• Fácil distribución e instalación. Una aplicación ASP.NET se instala
fácilmente, copiando los ficheros que la componen. No es necesario
registrar ningún componente, solo copiar los ficheros al web. Puede
recompilar la aplicación o enviar nuevos ficheros sin necesidad de
reiniciar la aplicación ni el servidor web. 9
9 vista general de asp.net (online - citado 20/06/07 4:20pm). disponible en: (http://www.webestilo.com/aspnet/aspnet01.phtml)
Figura 4. Microsoft .Net
Fuente: Desarrollo de software(www.capris.es/imagenes/esquema_net.jpg)
4.1.6.2 Java.10Es un lenguaje de programación orientado a objetos
desarrollado por Sun Microsystems, está compuesta básicamente por 2
elementos: el lenguaje Java y su plataforma, es una plataforma virtual de
software (Java Virtual Machine), desarrollada de tal manera que los programas
creados en ella puedan ejecutarse sin cambios en diferentes tipos de
arquitecturas y dispositivos computacionales.
10 ¿Qué es Java? (online - citado 20/06/07 5:45pm). disponible en: (http://todojava.awardspace.com/)
30
31
Hoy en día, la tecnología Java ha cobrado mucha importancia en el ámbito de
Internet gracias a su plataforma J2EE. Pero Java no se queda ahí, ya que en la
industria para la programación dispositivos móviles también usa en gran
medida este lenguaje.
Una de las principales características que favoreció el crecimiento y difusión del
lenguaje Java es su capacidad de que el código fuente funcione sobre
cualquier plataforma de software y hardware, es decir, un mismo programa
puede ejecutarse en varios sistemas sin tocar el código fuente.
4.1.6.3 Ajax.11 AJAX es un acrónimo de Asynchronous JavaScript + XML,
que se puede traducir como "JavaScript asíncrono + XML". Ajax no es una
tecnología en sí mismo, se trata de varias tecnologías independientes que se
unen de formas nuevas, incluyendo:
• XHTML y CSS, para crear una presentación basada en estándares.
• DOM, para la interacción y manipulación dinámica de la presentación.
• XML, XSLT y JSON, para el intercambio y la manipulación de
información.
• XMLHttpRequest, para el intercambio asíncrono de información.
• JavaScript, para unir todas las demás tecnologías.
Cuando estas tecnologías se combinan en el modelo AJAX, las aplicaciones
web son capaces de hacer rápidas actualizaciones incrementales a la interfaz
de usuario sin volver a cargar la totalidad de páginas del navegador. Esto hace
11 Introducción a Ajax. (Online - citado 19/04/08 10:00am). Disponible en: (http://www.librosweb.es/ajax/capitulo1.html)
que la aplicación sea más rápida y más sensible a las acciones del usuario. 12(Ver figura 6).
Figura 5. Tecnologías agrupadas bajo el concepto de AJAX
Fuente: (http://www.librosweb.es/ajax/capitulo1.html)
En las aplicaciones web tradicionales, las acciones del usuario en la página
(pulsar en un botón, seleccionar un valor de una lista, entre otras)
desencadenan llamadas al servidor. Una vez procesada la petición del usuario,
el servidor devuelve una nueva página HTML al navegador del usuario.
La técnica tradicional para crear aplicaciones web funciona correctamente, pero
no crea una buena sensación al usuario. Al realizar peticiones continuas al
servidor, el usuario debe esperar a que se recargue la página con los cambios
12 Ajax: getting started. (online - citado 19/04/08 11:00am). disponible en:
(http://developer.mozilla.org/en/docs/ajax)
32
33
solicitados. Si la aplicación debe realizar peticiones continuas, su uso se
convierte en algo incomodo para el usuario. (Ver figura 7, lado izquierdo)
AJAX permite mejorar completamente la interacción del usuario con la
aplicación, evitando las recargas constantes de la página, ya que el intercambio
de información con el servidor se produce en un segundo plano.
Las aplicaciones construidas con AJAX eliminan la recarga constante de
páginas mediante la creación de un elemento intermedio entre el usuario y el
servidor. La nueva capa intermedia de AJAX mejora la respuesta de la
aplicación, ya que el usuario nunca se encuentra con una ventana del
navegador vacía esperando la respuesta del servidor.
Las peticiones HTTP al servidor se sustituyen por peticiones JavaScript que se
realizan al elemento encargado de AJAX. Las peticiones más simples no
requieren intervención del servidor, por lo que la respuesta es inmediata. Si la
interacción requiere una respuesta del servidor, la petición se realiza de forma
asíncrona mediante AJAX. En este caso, la interacción del usuario tampoco se
ve interrumpida por recargas de página o largas esperas por la respuesta del
servidor. (Ver figura 7, lado derecho)
Desde su aparición, se han creado cientos de aplicaciones web basadas en
AJAX. En la mayoría de casos, éste puede sustituir completamente a otras
técnicas como Flash. Además, en el caso de las aplicaciones web más
avanzadas, pueden llegar a sustituir a las aplicaciones de escritorio.
Algunas de las aplicaciones más conocidas basadas en AJAX son:
• Gestores de correo electrónico: Gmail, Yahoo Mail, Windows Live Mail.
• Cartografía: Google Maps, Yahoo Maps, Windows Live Local.
• Aplicaciones web y productividad: Google Docs, Zimbra, Zoho.
• Otras: Netvibes (metapágina), Digg (noticias), Meebo (mensajería), 30
Boxes (calendario), Flickr (fotografía).
Figura 6. Modelo tradicional de aplicación web y del nuevo modelo propuesto por AJAX.
Fuente: http://www.librosweb.es/ajax/capitulo1.html
34
35
4.1.6.4 Php.13 Es un lenguaje de programación usado frecuentemente para la
creación de contenido para sitios Web con los cuales se puede programar las
páginas html y los códigos de fuente, se trata de un lenguaje interpretado
usado para la creación de aplicaciones para servidores, o creación de
contenido dinámico para sitios Web.
Un lenguaje del lado del servidor es aquel que se ejecuta en el servidor web,
justo antes de que se envíe la página a través de Internet al cliente. Las
páginas que se ejecutan en el servidor pueden realizar accesos a bases de
datos, conexiones en red, y otras tareas para crear la página final que verá el
cliente. El cliente solamente recibe una página con el código HTML resultante
de la ejecución de la PHP. Como la página resultante contiene únicamente
código HTML, es compatible con todos los navegadores, PHP se escribe
dentro del código HTML, es independiente de plataforma, puesto que existe un
módulo de PHP para casi cualquier servidor web. Esto hace que cualquier
sistema pueda ser compatible con el lenguaje y significa una ventaja
importante, ya que permite portar el sitio desarrollado en PHP de un sistema a
otro sin prácticamente ningún trabajo. (Ver figura 5)
Existen tres campos en los que se usan scripts escritos en PHP:
• Scripts del lado del servidor. Este es el campo más tradicional y el
principal foco de trabajo. Se necesitan tres cosas para que esto
funcione. El intérprete PHP (CGI o módulo), un servidor web y un
navegador. Es necesario correr el servidor web con PHP instalado. El
13 Qué es PHP? (Online - citado 20/06/07 8:15pm). Disponible en: (http://www.desarrolloweb.com/articulos/392.php)
36
resultado del programa PHP se puede obtener a través del navegador,
conectándose con el servidor web.
• Scripts en la línea de comandos. Puede crear un script PHP y correrlo
sin ningún servidor web o navegador. Solamente necesita el intérprete
PHP para usarlo de esta manera. Este tipo de uso es ideal para scripts
ejecutados regularmente desde cron (en *nix o Linux) o el Planificador
de tareas (en Windows). Estos scripts también pueden ser usados para
tareas simples de procesamiento de texto.
• Escribir aplicaciones de interfaz gráfica. Puede utilizar PHP-GTK
para escribir dichos programas. También es posible escribir aplicaciones
independientes de una plataforma. PHP-GTK es una extensión de PHP,
no disponible en la distribución principal.
Puede ser utilizado en cualquiera de los principales sistemas operativos
incluyendo Linux, muchas variantes Unix (incluyendo HP-UX, Solaris y
OpenBSD), Microsoft Windows, Mac OS X, RISC OS y otros. PHP soporta la
mayoría de servidores web actuales, incluyendo Apache, Microsoft Internet
Information Server, Personal Web Server, Netscape e iPlanet, Oreilly Website
Pro server, Caudium, Xitami, OmniHTTPd y muchos otros. Este lenguaje tiene
módulos disponibles para la mayoría de los servidores, para aquellos otros que
soporten el estándar CGI, PHP puede usarse como procesador CGI.
37
También tiene la posibilidad de usar programación procedimental o
programación orientada a objetos. Aunque no todas las características
estándar de la programación orientada a objetos están implementadas en la
versión actual de PHP, muchas bibliotecas y aplicaciones grandes (incluyendo
la biblioteca PEAR) están escritas íntegramente usando programación
orientada a objetos. No se encuentra limitado a resultados en HTML. Entre las
habilidades de PHP se incluyen: creación de imágenes, archivos PDF y
películas Flash (usando libswf y Ming) sobre la marcha, también puede
presentar otros resultados, como XHTM y archivos XML, autogenera éstos
archivos y los almacena en el sistema de archivos en vez de presentarlos en la
pantalla. 14
• Ventajas:
• Muy fácil de aprender.
• Se caracteriza por ser un lenguaje muy rápido.
• Soporta en cierta medida la orientación a objeto. Clases y herencia.
• Es un lenguaje multiplataforma: Linux, Windows, entre otros.
• Capacidad de conexión con la mayoría de los manejadores de base de
datos: MysSQL, PostgreSQL, Oracle, MS SQL Server, entre otras.
• Capacidad de expandir su potencial utilizando módulos.
• Posee documentación en su página oficial la cual incluye descripción y
ejemplos de cada una de sus funciones.
• Es libre, por lo que se presenta como una alternativa de fácil acceso
para todos.
• Incluye gran cantidad de funciones.
14 Qué se puede hacer con php. (Online - citado 20/06/07 9:00pm). Disponible en:
(http://www.php.net/manual/es/intro-whatcando.php)
38
• No requiere definición de tipos de variables ni manejo detallado del bajo
nivel.
• Desventajas:
• Se necesita instalar un servidor web.
• Todo el trabajo lo realiza el servidor y no delega al cliente. Por tanto
puede ser más ineficiente a medida que las solicitudes aumenten de
número.
• La legibilidad del código puede verse afectada al mezclar sentencias
HTML y PHP.
• La programación orientada a objetos es aún muy deficiente para
aplicaciones grandes.
• Dificulta la modularización.
• Dificulta la organización por capas de la aplicación.
Seguridad. PHP es un poderoso lenguaje intérprete, ya sea incluido como
parte de un servidor web en forma de módulo o ejecutado como un binario CGI
separado, es capaz de acceder a archivos, ejecutar comandos y abrir
conexiones de red en el servidor. Estas propiedades hacen que cualquier cosa
que sea ejecutada en un servidor web sea insegura por naturaleza. Está
diseñado específicamente para ser un lenguaje más seguro para escribir
programas CGI que Perl o C, y con la selección correcta de opciones de
configuración en tiempos de compilación y ejecución, y siguiendo algunas
prácticas correctas de programación. 15
15 Lenguajes de programación para la web. (Online - citado 03/07/07 10:00pm). Disponible en: (http://www.maestrosdelweb.com/principiantes/los-diferentes-lenguajes-de-programacion-para-la-web/)
Figura 7. Funcionamiento de las páginas Php
Fuente: http://www.desarrolloweb.com/articulos/392.php
4.1.7 Sistema de administración de bases de datos
4.1.7.1 PhpMyAdmin. Es un sistema de administración de bases de datos sql
con un sistema visual sencillo de manejar, es una herramienta escrita en PHP
destinado a manejar la administración de MySQL sobre la Web. Actualmente
se pueden crear bases de datos y eliminarlas, crear / eliminar / modificar tablas,
borrar / editar / añadir campos, ejecutar cualquier sentencia SQL, administrar
39
40
las llaves en campos, administrar privilegios, exportar datos en varios
formatos.16 (Ver figura 8).
Características de phpMyAdmin más importantes:
• Administración completa de las Bases de Datos.
• Administración completa de las Tablas.
• Ejecuta sentencias SQL.
• Exporta datos a diferentes formatos.
• Administra usuarios y privilegios de MySQL.
• Es un Administrador Multiplataforma.
• Es Multilenguaje, ya que se encuentra en este momento traducido en
más de 50 lenguajes diferentes.
• Esta herramienta se encuentra bajo la Licencia GNU/GPL (GNU General
Public License).
• Escrito en el lenguaje de programación PHP4 compatible con PHP5.
16 Project Info. (Online - citado 25/04/08 10:00am). Disponible en:
(http://www.phpmyadmin.net/home_page/index.php)
Figura 8. PhpMyAdmin
Fuente: www.cci.org.co/ http://190.24.138.27/phmyadmin/
4.1.8 Herramienta para modelamiento de las bases de datos
4.1.8.1 E - R Studio. Embarcadero ER / Studio, un líder en la industria de la
herramienta de modelado de datos, ayuda a las empresas a descubrir,
documentar, y reutilizar los activos de información, tiene el poder de realizar
fácilmente la ingeniería inversa, analizar y optimizar las bases de datos
existentes17Mediante sus capacidades de modelado empresarial y
17 Herramienta de modelado de datos para el diseño y la comprensión de sus bases de datos. (Online - citado 26/04/08 8:00am). Disponible en: (http://www.embarcadero.com/products/erstudio/)
41
42
colaboración ayuda a las organizaciones a tener un acercamiento global a dos
importantes aspectos de la administración de datos: la reducción de riesgos
asociados a la seguridad de la información y el mejoramiento de la calidad del
modelo de los datos.
Para auxiliar al cumplimiento de regulaciones y reducir el riesgo de robo de
información, las organizaciones están formalizando los procesos
gubernamentales de información. Para dar soporte a éstas iniciativas,
Embarcadero ER/Studio introduce propiedades para categorizar y etiquetar los
datos y objetos, de acuerdo al nivel de seguridad y privacidad que debe ser
aplicado a la información. Cuando esto se reúne con las capacidades analíticas
y reporteo integral de ER/Studio, las organizaciones pueden descubrir y
documentar su información clave de manera mucho más sencilla.
43
4.2 MARCO NORMATIVO
4.2.1 Reglamento Sistema de producción ecológica. Con el fin de proteger
a los consumidores, se han establecido normas y leyes en el sector
agropecuario para regular el sistema de producción ecológica.
MINISTERIO DE AGRICULTURA Y DESARROLLO RURAL
Dirección de desarrollo tecnológico y protección sanitaria
Programa nacional de agricultura ecológica
Resolución 0187 de Julio de 2006. Decreto No. 2478 de 1999.
Reglamento para la producción primaria, procesamiento, empacado,
etiquetado, almacenamiento, certificación, importación y comercialización de
Productos Agropecuarios Ecológicos.
Los sistemas de producción ecológica tienen como objetivo garantizar la
sostenibilidad y renovabilidad de la base natural, mejorar la calidad del
ambiente mediante limitaciones en la utilización de tecnologías, fertilizantes o
plaguicidas, antibióticos y otros de origen químico sintético, que puedan tener
efectos nocivos para el medio ambiente y la salud humana.
En la resolución se describen los principios, directrices, normatividad y
requisitos mínimos que deben cumplir los operadores para la producción
primaria, procesamiento, empacado, etiquetado, almacenamiento, certificación,
importación y comercialización interna de productos obtenidos mediante
sistemas de producción agropecuaria ecológica, así como los organismos de
control y el sistema de control para dichos productos.
44
El reglamento se aplicará en todo el territorio nacional a los sistemas de
producción y comercialización de productos ecológicos provenientes de:
a) Productos agrícolas vegetales no transformados, productos pecuarios no
transformados y los provenientes de aprovechamiento pesquero y acuícola.
b) Productos procesados destinados a la alimentación humana derivados de
los productos indicados en el literal a).
c) Productos alimenticios importados, de conformidad con lo establecido en la
Resolución que adopta el Reglamento.
4.2.2 Licenciamiento del software
4.2.2.1 Software Libre.18 Software Libre se refiere a la libertad de los usuarios
para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software. La
libertad para usar un programa significa la libertad para cualquier persona u
organización de usarlo en cualquier tipo de sistema informático, para cualquier
clase de trabajo, y sin tener obligación de comunicárselo al desarrollador o a
alguna otra entidad específica. Distribuir copias libremente debe incluir tanto
las formas binarias o ejecutables del programa como su código fuente, sean
versiones modificadas o sin modificar (distribuir programas de modo ejecutable
es necesario para que los sistemas operativos libres sean fáciles de instalar).
Si no hay manera de producir un binario o ejecutable de un programa concreto
(ya que algunos lenguajes no tienen esta capacidad), debe tener la libertad de
distribuir estos formatos si encontrara o desarrollara la manera de crearlos.
18 Software Libre (Online - citado 17/08/08 2:00pm) Disponible en: http://www.gnu.org/philosophy/free-sw.es.html
45
Cuatro libertades de los usuarios del software:
• Libertad 0: La libertad de usar el programa, con cualquier propósito.
• Libertad 1: La libertad de estudiar cómo funciona el programa, y
adaptarlo a las necesidades del usuario. El acceso al código fuente es
una condición previa para esto.
• Libertad 2: La libertad de distribuir copias, con lo que se puede ayudar a
otro usuario que lo necesite.
• Libertad 3: La libertad de mejorar el programa y hacer públicas las
mejoras a los demás, de modo que toda la comunidad se beneficie. El
acceso al código fuente es un requisito previo para esto.
4.2.2.2 Licencia Pública General GNU (GNU GPL).19 Es una licencia libre, sin
derechos para software y otro tipo de trabajos. La Licencia Pública General
GNU persigue garantizar su libertad para compartir y modificar todas las
versiones de un programa y asegurar que permanecerá como software libre
para todos sus usuarios, caso contrario a las licencias para la mayoría de
software y otros trabajos prácticos están destinados a suprimir la libertad de
compartir y modificar esos trabajos. La Fundación de Software Libre, usa la
Licencia GNU para la mayoría de su software; y también se aplica a cualquier
trabajo realizado de la misma forma por sus autores.
19 Licencia Pública GNU (Online - citado 17/08/08 2:00pm) .Disponible en: http://www.viti.es/gnu/licenses/gpl.html
46
Los desarrolladores que usen la GPL GNU protegen sus derechos de dos
formas:
1. Imponen derechos al software.
2. Le ofrecen esta licencia para que legalmente lo copie, distribuya y/o
modifique.
Para proteger a desarrolladores y autores, la GPL expone claramente que no
existe garantía alguna para este software libre. Para beneficio de ambos,
usuarios y autores, la GPL establece que las versiones modificadas deberán
estar identificadas como tales, para que cualquier problema no sea atribuido
por error a los autores de versiones anteriores.
Todo programa está constantemente amenazado por las patentes de software.
Los estados no deberían permitir que las patentes restrinjan el desarrollo y el
uso de software en ordenadores de uso general; pero en aquellos que lo
hagan, se espera evitar el especial peligro que suponen las patentes, que
aplicadas a un programa libre puedan hacerlo propietario en la práctica. Para
prevenir eso, la GPL establece que las patentes no pueden usarse para
convertir un programa en no-libre.
5. METODOLOGÍA
5.1 ENFOQUE DE INVESTIGACIÓN
Empírico – Analítico. Ya que por medio del análisis de los
procesos, se llega al desarrollo de un aplicativo que solucionará el
problema planteado en el proyecto.
5.2 LÍNEA DE INVESTIGACIÓN USB
Línea de investigación. Tecnologías actuales y sociedad.
Sub-línea de investigación. Sistemas de información y comunicación.
Campo temático de investigación. Almacenamiento de Información.
5.3 TÉCNICAS DE RECOLECCIÓN DE INFORMACIÓN
Para el desarrollo del proyecto se acudió a las técnicas de recolección de
información como entrevistas por medio de las historias de usuario, que se
realizaron a los funcionarios de la unidad de certificación para conocer los
procesos explícitos e implícitos y hacer análisis a la información recolectada.
Se analizaron los documentos históricos y archivos que se encuentran en la
unidad de certificación de la Corporación.
47
48
5.4 HIPÓTESIS
Mediante este software se permitirá generar reportes, hacer seguimiento y
control de la información de los procesos de certificación para la unidad de
certificación de la Corporación Colombia Internacional.
5.5 VARIABLES
5.5.1 Variables dependientes. Proceso sistematizado de la información.
5.5.2 Variables independientes. Número de empresas certificadas y en
proceso de certificación manual.
49
6. DESARROLLO INGENIERIL
Para el desarrollo de este proyecto se decidió por la metodología XP (Extreme
Programming), la cual comprende 4 fases para su implementación:
planificación, diseño, desarrollo y pruebas.
6.1 PLANIFICACIÓN
Al inicio del proyecto se indagó acerca de los procesos de control y
seguimiento de las empresas certificadas y en proceso de certificación con los
usuarios de la unidad. Se determinaron los nombres para cada una de las
historias de usuario y se inició el desarrollo de las mismas por parte de los
funcionarios de la unidad, donde se describieron los procesos de cada etapa
del servicio de certificación, se determinaron fechas de entrega y de pruebas
realizando reuniones diarias. Se asignaron las historias de usuario a cada
iteración.
Posteriormente se analizó la información contenida en las historias de usuario
para así detallar las tareas e iniciar con el desarrollo.
6.1.1 Historias de Usuario
Historia de Usuario 1. Registro posibles clientes y/o empresas
Historia de Usuario 2. Listado de posibles clientes
50
Historia de Usuario 3. Registro de Cotización
Historia de Usuario 4. Agendar Visita
51
Historia de Usuario 5. Registro de Unidad Productiva
Historia de Usuario 6. Registro de Planta de Procesamiento
52
Historia de Usuario 7. Registro de Comercializadora
Historia de Usuario 8. Registro de productores
53
Historia de Usuario 9. Registro de Lotes
Historia de Usuario 10. Registro de Proveedores
54
Historia de Usuario11. Gestionar Auditoría Agrícola y/o Pecuaria
Historia de Usuario 12. Gestionar Auditoría Planta Procesamiento
55
Historia de Usuario 13. Gestionar Auditoría Comercializadora
Historia de Usuario 14. Reporte Ministerio de Agricultura
56
Historia de Usuario 15. Reporte tareas pendientes de los clientes
Historia de Usuario 16. Reporte de Renovación de Convenios
57
58
6.1.2 Iteraciones
Cada iteración corresponde a un periodo de tiempo de desarrollo de las
historias de usuario, en este proyecto las historias de usuario se trabajaron
cada una durante 4 días, incluídas las pruebas de aceptación y las reuniones
diarias.
Iteración 1:
Creación y modificación de: Menús, calendario Ajax, cabezote y pie de
página.
Registro posibles clientes y/o empresas.
Listado de los posibles clientes.
Iteración 2: Registro de Cotización.
Agendar visita.
Registro de Unidad Productiva.
Iteración 3:
Registro de Planta de Procesamiento.
Registro de Comercializadora.
Registro de Productores.
59
Iteración 4:
Registro de Lotes.
Registro de Proveedores.
Gestionar auditoría Agrícola y/o Pecuaria.
Iteración 5: Gestionar Auditoría Planta de Procesamiento.
Gestionar Auditoría Comercializadora.
Reporte Ministerio Agricultura.
Iteración 6: Reporte Tareas Pendientes de los clientes.
Reporte de Renovación de convenios.
6.2 DISEÑO.
Teniendo en cuenta el resultado del análisis en la fase de planificación se
procedió a hacer el modelamiento de la base de datos con la herramienta E/R
Studio. Luego se realizaron las tarjetas CRC donde se describe la actividad
realizada en el desarrollo del proyecto, con el objetivo de proponer clases,
responsabilidades y colaboradores para el funcionamiento del aplicativo.
Posteriormente se hicieron los bosquejos de las interfaces gráficas diseñadas
para la aplicación final y se desarrolló cada una de las tareas pendientes de las
historias de usuario.
6.2.1 Base de datos.
6.2.1.1 Modelo Conceptual
60
6.2.1.2 Modelo Lógico.
61
6.2.1.3 Diccionario de la base de datos.
Tabla cer_aditivo
Descripción de atributos:
Id_aditivo: Código que identifica a un aditivo
Aditivo: Nombre del aditivo que utilizan en el procesamiento de un producto
ecológico.
Tabla cer_agenda_inspección
62
Descripción de atributos:
Id_agenda: Identifica a una agenda de visita.
Actividad1, actividad2, actividad3, actividad4: Nombre de las actividades a
realizar en la visita.
Descripción 1, descripción 2, descripción 3, descripción 4: Descripción de
cada actividad.
Fecha 1 Hora 1, fecha 2 Hora2, fecha 3 Hora 3, fecha 4 Hora 4: Fecha en la
que se debería iniciar cada actividad.
Participante: Nombres de las personas que asisten en cada actividad.
Fecha_ini - Fecha_fin: El inicio y fin de la agenda de visita
Id_empresa: Código que identifica a la empresa a la cual se le hace la agenda
de visita.
Objetivo: Descripción de los objetivos a desarrollar en la visita.
Alcance: Descripción de los alcances definidos en la agenda de visita.
Tabla cer_almacenamiento
Descripción de atributos:
Id_almacenamiento: Código que identifica a un almacenamiento de un insumo
prohibido que se encontró durante la auditoria.
63
Tipo_evidencia: Describe el tipo de evidencia que fue encontrada en la
auditoria, tales como: fotos, frascos, residuos, etc.
Observación: Describe las observaciones sobre las evidencias encontradas.
Imagen: Archivos de imagen, que es tomada, si se encuentra algún tipo de
evidencia sobre insumos prohibidos.
Marca_insumo: Nombre de la marca del insumo prohibido.
Id auditoria: Identificación única de auditoría.
Id_insumo: Identificación única del insumo.
Tabla cer_aseo
Descripción de atributos:
Id_aseo: Código que identifica el producto utilizado para limpieza.
Marca_insumo: Nombre comercial del insumo que se utiliza para la limpieza y
desinfección de utensilios, equipos, e instalaciones en las comercializadoras.
Lugar_aplicación: Describe el lugar donde se aplicó el insumo.
Cantidad: Describe la cantidad suministrada del insumo para la limpieza.
Frecuencia: Describe la frecuencia del uso del insumo.
64
Ficha: Si posee o no una ficha técnica del producto que se utiliza para la
limpieza.
Num_veces: Describe el número de veces de la aplicación del insumo.
Id_insumo: Llave foránea que relaciona a un insumo con la tabla aseo.
Id auditoria: Llave foránea que relaciona una auditoria con la tabla aseo.
Tabla cer_auditoría
Descripción de atributos:
Id auditoria: Código que identifica a una auditoria.
Id_tipo_auditoria: Describe el tipo de auditoría: pecuaria, agrícola,
comercializadora, procesamiento, unidad productiva
Clase: Nombre de la clase de auditoría: si es auditoria de inscripción o
auditoria de seguimiento.
Fecha_ini – fecha fin: Inicio y fin de la auditoria. 65
66
Duración_auditoría: Los días que se demora el auditor realizando la auditoria.
Número_auditores: El número de auditores que realizan la auditoría.
Representante 1, representante 2, representante 3: Los nombres de los
representantes de la empresa, que asisten a la auditoria.
Repre_proyecto_eco: Nombre del representante del proyecto ecológico.
Cargo_repre: Cargo en el que se desempeña el representante del proyecto.
Cedula_repre: Identificación del representante
Cargo 1, cargo 2, cargo 3: Cargos que desempeñan cada uno de los
representantes en la empresa.
Antecedentes: Descripción donde hace referencia en caso de seguimiento, a
lo sucedido en la visita anterior.
Id_unidad: Llave foránea que relaciona la auditoria con una unidad productiva.
Id_comercializadora: Llave foránea que relaciona la auditoria con una
comercializadora
Id_planta: Llave foránea que relaciona la auditoria con una planta de
procesamiento.
Documentos_entregados: Describe todos los documentos que se entregan
en el momento de la auditoría.
Tabla cer_auditoría_auditor
Descripción de atributos:
Id_auditoria_auditor: Identificación única de auditoría con auditor.
Id_agenda: Llave foránea que relaciona una agenda de visita con la tabla
auditoría_auditor.
Id auditoria: Llave foránea que relaciona una auditoria con la tabla
auditoría_auditor.
Codusuario: Código que identifica al auditor dentro de la base de datos de la
Corporación Colombia Internacional.
Tabla cer_certificación:
Descripción atributos:
Id_certificación: Identificación única que se le asigna a las empresas que
entran al proceso de certificación.
Id_empresa: Llave foránea que relaciona una empresa con la tabla
certificación.
67
Tabla cer_comercializadora
Descripción de atributos:
Id_comercializadora: Identificación única de una comercializadora.
Nombre_mapa_comercia: Nombre de la imagen de la comercializadora.
Mapa_almacen: Imagen de la comercializadora.
Nomdepto: Llave foránea que relaciona un departamento con la tabla
comercializadora
Nommpio: Llave foránea que relaciona un municipio con la tabla
comercializadora
Dirección: Dirección donde queda ubicado la comercializadora.
Teléfono: Número telefónico de la comercializadora.
Id_empresa: Llave foránea que identifica a una empresa con la tabla
comercializadora.
Nombre_comercializadora: Nombre de la comercializadora.
Vereda: Nombre de la vereda o barrio donde queda ubicada la
comercializadora.
Productos: Describe los productos que se están comercializando.
68
Tabla cer_control_plaga
Descripción de atributos:
Id_control_plaga: Identificación única del producto utilizado para el control de
plagas.
Ingrediente: Nombre del ingrediente activo del insumo que se está utilizando.
Marca_insumo: Nombre del insumo que se utiliza para el control de plagas.
Frecuencia: Describe la frecuencia del uso del insumo.
Ficha: Si posee o no una ficha técnica del producto que se utiliza para el
control de plagas.
Num_veces: Describe el número de veces de la aplicación del insumo.
Id_insumo: Llave foránea que relaciona a un insumo con la tabla
control_plaga.
Id_auditoria: Llave foránea que relaciona una auditoria con la tabla
control_plaga.
69
Tabla cer_cotización
Descripción de atributos:
Id_cotización: Identificación única de una cotización.
Id_empresa: Llave foránea que relaciona una empresa con la tabla cotización.
Unidades_productivas: Numero de unidades productivas a cotizar.
Ubicación_unidades: Lugar donde están ubicados las unidades productivas.
Num_productores: Número de productores que están a cargo de la unidad
productiva.
Productos: describe los productos que se van a certificar en la unidad
productiva.
Nacional: Describe si los productos son comercializados a nivel nacional
Internacional: Describe si los productos son comercializados a nivel
internacional
Tiempo_inscripcion: Los días de la visita de inscripción
70
Tiempo_seguimiento: Los días de la visita de seguimiento.
Valor_inscripción: El costo por día de la visita de inscripción
Valor_ seguimiento: El costo por día de la visita de seguimiento.
Financiamiento: Describe el pago del servicio de certificación, se hace a
contado o por cuotas.
Cuotas: El numero de cuotas a financiar.
Fecha_vencimiento: Fecha en la cual se vence la cotización.
Fecha_sistema: Fecha en la cual se hizo la cotización.
Aceptación: Describe sí aceptó la cotización o no.
Observaciones: En el caso de que no haya aceptado la cotización, se indaga
el motivo, por el cual no fue aceptada la cotización.
Tabla cer_empresa
71
72
Descripción de atributos:
Id_empresa: Identificación única de una empresa.
Nit: Numero del Nit de la empresa.
Nombre_empresa: Nombre de la empresa
Teléfono: Número telefónico de la empresa.
Fax: Numero fax de la empresa.
Dirección: Dirección donde está ubicada la empresa.
Mail: Correo electrónico de la empresa.
Nomdepto: Llave foránea del departamento donde está ubicada la empresa.
Nommpio: Llave foránea del municipio donde está ubicada la empresa.
Vereda: Nombre de la vereda o barrio donde está ubicada la empresa.
Sancionado: Describe si la empresa ha sido sancionada o no.
Apoyada_por: Nombre de la empresa que apoya a la empresa que está en el
proceso de certificación.
Centro _costo: Número que se le asigna para llevar el control de pagos.
Legal_representante: Nombre del representante legal de la empresa.
Legal_cedula: Numero de cedula del representante legal de la empresa.
Contacto_cedula: Numero de cedula de la persona a contactar de la empresa.
Contacto_nombre: Nombre de la persona a contactar para el proceso de
certificación.
Contacto_cargo: Cargo de la persona que es el contacto de la empresa.
Contacto_telefono: Número telefónico del contacto de la empresa.
Contacto_celular: Numero celular del contacto de la empresa.
Contacto_fax: Numero fax del contacto de la empresa.
Contacto_mail: Correo electrónico del contacto de la empresa.
Contacto_dirección: Dirección del contacto de la empresa.
Estado: Estado en el que se encuentra la empresa, si está activo o inactivo.
Fecha_sistema: Fecha en la cual se registra a la empresa.
Tabla cer_gestión
Descripción de atributos:
Id_gestión: Identificación única de una gestión.
Avances: Describe los avances de las tareas resultantes de las no
conformidades
Gestor: Describe el método de valoración de cada uno de los recursos.
Fecha_sistema: fecha en la que se registra la auditoria.
Observaciones: Describe las observaciones hechas por el auditor de cada
recurso.
73
Nombre_imagen: Nombre de la imagen del recurso.
Imagen: Archivo de la imagen del recurso.
Acción: Describe la acciones correctivas por los recursos evaluados como no
conformes
Fecha_cumplimiento: Fecha en la cual, se debe cumplir la acción correctiva.
Responsable: Nombre del responsable del cumplimiento de las acciones
correctivas.
Id auditoria: Llave foránea que relaciona una auditoria con la tabla gestión.
Id_recurso: Llave foránea que relaciona un recurso con la tabla gestión.
Tabla cer_insumo
Descripción de atributos:
Id_insumo: Identificación única de un insumo.
Insumo: Nombre del insumo. Ej. Fertilizantes.
74
Tabla cer_lote
Descripción de atributos:
Id_lote: Identificación única de un lote
Id_unidad: Llave foránea que relación una unidad con la tabla lote.
Manejo_anterior: Se selecciona si el tipo de manejo anterior en el lote era
ecológico, conversión o convencional.
Manejo_actual: Se selecciona si el tipo de manejo del lote actualmente es
ecológico, conversión o convencional.
Cultivo_anterior: Cultivo cosechado anteriormente en el lote.
Área: El numero de área del lote a certificar.
Capacidad: El numero de la capacidad total del lote.
Nombre_lote: Nombre del lote.
75
Tabla cer_pais
Descripción de atributos:
Cod_pais: Código del país
Nombre: Nombre del país
Clasificación: Clasificación de destino del viaje de los funcionarios de la CCI
(no aplica en el aplicativo).
Continente: Continente donde está ubicado el país.
Tabla cer_periodo_conversión
Descripción de atributos:
Id_periodo_conversión: Identificación única del periodo de conversión.
Id auditoria: Llave foránea relaciona una auditoria con la tabla
periodo_conversion
Id_lote: Llave foránea que relaciona un lote con la tabla periodo_conversion
Conversión: Periodo de conversión sugerido: 1 año a 3 años.
Fecha_inicio: Fecha de inicio del periodo de conversión
76
Fecha_fin: Fecha de fin del periodo del periodo de conversión.
Tabla cer_planta
Descripción de atributos:
Id_planta: Identificación única de una planta de procesamiento.
Nombre_mapa: Nombre de la imagen de la planta de procesamiento.
Nombre_planta: Nombre de la planta de procesamiento.
Dirección: Dirección donde queda ubicado la planta de procesamiento.
Nomdepto: Llave foránea que relaciona un departamento con la tabla planta.
Teléfono: Número telefónico de la planta de procesamiento.
Nommpio: Llave foránea que relaciona un municipio con la tabla planta.
Vereda: Nombre de la vereda o barrio donde queda ubicada la planta de
procesamiento.
Id_empresa: Llave foránea que identifica a una empresa con la tabla planta.
Mapa_almacen: Imagen de la planta de procesamiento.
77
Tabla cer_planta_producto
Descripción de atributos:
Id_planta_producto: Identificación única de una planta de procesamiento con
producto
Presentación: Presentación del producto a distribuir. Ej.: frasco
Produccion_ano: Número de la producción anual del producto.
Toneladas/año.
Id_planta: Llave foránea que relaciona una planta con la tabla planta_producto.
Procesado: Nombre del producto procesado. Ej.: Mermelada de uva.
Id_proveemateria: Llave foránea que relaciona el proveedor de la materia
prima con la tabla planta_producto.
Tabla cer_producto
Descripción de atributos:
Id_producto: Identificación única de un producto.
Clasificación: Nombre de la clase de producto: pecuaria o agrícola.
Producto: Nombre del producto.
78
Tipo: Selecciona el nombre del producto. Ej.: Hortalizas, forestal.
Tabla cer_producto_lote
Descripción de atributos:
Id_producto_lote: Identificación única de un lote con producto
Id_producto: Llave foránea que relaciona el producto con la tabla
producto_lote.
Principal: Nombre del cultivo principal dentro del lote.
Fecha_siembra: Fecha en el que se sembró el producto.
Fecha_cosecha: Fecha en el que se cosechó el producto.
Características_suelo: Características del suelo, donde se cultiva el producto.
Producción: Producción actual del producto cultivado en el lote.
Toneladas/año.
79
Producción_esperada: Producción esperada del producto cultivado en el lote.
Toneladas/año.
Id_lote: Llave foránea que relaciona el lote con la tabla producto_lote.
Mercado_destino: Describe si la producción es distribuida a nivel nacional o
internacional.
Comprador_area_certificada: Nombre del comprador de los productos
certificados.
Resolución: Hace referencia al cumplimiento de la resolución 187/06 del
reglamento sistema de producción ecológica.
UE: Distribuye a la Unión Europea.
NOP: Distribuye a Norteamérica.
JAS: Distribuye a Japón.
Uso_sello: Hace referencia al uso del sello ecológico.
Comprador_área_conversión: Nombre del comprador de los productos en
conversión.
Cantidad_lotes: Numero de lotes.
Num_cabezas: Numero de cabezas, sí el lote contiene animales.
Tabla cer_proveedor_materiaprima
80
Descripción de atributos:
Id_proveemateria_prima: Identificación única del proveedor con el producto.
Nombre_proveedor: Nombre del proveedor
Volumen_anual: Volumen anual de cada producto que distribuye el proveedor.
Certificado: Sí el producto que distribuye el proveedor tiene certificado
ecológico o certificado en conversión.
Entidad_certificadora: Nombre de la entidad certificadora, en el cual se
encuentra certificado el producto.
Fecha_vencimiento: Fecha de vencimiento del certificado.
Observaciones: Describe las observaciones por parte del funcionario de la
Unidad de certificación de la Corporación.
Id_producto: Llave foránea que relaciona el producto con la tabla
proveedor_materiaprima.
Tabla cer_recurso
Descripción de los atributos:
Id_recurso: Identificación única de un recurso.
Recurso: Describe los ítems a evaluar.
Artículo: Describe el artículo del reglamento del sistema de producción
ecológica relacionada con cada recurso.
81
Abreviatura: Abreviatura del recurso, utilizada para fácil visualización en la
interfaz gráfica.
Tabla cer_sanciones
Descripción de atributos:
Id_sanciones: Identificación única de una sanción
Argumento: Describe el motivo por el cual la unidad, empresa, planta,
procesamiento fue sancionada.
Fecha_sancion - Fecha_fin_sancion: Duración de la sanción.
Id_empresa: Llave foránea que relaciona una empresa con la tabla sanciones
Id_unidad: Llave foránea que relaciona una unidad productiva con la tabla
sanciones
Id_comercializadora: Llave foránea que relaciona una comercializadora con la
tabla sanciones
Id_planta: Llave foránea que relaciona una planta de procesamiento con la
tabla sanciones.
82
Tabla cer_socio
Descripción de atributos:
Id_socio: Identificación única de un socio.
Fecha_vinculación: Fecha en la cual el socio se vinculó a la unidad
productiva.
Nombre_apellido: Nombres y apellidos del socio o productor.
Dirección: Dirección del socio o productor.
Teléfono: Número telefónico del socio o productor.
Celular: Numero celular del socio o productor.
Mail: Correo electrónico del socio productor.
Fax: Numero fax del socio o productor.
Nomdepto: Llave foránea que relación a un departamento con la tabla
cer_socio
Nommpio: Llave foránea que relación a un municipio con la tabla cer_socio
Vereda: Nombre de la vereda o barrio donde vive el socio o productor.
83
Id_unidad: Llave foránea que relaciona a una unidad productiva con la tabla
cer_socio.
Estado: Estado en el que se encuentra el socio o productor, si está activo o
inactivo.
Fecha_retiro: Fecha en la cual el socio o productor se retiró de la unidad
productiva.
Tabla cer_sugerencia
Descripción de atributos:
Id_sugerencia: Identificación única de una sugerencia
Sugerencia: Descripción de lo que sugiere el auditor en la auditoria.
Justificación: Describe el motivo de la sugerencia.
Fecha: Fecha de la sugerencia realizada.
Id auditoria: Llave foránea que relaciona una auditoria con la tabla
cer_sugerencia.
84
Tabla tdepto
Descripción de atributos:
Coddepto: Identificación única del departamento.
Nomdepto: Nombre del departamento.
Cod_pais: Llave foránea que relaciona un país con la tabla tdepto.
Tabla Tpolad
Descripción de atributos:
Coddepto: Llave foránea del departamento con la tabla Tpolad.
Codmuncpio: Identificación única de un municipio.
Nommpio: Nombre del municipio.
Clasificación: Clasificación de destino del viaje de los funcionarios de la CCI
(no aplica en el aplicativo).
85
Tabla cer_unidad_productiva
Descripción de atributos:
Id_unidad: Identificación única de una unidad productiva.
Sancionado: Describe si la unidad productiva ha sido sancionada o no.
Id_empresa: Llave foránea que relaciona la empresa con la tabla
cer_unidad_productiva.
Dirección: Dirección donde queda ubicada la unidad productiva.
Numero_productores: Número de productores que están a cargo de la unidad
productiva.
Nombre_unidad: Nombre de la unidad productiva.
Area_total: Área total de la unidad productiva.
Area_certificar: Área de la unidad productiva que se va a certificar.
Area_certificada: Área de la unidad productiva que se encuentra certificada.
Mapa: Archivo imagen de la unidad productiva.
Nomdepto: Nombre del departamento donde queda ubicada la unidad
productiva.
86
Nommpio: Nombre del municipio donde queda ubicada la unidad productiva.
Vereda: Nombre de la vereda o barrio donde queda ubicada la unidad
productiva.
Actividad_predios_vecinos: Descripción de la actividad a la que se dedica los
predios vecinos de la unidad productiva.
Observaciones: Descripción de las observaciones que realiza el funcionario
de la Unidad de Certificación de la Corporación.
Tabla cer_uso_aditivo
Descripción de atributos:
Id_uso_aditivo: Identificación única de un aditivo.
Dosis: Cantidad del aditivo utilizado en la elaboración de los productos.
Razón_uso: Describe el motivo por el cual se utiliza el aditivo.
Observación: Describe las observaciones acerca del uso del aditivo.
Prohibido: Selección para indicar si el aditivo es prohibido o no.
Id_aditivo: Llave foránea del aditivo con la tabla cer_uso_aditivo.
Id auditoria: Llave foránea de auditoría con la tabla cer_uso_aditivo.
87
Tabla cer_uso_insumo_prohibido
Descripción de atributos:
Id_uso_insumo: Identificación única de un uso insumo
Id auditoria: Llave foránea que relaciona auditoria con la tabla
cer_uso_insumo_prohibido
Cantidad: Cantidad utilizada del insumo prohibido.
Motivo: Describe el motivo por el cual se usó el insumo prohibido.
Id_lote: Foránea que relaciona lote con la tabla cer_uso_insumo_prohibido
Id_insumo: Foránea que relaciona insumo con la tabla
cer_uso_insumo_prohibido
Nombre_insumo: Nombre del insumo. Ej.: Insecticida.
Fecha_uso: Fecha en la cual se usó el insumo prohibido.
6.2.2 Tarjetas CRC (Clases- Responsabilidades-Colaboradores)
• Clase: Se definen las clases que se identificaron al analizar el proceso
de certificación.
• Responsabilidad: Una descripción del propósito de la clase.
88
89
• Colaborador: Se indica cuáles son las otras clases con las que se tiene
que trabajar para cumplir con las responsabilidades.
CLASE. MENU MENU
Responsabilidad Colaborador ‐ Desplegar las opciones.
‐ Llamar a la opción seleccionada
CLASE. GESTOR DE CAPTURA DE INFORMACIÓN GESTOR DE CAPTURA DE INFORMACIÓN
Responsabilidad Colaborador ‐ Capturar información de la empresa, unidad
productiva, planta procesamiento,
comercializadora, lote, proveedor, socio.
‐ Almacena la información en la B.D
‐ Mostrar la información capturada.
MENU
CLASE. COTIZACIÓN COTIZACIÓN
Responsabilidad Colaborador ‐ Registrar información específica de la empresa,
para evaluarlas en cotización.
‐ Calcular valores de servicio
‐ Verificación de aceptación de la cotización.
GESTOR DE CAPTURA DE INFORMACIÓN
90
CLASE. AGENDA AGENDA
Responsabilidad Colaborador ‐ Capturar información de fechas de visita
‐ Seleccionar auditores para visita.
‐ Generar código de certificación a empresas.
‐ Verificación de pago de factura.
GESTOR DE CAPTURA DE
INFORMACIÓN
CLASE 5. AUDITORIA AUDITORIA
Responsabilidad Colaborador ‐ Captura de información de las visitas hechas
en las unidades productivas,
comercializadoras , plantas de
procesamiento, lotes.
‐ Generar tareas para el cliente(Empresa)
- GESTOR DE CAPTURA DE INFORMACIÓN - AGENDA
6.2.3 Bosquejo de las Interfaces del Aplicativo.
Index aplicativo Unidad de Certificacion Corporacion Colombia Internacional
Registro de una nueva Empresa
91
(Continuación)
Registro de una nueva Unidad Productiva
92
Registro de una nueva Planta de Procesamiento
Registro de una nueva Comercializadora
93
Generacion de una Agenda de Visita
Lista de auditores
Lista de comercializadoras registradas
94
Lista de Empresas en proceso de certificacion
Lista de Plantas de Procesamiento
Lista de unidades productivas
95
96
6.2.4 Tareas de las Historias de Usuario
TareaNúmero tarea: Inicial Número historia: 0 Nombre tarea: Creación y modificación de: Menús, calendario Ajax, cabezote y pie de pagina Tipo de tarea : Desarrollo Puntos estimados:
Fecha inicio: 6 de mayo de 2008 Fecha fin: 11 de agosto de 2008
Programador responsable: Priscila Sáenz – Mauricio Castro
Descripción:
Se diseño el menú de la aplicación con sus respectivos enlaces, adecuación de calendarios y listas desarrollados en AJAX. Creación del archivo contenedor de los enlaces. Desarrollo de cabezote y pie de página. (Modificado durante todo el periodo de desarrollo)
Tarea
Número tarea: 1 Número historia: 1
Nombre tarea: Registro posibles clientes y/o empresas Tipo de tarea : Desarrollo Puntos estimados:
Fecha inicio: 8 de mayo de 2008 Fecha fin: 13 de mayo de 2008
Programador responsable: Priscila Sáenz – Mauricio Castro
Descripción:
Las empresas interesadas en el servicio de certificación se comunican con la unidad de certificación de la corporación, allí se toman los datos básicos y se almacenan en la B.D. Posteriormente se les envía información acerca del servicio y el formato de solicitud de cotización.
Tarea
Número tarea: 2 Número historia: 2
Nombre tarea: Listado de los posibles clientes.
Tipo de tarea : Desarrollo Puntos estimados:
Fecha inicio: 14 de mayo de 2008 Fecha fin: 19 de mayo de 2008
Programador responsable: Priscila Sáenz – Mauricio Castro
Descripción:
Accede a los registros de la B.D. mostrando la lista de los posibles clientes, se hace el contacto y se les envía información acerca del servicio y el formato de solicitud de cotización.
Tarea
Número tarea: 3 Número historia: 3
Nombre tarea: Registro de Cotización
Tipo de tarea :
Desarrollo Puntos estimados:
Fecha inicio: 20 de mayo de 2008 Fecha fin: 23 de mayo de 2008
Programador responsable: Priscila Sáenz – Mauricio Castro
Descripción: Se muestra un listado de todos los posibles clientes, se selecciona uno y a partir de la solicitud de cotización se realiza la misma, posteriormente se almacenan los datos en la B.D. y se envía la respectiva cotización.
97
98
Tarea
Número tarea: 4 Número historia: 4
Nombre tarea: Agendar Visita
Tipo de tarea : Desarrollo Puntos estimados:
Fecha inicio: 27 de mayo de 2008 Fecha fin: 30 de mayo de 2008
Programador responsable: Priscila Sáenz – Mauricio Castro Descripción:
Verificado el pago de la factura se procede a seleccionar el cliente de la lista, para hacer el contacto y realizar la agenda de visita de inscripción, a continuación se ingresa la información y se selecciona los auditores para llevar a cabo la visita, posteriormente se almacena en la B.D
Tarea
Número tarea: 5 Número historia: 5
Nombre tarea: Registro de Unidad Productiva
Tipo de tarea : Desarrollo Puntos estimados:
Fecha inicio: 3 de junio de 2008 Fecha fin: 6 de junio de 2008
Programador responsable: Priscila Sáenz – Mauricio Castro
Descripción:
Se selecciona de la lista el cliente al cual se le va a registrar la(s) unidad(es) productiva(s), se ingresan los datos correspondientes a la unidad y se almacenan en la B.D.
Tarea
Número tarea: 6 Número historia: 6
Nombre tarea: Registro de Planta de Procesamiento
Tipo de tarea : Desarrollo Puntos estimados:
Fecha inicio: 9 de junio de 2008 Fecha fin: 12 de junio de 2008
Programador responsable: Priscila Sáenz – Mauricio Castro
Descripción:
Se selecciona de la lista el cliente al cual se le va a registrar la(s) planta(s) de procesamiento(s), se ingresan los datos de la planta, seleccionando los productos que se procesaran y se almacenan en la B.D.
Tarea
Número tarea: 7 Número historia: 7
Nombre tarea: Registro de Comercializadora
Tipo de tarea : Desarrollo Puntos estimados:
Fecha inicio: 13 de junio de 2008 Fecha fin: 18 de junio de 2008
Programador responsable: Priscila Sáenz – Mauricio Castro
Descripción:
Se selecciona de la lista el cliente al cual se le va a registrar la(s) comercializadora(s) se registra la comercializadora correspondiente a la empresa, seleccionando los productos que se van a comercializar y se almacenan en la B.D.
99
100
Tarea
Número tarea: 8 Número historia: 8
Nombre tarea: Registro de Productores
Tipo de tarea : Desarrollo Puntos estimados:
Fecha inicio: 19 de junio de 2008 Fecha fin: 24 de junio de 2008
Programador responsable: Priscila Sáenz – Mauricio Castro
Descripción:
Se selecciona las unidades productivas de la lista de los clientes y se registran los datos de los socios o productores que corresponden a las mismas y se almacenan en la B.D.
Tarea
Número tarea: 9 Número historia: 9
Nombre tarea: Registro de Lotes
Tipo de tarea : Desarrollo Puntos estimados:
Fecha inicio: 25 de junio de 2008 Fecha fin: 1 de julio de 2008
Programador responsable: Priscila Sáenz – Mauricio Castro
Descripción:
Se muestra la lista de unidades productivas de un cliente específico, se inscriben los datos de los lotes, posteriormente se selecciona un lote y se registran los productos que se encuentran cultivados.
101
Tarea
Número tarea: 10 Número historia: 10
Nombre tarea: Registro de Proveedores
Tipo de tarea : Desarrollo Puntos estimados:
Fecha inicio: 2 de julio de 2008 Fecha fin: 7 de julio de 2008
Programador responsable: Priscila Sáenz – Mauricio Castro
Descripción:
Se muestra la lista de proveedores, verificando si el proveedor ya existe, si existe, se actualiza en caso que tenga un producto adicional para distribuir a clientes, por lo contrario se registra el proveedor con sus respectivos productos, seleccionando si es un producto convencional o ecológico y con qué empresa certificadora se encuentra.
Tarea
Número tarea: 11 Número historia: 11
Nombre tarea: Gestionar Auditoría Agrícola y/o Pecuaria Tipo de tarea : Desarrollo Puntos estimados:
Fecha inicio: 8 de julio de 2008 Fecha fin: 11 de julio de 2008
Programador responsable: Priscila Sáenz – Mauricio Castro
Descripción:
Accede a la B.D, mostrando un listado de los clientes a los que se les realizó una agenda; a continuación se selecciona uno de ellos y se hace la gestión de la auditoría por cada unidad productiva, evaluando cada uno de los recursos requeridos en el proceso de certificación.
102
Tarea
Número tarea: 13 Número historia: 13
Nombre tarea: Gestionar Auditoría Comercializadora Tipo de tarea : Desarrollo Puntos estimados:
Fecha inicio: 18 de julio de 2008 Fecha fin: 23 de julio de 2008
Programador responsable: Priscila Sáenz – Mauricio Castro
Descripción:
Accede a la B.D, mostrando un listado de los clientes a los que se les realizó una agenda; a continuación se selecciona uno de ellos y se hace la gestión de la auditoría por cada comercializadora registrada, evaluando cada uno de los recursos requeridos en el proceso de certificación.
Tarea
Número tarea: 12 Número historia: 12
Nombre tarea: Gestionar Auditoria Planta Procesamiento
Tipo de tarea :
Desarrollo Puntos estimados:
Fecha inicio: 14 de julio de 2008 Fecha fin: 17 de julio de 2008
Programador responsable: Priscila Sáenz – Mauricio Castro
Descripción:
Accede a la B.D, mostrando un listado de los clientes a los que se les realizó una agenda, se selecciona uno de ellos y se hace la gestión de la auditoría por cada planta registrada, evaluando cada uno de los recursos requeridos en el proceso de certificación.
Tarea
Número tarea: 14 Número historia: 14
Nombre tarea: Reporte Ministerio de Agricultura
Tipo de tarea : Desarrollo Puntos estimados:
Fecha inicio: 24 de julio de 2008 Fecha fin: 29 de julio de 2008
Programador responsable: Priscila Sáenz – Mauricio Castro
Descripción:
Accede a la base de datos, mostrando en una lista de forma agrupada toda la información que corresponde a la empresa detallando las unidades productivas, lotes, productos, productores y el mercado de destino.
Tarea
Número tarea: 15 Número historia: 15
Nombre tarea: Reporte tareas pendientes de los clientes
Tipo de tarea :
Desarrollo Puntos estimados:
Fecha inicio: 30 de julio de 2008 Fecha fin: 4 de agosto de 2008
Programador responsable: Priscila Sáenz – Mauricio Castro
Descripción:
Accede a la base de datos, se listan las empresas que tienen tareas pendientes por entregar en los próximos días, las cuales fueron registradas en el proceso de gestión de auditorías.
103
104
Tarea
Número tarea: 16 Número historia: 16
Nombre tarea: Reporte de Renovación de Convenios
Tipo de tarea : Desarrollo Puntos estimados:
Fecha inicio: 5 de agosto de 2008 Fecha fin: 11 de agosto de 2008
Programador responsable: Priscila Sáenz – Mauricio Castro
Descripción:
Accede a la base de datos, se listan las empresas que en poco tiempo deberán renovar el convenio, la renovación del convenio se hace anualmente y se les comunica a los clientes.
6.3 CODIFICACIÓN
A continuación se muestra una parte del código del desarrollo del aplicativo.
Código AJAX:
AJAX: certificacion.js
function objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
105
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function mostrarCiudad()
{
divResultado_1 = document.getElementById('ciudades');
divResultado_1 .innerHTML= 'Cargando...';
coddep=frm_contenido.lst_ndparta.value;
ciudad=objetoAjax();
ciudad.open("POST", "municipios.php?coddep="+coddep,true);
ciudad.onreadystatechange=function()
{
if (ciudad.readyState==4)
{
106
divResultado_1.innerHTML = ciudad.responseText
}
}
ciudad.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ciudad.send(null)
}
Código PHP:
Function TraerUnidadProductiva($conexion,$edita,$id_unidad,&$id_empresa,&$nombre,&$direccion,&$area_total,&$area_certificada,&$area_certificar,&$numero_productores, &$mapa, &$departamento, &$municipio, &$vereda, &$lst_sancionado) { if ($edita==1) { $sql=" SELECT * FROM cer_unidad_productiva
WHERE id_unidad = '$id_unidad'"; $res_unidadp=mysql_query($sql,$conexion); if (!$res_unidadp)
{ die('libreria.php --> TraerUnidadProductiva' . mysql_error().'--> '.$sql);
} $numrows=mysql_num_rows($res_unidadp); if ($numrows>0) {
$datos_unidadp=mysql_fetch_array($res_unidadp); $id_unidad=$datos_unidadp['id_unidad']; $id_empresa=$datos_unidadp['id_empresa']; $nombre=$datos_unidadp['nombre_unidad'];
107
$direccion=$datos_unidadp['direccion']; $area_total=$datos_unidadp['area_total']; $area_certificar=$datos_unidadp['area_certificar']; $area_certificada=$datos_unidadp['area_certificada']; $numero_productores=$datos_unidadp['numero_productores']; $mapa=$datos_unidadp['mapa']; $departamento=$datos_unidadp['nomdepto']; $municipio=$datos_unidadp['nommpio']; $vereda=$datos_unidadp['vereda']; $lst_sancionado=$datos_unidadp['sancionado']; } } } function ListarUnidadProductiva($conexion,$id_empresa) { $sql=" SELECT * FROM cer_unidad_productiva
WHERE id_empresa = $id_empresa"; $res_unidadp=mysql_query($sql,$conexion); return $res_unidadp; } function ReporteMinisterio($conexion) {
$sql="SELECTempresa.nit,empresa.nombre_empresa, empresa.telefono, empresa.direccion, departamento.nomdepto, municipio.nommpio, unidad.nombre_unidad, lote.id_lote, lote.area, producto.id_producto, producto.producto, plote.principal, plote.tipo_manejo, plote.mercado_destino, plote.comprador_area_certificada, plote.resolucion, plote.ue, plote.nop, plote.jas, plote.uso_sello FROM cer_empresa empresa, cer_unidad_productiva unidad, cer_lote lote, cer_producto producto, cer_producto_lote plote, tdepto departamento, tpolad municipio WHERE unidad.id_empresa = empresa.id_empresa AND lote.id_unidad = unidad.id_unidad AND plote.id_lote = lote.id_lote AND plote.id_producto = producto.id_producto AND departamento.coddepto = empresa.nomdepto AND municipio.codmuncpio = empresa.nommpio AND municipio.coddepto = departamento.coddepto
108
ORDER BY plote.tipo_manejo"; $res_ministerio=mysql_query($sql,$conexion); if (!$res_ministerio) { die('libreria.php --> ' . mysql_error().'--> '.$sql); } return $res_ministerio; } 6.4 PRUEBAS Durante el desarrollo se hicieron las pruebas pertinentes para el
funcionamiento correcto del aplicativo.
Descripción Pruebas. El conjunto de pruebas relacionadas con las historias
de usuario pretenden mostrar y comprobar:
La forma correcta de la introducción de datos a la base de datos a través de la
interfaz gráfica.
Registro de posibles clientes y/o empresas.
Descripción. El profesional encargado ingresa al menú y selecciona
empresas, se despliega la lista de las empresas registradas, pulsa el link
“Nueva Empresa” y se muestra el formulario de registro para una nueva
empresa, ingresa los datos correspondientes de la nueva empresa y pulsa el
botón “Registro”.
109
Condiciones de ejecución.
‐ Estar conectado a la red de la CCI o tener conexión a Internet.
‐ El profesional encargado debe estar dado de alta en el sistema.
Resultado Esperado. Tras la introducción de los datos y después de haber
pulsado en el botón “Registro” se validaran:
Nit:
- No debe estar registrado, mensaje “la empresa ya se encuentra registrada…”
- Solo deben contener números, mensaje “Digite un valor numérico en el Nit”
E-mail:
-Debe tener el símbolo arroba “@”, mensaje “No ha escrito un correo valido”
Teléfono:
- Debe ingresar el número telefónico de la empresa, mensaje "No ha ingresado
el Teléfono de la Empresa".
- Solo debe contener números y debe ser de 7 dígitos, mensaje "No contiene
los dígitos especificados".
110
Departamento y Municipio:
-Debe seleccionar un departamento y un municipio, mensaje “No ha
seleccionado el Departamento”, “No ha seleccionado el Municipio”.
Tras la introducción de los datos de forma correcta y después de haber pulsado
en el botón “Registro” el sistema informara “La empresa fue creada
satisfactoriamente…” a través de un mensaje.
Evaluación de Pruebas. Prueba Exitosa.
Listado de los clientes.
Descripción. Se listaran todos los clientes, con las opciones que re
direccionarán a:
Unidades Productivas, Plantas de Procesamiento, Comercializadora,
Cotización y Agenda, al seleccionar una opción se deberá mostrar la
información correspondiente a la empresa seleccionada sin duplicidad de
datos.
Condiciones de ejecución.
‐ Estar conectado a la red de la CCI o tener conexión a Internet.
‐ El profesional encargado debe estar dado de alta en el sistema.
111
Resultado Esperado. Lista de los clientes con los datos respectivos y sin duplicidad.
Evaluación de Pruebas. Prueba Exitosa.
Registro de Cotización.
Descripción. Se listaran los clientes, el profesional encargado selecciona la
opción cotización, se listaran las cotizaciones realizadas a esa empresa,
seleccionara “nueva cotización”, se abrirá el formulario de registro para una
nueva cotización, se ingresan los datos de la cotización y se pulsa el botón
“Registro”.
Condiciones de ejecución.
‐ Estar conectado a la red de la CCI o tener conexión a Internet.
‐ El profesional encargado debe estar dado de alta en el sistema.
Resultado Esperado. Tras la introducción de los datos y después de haber pulsado en el botón “Registro” se validaran:
En el registro de la cotización se encuentren los datos de la empresa
seleccionada.
Ningún campo puede quedar vacio excepto Observaciones.
Número de unidades productivas y Número de productores sean solo números,
mensaje “Digite un valor numérico”.
Financiamiento: si selecciona la opción cuotas debe seleccionar el numero de
cuotas, en caso contrario el campo numero de cuotas no será habilitado.
112
Tras la introducción de los datos de forma correcta y después de haber pulsado
en el botón “Registro” el sistema informara “La cotización fue creada
satisfactoriamente…” a través de un mensaje.
Evaluación de Pruebas. Prueba Exitosa.
Agendar Visita.
Descripción. Posterior a la verificación del pago, el funcionario selecciona la
opción de agenda, se listaran las agendas programadas a la empresa
seleccionada, seleccionara la opción “nueva agenda”, se abrirá el formulario
para realizar nueva agenda, se ingresan los datos y se pulsa en el botón
“Registro”.
Condiciones de ejecución.
‐ Estar conectado a la red de la CCI o tener conexión a Internet.
‐ El profesional encargado debe estar dado de alta en el sistema.
Resultado Esperado. Tras la introducción de los datos y después de haber pulsado en el botón “Registro” se validaran:
En el registro de la agenda se encuentre el id de la empresa seleccionada.
De acuerdo a la fecha de la visita, pulsa la opción ver agenda, donde se
listaran los auditores que estarán disponibles para la visita.
Los campos de las actividades no deben quedar vacíos.
113
Tras la introducción de los datos de forma correcta y después de haber pulsado
en el botón “Registro” el sistema informara “La Agenda fue creada
satisfactoriamente…” a través de un mensaje.
Posterior al registro aparecerá un formulario donde se debe escoger los
auditores para la auditoria.
Evaluación de Pruebas. Prueba Exitosa.
Registro de Unidades productivas, Plantas de procesamiento y Comercializadoras.
Descripción. El profesional encargado, selecciona la empresa, selecciona la
opción de Unidad Productiva, Planta de procesamiento o Comercializadoras, se
listaran las unidades productivas, plantas o comercializadoras que tiene la
empresa, selecciona la opción de nueva Unidad productiva, se abrirá el
formulario para realizar nueva unidad, se ingresan los datos y se pulsa en el
botón “Registro” (Esta secuencia se hace también para las plantas de
procesamiento y comercializadoras).
Condiciones de ejecución.
‐ Estar conectado a la red de la CCI o tener conexión a Internet.
‐ El profesional encargado debe estar dado de alta en el sistema.
114
Resultado Esperado. Tras la introducción de los datos y después de haber
pulsado en el botón “Registro” se validaran:
Los campos del formulario de Unidad productiva, planta de procesamiento,
comercializadora no deben quedar vacías, excepto el campo de mapa.
Tras la introducción de los datos de forma correcta y después de haber pulsado
en el botón “Registro” el sistema informara a través de un mensaje:
“La Unidad Productiva fue creada satisfactoriamente…”
“La Planta de Procesamiento fue creada satisfactoriamente…”
“La Comercializadora fue creada satisfactoriamente…”
Evaluación de Pruebas. Prueba Exitosa.
Registro de Productores.
Descripción.
El profesional encargado selecciona del menú la opción empresas -> Unidad
Productiva selecciona ver socio de la unidad productiva a la cual se va a
registrar un socio o productor, se listaran los socios registrados en la unidad
productiva seleccionada, el funcionario selecciona la opción “Nuevo socio”, se
abrirá el registro para la creación de un nuevo socio, se ingresan los datos
correspondientes del nuevo socio y pulsa el botón “Registro”.
115
Condiciones de ejecución.
‐ Estar conectado a la red de la CCI o tener conexión a Internet.
‐ El profesional encargado debe estar dado de alta en el sistema.
Resultado Esperado. Tras la introducción de los datos y después de haber
pulsado en el botón “Registro” se validaran:
Ninguno de los campos puede estar vacio.
Teléfono:
- Debe ingresar el número telefónico del socio, mensaje "No ha ingresado el
Teléfono del Socio".
- Solo debe contener números y debe ser de 7 dígitos, mensaje "No contiene
los dígitos especificados".
Celular:
- Debe ingresar el celular del socio, mensaje "No ha ingresado el celular del
Socio".
- Solo debe contener números y debe ser de 10 dígitos, mensaje "No contiene
los dígitos especificados".
E-mail:
-Debe obtener el símbolo arroba “@”, mensaje “No ha escrito un correo valido”
Departamento y Municipio:
-Debe seleccionar un departamento y un municipio, mensaje “No ha
seleccionado el Departamento”, “No ha seleccionado el Municipio”.
116
Tras la introducción de los datos de forma correcta y después de haber pulsado
en el botón “Registro” el sistema informara “El socio fue creado
satisfactoriamente…” a través de un mensaje.
Evaluación de Pruebas. Prueba Exitosa.
Registro de Lotes.
Descripción.
El profesional encargado selecciona del menú la opción empresas -> Unidad
Productiva selecciona ver lotes de la unidad productiva a la cual se va a
registrar un lote, se listaran los lotes registrados en la unidad productiva
seleccionada, el funcionario selecciona la opción “Nuevo Lote”, se abrirá el
registro para la creación de un nuevo lote, se ingresan los datos
correspondientes del nuevo lote y pulsa el botón “Registro”.
Condiciones de ejecución.
‐ Estar conectado a la red de la CCI o tener conexión a Internet.
‐ El profesional encargado debe estar dado de alta en el sistema.
117
Resultado Esperado. Tras la introducción de los datos y después de haber
pulsado en el botón “Registro” se validaran:
En el registro del lote, se encuentre la información correspondiente de la unidad
productiva.
Ninguno de los campos puede estar vacio.
Los campos área y capacidad deben ser numéricos.
Evaluación de Pruebas. Prueba Exitosa.
Registro de Proveedores.
Descripción.
El profesional encargado selecciona del menú la opción -> Proveedores, se
listaran los proveedores registrados, el funcionario selecciona la opción “Nuevo
Proveedor”, se abrirá el registro para la creación de un nuevo proveedor, se
ingresan los datos correspondientes del nuevo proveedor y pulsa el botón
“Registro”.
Condiciones de ejecución.
‐ Estar conectado a la red de la CCI o tener conexión a Internet.
‐ El profesional encargado debe estar dado de alta en el sistema.
118
Resultado Esperado. Tras la introducción de los datos y después de haber
pulsado en el botón “Registro” se validaran:
En el registro proveedor, debe seleccionar los productos a distribuir.
Ninguno de los campos puede estar vacio, excepto la fecha de vencimiento y
observaciones.
Al seleccionar de la lista del campo de certificación, si escoge ecológico, se
habilita el campo de entidad certificadora, en caso contrario estará
deshabilitado.
Al seleccionar certificado el campo de la fecha de vencimiento se habilitará, en
caso contrario permanecerá deshabilitado.
Evaluación de Pruebas. Prueba Exitosa.
Gestionar Auditoría Agrícola, Pecuaria, Procesamiento y/o Comercializadora
Descripción.
El profesional encargado selecciona del menú la opción empresas -> Agenda ,
selecciona ver “VAG”: Visita auditoria agrícola, “ VPC”: Visita auditoria pecuaria
,”VPR”: Visita auditoria de planta de procesamiento y/o “VCM” : Visita auditora
comercializadora, se listaran todas las auditorías realizadas al cliente, el
funcionario selecciona la opción “Nueva Auditoria”, se abrirá el registro para la
creación de una nueva auditoría , se ingresan los datos correspondientes del
nuevo lote y pulsa el botón “Registro”.
119
Condiciones de ejecución.
‐ Estar conectado a la red de la CCI o tener conexión a Internet.
‐ El profesional encargado debe estar dado de alta en el sistema.
Resultado Esperado. Tras la introducción de los datos y después de haber
pulsado en el botón “Registro” se validaran:
En el registro de la auditoria, se encuentra el código de la agenda programada.
Ninguno de los campos puede estar vacio.
De acuerdo al tipo de auditoría, seleccionar de la lista, la unidad productiva,
procesamiento y/o comercializadora, a la cual se está haciendo la visita.
Posterior al registro de los datos de la auditoria, se procede a la gestión, donde
deberá seleccionar el recurso y aplicar si es conforme, no conforme o no
aplica, en caso de que la selección es no conforme, se habilitará el campo de
acción, donde deberá escribir la acción correctiva y también fijar la fecha de
cumplimiento.
Evaluación de Pruebas. Prueba Exitosa.
120
7. PRESENTACION Y ANALISIS DE RESULTADOS
La versión final del aplicativo se presenta en un ambiente web, que permite al
funcionario de la corporación capturar información de los posibles clientes,
generar cotizaciones, crear agendas de visitas, registrar unidades productivas,
socios, lotes, comercializadoras, plantas de procesamiento, permitir la gestión
de auditorías y generar reportes acerca del proceso de certificación.
El aplicativo se desarrolló con la metodología XP(Extreme Programming), una
metodología ágil , que involucró al cliente desde el inicio del proyecto, de esta
forma se tuvo en cuenta todas las sugerencias y necesidades de la Unidad de
Certificación, obteniendo así versiones más estables. Esta metodología ayudó
a que el cliente estuviera de acuerdo con el producto final.
Al iniciar el proyecto se analizó cada uno de los subprocesos del servicio de
certificación con los funcionarios de la unidad, estableciendo nombres para
cada historia de usuario. El desarrollo fue ágil ya que por medio de estas
historias de usuario se pudo analizar las necesidades de cada uno de los
funcionarios. De acuerdo a los resultados del análisis anterior se diseñó el
modelo de la base de datos con la ayuda de la herramienta E/R Studio, este
tipo de herramienta está equipada para crear y manejar diseños de bases de
datos confiables.
Este desarrollo se realizó con lenguajes de programación libre que no
generan costos de licenciamiento, funcionan adecuadamente en el momento
de su ejecución. Se utilizó entonces Java y Php que además ofrecen alta
compatibilidad con otros lenguajes.
121
Los resultados obtenidos cumplen con los objetivos trazados al inicio del
proyecto, y minimizan los procesos manuales de la Unidad de Certificación;
de esta manera, se resuelve la problemática que se había planteado de
acuerdo con las necesidades del usuario.
8. CONCLUSIONES
El proyecto se realizó con la metodología extreme programming, para
desarrollo ágil de aplicaciones, que por sus características requiere la
intervención del usuario en todo el proceso encontrando así mayor satisfacción
por parte del cliente, por sentirse dentro del quipo y participar en el desarrollo
de su propia aplicación.
Se diseñó una base de datos estructurando todos los datos e información que
se utiliza en los procesos del servicio de certificación .
La Corporación Colombia Internacional ahora cuenta con una base de datos
para la unidad de certificación, complementando todo un gran módulo de
aplicativos para los procesos de cada área de la CCI.
El diseño de las interfaces gráficas, permitió el manejo de la información y
actualización mediante módulos desarrollados en php y java por la
compatibilidad de la arquitectura, del motor de base de datos mysql teniendo
como resultado una aplicación intuitiva, amigable y sencilla para los clientes.
122
Utilizar lenguajes de programación tan conocidos como lo son php y java
permitieron una programación sencilla y fácil de mantener.
Para el diseño del aplicativo, se utilizaron los estándares del departamento de
tecnología de información y comunicación de la CCI.
El aplicativo fue desarrollado e implementado en un servidor y ambiente de
pruebas, con información real y sin comprometer los datos de gran importancia
para la CCI.
Se desarrolló un manual de usuario y documentación técnica del sistema.
El avance de la tecnología en empresas líderes en el país en el sector
agropecuario, es de gran ayuda, ya que resuelve problemas que para el
usuario en ocasiones es difícil de manejar, por la cantidad de información que
se captura de los clientes.
El aplicativo benefició al usuario final, porque reduce labores manuales que se
realizaban cotidianamente y que tomaban tiempo importante que ahora podrá
destinarse a labores más productivas.
123
9. RECOMENDACIONES
Seguir la secuencia del proceso de certificación, aunque el aplicativo cuenta
con unas validaciones para evitar que haya saltos de secuencia.
Para una mejor utilización del aplicativo web, el sistema operativo que tiene el
usuario en su máquina, debe contar con el entorno java.
El administrador no debe eliminar datos almacenados, ya que esa información
puede servir para consultas futuras del usuario interesado y por el sistema de
gestión de calidad.
124
BIBLIOGRAFÍA
GLASS K. Michael, SCOUARNEC LE Yann, NARAMORE Elizabeth, MAILER
Gary, STOLZ Jeremy, GERNER Jason. Fundamentos Desarrollo Web con
PHP, Apache y MySQL. Ediciones Anaya Multimedia.
POWELL Thomas, SCHNEIDER Fritz. Manual de referencia JavasCript.
Edición McGraw-Hill Osborne Media.
PRESSMAN, Roger S. Ingeniería del Software: un enfoque práctico, Capitulo 3.
CIBERGRAFÍA
Software Libre (Citado 17/08/08).Disponible en: http://www.gnu.org/philosophy/free-sw.es.html
E/R Estudio (Citado 26/04/08 8:00am).Disponible en: http://www.embarcadero.com/products/erstudio/
PhpMyAdmin (Citado 25/04/08 10:00am).Disponible en: http://www.phpmyadmin.net/home_page/index.php
Introducción a Php (Citado 20/04/08 3:15am).Disponible en: http://www.php.net/manual/es/intro-whatcando.php
125
Ajax (Citado 19/04/08 11:00am).Disponible en: http://developer.mozilla.org/en/docs/AJAX
Ajax (Citado 19/04/08 10:00am).Disponible en: http://www.librosweb.es/ajax/capitulo1.html
Dreamweaver (Citado 02/04/08). Disponible en: http://www.adobe.com/education/products/dreamweaver/
Lenguajes de programación. (Citado 03/07/07 10:00pm).Disponible en:
http://www.maestrosdelweb.com/principiantes/los-diferentes-lenguajes-de-programacion-para-la-web
Java (Citado 20/06/07 5:45pm).Disponible en: http://todojava.awardspace.com
Qué se puede hacer con php. (Citado 20/06/07 9:00pm). Disponible en: (http://www.php.net/manual/es/intro-whatcando.php)
Qué es PHP? Disponible en (Citado 20/06/07 8:15pm) Disponible en: http://www.desarrolloweb.com/articulos/392.php
Asp.Net (Citado 20/06/07 4:20pm).Disponible en: http://www.webestilo.com/aspnet/aspnet01.phtml
Metodologías Ágiles y Tradicionales (Citado 14/06/07 5:00pm). Disponible en: www.acis.org.co/index.php?id=551
126
Modelo Incremental (Citado 13/06/07 7:30pm). Disponible en: http://www.ra-ma.es/cf/html/catalogo/libros/down/adaigGS.pdf
Qué es Mysql (Citado 13/06/07 7:00pm).Disponible en: http://dev.mysql.com/doc/refman/5.0/es/what-is.html
Microsoft Framework MSF (Citado 13/06/07 5:00pm).Disponible en: http://www.microsoft.com/technet/prodtechnol/exchange/guides/ExMgmtGuide/62fab0e2-a570-4921-a0f1-7fdc6ffff2a9.mspx?mfr=true
Fases de Xp (Citado 12/06/07 3:30pm).Disponible en: http://programacionextrema.tripod.com/fases.htm
Quiénes Somos? (citado 05/04/07 5:00pm).Disponible en: http://www.cci.org.co/cci/cci_x/scripts/home.php?men=2&con=1&idHm=5&opc=99
ANEXOS
ANEXO A
SOLICITUD DEL SERVICIO DE CERTIFICACIÓN
127
ANEXO B
VISITA INSCRIPCIÓN Y/O SEGUIMIENTO SERV. DE CERTIFICACIÓN
Fuente: www.cci.org.co Proceso de certificación Ecológica.
128
129
ANEXO C
APLICATIVO PARA EL CONTROL Y
SEGUIMIENTO DE LOS PROCESOS DE
LA UNIDAD DE CERTIFICACIÓN DE LA
CORPORACIÓN COLOMBIA
INTERNACIONAL CCI.
MANUAL DE USUARIO
Elaborado por:
Priscila Esperanza Sáenz Duarte
Mauricio Antonio Castro Ariza
130
CONTENIDO
pág.
1. MANUAL DE USUARIO ............................................................................ 131
1.1 ESPECIFICACIONES TÉCNICAS ......................................................... 131
1.2 ENTORNO GENERAL DEL APLICATIVO ............................................. 131
1.3 COMO INGRESAR AL APLICATIVO..................................................... 132
1.3.1 Crear una empresa ........................................................................... 135
1.3.2 Realizar una cotización ..................................................................... 137
1.3.3 Realizar una agenda ......................................................................... 140
1.3.4 Registrar unidades productivas,plantas de procesamiento o
comercializadoras ......................................................................................... 142
1.3.5 Registrar Socios o Productores ........................................................ 143
1.3.6 Registrar lotes .................................................................................... 145
1.3.7 Registrar productos ........................................................................... 147
1.3.8 Registrar un proveedor ..................................................................... 149
1.3.9 Registrar visitas agrícolas, pecuarias, procesamiento o
comercializadoras ......................................................................................... 151
131
1. MANUAL DE USUARIO
El aplicativo para el control y seguimiento de los procesos de la unidad de
certificación de la Corporación Colombia Internacional CCI. Permite a los
funcionarios hacer cotizaciones realizar agendas, registrar información de las
empresas con sus respectivas unidades productivas, plantas de
procesamiento, comercializadoras, productores o socios, lotes, productos de
los lotes y gestionar las auditorias de calidad.
Este manual hace referencia a los procesos de registro, consulta y
actualización, explicando paso a paso las opciones disponibles.
1.1 ESPECIFICACIONES TÉCNICAS
La aplicación está hecha en los lenguajes de programación php y java, para el
funcionamiento del aplicativo debe tener una conexión a internet si se
encuentra fuera de la red de la CCI.
1.2 ENTORNO GENERAL DEL APLICATIVO
El aplicativo para el control y seguimiento de los procesos de la unidad de
certificación de la Corporación Colombia Internacional CCI, tiene una interfaz
grafica de fácil navegación, en la cual se podrá consultar las empresas que se
encuentran en el proceso de certificación y las que se encuentran interesadas
en el servicio, consultar la unidades productivas de cada una de las empresas
con sus respectivos lotes, productos y productores.
1.3 CÓMO INGRESAR AL APLICATIVO
Ejecutar el navegador y digitar la siguiente dirección, www.cci.org.co
Entrará a la página principal de la Corporación Colombia Internacional, deberá
pulsar la opción Intranet.
Accederá al webmail de la Corporación, debe escribir su nombre de usuario y
su contraseña de su cuenta de correo.
132
Ingresará a la bandeja de entrada de su cuenta de correo, Pulse el link Unidad
certificación, Este link le permitirá el acceso a la página principal del aplicativo.
133
134
1.3.1 Crear una empresa. Pulse Inicio y luego Posibles Clientes del Menú,
encontrará un listado de los clientes que podrían estar interesados en el
servicio de certificación, pulse el link Nueva Empresa, se cargará el formulario
para registrar una nueva empresa, Se debe ingresar la información solicitada
según cada campo,
Luego de diligenciar los datos necesarios. Se debe pulsar el botón Registro
para almacenar la información en la base de datos.
135
136
1.3.2 Realizar una cotización. Pulse Inicio y luego en Posibles Clientes y
pulse Cotización en la empresa a la que desea realizar la cotización.
Encontrará un listado de las cotizaciones ya realizadas anteriormente si las
hay, pulse Nueva Cotización, se carga el formulario para diligenciar una
cotización.
Se debe ingresar la información solicitada según cada campo,
Luego de diligenciar los datos necesarios. Se debe pulsar el botón Guardar
para almacenar la información en la base de datos.
137
138
139
1.3.3 Realizar una Agenda. Pulse Inicio y luego en Posibles Clientes y pulse
Agenda en la empresa a la que desea realizar la agenda. Encontrará un listado
de las agendas ya realizadas anteriormente si las hay, pulse Nueva Agenda, se
carga el formulario para diligenciar una agenda.
Se debe ingresar la información solicitada según cada campo, para verificar la
disponibilidad de auditores pulse el link ver agenda, se abrirá una ventana
mostrando los auditores programados para la misma fecha.
Luego de diligenciar los datos necesarios. Se debe pulsar el botón Registro
para almacenar la información en la base de datos.
140
141
1.3.4 Registrar unidades productivas, plantas de procesamiento o comercializadoras. En este ejemplo se registrará una unidad productiva.
Pulse Inicio y luego Empresa y pulse U. Productiva en la empresa a la que
desea registrar la unidad productiva. Encontrará un listado de las unidades
productivas ya registradas anteriormente si las hay, pulse Nueva Unidad
Productiva, se carga el formulario para diligenciar una nueva unidad productiva.
Se debe ingresar la información solicitada según cada campo,
Luego de diligenciar los datos necesarios. Se debe pulsar el botón Registro
para almacenar la información en la base de datos.
142
1.3.5 Registrar socios o productores. Pulse Inicio y luego Empresa del
Menú, encontrará un listado de las Empresas que se encuentran en el proceso
de certificación o que ya están certificadas, pulse el link U. Productivas de la
empresa a la que desea registrar el socio, se mostrará el listado de las
unidades productivas correspondientes a esa empresa, Pulse el link ver socio
se mostrará un listado de los socios de esa unidad productiva, pulse el link
Nuevo Socio, se carga el formulario para registrar un socio.
Luego de diligenciar los datos necesarios. Se debe pulsar el botón Registro
para almacenar la información en la base de datos.
143
144
1.3.6 Registrar lotes. Pulse Inicio y luego Empresa del Menú, encontrará un
listado de las Empresas que se encuentran en el proceso de certificación o que
ya están certificadas, pulse el link U. Productivas de la empresa a la que desea
registrar el lote, se mostrará el listado de las unidades productivas
correspondientes a esa empresa, Pulse el link ver lotes se mostrará un listado
de los lotes de esa unidad productiva, pulse el link Nuevo Lote, se carga el
formulario para registrar un lote.
Luego de diligenciar los datos necesarios. Se debe pulsar el botón Registro
para almacenar la información en la base de datos.
145
146
1.3.7 Registrar productos. Pulse Inicio y luego Empresa del Menú, encontrará
un listado de las Empresas que se encuentran en el proceso de certificación o
que ya están certificadas, pulse el link U. Productivas de la empresa a la que
desea registrar el producto, se mostrará el listado de las unidades productivas
correspondientes a esa empresa, Pulse el link ver lotes se mostrará un listado
de los lotes de esa unidad productiva, pulse el link Productos, se mostrará un
listado de los productos registrados en ese lote, pulse le link registrar productos
al lote, se carga el formulario para registrar un producto al lote.
Luego de diligenciar los datos necesarios. Se debe pulsar el botón Registro
para almacenar la información en la base de datos.
147
148
1.3.8 Registrar un proveedor. Pulse Inicio y luego Proveedores del Menú,
encontrará un listado de los proveedores registrados anteriormente si los hay,
pulse el link Nuevo Proveedor, se cargará el formulario para registrar un nuevo
proveedor, Se debe ingresar la información solicitada según cada campo.
Luego de diligenciar los datos necesarios. Se debe pulsar el botón Registro
para almacenar la información en la base de datos.
149
150
1.3.9 Registrar visitas agrícolas, pecuarias, procesamiento o comercializadoras. En este ejemplo se registrará la auditoría y gestión de
recursos a una unidad productiva.
Pulse Inicio y luego Empresa del Menú, encontrará un listado de las empresas,
pulse el link Agenda a la cual desea registrar una visita, se mostrará un listado
de las agendas ya realizadas, pulse el link VAG, se mostrará un listado de las
visitas que se realizaron en esa agenda si las hay, pulse el link Nueva
Auditoria, se cargara el formulario para registrar un nuevo proveedor, Se debe
ingresar la información solicitada según cada campo.
Luego de diligenciar los datos necesarios. Se debe pulsar el botón Registro
para almacenar la información en la base de datos. Posteriormente se iniciará
la gestión de los recursos de la auditoría ingresando la información solicitada
según cada campo.
151
152
153
154
155
ANEXO D
APLICATIVO PARA EL CONTROL Y
SEGUIMIENTO DE LOS PROCESOS DE
LA UNIDAD DE CERTIFICACIÓN DE LA
CORPORACIÓN COLOMBIA
INTERNACIONAL CCI.
MANUAL TÉCNICO
Elaborado por:
Priscila Esperanza Sáenz Duarte
Mauricio Antonio Castro Ariza
156
CONTENIDO
pág.
1. MANUAL TÉCNICO .................................................................................. 157
1.1 MODELO DE LA BASE DE DATOS ...................................................... 157
1.2 DICCIONARIO DE LA BASE DE DATOS .............................................. 158
1.3 CREACIÓN DE TABLAS Y CAMPOS ................................................... 184 .
157
1. MANUAL TÉCNICO
1.1 MODELO DE LA BASE DE DATOS.
1. 2 DICCIONARIO DE LA BASE DE DATOS.
Tabla cer_aditivo
Descripción de atributos:
Id_aditivo: Código que identifica a un aditivo
Aditivo: Nombre del aditivo que utilizan en el procesamiento de un producto
ecológico.
Tabla cer_agenda_inspección
158
Descripción de atributos:
Id_agenda: Identifica a una agenda de visita.
Actividad1, actividad2, actividad3, actividad4: Nombre de las actividades a
realizar en la visita.
Descripción 1, descripción 2, descripción 3, descripción 4: Descripción de
cada actividad.
Fecha 1 Hora 1, fecha 2 Hora2, fecha 3 Hora 3, fecha 4 Hora 4: Fecha en la
que se debería iniciar cada actividad.
Participante: Nombres de las personas que asisten en cada actividad.
Fecha_ini - Fecha_fin: El inicio y fin de la agenda de visita
Id_empresa: Código que identifica a la empresa a la cual se le hace la agenda
de visita.
Objetivo: Descripción de los objetivos a desarrollar en la visita.
Alcance: Descripción de los alcances definidos en la agenda de visita.
Tabla cer_almacenamiento
159
Descripción de atributos:
Id_almacenamiento: Código que identifica a un almacenamiento de un insumo
prohibido que se encontró durante la auditoria.
Tipo_evidencia: Describe el tipo de evidencia que fue encontrada en la
auditoria, tales como: fotos, frascos, residuos, etc.
Observación: Describe las observaciones sobre las evidencias encontradas.
Imagen: Archivos de imagen, que es tomada, si se encuentra algún tipo de
evidencia sobre insumos prohibidos.
Marca_insumo: Nombre de la marca del insumo prohibido.
Id auditoria: Identificación única de auditoría.
Id_insumo: Identificación única del insumo.
Tabla cer_aseo
Descripción de atributos:
Id_aseo: Código que identifica el producto utilizado para limpieza.
Marca_insumo: Nombre comercial del insumo que se utiliza para la limpieza y
desinfección de utensilios, equipos, e instalaciones en las comercializadoras.
Lugar_aplicación: Describe el lugar donde se aplicó el insumo.
Cantidad: Describe la cantidad suministrada del insumo para la limpieza.
160
Frecuencia: Describe la frecuencia del uso del insumo.
Ficha: Si posee o no una ficha técnica del producto que se utiliza para la
limpieza.
Num_veces: Describe el número de veces de la aplicación del insumo.
Id_insumo: Llave foránea que relaciona a un insumo con la tabla aseo.
Id auditoria: Llave foránea que relaciona una auditoria con la tabla aseo.
Tabla cer_auditoría
Descripción de atributos:
Id auditoria: Código que identifica a una auditoria.
Id_tipo_auditoria: Describe el tipo de auditoría: pecuaria, agrícola,
comercializadora, procesamiento, unidad productiva
Clase: Nombre de la clase de auditoría: si es auditoria de inscripción o
auditoria de seguimiento.
Fecha_ini – fecha fin: Inicio y fin de la auditoria. 161
162
Duración_auditoría: Los días que se demora el auditor realizando la auditoria.
Número_auditores: El número de auditores que realizan la auditoría.
Representante 1, representante 2, representante 3: Los nombres de los
representantes de la empresa, que asisten a la auditoria.
Repre_proyecto_eco: Nombre del representante del proyecto ecológico.
Cargo_repre: Cargo en el que se desempeña el representante del proyecto.
Cedula_repre: Identificación del representante
Cargo 1, cargo 2, cargo 3: Cargos que desempeñan cada uno de los
representantes en la empresa.
Antecedentes: Descripción donde hace referencia en caso de seguimiento, a
lo sucedido en la visita anterior.
Id_unidad: Llave foránea que relaciona la auditoria con una unidad productiva.
Id_comercializadora: Llave foránea que relaciona la auditoria con una
comercializadora
Id_planta: Llave foránea que relaciona la auditoria con una planta de
procesamiento.
Documentos_entregados: Describe todos los documentos que se entregan
en el momento de la auditoría.
Tabla cer_auditoría_auditor
Descripción de atributos:
Id_auditoria_auditor: Identificación única de auditoría con auditor.
Id_agenda: Llave foránea que relaciona una agenda de visita con la tabla
auditoría_auditor.
Id auditoria: Llave foránea que relaciona una auditoria con la tabla
auditoría_auditor.
Codusuario: Código que identifica al auditor dentro de la base de datos de la
Corporación Colombia Internacional.
Tabla cer_certificación:
Descripción atributos:
Id_certificación: Identificación única que se le asigna a las empresas que
entran al proceso de certificación.
Id_empresa: Llave foránea que relaciona una empresa con la tabla
certificación.
163
Tabla cer_comercializadora
Descripción de atributos:
Id_comercializadora: Identificación única de una comercializadora.
Nombre_mapa_comercia: Nombre de la imagen de la comercializadora.
Mapa_almacen: Imagen de la comercializadora.
Nomdepto: Llave foránea que relaciona un departamento con la tabla
comercializadora
Nommpio: Llave foránea que relaciona un municipio con la tabla
comercializadora
Dirección: Dirección donde queda ubicado la comercializadora.
Teléfono: Número telefónico de la comercializadora.
Id_empresa: Llave foránea que identifica a una empresa con la tabla
comercializadora.
Nombre_comercializadora: Nombre de la comercializadora.
Vereda: Nombre de la vereda o barrio donde queda ubicada la
comercializadora.
Productos: Describe los productos que se están comercializando.
164
Tabla cer_control_plaga
Descripción de atributos:
Id_control_plaga: Identificación única del producto utilizado para el control de
plagas.
Ingrediente: Nombre del ingrediente activo del insumo que se está utilizando.
Marca_insumo: Nombre del insumo que se utiliza para el control de plagas.
Frecuencia: Describe la frecuencia del uso del insumo.
Ficha: Si posee o no una ficha técnica del producto que se utiliza para el
control de plagas.
Num_veces: Describe el número de veces de la aplicación del insumo.
Id_insumo: Llave foránea que relaciona a un insumo con la tabla
control_plaga.
Id_auditoria: Llave foránea que relaciona una auditoria con la tabla
control_plaga.
165
Tabla cer_cotización
Descripción de atributos:
Id_cotización: Identificación única de una cotización.
Id_empresa: Llave foránea que relaciona una empresa con la tabla cotización.
Unidades_productivas: Numero de unidades productivas a cotizar.
Ubicación_unidades: Lugar donde están ubicados las unidades productivas.
Num_productores: Número de productores que están a cargo de la unidad
productiva.
Productos: describe los productos que se van a certificar en la unidad
productiva.
Nacional: Describe si los productos son comercializados a nivel nacional
Internacional: Describe si los productos son comercializados a nivel
internacional
Tiempo_inscripcion: Los días de la visita de inscripción
166
Tiempo_seguimiento: Los días de la visita de seguimiento.
Valor_inscripción: El costo por día de la visita de inscripción
Valor_ seguimiento: El costo por día de la visita de seguimiento.
Financiamiento: Describe el pago del servicio de certificación, se hace a
contado o por cuotas.
Cuotas: El numero de cuotas a financiar.
Fecha_vencimiento: Fecha en la cual se vence la cotización.
Fecha_sistema: Fecha en la cual se hizo la cotización.
Aceptación: Describe sí aceptó la cotización o no.
Observaciones: En el caso de que no haya aceptado la cotización, se indaga
el motivo, por el cual no fue aceptada la cotización.
Tabla cer_empresa
167
168
Descripción de atributos:
Id_empresa: Identificación única de una empresa.
Nit: Numero del Nit de la empresa.
Nombre_empresa: Nombre de la empresa
Teléfono: Número telefónico de la empresa.
Fax: Numero fax de la empresa.
Dirección: Dirección donde está ubicada la empresa.
Mail: Correo electrónico de la empresa.
Nomdepto: Llave foránea del departamento donde está ubicada la empresa.
Nommpio: Llave foránea del municipio donde está ubicada la empresa.
Vereda: Nombre de la vereda o barrio donde está ubicada la empresa.
Sancionado: Describe si la empresa ha sido sancionada o no.
Apoyada_por: Nombre de la empresa que apoya a la empresa que está en el
proceso de certificación.
Centro _costo: Número que se le asigna para llevar el control de pagos.
Legal_representante: Nombre del representante legal de la empresa.
Legal_cedula: Numero de cedula del representante legal de la empresa.
Contacto_cedula: Numero de cedula de la persona a contactar de la empresa.
Contacto_nombre: Nombre de la persona a contactar para el proceso de
certificación.
Contacto_cargo: Cargo de la persona que es el contacto de la empresa.
Contacto_telefono: Número telefónico del contacto de la empresa.
Contacto_celular: Numero celular del contacto de la empresa.
Contacto_fax: Numero fax del contacto de la empresa.
Contacto_mail: Correo electrónico del contacto de la empresa.
Contacto_dirección: Dirección del contacto de la empresa.
Estado: Estado en el que se encuentra la empresa, si está activo o inactivo.
Fecha_sistema: Fecha en la cual se registra a la empresa.
Tabla cer_gestión
Descripción de atributos:
Id_gestión: Identificación única de una gestión.
Avances: Describe los avances de las tareas resultantes de las no
conformidades
Gestor: Describe el método de valoración de cada uno de los recursos.
Fecha_sistema: fecha en la que se registra la auditoria.
Observaciones: Describe las observaciones hechas por el auditor de cada
recurso.
169
Nombre_imagen: Nombre de la imagen del recurso.
Imagen: Archivo de la imagen del recurso.
Acción: Describe la acciones correctivas por los recursos evaluados como no
conformes
Fecha_cumplimiento: Fecha en la cual, se debe cumplir la acción correctiva.
Responsable: Nombre del responsable del cumplimiento de las acciones
correctivas.
Id auditoria: Llave foránea que relaciona una auditoria con la tabla gestión.
Id_recurso: Llave foránea que relaciona un recurso con la tabla gestión.
Tabla cer_insumo
Descripción de atributos:
Id_insumo: Identificación única de un insumo.
Insumo: Nombre del insumo. Ej. Fertilizantes.
Tabla cer_lote
170
Descripción de atributos:
Id_lote: Identificación única de un lote
Id_unidad: Llave foránea que relación una unidad con la tabla lote.
Manejo_anterior: Se selecciona si el tipo de manejo anterior en el lote era
ecológico, conversión o convencional.
Manejo_actual: Se selecciona si el tipo de manejo del lote actualmente es
ecológico, conversión o convencional.
Cultivo_anterior: Cultivo cosechado anteriormente en el lote.
Área: El numero de área del lote a certificar.
Capacidad: El numero de la capacidad total del lote.
Nombre_lote: Nombre del lote.
Tabla cer_pais
Descripción de atributos:
Cod_pais: Código del país
Nombre: Nombre del país
Clasificación: Clasificación de destino del viaje de los funcionarios de la CCI
(no aplica en el aplicativo).
Continente: Continente donde está ubicado el país.
171
Tabla cer_periodo_conversión
Descripción de atributos:
Id_periodo_conversión: Identificación única del periodo de conversión.
Id auditoria: Llave foránea relaciona una auditoria con la tabla
periodo_conversion
Id_lote: Llave foránea que relaciona un lote con la tabla periodo_conversion
Conversión: Periodo de conversión sugerido: 1 año a 3 años.
Fecha_inicio: Fecha de inicio del periodo de conversión
Fecha_fin: Fecha de fin del periodo del periodo de conversión.
Tabla cer_planta
Descripción de atributos:
Id_planta: Identificación única de una planta de procesamiento.
Nombre_mapa: Nombre de la imagen de la planta de procesamiento. 172
Nombre_planta: Nombre de la planta de procesamiento.
Dirección: Dirección donde queda ubicado la planta de procesamiento.
Nomdepto: Llave foránea que relaciona un departamento con la tabla planta.
Teléfono: Número telefónico de la planta de procesamiento.
Nommpio: Llave foránea que relaciona un municipio con la tabla planta.
Vereda: Nombre de la vereda o barrio donde queda ubicada la planta de
procesamiento.
Id_empresa: Llave foránea que identifica a una empresa con la tabla planta.
Mapa_almacen: Imagen de la planta de procesamiento.
Tabla cer_planta_producto
Descripción de atributos:
Id_planta_producto: Identificación única de una planta de procesamiento con
producto
Presentación: Presentación del producto a distribuir. Ej.: frasco
Produccion_ano: Número de la producción anual del producto.
Toneladas/año.
Id_planta: Llave foránea que relaciona una planta con la tabla planta_producto.
Procesado: Nombre del producto procesado. Ej.: Mermelada de uva.
173
Id_proveemateria: Llave foránea que relaciona el proveedor de la materia
prima con la tabla planta_producto.
Tabla cer_producto
Descripción de atributos:
Id_producto: Identificación única de un producto.
Clasificación: Nombre de la clase de producto: pecuaria o agrícola.
Producto: Nombre del producto.
Tipo: Selecciona el nombre del producto. Ej.: Hortalizas, forestal.
Tabla cer_producto_lote
174
175
Descripción de atributos:
Id_producto_lote: Identificación única de un lote con producto
Id_producto: Llave foránea que relaciona el producto con la tabla
producto_lote.
Principal: Nombre del cultivo principal dentro del lote.
Fecha_siembra: Fecha en el que se sembró el producto.
Fecha_cosecha: Fecha en el que se cosechó el producto.
Características_suelo: Características del suelo, donde se cultiva el producto.
Producción: Producción actual del producto cultivado en el lote.
Toneladas/año.
Producción_esperada: Producción esperada del producto cultivado en el lote.
Toneladas/año.
Id_lote: Llave foránea que relaciona el lote con la tabla producto_lote.
Mercado_destino: Describe si la producción es distribuida a nivel nacional o
internacional.
Comprador_area_certificada: Nombre del comprador de los productos
certificados.
Resolución: Hace referencia al cumplimiento de la resolución 187/06 del
reglamento sistema de producción ecológica.
UE: Distribuye a la Unión Europea.
NOP: Distribuye a Norteamérica.
JAS: Distribuye a Japón.
Uso_sello: Hace referencia al uso del sello ecológico.
Comprador_área_conversión: Nombre del comprador de los productos en
conversión.
Cantidad_lotes: Numero de lotes.
Num_cabezas: Numero de cabezas, sí el lote contiene animales.
Tabla cer_proveedor_materiaprima
Descripción de atributos:
Id_proveemateria_prima: Identificación única del proveedor con el producto.
Nombre_proveedor: Nombre del proveedor
Volumen_anual: Volumen anual de cada producto que distribuye el proveedor.
Certificado: Sí el producto que distribuye el proveedor tiene certificado
ecológico o certificado en conversión.
Entidad_certificadora: Nombre de la entidad certificadora, en el cual se
encuentra certificado el producto.
Fecha_vencimiento: Fecha de vencimiento del certificado.
Observaciones: Describe las observaciones por parte del funcionario de la
Unidad de certificación de la Corporación.
Id_producto: Llave foránea que relaciona el producto con la tabla
proveedor_materiaprima.
176
Tabla cer_recurso
Descripción de los atributos:
Id_recurso: Identificación única de un recurso.
Recurso: Describe los ítems a evaluar.
Artículo: Describe el artículo del reglamento del sistema de producción
ecológica relacionada con cada recurso.
Abreviatura: Abreviatura del recurso, utilizada para fácil visualización en la
interfaz gráfica.
Tabla cer_sanciones
Descripción de atributos:
Id_sanciones: Identificación única de una sanción
Argumento: Describe el motivo por el cual la unidad, empresa, planta,
procesamiento fue sancionada.
Fecha_sancion - Fecha_fin_sancion: Duración de la sanción.
177
Id_empresa: Llave foránea que relaciona una empresa con la tabla sanciones
Id_unidad: Llave foránea que relaciona una unidad productiva con la tabla
sanciones
Id_comercializadora: Llave foránea que relaciona una comercializadora con la
tabla sanciones
Id_planta: Llave foránea que relaciona una planta de procesamiento con la
tabla sanciones.
Tabla cer_socio
Descripción de atributos:
Id_socio: Identificación única de un socio.
Fecha_vinculación: Fecha en la cual el socio se vinculó a la unidad
productiva.
Nombre_apellido: Nombres y apellidos del socio o productor.
Dirección: Dirección del socio o productor.
178
Teléfono: Número telefónico del socio o productor.
Celular: Numero celular del socio o productor.
Mail: Correo electrónico del socio productor.
Fax: Numero fax del socio o productor.
Nomdepto: Llave foránea que relación a un departamento con la tabla
cer_socio
Nommpio: Llave foránea que relación a un municipio con la tabla cer_socio
Vereda: Nombre de la vereda o barrio donde vive el socio o productor.
Id_unidad: Llave foránea que relaciona a una unidad productiva con la tabla
cer_socio.
Estado: Estado en el que se encuentra el socio o productor, si está activo o
inactivo.
Fecha_retiro: Fecha en la cual el socio o productor se retiró de la unidad
productiva.
Tabla cer_sugerencia
Descripción de atributos:
Id_sugerencia: Identificación única de una sugerencia
Sugerencia: Descripción de lo que sugiere el auditor en la auditoria.
179
Justificación: Describe el motivo de la sugerencia.
Fecha: Fecha de la sugerencia realizada.
Id auditoria: Llave foránea que relaciona una auditoria con la tabla
cer_sugerencia.
Tabla tdepto
Descripción de atributos:
Coddepto: Identificación única del departamento.
Nomdepto: Nombre del departamento.
Cod_pais: Llave foránea que relaciona un país con la tabla tdepto.
Tabla Tpolad
Descripción de atributos:
Coddepto: Llave foránea del departamento con la tabla Tpolad.
Codmuncpio: Identificación única de un municipio.
180
Nommpio: Nombre del municipio.
Clasificación: Clasificación de destino del viaje de los funcionarios de la CCI
(no aplica en el aplicativo).
Tabla cer_unidad_productiva
Descripción de atributos:
Id_unidad: Identificación única de una unidad productiva.
Sancionado: Describe si la unidad productiva ha sido sancionada o no.
Id_empresa: Llave foránea que relaciona la empresa con la tabla
cer_unidad_productiva.
Dirección: Dirección donde queda ubicada la unidad productiva.
Numero_productores: Número de productores que están a cargo de la unidad
productiva.
Nombre_unidad: Nombre de la unidad productiva.
Area_total: Área total de la unidad productiva.
181
Area_certificar: Área de la unidad productiva que se va a certificar.
Area_certificada: Área de la unidad productiva que se encuentra certificada.
Mapa: Archivo imagen de la unidad productiva.
Nomdepto: Nombre del departamento donde queda ubicada la unidad
productiva.
Nommpio: Nombre del municipio donde queda ubicada la unidad productiva.
Vereda: Nombre de la vereda o barrio donde queda ubicada la unidad
productiva.
Actividad_predios_vecinos: Descripción de la actividad a la que se dedica los
predios vecinos de la unidad productiva.
Observaciones: Descripción de las observaciones que realiza el funcionario
de la Unidad de Certificación de la Corporación.
Tabla cer_uso_aditivo
Descripción de atributos:
Id_uso_aditivo: Identificación única de un aditivo.
Dosis: Cantidad del aditivo utilizado en la elaboración de los productos.
Razón_uso: Describe el motivo por el cual se utiliza el aditivo.
182
Observación: Describe las observaciones acerca del uso del aditivo.
Prohibido: Selección para indicar si el aditivo es prohibido o no.
Id_aditivo: Llave foránea del aditivo con la tabla cer_uso_aditivo.
Id auditoria: Llave foránea de auditoría con la tabla cer_uso_aditivo.
Tabla cer_uso_insumo_prohibido
Descripción de atributos:
Id_uso_insumo: Identificación única de un uso insumo
Id auditoria: Llave foránea que relaciona auditoria con la tabla
cer_uso_insumo_prohibido
Cantidad: Cantidad utilizada del insumo prohibido.
Motivo: Describe el motivo por el cual se usó el insumo prohibido.
Id_lote: Foránea que relaciona lote con la tabla cer_uso_insumo_prohibido
Id_insumo: Foránea que relaciona insumo con la tabla
cer_uso_insumo_prohibido
Nombre_insumo: Nombre del insumo. Ej.: Insecticida.
Fecha_uso: Fecha en la cual se usó el insumo prohibido.
183
184
1.3 CREACIÓN DE TABLAS Y CAMPOS.
1.CREATE TABLE `cer_documento` (
`id_documento` int(10) NOT NULL auto_increment,
`documento` varchar(20) default NULL,
PRIMARY KEY (`id_documento`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
2.CREATE TABLE `cer_empresa` (
`id_empresa` int(10) NOT NULL auto_increment,
`nit` char(10) default NULL,
`nombre_empresa` char(20) default NULL,
`telefono` char(10) default NULL,
`fax` varchar(10) default NULL,
`direccion` varchar(20) default NULL,
`mail` char(20) default NULL,
`nomdepto` varchar(40) default NULL,
`nommpio` varchar(40) default NULL,
`vereda` char(20) default NULL,
`sancionado` varchar(2) default NULL,
`apoyada_por` varchar(30) default NULL,
`centro_costo` char(10) default NULL,
`legal_representante` char(20) default NULL,
`legal_cedula` char(10) default NULL,
`contacto_cedula` char(10) default NULL,
`contacto_nombre` char(20) default NULL,
`contacto_cargo` char(20) default NULL,
`contacto_telefono` char(10) default NULL,
`contacto_celular` char(10) default NULL,
`contacto_fax` char(10) default NULL,
`contacto_mail` char(20) default NULL,
`contacto_direccion` varchar(20) default NULL,
`estado` varchar(10) NOT NULL,
`fecha_sistema` timestamp NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`id_empresa`))
185
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=232322 ;
3. CREATE TABLE `cer_gestion` (
`id_gestion` int(10) NOT NULL auto_increment,
`avances` varchar(200) default NULL,
`gestor` varchar(20) default NULL,
`fecha_sistema` timestamp NULL default CURRENT_TIMESTAMP,
`observaciones` text,
`imagen` longblob NOT NULL,
`accion` varchar(100) default NULL,
`fecha_cumplimiento` date NOT NULL,
`responsable` varchar(30) default NULL,
`id_auditoria` char(8) NOT NULL,
`id_recurso` char(8) NOT NULL,
PRIMARY KEY (`id_gestion`),
KEY `Refcer_recurso39` (`id_recurso`),
KEY `Refcer_auditoria40` (`id_auditoria`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=88787888 ;
4.CREATE TABLE `cer_insumo` (
`id_insumo` int(10) NOT NULL auto_increment,
`insumo` varchar(20) default NULL,
PRIMARY KEY (`id_insumo`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
5. CREATE TABLE `cer_lote` (
`id_lote` int(10) NOT NULL auto_increment,
`id_unidad` char(10) default NULL,
`manejo_anterior` varchar(15) NOT NULL,
`manejo_actual` varchar(15) NOT NULL,
`cultivo_anterior` varchar(100) NOT NULL,
`area` char(3) default NULL,
`capacidad` char(3) default NULL,
`nombre_lote` varchar(200) NOT NULL,
PRIMARY KEY (`id_lote`),
186
KEY `Refcer_unidad_productiva8` (`id_unidad`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=758 ;
6. CREATE TABLE `cer_periodo_conversion` (
`id_periodo_conversion` int(10) NOT NULL auto_increment,
`id_auditoria` int(10) NOT NULL,
`id_lote` int(10) NOT NULL,
`conversion` char(2) default NULL,
`fecha_inicio` date default NULL,
`fecha_fin` date default NULL,
PRIMARY KEY (`id_periodo_conversion`),
KEY `id_auditoria` (`id_auditoria`),
KEY `id_lote` (`id_lote`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
7. CREATE TABLE `cer_planta` (
`id_planta` int(10) NOT NULL auto_increment,
`tipo_foto` varchar(50) NOT NULL,
`nombre_mapa` varchar(100) default NULL,
`nombre_planta` char(30) default NULL,
`direccion` varchar(20) default NULL,
`nomdepto` varchar(40) default NULL,
`telefono` int(15) default NULL,
`nommpio` varchar(40) default NULL,
`vereda` varchar(20) default NULL,
`id_empresa` char(10) NOT NULL,
`ruta` varchar(100) default NULL,
`mapa` blob NOT NULL,
PRIMARY KEY (`id_planta`),
KEY `Refcer_empresa50` (`id_empresa`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ;
187
8. CREATE TABLE `cer_planta_producto` (
`id_planta_producto` int(10) NOT NULL auto_increment,
`presentacion` varchar(100) NOT NULL,
`produccion_ano` char(4) NOT NULL,
`imagen` char(1) NOT NULL,
`id_planta` char(11) default NULL,
`procesado` varchar(100) NOT NULL,
`id_proveemateria` char(10) NOT NULL,
PRIMARY KEY (`id_planta_producto`),
KEY `Refcer_planta53` (`id_planta`),
KEY `cer_proveedor_materiaprima` (`id_proveemateria`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
9. CREATE TABLE `cer_producto` (
`id_producto` int(10) NOT NULL auto_increment,
`clasificacion` varchar(100) NOT NULL,
`producto` char(20) default NULL,
`tipo` varchar(50) NOT NULL,
PRIMARY KEY (`id_producto`,`clasificacion`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=40 ;
10. CREATE TABLE `cer_producto_lote` (
`id_producto_lote` int(10) NOT NULL auto_increment,
`id_producto` char(10) NOT NULL,
`principal` varchar(10) default NULL,
`fecha_siembra` date default NULL,
`fecha_cosecha` date default NULL,
`caracteristicas_suelo` varchar(50) default NULL,
`produccion` char(7) default NULL,
`produccion_esperada` char(7) default NULL,
`id_lote` char(10) default NULL,
`mercado_destino` varchar(20) NOT NULL,
`comprador_area_certificada` varchar(50) NOT NULL,
`resolucion` char(2) NOT NULL default '‐',
`UE` char(2) NOT NULL default '‐',
188
`NOP` char(2) NOT NULL default '‐',
`JAS` char(2) NOT NULL default '‐',
`uso_sello` char(2) NOT NULL,
`comprador_area_conversion` varchar(50) NOT NULL,
`cantidad_lotes` char(3) NOT NULL,
`num_cabezas` char(3) NOT NULL,
PRIMARY KEY (`id_producto_lote`),
KEY `Refcer_lote49` (`id_lote`),
KEY `Refcer_producto36` (`id_producto`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=20032 ;
11. CREATE TABLE `cer_proveedor_materiaprima` (
`id_proveemateria` int(10) NOT NULL auto_increment,
`nombre_proveedor` varchar(50) default NULL,
`volumen_anual` char(4) default NULL,
`certificado` char(2) default NULL,
`entidad_certificadora` varchar(50) default NULL,
`fecha_vencimiento` date default NULL,
`observaciones` varchar(50) default NULL,
`id_producto` int(10) NOT NULL,
PRIMARY KEY (`id_proveemateria`),
KEY `cer_producto` (`id_producto`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=39 ;
12. CREATE TABLE `cer_recurso` (
`id_recurso` int(10) NOT NULL auto_increment,
`recurso` text NOT NULL,
`articulo` varchar(20) default NULL,
`abreviatura` varchar(50) NOT NULL,
PRIMARY KEY (`id_recurso`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
13. CREATE TABLE `cer_sanciones` (
189
`id_sanciones` int(10) NOT NULL auto_increment,
`argumento` varchar(100) NOT NULL,
`fecha_sancion` date default NULL,
`fecha_fin_sancion` date default NULL,
`id_tipo_sancion` char(10) default NULL,
`id_empresa` char(10) default NULL,
`id_unidad` int(10) default NULL,
`id_comercializadora` int(10) NOT NULL,
`id_planta` int(10) NOT NULL,
PRIMARY KEY (`id_sanciones`),
KEY `Refcer_tipo_sancion78` (`id_tipo_sancion`),
KEY `Refcer_empresa79` (`id_empresa`),
KEY `Refcer_unidad_productiva80` (`id_unidad`),
KEY `cer_comercializadora` (`id_comercializadora`),
KEY `cer_planta` (`id_planta`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
14. CREATE TABLE `cer_sugerencia` (
`id_sugerencia` int(10) NOT NULL auto_increment,
`sugerencia` varchar(100) default NULL,
`justificacion` varchar(200) default NULL,
`fecha` timestamp NULL default CURRENT_TIMESTAMP,
`id_auditoria` char(8) default NULL,
PRIMARY KEY (`id_sugerencia`),
KEY `Refcer_auditoria85` (`id_auditoria`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=39 ;
15. CREATE TABLE `cer_uso_aditivo` (
`id_uso_aditivo` int(10) NOT NULL auto_increment,
`dosis` char(4) default NULL,
`razon_uso` varchar(200) default NULL,
`observacion` varchar(200) default NULL,
`prohibido` char(2) default NULL,
`id_aditivo` char(11) default NULL,
190
`id_auditoria` int(10) NOT NULL,
PRIMARY KEY (`id_uso_aditivo`),
KEY `Refcer_aditivo54` (`id_aditivo`),
KEY `cer_auditoria` (`id_auditoria`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
16. CREATE TABLE `cer_uso_insumo_prohibido` (
`id_uso_insumo` int(10) NOT NULL auto_increment,
`id_auditoria` char(8) default NULL,
`cantidad` char(3) default NULL,
`motivo` varchar(50) default NULL,
`id_lote` char(8) default NULL,
`id_insumo` char(8) NOT NULL,
`nombre_insumo` varchar(100) NOT NULL,
`fecha_uso` date NOT NULL,
PRIMARY KEY (`id_uso_insumo`),
KEY `Refcer_auditoria44` (`id_auditoria`),
KEY `Refcer_lote45` (`id_lote`),
KEY `Refcer_insumo37` (`id_insumo`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
17. CREATE TABLE `cer_aditivo` (
`id_aditivo` int(11) NOT NULL auto_increment,
`aditivo` varchar(20) NOT NULL,
PRIMARY KEY (`id_aditivo`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;
18. CREATE TABLE `cer_agenda_inspeccion` (
`id_agenda` int(11) NOT NULL auto_increment,
`actividad1` varchar(50) NOT NULL,
`actividad2` varchar(50) NOT NULL,
`actividad3` varchar(50) NOT NULL,
`descripcion1` text NOT NULL,
191
`descripcion2` text NOT NULL,
`descripcion3` text NOT NULL,
`fecha1` date NOT NULL,
`fecha2` date NOT NULL,
`fecha3` date NOT NULL,
`hora1` time NOT NULL,
`hora2` time NOT NULL,
`hora3` time NOT NULL,
`participante` varchar(100) NOT NULL,
`fecha_ini` date NOT NULL,
`fecha_fin` date NOT NULL,
`id_empresa` int(11) NOT NULL,
`objetivo` text NOT NULL,
`alcance` text NOT NULL,
`actividad4` varchar(50) NOT NULL,
`descripcion4` text NOT NULL,
`fecha4` date NOT NULL,
`hora4` time NOT NULL,
PRIMARY KEY (`id_agenda`),
KEY `Refcer_empresa86` (`id_empresa`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=123123170 ;
19. CREATE TABLE `cer_almacenamiento` (
`id_almacenamiento` int(11) NOT NULL auto_increment,
`tipo_evidencia` varchar(60) NOT NULL,
`observacion` text NOT NULL,
`imagen` longblob NOT NULL,
`marca_insumo` varchar(50) NOT NULL,
`id_auditoria` int(11) NOT NULL,
`id_insumo` int(11) NOT NULL,
PRIMARY KEY (`id_almacenamiento`),
KEY `Refcer_auditoria46` (`id_auditoria`),
KEY `Refcer_insumo47` (`id_insumo`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
192
20. CREATE TABLE `cer_aseo` (
`id_aseo` int(10) NOT NULL auto_increment,
`marca_insumo` varchar(50) default NULL,
`lugar_aplicacion` varchar(30) default NULL,
`cantidad` char(3) default NULL,
`frecuencia` char(4) default NULL,
`ficha` char(2) default NULL,
`num_veces` char(2) default NULL,
`id_insumo` char(8) default NULL,
`id_auditoria` int(10) NOT NULL,
PRIMARY KEY (`id_aseo`),
KEY `Refcer_insumo59` (`id_insumo`),
KEY `cer_auditoria` (`id_auditoria`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=53 ;
21. CREATE TABLE `cer_auditoria` (
`id_auditoria` int(10) NOT NULL auto_increment,
`id_tipo_auditoria` char(20) default NULL,
`clase` varchar(20) default NULL,
`fecha_ini` date default NULL,
`fecha_fin` date default NULL,
`duracion_auditoria` char(2) default NULL,
`numero_auditores` char(2) default NULL,
`representante1` varchar(40) default NULL,
`representante2` varchar(40) default NULL,
`representante3` varchar(40) default NULL,
`repre_proyecto_eco` varchar(50) default NULL,
`cargo_repre` varchar(20) default NULL,
`cedula_repre` char(10) default NULL,
`cargo1` varchar(20) default NULL,
`cargo2` varchar(20) default NULL,
`cargo3` varchar(20) default NULL,
`antecedentes` varchar(255) default NULL,
`id_unidad` int(10) default NULL,
193
`id_comercializadora` int(10) NOT NULL,
`id_planta` int(10) NOT NULL,
PRIMARY KEY (`id_auditoria`),
KEY `Refcer_tipo_auditoria16` (`id_tipo_auditoria`),
KEY `Refcer_unidad_productiva87` (`id_unidad`),
KEY `cer_comercializadora` (`id_comercializadora`),
KEY `cer_planta` (`id_planta`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=54564795 ;
22. CREATE TABLE `cer_auditoria_auditor` (
`id_auditoria_auditor` int(11) NOT NULL auto_increment,
`id_agenda` int(11) NOT NULL,
`id_auditoria` int(11) NOT NULL,
`codusuario` int(15) NOT NULL,
PRIMARY KEY (`id_auditoria_auditor`),
KEY `Refcer_auditoria84` (`id_auditoria`),
KEY `Refcer_agenda_inspeccion34` (`id_agenda`),
KEY `Reftusuario85` (`codusuario`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=232432552 ;
23. CREATE TABLE `cer_auditoria_documento` (
`id_auditoria_documento` int(10) NOT NULL auto_increment,
`id_documento` char(8) default NULL,
`id_auditoria` char(8) default NULL,
PRIMARY KEY (`id_auditoria_documento`),
KEY `Refcer_auditoria27` (`id_auditoria`),
KEY `Refcer_documento28` (`id_documento`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
194
24. CREATE TABLE `cer_certificacion` (
`id_certificacion` int(10) NOT NULL auto_increment,
`id_empresa` char(10) NOT NULL,
PRIMARY KEY (`id_certificacion`),
KEY `Refcer_empresa52` (`id_empresa`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
25. CREATE TABLE `cer_comercializadora` (
`id_comercializadora` int(10) NOT NULL auto_increment,
`mapa_almacen` blob,
`nomdepto` varchar(40) default NULL,
`nommpio` varchar(40) default NULL,
`imagen_flujograma` longblob,
`direccion` varchar(30) default NULL,
`telefono` char(10) default NULL,
`id_empresa` char(10) default NULL,
`nombre_comercializadora` varchar(200) NOT NULL,
`vereda` varchar(100) NOT NULL,
`productos` varchar(500) default NULL,
PRIMARY KEY (`id_comercializadora`),
KEY `Refcer_empresa61` (`id_empresa`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=24 ;
26. CREATE TABLE `cer_comercializadora_producto` (
`id_comercializadora_producto` int(10) NOT NULL auto_increment,
`id_comercializadora` char(11) default NULL,
`id_proveemateria` int(10) NOT NULL,
PRIMARY KEY (`id_comercializadora_producto`),
KEY `Refcer_comercializadora65` (`id_comercializadora`),
KEY `cer_proveedor_materiaprima` (`id_proveemateria`) )
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 ;
27. CREATE TABLE `cer_control_plaga` (
`id_control_plaga` int(10) NOT NULL auto_increment,
`ingrediente` varchar(30) default NULL,
195
`marca_insumo` varchar(50) default NULL,
`frecuencia` char(4) default NULL,
`ficha` char(2) default NULL,
`num_veces` char(2) default NULL,
`id_insumo` int(10) NOT NULL,
`id_auditoria` int(10) NOT NULL,
PRIMARY KEY (`id_control_plaga`),
KEY `Refcer_insumo63` (`id_insumo`),
KEY `cer_auditoria` (`id_auditoria`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=22 ;
28. CREATE TABLE `cer_cotizacion` (
`id_cotizacion` int(10) NOT NULL auto_increment,
`id_empresa` char(10) default NULL,
`unidades_productivas` char(3) default NULL,
`ubicacion_unidades` text,
`num_productores` char(3) default NULL,
`productos` varchar(500) default NULL,
`nacional` char(8) NOT NULL,
`internacional` varchar(13) NOT NULL,
`tiempo_inscripcion` char(2) default NULL,
`tiempo_seguimiento` char(2) default NULL,
`valor_inscripcion` char(10) default NULL,
`valor_seguimiento` char(2) default NULL,
`financiamiento` char(10) default NULL,
`cuotas` char(2) default NULL,
`fecha_vencimiento` date default NULL,
`fecha_sistema` timestamp NOT NULL default CURRENT_TIMESTAMP,
`aceptacion` char(2) default NULL,
`observaciones` char(100) default NULL,
PRIMARY KEY (`id_cotizacion`),
KEY `Refcer_empresa5` (`id_empresa`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=757580 ;
196
29. CREATE TABLE `cer_socio` (
`id_socio` int(10) NOT NULL auto_increment,
`fecha_vinculacion` date default NULL,
`nombre_apellido` varchar(50) default NULL,
`direccion` varchar(30) default NULL,
`telefono` char(10) default NULL,
`celular` char(10) default NULL,
`mail` varchar(30) default NULL,
`fax` char(10) default NULL,
`nomdepto` varchar(20) default NULL,
`nommpio` varchar(20) default NULL,
`vereda` varchar(30) NOT NULL,
`id_unidad` varchar(10) NOT NULL,
`estado` varchar(10) NOT NULL,
`fecha_retiro` date NOT NULL,
PRIMARY KEY (`id_socio`),
KEY `Refcer_unidad_productiva88` (`id_unidad`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=80029141 ;
30. CREATE TABLE `cer_unidad_productiva` (
`id_unidad` int(10) NOT NULL auto_increment,
`sancionado` char(2) default NULL,
`id_empresa` char(10) NOT NULL,
`direccion` char(20) default NULL,
`numero_productores` char(3) default NULL,
`nombre_unidad` char(20) default NULL,
`area_total` char(3) default NULL,
`area_certificar` char(3) default NULL,
`area_certificada` char(3) default NULL,
`mapa` longblob,
`nomdepto` varchar(40) default NULL,
`nommpio` varchar(40) default NULL,
`vereda` varchar(30) default NULL,
`actividad_predios_vecinos` text NOT NULL,
`observaciones` text NOT NULL,
197
PRIMARY KEY (`id_unidad`),
KEY `Refcer_empresa7` (`id_empresa`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12345685 ;
31. CREATE TABLE `tpolad` (
`coddepto` int(11) NOT NULL,
`codmuncpio` int(11) NOT NULL,
`nommpio` varchar(40) default NULL,
`clasificacion` char(1) default NULL,
PRIMARY KEY (`coddepto`,`codmuncpio`),
KEY `Ref76` (`coddepto`))
ENGINE=MyISAM DEFAULT CHARSET=utf8;
32. CREATE TABLE `tdepto` (
`coddepto` int(11) NOT NULL,
`nomdepto` varchar(40) default NULL,
`cod_pais` int(11) NOT NULL,
PRIMARY KEY (`coddepto`),
KEY `Ref2150` (`cod_pais`))
ENGINE=MyISAM DEFAULT CHARSET=utf8;
33. CREATE TABLE `pais` (
`cod_pais` int(11) NOT NULL,
`nombre` varchar(50) default NULL,
`clasificacion` varchar(1) NOT NULL,
`continente` char(2) NOT NULL,
PRIMARY KEY (`cod_pais`))
ENGINE=MyISAM DEFAULT CHARSET=utf8;