CD-5021.pdf

Anuncio
ESCUELA POLITÉCNICA NACIONAL
ESCUELA DE FORMACIÓN DE TECNÓLOGOS
DESARROLLO DE SISTEMA DE ADMINISTRACIÓN ESTUDIANTIL
DE LICENCIAS TIPO C PARA LA ESCUELA DE CONDUCCIÓN
SAN FRANCISCO AUTOCLUB
PROYECTO PREVIO A LA OBTENCIÓN DEL TÍTULO DE TECNÓLOGO EN
ANÁLISIS DE SISTEMAS INFORMÁTICOS
ESPÍN BAQUERO DIANA ALEJANDRA
[email protected]
DIRECTOR: ING. LUZ MARINA VINTIMILLA
[email protected]
Quito, Julio 2013
DECLARACIÓN
Yo Diana Alejandra Espín Baquero, declaro bajo juramento que el trabajo aquí
descrito es de mi autoría; que no ha sido previamente presentada para ningún
grado o calificación profesional; y, que he consultado las referencias bibliográficas
que se incluyen en este documento.
A través de la presente declaración cedo mis derechos de propiedad intelectual
correspondientes a este trabajo, a la Escuela Politécnica Nacional, según lo
establecido por la Ley de Propiedad Intelectual, por su Reglamento y por la
normatividad institucional vigente.
__________________________________
DIANA ALEJANDRA ESPÍN BAQUERO
CERTIFICACIÓN
Certifico que el presente trabajo fue desarrollado por Diana Alejandra Espín
Baquero, bajo mi supervisión.
________________________
Ing. Luz Marina Vintimilla
DIRECTOR DEL PROYECTO
AGRADECIMIENTO
Mi agradecimiento es para mi familia, mi esposo y mi hija.
Gracias Andrés por todo, por ser mi compañero de vida, mi amigo, mi apoyo, la
persona que siempre ha estado junto a mí en las buenas y en las malas, por
enseñarme a vivir y convencerme de que se puede hacer a un lado las telarañas y
vivir feliz.
Quiero agradecer también a mi madre quien siempre estuvo apoyándonos y que
con su ejemplo me demostró que nunca es tarde para luchar por lo que se quiere.
Gracias por nunca dejar de presionarme.
A mis hermanas quienes siempre estarán presentes aunque nuestros trabajos no
lo permitan.
También de manera muy especial a l@s “Inges” de la “Poli” quienes siempre
tuvieron palabras de alago para nosotros y quienes con muchas de sus frases nos
inspiran a salir de aquí y apuntar alto. En especial a la Ingeniera Luz Marina
Vintimilla a quien agradezco mucho su tiempo y apoyo.
Diana.
DEDICATORIA
Quiero dedicar este trabajo a mi mentor, apoyo,
compañero, amigo y esposo Andrés Ramos, ya
que sin ti, esto no hubiese sido posible.
A mi hija Valentina, quien espero llegue lejos y
siempre manteniendo esa esencia. Quien con su
amor ha sabido siempre sacarnos sonrisas hasta
en los peores momentos con su admirable
madurez e inteligencia.
A mi madre quien siempre luchó por mis
hermanas y por mí. Y a quien espero verle
siempre feliz.
A mi padre, quien me dio muchas enseñanzas y
valores, quien me hace falta todos los días de mi
vida.
ÍNDICE DE CONTENIDOS
Resumen.………………………………………...……………………………………….1
1. Capítulo I: Generalidades………………………………………………………….2
1.1. Ámbito del proyecto………………………………………………………....2
1.2. Planteamiento del problema……………………………………………….3
1.2.1. Mercado meta……………………………………………………...4
1.2.2. Proceso en estudio...……………………………………………...4
1.3. Formulación y sistematización del problema…………………………….8
1.3.1. Formulación………………………………………………………..8
1.3.2. Sistematización..…………………………………………………..8
1.4. Objetivos de la investigación………………………………………………8
1.5. Justificación del proyecto…………………………………………………..8
1.6. Análisis de Costos…………………………………………………………..9
2. Capítulo II: Fundamento teórico………………………………………………….10
2.1. Ingeniería de software…………………………………………………..…10
2.1.1. Software…………………………………………………………...11
2.1.1.1. Características del Software…………………………..11
2.1.2. Fases genéricas………………………………………………….12
2.1.2.1. Fase de definición……………………………………..13
2.1.2.2. Fase de desarrollo……………………………………..13
2.1.2.3. Fase de mantenimiento………………………………..14
2.2. Base de datos……………………………………………………………....14
2.3. Microsoft SQL Server 2008………………………………………………..16
2.4. Microsoft SQL Server Management Studio 2008 Express…………….18
2.5. Microsoft Office 2010………………………………………………………20
2.5.1. Microsoft Access 2010……….………………………………….21
2.6. ODBC………………………………………………………………………..26
2.7. Visual Basic 7.0…………………………………………………………….29
2.7.1. VBA 7.0……………………………………………………………31
3. Capítulo III: Marco metodológico……………………………………………...…32
3.1. Metodología RUP…………………………………………………………..32
3.1.1. Características……………………………………………………33
3.1.2. Ciclo de vida………………………………………………………34
3.2. Construcción del sistema…………………………………………………35
3.2.1. Fase de inicio…………………………………………………….35
3.2.1.1. Modelado de negocio…………………………………36
3.2.1.2. Análisis de requerimientos……………………………37
3.2.1.3. Productos…………….…………………………………37
3.2.1.3.1. Documento Visión……………………………37
3.2.1.3.2. Diagramas de casos de uso...………………37
3.2.2. Fase de elaboración…….……………………………………….39
3.2.2.1. Análisis y diseño…….…………………………………39
3.2.2.2. Productos…………….…………………………………40
3.2.2.2.1. Diagrama de clases………………………….40
3.2.2.2.2. Modelo entidad – relación…..………………40
3.2.2.2.3. Diagrama de secuencia….………………….41
3.2.2.2.4. Diagrama de estados…….………………….42
3.2.2.2.5. Diagrama de colaboración…….……………44
3.2.3. Fase de construcción….…………………………………………45
3.2.3.1. Implementación…….…………………………………..45
3.2.4. Fase de transición….……………………………………………46
3.2.4.1. Pruebas…….……………………………………………46
3.2.4.2. Despliegue…….………………………………………..48
Conclusiones.…………………………………………………………………………. 49
Recomendaciones…………………………………………………………………….50
Bibliografía……………………………………………………………………………...51
Anexos…………………………………………………………………………………...53
ÍNDICE DE FIGURAS
Figura 2.1. Fases del software………………………………………………………..13
Figura 2.2. Base de datos……………………………………………………………..15
Figura 2.3. SQL Server 2008 en el contexto de desarrollo………………………..17
Figura 2.4. Access y su motor ACE.………………………………………………….22
Figura 2.5. Arquitectura del motor ACE..…………………………………………….23
Figura 2.6. Trabajo de OBDC…………..……………………………………………..26
Figura 3.1. Historia de RUP…………….……………………………………………..33
Figura 3.2. Modelos desarrollados en flujos de trabajo de RUP…………….……33
Figura 3.3. Fases del ciclo de vida de RUP…………….…………………….……..35
Figura 3.4. Actor - Diagrama de casos de uso..………………………………..…..38
Figura 3.5. Caso de uso………………………….……………………………………38
Figura 3.6. Límite del sistema…………………...………………………………....…38
Figura 3.7. Caso de uso general………………...……………………………….......38
Figura 3.8. Actor - Diagrama de secuencia……..………………………………..…41
Figura 3.9. Objeto activo - Diagrama de secuencia……..……………………..…..42
Figura 3.10. Mensajes - Diagrama de secuencia…..……..……………………..…42
Figura 3.11. Diagrama de secuencia de gestión de estudiante del SAESFAC…42
Figura 3.12.Nodos – Diagrama de estados………………………………………….43
Figura 3.13.Estado – Diagrama de estados…………………………………………43
Figura 3.14. Flujo – Diagrama de estados…………………………………………..43
Figura 3.15. Diagrama de estados de curso del SAESFAC……………………….44
Figura 3.16 Diagrama de colaboración de cierre de matrículas del SAESFAC…45
ÍNDICE DE TABLAS
Tabla 1.1 Horas de capacitación…………………………………………………..5
Tabla 2.1. Lista de herramientas de SQL Server………………………………..19
Tabla 2.2. Tabla de datos SQL vs. Access……………………………………….24
RESUMEN
La presente tesis muestra los principales aspectos del desarrollo de un Sistema
de Administración Estudiantil para la Escuela de Conducción San Francisco
AutoClub de la Universidad San Francisco de Quito. El Sistema creado será
utilizado únicamente para los estudiantes del curso previo a la obtención de la
licencia profesional tipo “C” el cual tiene una duración de 6 meses.
El sistema desarrollado cumplirá las siguientes funciones: registro de alumnos,
asignación de aulas, asignación de profesores por materia, registro de notas y
asistencia, generación de reportes de calificaciones, listado de estudiantes
matriculados, suspensos y graduados.
Para dicho desarrollo se utilizó herramientas Microsoft. En la parte de gestión de
base de datos se trabajó con Microsoft SQL Server 2008. Para el front-end se
recurrió a la herramienta de la suite Office 2010 “Microsoft Access 2010” con
soporte de VBA.
1
CAPÍTULO I
1. GENERALIDADES
En el presente capítulo se considerará la descripción específica del ámbito en el
que se ha desarrollado el Sistema de Administración Estudiantil de la escuela de
conducción San Francisco AutoClub y por sobre todo se definirán los objetivos,
justificativos y proyección financiera que enmarcarán este trabajo.
1.1. ÁMBITO DEL PROYECTO
El Sistema de Administración Estudiantil desarrollado para el San Francisco
AutoClub SAESFAC, está basado en algunos aspectos básicos: registro de
alumnos, asignación de aulas, carga de notas de teoría y práctica de los cursos
previos a la obtención de la licencia profesional tipo C. El manejo de los procesos
mencionados a través del sistema permite a la escuela de conducción un correcto
manejo de la información para poder presentarla a sus alumnos y a las
autoridades de la Agencia Nacional de Tránsito.
El Sistema cuenta con restricciones de acceso el cual es permitido únicamente al
personal del San Francisco AutoClub SFAC. No se generalizó el acceso al
sistema a los estudiantes ya que éstos se encuentran en un target medio-bajo lo
cual nos determina que no tienen capacidades ni económicas ni cognoscitivas
para el acceso a un sistema de administración estudiantil. Por lo tanto los reportes
generados por el sistema se presentan a los usuarios finales como impresiones
físicas o descargas en Excel.
El presente sistema permitirá al personal de SFAC matricular alumnos, registrar
notas de teoría, práctica, supletorios y grados dependiendo del estado en el cual
se encuentre el curso en ese momento ya que esto impedirá que se sobrepase
reglas y tiempos de entrega de información implantados por la Agencia Nacional
de Tránsito.
2
1.2. PLANTEAMIENTO DEL PROBLEMA
San Francisco AutoClub es una escuela de conducción que capacita y forma a
futuros conductores. Actualmente tiene una capacidad de mil estudiantes.
“Somos una escuela de capacitación y formación de conductores aprobada por la
Agencia Nacional de Tránsito, cuyos cursos son válidos para obtener licencias no
profesionales y licencias profesionales.
A más de los cursos regulares aprobados por la ANT, brindamos servicios tales
como la evaluación y certificación de conductores profesionales y noprofesionales, cursos de conducción defensiva, conducción evasiva y de
protección, conducción ofensiva, cursos eco-drive, motociclismo defensivo y
ofensivo, diseño de sistemas integrales para la gestión del transporte, así como
otros productos y servicios diseñados según la necesidad de cada cliente.
Por ser parte de la Universidad San Francisco de Quito (USFQ) contamos con su
aval técnico y académico, conformado por instructores civiles, preparados en
diversas áreas de la planificación del tránsito y la conducción avanzada.
Operamos desde enero del 2006 y hasta la fecha hemos graduado a más de
12.207 nuevos conductores entre no profesionales y profesionales.”1
La escuela de conducción San Francisco AutoClub busca como objetivo “Generar
soluciones para la movilidad con creatividad y pasión”.
El San Francisco AutoClub está encaminado a ser una escuela de conducción y
capacitación en tránsito que lidere en asesoría, capacitación e investigación en la
gestión de la movilidad con un alto respeto por la vida aplicando para esto el
respeto, la honestidad y el profesionalismo.
La escuela de conducción brinda cursos de conducción previo la obtención de las
licencias tipo B (Sportman) y tipo C (Profesional). Las licencias tipo B se las
obtiene para conducir vehículos livianos sin ningún fin comercial. Las licencias
1
http://www.usfq.edu.ec/sobre_la_usfq/servicios/varios/autoclub/Paginas/sobre_nosotros.aspx
3
Profesionales tipo C son obtenidas para conducir taxis convencionales, taxis
ejecutivos, camionetas livianas o mixtas de hasta 3500 kg y de hasta 8 pasajeros
y cualquier vehículo liviano siempre y cuando el conductor se vea beneficiado
económicamente por conducirlo.
1.2.1. MERCADO META
El San Francisco AutoClub tiene dos mercados meta: uno para los alumnos de la
licencia tipo B y otro para los estudiantes de la licencia tipo C. Éstos últimos son
hombres y mujeres mayores de 18 años que ya tengan la licencia tipo B o que
hayan al menos aprobado el 4to curso del colegio. La escuela realiza un proceso
de selección para determinar si el aspirante cuenta con los conocimientos
mínimos como para poder acceder a la educación brindada por el AutoClub.
Los cursos de la licencia tipo C son muy cotizados ya que en la ciudad de Quito
las únicas entidades autorizadas para realizados son el Sindicato de Choferes
Profesionales de Pichincha y el San Francisco AutoClub.
1.2.1. PROCESO EN ESTUDIO
El proceso que tomaremos para su estudio para la aplicación de esta tesis será el
relacionado con el curso de conducción previo a la obtención de la licencia de
conducción profesional tipo C.
Los cursos de conducción de la licencia tipo C se encuentran regulados por la
Agencia Nacional de Tránsito ANT, principal autoridad reguladora de tránsito y
transporte terrestre del Ecuador. El curso contempla 480 horas de capacitación y
su distribución se las puede encontrar en la Tabla 1.1
Para iniciar con un curso de la licencia tipo C la ANT debe enviar una aprobación
de apertura de matrículas, una vez recibida esta aprobación inicia el proceso de
matriculación de aspirantes, para esto el estudiante debe acercarse a la escuela
con los siguientes documentos:
4
• Dos copias a color de aprobación al menos del 1er año de bachillerato
(certificada por el colegio y notariadas); o alternativamente, dos copias a
color de la licencia tipo B.
• Dos copias a color legibles de la cédula de identidad y papeleta de
votación.
• Dos copias a color legibles del certificado del tipo sanguíneo (cualquier
laboratorio).
• Original y copia a color de certificado médico de salud actualizado (máximo
3 meses) de cualquier centro de salud (público o privado).
• Cuatro fotos tamaño carné a color.
• Recibo de depósito bancario por el valor de la matrícula (USD 408).
CREDITOS BÁSICOS
Educación Vial
64
Ley y Reglamento de TTTSV
64
Mecánica Básica
48
Psicología Aplicada a la Conducción
32
Computación
32
Primeros Auxilios
16
Educación Ambiental
16
SUMAN
272
CREDITOS DE ESPECIALIZACIÓN
Conducción Vehicular
32
Practica de Conducción
32
Relaciones Humanas
48
Atención al Cliente
32
Inglés Básico
32
Geografía Urbana
32
SUMAN
208
TOTAL HORAS LICENCIA "C"
480
Tabla 1.1 Horas de capacitación
Se emite una factura por el valor del pago de la matrícula. Esta factura se emite a
través del sistema de facturación generado por el departamento de Servicios
Integrados de la USFQ.
5
“Al momento de entregar esta documentación, se asignará un turno para
entrevista y/o ensayo de admisión y exámenes sensométricos y psicosomático,
mismos que deben ser aprobados para la admisión al curso”.2
Una vez aprobados, los aspirantes escogen el horario de teoría y el horario de
práctica. La teoría los estudiantes la recibirán durante los 6 meses que dura el
curso dos horas diarias de lunes a viernes y los horarios son desde las 07h00
hasta las 21h00. En cuanto a la práctica los estudiantes reciben capacitación
durante 3 semanas consecutivas dentro de los seis meses del curso, los horarios
son igualmente desde las 07h00 hasta las 21h00, los estudiantes por lo tanto no
pueden escoger el mismo horario para la teoría como para la práctica.
Después del proceso de matrículas se procede a ordenar alfabéticamente la lista
de estudiantes matriculados, se asigna un “código”: un número consecutivo que
va desde el 1 al primer estudiante hasta el último número al último alumno de la
lista. Luego de esto se procede a la asignación de aulas.
El director de la escuela designa los profesores en los distintos horarios y en cada
una de las aulas.
Los alumnos deben asistir como mínimo al 80% de las horas de cada una de las
materias caso contrario pierde el curso por inasistencia ya que no tiene opción a
rendir examen supletorio.
En la práctica deben asistir un mínimo de 90% de las horas, caso contrario deben
recuperarlas para que estén habilitados para rendir el examen final de práctica.
La nota mínima necesaria para aprobar las materias de teoría y práctica es de
16/20, caso contrario tienen derecho a un único examen supletorio en el cual el
puntaje mínimo es igualmente 16/20.
2
http://www.usfq.edu.ec/sobre_la_usfq/servicios/varios/autoclub/licencias/Paginas/licencias_profesionales.aspx
6
Siempre y cuando el estudiante haya aprobado todas y cada una de las materias
de teoría y de práctica se lo habilita para rendir el examen de grado que es una
recopilación de todas las materias. El puntaje mínimo para aprobar el examen de
grado es de 16/20 si el estudiante no consigue este puntaje tiene la opción de un
examen supletorio en el cual el puntaje mínimo es de 16/20.
Los estudiantes que hayan aprobado el examen de grado son los graduados que
podrán obtener los documentos necesarios para sacar su licencia profesional en
la ANT.
Los cursos de licencia tipo C cuentan con un gran número de estudiantes por lo
cual el manejo de su información es de vital importancia para el AutoClub. Hoy en
día ésta información se la maneja de manera conjunta en un archivo de Excel que
abarca toda la información de dichos estudiantes. El uso de este tipo de archivos
para el manejo de información cuenta con los siguientes inconvenientes:
• El archivo no es multiusuario.
• No permite tener pistas de auditoría informática.
• No puede ser auto respaldable.
La pérdida o maleabilidad de la información de los alumnos de la licencia tipo C
sería sumamente perjudicial para el correcto trabajo del AutoClub y también para
sus estudiantes.
Para la solución del problema se propone la creación de un sistema informático
de administración estudiantil para el manejo de todos los datos de los alumnos de
la licencia tipo C que permita tener correctos respaldos, pistas de auditoría y que
brinde la oportunidad de obtener reportes con la información recopilada.
7
1.3. FORMULACIÓN Y SISTEMATIZACIÓN DEL PROBLEMA
1.3.1. FORMULACIÓN
¿Cuáles son las mejores características de la ingeniería de software que se
puede ofrecer a la escuela de conducción San Francisco AutoClub para el
correcto manejo de la información de los alumnos de la licencia tipo C?
1.3.2 SISTEMATIZACIÓN:
¿Qué modelo de datos se requiere?
¿Cuáles son las herramientas de desarrollo más apropiadas para el proyecto?
¿Cuáles son las características de la arquitectura física y de programación que se
debe diseñar para este proyecto?
1.4. OBJETIVOS DE LA INVESTIGACIÓN
1.4.1 OBJETIVO GENERAL
Desarrollar un sistema de administración estudiantil de licencias tipo C para la
escuela de conducción San Francisco AutoClub
1.4.2. OBJETIVOS ESPECÍFICOS
1. Seleccionar las herramientas de desarrollo más apropiadas para el
proyecto.
2. Diseñar características de la arquitectura física y de programación para
este proyecto.
3. Programar los módulos del sistema.
4. Verificar la funcionalidad del sistema.
1.5. JUSTIFICACIÓN DEL PROYECTO
Con el desarrollo de un sistema informático para el manejo de datos de
estudiantes de la licencia tipo C de la escuela de conducción San Francisco
AutoClub se optimizará el manejo académico de los estudiantes para, de esta
8
manera, tener la información necesaria en tiempo real a varios usuarios del
proceso académico.
El sistema ayudará al registro de estudiantes; asignación de aulas y profesores;
registro de notas; creación de reportes; impresión de cuadros de notas,
certificados, títulos y permisos de aprendizaje.
1.6. ANÁLISIS DE COSTOS
HARDWARE
1 Laptop Intel Core 2 Duo 1.8 GHz, 4GB, HD 150GB, Monitor 14"
$ 800,00
1 Impresora Samsung SCX-410, laser toner, multifunción
$ 250,00
SOFTWARE
Microsoft Office 2010
Microsoft Sql Server 2008
$ 349,00
$ 4.000,00
RECURSOS HUMANOS
1 Analista de sistemas (costo por hora $10,00 * 200 horas)
$ 2.000,00
1 Desarrollador (costo por hora $8,00 * 120 horas)
$ 500,00
1 Tester (costo por hora $6,00 * 40 horas)
$ 240,00
OTROS
Gastos indirectos
$ 100,00
Suministros de oficina
Servicios de internet
TOTAL
$ 8.239,00
Estos costos son financiados en su totalidad por San Francisco AutoClub,
tomando en cuenta que la empresa es la beneficiaria única y directa.
9
CAPÍTULO II
2. FUNDAMENTO TEÓRICO
En el presente capítulo se documentará la teoría en la cual se basa el desarrollo
del Sistema de Administración Estudiantil del San Francisco AutoClub y se
realizará una descripción de las herramientas a ser utilizadas en este proyecto.
2.1. INGENIERÍA DE SOFTWARE
En la actualidad los sistemas y el software en sí son recursos sumamente
importantes para organizaciones, empresas y usuarios en general ya que éstos se
encuentran en varios medios usados diariamente tanto en asuntos personales,
laborales y educativos. Es por esto que una ingeniería de software es tan
necesaria, para que con bases sólidas y bien establecidas se pueda ofrecer
soluciones efectivas, necesarias y sustentables a los diferentes usuarios.
La ingeniería de software es por lo tanto la esquematización de reglas, normas,
herramientas, técnicas y métodos que rigen la construcción, administración,
mantenimiento, planificación y demás actividades que estén ligadas con la
creación en sí del software.3
El profesional de esta rama, el Ingeniero de Software debe considerar el análisis
previo de la situación, el diseño del proyecto, la programación o desarrollo del
software, las pruebas, correcciones y mantenimientos del sistema y su correcta
implementación y sociabilización.
El ingeniero de software gestiona el proyecto a fin de que éste se desarrolle
dentro de los parámetros esperados por empleados y clientes. Dentro de la
gestión que debe realizar el profesional está el tomar en cuenta el ciclo de vida
del software.
3
PRESSMAN, Roger. Ingeniería de Software, Un Enfoque Práctico. Mc Graw Hill, 2002. México. pp. 14
10
En la actualidad, con un mundo tan inmerso en la tecnología, la ingeniería de
software está en todos lados, industrias, fábricas, escuelas, hogares, empresas
públicas y privadas, etc. es por esto que el ingeniero de software debe cumplir
con un buen trabajo para poder cubrir los, cada vez más exigentes,
requerimientos de los usuarios. Esto sin dejar de lado que cada funcionalidad o
rasgo adicional significan más tiempo y dinero invertidos en el proyecto.
La Ingeniería de Software es una disciplina en la cual están comprendidos los
diferentes aspectos de la producción del software desde la concepción hasta el
mantenimiento final. Establece una disciplina que los profesionales las apliquen a
fin de obtener soluciones de alta calidad.4
2.1.1. SOFTWARE
Es el producto que elabora o desarrolla el Ingeniero de Software. El software va
desde programas que pueden correr en cualquier generación computador así
como todo lo relacionado con representaciones virtuales de imágenes, texto,
audio y video.
Software es el conjunto de programas que son desarrollados en el entorno de una
computadora. Normalmente son de tres tipos: 5
• De control.- supervisan el trabajo de procesos tales como los Sistemas
Operativos.
• De proceso.- permite la creación de programas, así como los compiladores,
etc.
• De aplicación.- son los utilizados por el usuario final y sirven para trabajar
en problemas específicos.
2.1.1.1. Características del Software
1) “El Software se desarrolla, no se fabrica en un sentido clásico”6
4
5
Sommerville pp. 6
ALONSO F, MARTINEZ L, SEGOVIA J. Introducción a la Ingeniería del Software. Delta Publicaciones. 2005. España.
pp. 75
6
PRESSMAN, Roger. Ingeniería de Software, Un Enfoque Práctico. Mc Graw Hill, 2002. México. pp. 5
11
A diferencia de la construcción de algo físico, el Software se desarrolla
cumpliendo niveles de un ciclo de vida, como por ejemplo el espiral, en este en
cada ciclo dentro de la espiral el producto puede ser ya utilizado por el usuario
final.
2) “El Software no se ‘estropea’ ”
A diferencia del Hardware que presenta fallos al inicio de su vida, cuando éstos
son superados tiene una etapa de relativa “calma” (sin presentar errores), pero
pasado un tiempo las partes físicas se vuelven viejas, obsoletas y llegan a
presentar tantos problemas que se vuelven inservibles. Esto no sucede con el
Software ya que este no se ve afectado por el entorno que avejenta al Hardware.
Pero aunque no se estropee, se puede deteriorar por fallas del sistema y
actualizaciones que se deban hacer al Software.
3) Construcción a medida
A pesar de que hoy en día es más frecuente la utilización de componentes de
software reutilizables como plantillas o auxiliares, el software sigue siendo
enfocado a construirlo a la medida de las necesidades del usuario.
2.1.2. FASES GENÉRICAS DEL CICLO DE VIDA DEL SOFTWARE
Todo proyecto de Software se rige a un ciclo de vida. Para cada proyecto, aún
cuando tengan grandes diferencias existe un ciclo de vida que se compone de
varios pasos y difieren normalmente en el fin de éstos.
Independientemente del tipo o complejidad de cada proyecto de Ingeniería de
Software, éste debe cumplir con al menos tres grandes fases genéricas:7
7
PRESSMAN, Roger. Ingeniería de Software, Un Enfoque Práctico. Mc Graw Hill, 2002. México. pp. 15
12
Figura 2.1. Fases de software
2.1.2.1. Fase de definición o planificación
En esta fase el punto clave es el “QUÉ”. En esta fase se busca determinar qué
hará el sistema, qué información queremos procesar, qué información queremos
obtener, qué procesos realizará, qué restricciones tendrá, qué criterios cumplirá.
En esta etapa del proyecto se establece los Requisitos del Software o también
llamado el “Plan de Software”; y el Análisis de los requisitos del software que lo
obtenemos en una “Especificación de Requisitos”. 8
Exige al ingeniero de software grandes conocimientos cognitivos así como una
perspicacia adicional a través del conocimiento emocional ya que es en esta
etapa donde se obtiene toda la información necesaria para saber claramente que
es lo que quiere o necesita el cliente. Uno de los grandes retos en esta rama es
tratar con clientes que no saben claramente lo que necesitan y es ahí donde el
profesional debe investigar a fondo para poder determinarlo y brindar la solución
más eficiente que satisfaga las necesidades del cliente. En esta etapa es donde
se establece a donde se quiere llegar y cuáles serán los alcances de nuestro
trabajo. La etapa se llama “concepción” ya que es aquí donde el producto de
software inicia.
2.1.2.2. Fase de desarrollo
Esta es la fase del “CÓMO”. Se busca determinar cómo se cumplirá con los
requisitos establecidos, cómo se diseñarán las estructuras de datos, cómo se
ALONSO F, MARTINEZ L, SEGOVIA J. Introducción a la Ingeniería del Software. Delta Publicaciones. 2005. España.
pp. 78
8
13
hará uso de la arquitectura de software, cómo serán las interfaces, cómo se
convertirá el diseño en lenguaje de programación, cómo se respetará las
restricciones y cómo se realizarán las pruebas de control.
En esta etapa se realiza el plan de trabajo a fin de cumplir las metas planteadas.
Se determina el camino que se planea tomar para poder cubrir los alcances del
proyecto.
Las tres grandes tareas en esta fase son: diseño de software, generación del
código y pruebas del software.
2.1.2.3. Fase de mantenimiento
El punto clave en esta fase son los “CAMBIOS”. Cambios relacionados con
errores en el sistema, actualizaciones requeridas y mejoras solicitadas por el
cliente o el entorno.
Es en esta etapa en la cual se presenta y entrega el producto terminado al usuario
final. Aquí entran actividades como pruebas, capacitaciones, sociabilización del
sistema, etc.
2.2. BASE DE DATOS
Para el presente proyecto es de vital importancia una base de datos para poder
mantener la información correctamente almacenada a fin de procesarla y
consultarla a todo momento sin tener inconvenientes.
La base de datos, en su forma más simple, es el conjunto de información
ordenada de una determinada manera a fin de que se facilite su consulta.
14
Figura 2.2 Base de datos
En términos técnicos, una base de datos es un fichero en el cual se almacena
información en campos ordenados en distintas columnas y distribuidos en
registros o filas. 9
Las bases de datos son creadas para la representación de algunos aspectos del
mundo real para poder manipularlos fácilmente y procesarlos según las
necesidades específicas.
El diseño de la base de datos es de gran importancia para la programación de
software ya que es de éstas de donde obtiene la información que procesará, por
lo tanto el diseño de la base debe ser realizado pensando en todos los factores
que intervendrán en el proceso a sistematizar y ordenarlos de manera
consecuente para que sea fácil su utilización.
Usuario final es el actor por el cual se realiza en sí la base de datos, éste requiere
acceder a la base de datos para consultarla, actualizarla y/o generar informes.
Hay diferentes tipos de actores que interactúan con una base de datos. 10
El administrador de la base de datos es el responsable de mantener la base de
datos ordenada, velando porque los registros no se corrompan ni se eliminen por
http://www.emagister.com/curso-informatica-administracion-publica-3/bases-datos-concepto-caracteristicasfuncionalidades
10 RAMOS MARTÍN Alicia, RAMOS MARTIN Ma. Jesús. Operaciones con Bases de Datos Ofimáticas y Corporativas.
Paraninfo. 2008. España. pp. 4
9
15
error. Este actor tiene como principal responsabilidad sacar copias de seguridad
(backups).
Diseñador de base de datos, crea las diferentes tablas donde se almacenarán los
registros que contienen la información. Este actor determina las relaciones
internas que tendrán las tablas y registros dentro de la base de datos.
Analista de sistemas y programador de aplicaciones estos actores trabajan con la
base de datos para realizar aplicaciones que busquen, creen, eliminen o impriman
información dentro de las bases.
2.3. MICROSOFT SQL SERVER 2008
En el presente sistema se hizo uso de Microsoft SQL Server 2008 para la
compilación de la base de datos generada para trabajar en el proyecto. Se
escogió esta versión por su compatibilidad con Access al ser ambas de la
empresa Microsoft.
Es una plataforma que propone controlar la demanda crítica de aplicaciones,
reduce el tiempo y costos de desarrollo, tanto en el manejo de aplicaciones como
en la posibilidad de tener una visión global de toda la empresa mediante una
estructura productiva e inteligente.11
Microsoft SQL Server 2008 permite manipular y acceder a datos críticos para el
negocio desde diversos dispositivos, plataformas y servicios de datos dentro de la
organización.
En esta plataforma, lo que Microsoft busca es mejorar la productividad de los
desarrolladores proporcionando una esperada integración entre los Frameworks,
las tecnologías de conectividad de datos, lenguajes de programación, servicios
web, herramientas de desarrollo y datos.
11
http://msdn.microsoft.com/es-ec/, Mayo 2012
16
Una de las estrategias planteadas por SQL Server es la reducción de costos y de
la complejidad entregando una base de datos de fácil manejo para su
construcción, administración e implementación de aplicaciones, esto lo consigue
por un modelo de programación simplificado.
Figura 2.3 SQL Server 2008 en el contexto de desarrollo
Microsoft® , 2010
Utiliza tres esquemas fundamentales en la metodología de diseño:
El Modelo Global.- es la identificación del flujo de información dentro de la
organización,
El Modelo Lógico.- representa la estructura de los datos a través de entidades y
dependencias las cuales garantizan su consistencia e integridad, y
El Modelo Físico.- es el almacén de los datos, es aquí donde se convierten en
información.
17
Las herramientas incluidas en SQL Server 2008 son: base de datos relacional,
servicios de réplica, servicios de notificación, servicios de integración, servicios de
análisis, servicios de reportes, además de las herramientas de administración y
desarrollo.
2.4. MICROSOFT SQL SERVER MANAGEMENT STUDIO 2008
EXPRESS
Este componente de Microsoft SQL Server 2008 nos permitió una administración
de la base de datos de una manera eficiente. Fue utilizada al ver la bibliografía
Microsoft donde recomiendan su utilización para poder aprovechar sus beneficios.
En esta herramienta se construyó vistas de tablas para su posterior consulta. Fue
a través de esta herramienta donde se corrió el script de la base de datos y donde
se realizaron los store procedures.
Para obtener acceso a todos los componentes de SQL Server, configurarlos,
administrarlos y desarrollarlos se creó un entorno de gestión integrado SQL
Server Management Studio. Este combina una serie de editores de script con un
amplio grupo de herramientas gráficas que ofrece acceso a SQL Server a
programadores y administradores de todos los niveles de especialización.12
Algunas de las características generales de SQL Server Management Studio son:
• Compatibilidad con las tareas administrativas de SQL Server.
• Entorno único integrado para administración y edición de SQL Server
Database Engine (Motor de base de datos de SQL Server).
• Cuadros de diálogo para la administración de objetos de SQL Server, los
cuales permiten ejecutar las acciones inmediatamente, enviarlas a un editor
de código o escribirlas en scripts para ejecutarlas posteriormente.
• Exportación e importación del registro de servidor de SQL Server
Management Studio desde un entorno de Management Studio a otro.
12
http://msdn.microsoft.com/es-es/library/bb500397%28v=sql.105%29.aspx, Mayo 2012
18
• Un explorador Web integrado para una rápida exploración de MSDN o la
Ayuda en pantalla.
SQL Server Management Studio ofrece ventanas de herramientas para todas las
fases del desarrollo y la administración. Algunas herramientas se pueden utilizar
en cualquier componente de SQL Server, mientras que otras son sólo para ciertos
componentes. A continuación se listan herramientas que se pueden utilizar con
todos los componentes de SQL Server:
Herramienta
Finalidad
Usar el Explorador de
Examinar
objetos
administrar orígenes de datos y ver registros.
Administrar servidores
Almacenar información de conexión de servidores a
registrados
los que se obtiene acceso con frecuencia.
Usar el Explorador de
Almacenar y organizar secuencias de comandos e
soluciones
información de conexión relacionada en proyectos
servidores,
crear
y
ubicar
objetos,
denominados Secuencias de comandos de SQL
Server. Es posible almacenar varias Secuencias de
comandos de SQL Server como Soluciones y utilizar
el control de código fuente para administrar las
secuencias de comandos a medida que evolucionan.
Usar las plantillas de
Crear consultas basadas en las plantillas existentes.
SQL Server
También es posible crear consultas personalizadas o
Management Studio
modificar las plantillas existentes de modo que se
ajusten a su situación.
Ayuda dinámica
Mostrar una lista de temas relacionados de la Ayuda
cuando se hace clic en un componente o en un tipo
de código.
Tabla 2.1 Lista de herramientas de SQL Server
19
2.5. MICROSOFT OFFICE 2010
Es una suite de oficina creada por la empresa Microsoft para brindar soluciones y
prestaciones a fin de facilitar el trabajo diario en las oficinas a través de
herramientas amigables y de fácil uso y rápido aprendizaje.
Esta suite integra funcionalidades para integrar aplicaciones de escritorio,
servidores y servicios para sistemas operativos Microsoft Windows y Mac OS X.
fue lanzado en 1989 por Microsoft para la empresa Apple Macintosh y a año
seguido una segunda versión para Windows.
La primera versión del Microsoft Office ofrecía los programas: Microsoft Word
(procesador de texto), Microsoft Excel (herramienta compuesta por varias hojas
de cálculo, utilizada primordialmente en tareas contables y financieras) y Microsoft
Power Point (herramienta para realizar presentaciones utilizada en su mayoría en
el campo de la enseñanza y los negocios.). Una versión “Pro” (profesional) incluía
Microsoft Access y Schedule Plus (fue un gestor de información personal, al estilo
de una agenda de contactos que posteriormente se integró a Microsoft Outlook).
Desde el año 1997 hasta el año 2003 la
suite ofimática utilizó un grupo de
formatos conocidos como 97-2003 o 98-2004. Desde el año 2007 con el
lanzamiento del Office 2007, dichos formatos cambiaron a los Office Open XML
(docx, xlsx, pptx).
Microsoft Office 2010 es una versión de la suite ofimática de Microsoft y sucesora
de Microsoft Office 2007. Ésta versión incluye compatibilidad extendida para
diversos formatos de archivos y actualizaciones de la interfaz de usuario. Con
esta versión se lanza también al mercado Office Web Apps, versión gratuita que
incluye Word, Excel, Power Point y OneNote que trabaja directamente en
navegadores Web. A su vez nos ofrece también Office Mobile 2010 que estará
disponible en equipos Windows Phone.
Algunas herramientas de esta versión de suite incluyen un comprobador de
accesibilidad que se ejecuta automáticamente mientras de crea el archivo y va
20
identificando áreas que podrían platear problemas de visión o uso para usuarios
con discapacidades.
2.5.1. MICROSOFT ACCESS 2010
Microsoft Access 2010 fue el componente que nos permitió construir el Front-end
eficiente y amigable con el usuario.
Microsoft Access es un sistema de gestión de bases de datos relacionales para
los sistemas operativos Microsoft Windows. Es un componente de la suite
ofimática Microsoft Office. Permite crear ficheros de bases de datos relacionales
que pueden ser fácilmente gestionadas por una interfaz gráfica simple. Además,
estas bases de datos pueden ser consultadas por otros programas. Este
programa permite manipular los datos en forma de tablas (formadas por filas y
columnas), crear relaciones entre tablas, consultas, formularios para introducir
datos e informes para presentar la información.
“Access 2010 es una herramienta de diseño e implementación de aplicaciones de
base de datos que se puede usar para realizar un seguimiento de la información
importante. Puede conservar los datos en el equipo o publicarlos en la Web, de
forma que otras personas puedan usar la base de datos con un explorador web.”
13
Office 2010.
Esta herramienta nos permite desarrollar de manera fácil y rápida aplicaciones de
base de datos relacional para la administración de la información.
Access 2010 incluye características que permiten un trabajo con datos
almacenados en otros programas. Se puede importar o vincular datos desde
diferentes orígenes tales como:14
• Excel.- se puede incorporar datos desde una hoja de cálculo o un rango
con nombre en un libro de Excel.
13
14
http://office.microsoft.com/es-hn/access-help/tareas-basicas-en-access-2010-HA101829991.aspx, Julio 2012
http://office.microsoft.com/es-hn/access-help/tareas-basicas-en-access-2010-HA101829991.aspx, Agosto 2012
21
• Access.- se puede usar una base de datos para contener todos los
formularios, informes y macros, mientras que se puede conservar los datos
en otra base de datos. También permite combinar datos de muchas bases
de datos de Access diferentes en una, lo que facilita el resumen de datos
de varios departamentos o asociados de negocios.
• Base de datos ODBC.- ayuda a crear bases de datos "centrales", en las
que se combinan datos de sistemas diferentes.
• Archivo de texto.- puede conectarse a un archivo de texto simple e incluso
usar Access para cambiar el contenido de ese archivo.
• Archivo XML.- también ofrece compatibilidad con diversos programas,
incluidos algunos servidores web.
• Lista de SharePoint.- permite que los datos sean utilizables con un
explorador web, la forma estándar de usar una lista de SharePoint.
• Servicios de datos.- Puede conectarse a servicios de datos web dentro de
la organización.
• Carpeta de Outlook.- puede conectarse a carpetas de Outlook, para que la
información de contacto se integre más fácilmente con el resto de los
datos.
Figura 2.4. Access y su motor ACE forman el sistema de administración de base de datos (DBMS)
completo. Microsoft® , 2010
22
Access 2010 es responsable de la interfaz de usuario y de cómo los usuarios ven,
utilizan y modifican datos gracias a los formularios, informes, consultas, macros,
asistentes, etc.
El motor de Microsoft Access (motor ACE) ofrece servicios principales de
administración de base de datos como por ejemplo:
• Almacenamiento de datos.
• Definición de datos.
• Integridad de datos.
• Manipulación de datos.
• Recuperación de datos.
• Cifrado de datos.
• Uso compartido de datos. Este servicio permite compartir datos en un
entorno multiusuario de red.
• Publicación de datos. Se puede trabajar en un entorno web cliente o
servidor.
• Importación, exportación y vinculación de datos. Concede la facilidad de
trabajar con datos de diferentes orígenes.
Figura 2.5 Arquitectura del motor ACE en el entorno de programación de acceso a datos
Microsoft® , 2010
23
Por lo tanto Access es la forma en que el motor ACE se muestra gráficamente a
los usuarios.
En versiones anteriores al Access 2007, el motor que se usaba era el JET éste no
venía como parte de esta plataforma sino que lo distribuían como un producto
independiente por lo cual Access era visto como una herramienta muy básica.
Access 2007 y 2010 tienen incorporado el motor ACE, el cual fue desarrollado
basando en el antiguo motor JET por lo cual es compatible con versiones
anteriores de la herramienta Office. Con el lanzamiento de Access 2010 se
realizaron importantes mejoras al motor ACE lo cual permite ahora también que
admita la versión de 64 bits y mejora la interacción con tecnologías relacionadas
de Share Point y los servicios web. Esta mejora permite que el sistema creado
sea fácilmente escalable y accesible por la web.
Microsoft se ha comprometido con Access como plataforma de programación, por
lo cual evolucionó del simple administrador de base de datos a una robusta
herramienta de programación para brindar servicios de calidad con software
amigable para el usuario.
Access 2010 trabaja con varios datos que son distintos a los tipos de datos con
los que trabaja SQL Server, por lo tanto se debe determinar cuál es el tipo de
datos más adecuado para cada columna de cada tabla o vista de SQL Server que
vaya a importar o vincular.
A continuación se presenta una tabla en la cual se enumeran los tipos principales
de SQL Server y en las siguientes columnas se muestra cómo Access los
interpreta.
bigint
TIPO DE DATOS
DE ACCESS
Texto
binario(tamaño del campo)
Binario
bit
Sí/No
TIPO DE DATOS DE SQL SERVER
TAMAÑO DE CAMPO DE ACCESS
255
Igual que el tamaño de campo de SQL
Server
24
char(tamaño del campo), donde
tamaño del campo es menor o igual
que 255
Texto
char(tamaño del campo), donde
tamaño del campo es mayor que
255
Memo
datetime
Fecha/Hora
decimal(precisión, escala)
Numérico
Decimal (Las propiedades Precisión y
Escala de Access coinciden con la
precisión y escala de SQL Server.)
flotante
Numérico
Doble
image
Objeto OLE
int
Numérico
money
Moneda
nchar(tamaño del campo), donde
tamaño del campo es menor o igual
que 255
Texto
nchar(tamaño del campo), donde
tamaño del campo es mayor que
255
Memo
ntext
Memo
numeric(precisión, escala)
Numérico
nvarchar(tamaño del campo), donde
tamaño del campo es menor o igual Texto
que 255
Igual que el tamaño de campo de SQL
Server
Entero largo
Igual que el tamaño de campo de SQL
Server
Decimal (Las propiedades Precisión y
Escala de Access coinciden con la
precisión y escala de SQL Server.)
Igual que el tamaño de campo de SQL
Server
nvarchar(tamaño del campo), donde
tamaño del campo es mayor que
Memo
255
nvarchar(MAX)
Memo
real
Numérico
smalldatetime
Fecha/Hora
Simple
smallint
Numérico
smallmoney
Moneda
sql_variant
Texto
text
Memo
timestamp
Binario
8
tinyint
Numérico
Byte
uniqueidentifier
Numérico
Id. de réplica
varbinary
Binario
Igual que el tamaño de campo de SQL
Server
varbinary(MAX)
Objeto OLE
Entero
255
25
varchar(tamaño del campo), donde
tamaño del campo es menor o igual
que 255
Texto
varchar(tamaño del campo), donde
tamaño del campo es mayor que
255
Memo
varchar(MAX)
Memo
xml
Igual que el tamaño de campo de SQL
Server
Memo
15
Tabla 2.2. Tabla de datos SQL vs. Access
2.6. ODBC
ODBC (Open DataBase Connectivity – Conectividad abierta de Base de Datos) es
una interfaz la cual habilita el acceso de las aplicaciones a los datos de cualquier
base de datos en la cual haya un controlador ODBC. Es por lo tanto un medio de
comunicación entre una base de datos con ODBC y la aplicación que la llama.
El uso de ODBC genera una API que permite que la aplicación sea independiente
del sistema de administración de base de datos DBMS de origen.
Figura 2.6. Trabajo de OBDC
15
http://office.microsoft.com/es-es/access-help/importar-o-vincular-datos-de-sql-server-HA010200494.aspx#BM3
26
Componentes de OBDC:16
• API de OBDC.- Biblioteca de llamadas a funciones, conjunto de códigos de
error y sintaxis de lenguaje de consulta estructurado (SQL) estándar para
tener acceso a los datos de los DBMS.
• Administrador de controladores ODBC.- Biblioteca de vínculos dinámicos
que carga controladores de base de datos OBDC en nombre de una
aplicación. Es transparente a la aplicación.
• Controladores de bases de datos ODBC.- bibliotecas DLL que procesan
llamadas a funciones ODBC para DBMS específicos.
• Biblioteca de cursores ODBC.- biblioteca de vínculos dinámicos que se
encuentra
entre
el
administrador
de
controladores
ODBC
y
los
controladores, y que controla el desplazamiento por los datos.
• Administrador de ODBC.- Herramienta utilizada para configurar un DBMS
de modo que quede disponible como origen de datos de una aplicación.
Para trabajar en datos de bases SQL Server en Microsoft Access se tiene dos
opciones:
1.- Importación de datos.- Mediante este proceso Access crea una copia para sí
de la base de datos SQL Server. Al ser una copia los cambios realizados en
Access no se verán reflejados en las tablas de SQL, así como cualquier cambio
posterior en SQL no se lo verá en las tablas copiadas de Access.
2.- Vinculación de datos.- cuando uno realiza una vinculación de datos Access se
conecta directamente a la base de datos de SQL para que los cambios realizados
en alguna de las dos plataformas se lo vea en ambas.
En el presente proyecto la conexión se la realizó por una conexión de vinculación
de Microsoft Access 2010 con Microsoft SQL Server 2008. Está decisión fue
tomada en base a lo siguiente:
16
http://msdn.microsoft.com/es-es/library/thzzea08%28v=vs.80%29.aspx, Noviembre 2012
27
• El sistema será multiusuario y se necesita que siempre la base cuente con
datos reales y actualizados del trabajo realizado por los diferentes actores.
• Nuestra base de datos SQL contiene grandes tablas lo que dificultaría su
importación a una sola base de datos de Access. Al hacerlo así nos
limitaría a tan solo 2 GB menos el espacio necesario para los objetos del
sistema.
• El sistema permitirá imprimir reportes y se busca que éstos sean confiables
y actualizados por lo cual deben ser obtenidos los datos directamente de la
base de datos SQL.
Para realizar la vinculación de datos de Access a SQL Server, Access crea una
tabla vinculada que refleja la estructura y el contenido del objeto de origen. Solo
se reflejan en ambos lados los cambios en contenidos, pero si lo que se desea es
realizar un cambio en la estructura de la base, éste cambio se lo debe realizar en
SQL Server.
Los pasos para realizar una vinculación son los siguientes:
1. Revisar los permisos de conexión de la base de datos SQL Server.
2. Identificar las tablas y vistas a vincular.
3. Revisar los datos y considerar la información de los datos en la tabla de
datos SQL vs Access en este documento de tesis.
4. Identificar la base de datos de Access en la que se desea crear las tablas
vinculadas.
5. Para enlazar a los datos se debe abrir la base de datos destino.
6. En la parte “Datos externos” del menú superior, damos clic en “Base de
datos ODBC”
7. Se escoge “Vincular al origen de datos creando una tabla vinculada”
8. En el cuadro de “Seleccionar origen de datos” se hace clic en “Nuevo”
9. Cuando se abre el diálogo “Vincular tablas” escogemos cada tabla o vista
que deseamos vincular.
Al finalizar con este proceso Access nos muestra la o las tablas vinculadas para
poder comenzar a trabajar con éstas.
28
2.7. VISUAL BASIC 7.0
Lenguaje de programación orientado a objetos que se basa en estructuras para su
diseño.
Este lenguaje se basa en el lenguaje de programación Basic un lenguaje
ampliamente aceptado por su fácil uso ya que su concepción fue para
principiantes. Microsoft después de unos años busca mezclar la sencillez del
Basic con un robusto lenguaje de programación Visual y es cuando nace Visual
Basic. Con este lenguaje Microsoft consigue un lenguaje de programación aún
más atractivo ya que además de sencillo es amigable por su gran interfaz gráfica.
Después de esto Visual Basic ya no es un lenguaje para principiantes sino que se
convirtió en una perfecta alternativa para los programadores de cualquier nivel.
Con Visual Basic se pueden crear aplicaciones compatibles con plataformas
Windows.
Visual Basic .NET es la evolución del lenguaje Visual Basic implementado sobre
el framework .NET de Microsoft. Esta transición tuvo algunos inconvenientes ya
que la versión actual no era compatible con versiones anteriores, pero aun así el
manejo de las instrucciones era similar a las versiones anteriores. Esta evolución
permitió a los profesionales utilizar una herramienta conocida para el desarrollo de
aplicaciones más avanzadas y modernas.
Un elemento declarado es un elemento de programación definido en una
instrucción de declaración. Los elementos declarados incluyen variables,
constantes,
enumeraciones,
clases,
estructuras,
módulos,
interfaces,
procedimientos, parámetros de procedimientos, valores devueltos de funciones,
referencias a procedimientos externos, operadores, propiedades, eventos y
delegados.
Las instrucciones de declaración incluyen lo siguiente:17
• Instrucción Dim.- declara y asigna espacio para almacenar una o más
variables.
17
http://msdn.microsoft.com/es-es/library/ms172579%28v=vs.80%29.aspx, Agosto 2012
29
• Instrucción Const.- declara y define una o más constantes.
• Instrucción Enum.- declara una enumeración y define los valores de sus
miembros.
• Instrucción Class.- declara el nombre de una clase e introduce la definición
de las variables, propiedades, eventos y procedimientos que la clase
comprende.
• Structure.- declara el nombre de una estructura e introduce la definición de
las variables, propiedades, eventos y procedimientos que incluye la
estructura.
• Module.- declara el nombre de un módulo e introduce la definición de las
variables, propiedades, eventos y procedimientos que incluye el módulo.
• Instrucción Interface.- declara el nombre de una interfaz e introduce las
definiciones de los miembros que incluye la interfaz.
• Instrucción Function.- declara el nombre, los parámetros y el código que
definen \un procedimiento Function.
• Instrucción Sub.- declara el nombre, los parámetros y el código que definen
\un procedimiento Sub.
• Declare.- declara una referencia a un procedimiento implementado en un
archivo externo.
• Operator.- declara el símbolo de operador, los operandos y el código que
definen un procedimiento de operador en una clase o estructura.
• Property.- declara el nombre de una propiedad y los procedimientos de
propiedades que se utilizan para almacenar y recuperar el valor de la
propiedad.
• Event.- declara un evento definido por el usuario.
• Delegate.- se utiliza para declarar un delegado. La instrucción Delegate
define los tipos de parámetros y el tipo de valor devuelto de una clase de
delegado.
30
2.7.1. VBA 7.0
Este lenguaje al ser integrado con Access 2010 permitió escribir código
fundamental para lograr avanzados procesos del sistema para cumplir con
distintos requisitos.
“Visual Basic for Applications” VBA o Visual Basic para aplicaciones es una
versión del lenguaje de programación Visual Basic creado para ampliar las
funcionalidades de las herramientas de la suite Office 2010, entre esas Access
2010.18
VBA es un lenguaje que parte del Visual Basic 5.0 y del 6.0. Viene integrado en
las herramientas Word, Excel, Access y Power Point de Microsoft Office 2010. Al
ser descendiente de éstas dos versiones del Visual Basic, la programación con
este lenguaje puede realizar grandes procesos, pero siempre y cuando vaya
acompañado de la herramienta de Office con la cual trabaja. 19
http://msdn.microsoft.com/eses/library/office/ee814735%28v=office.14%29.aspx#ProductVersionKeyword_Introduction, Mayo 2013
19 http://es.wikipedia.org/wiki/Visual_Basic_for_Applications, Mayo 2013
18
31
CAPÍTULO III
3. MARCO METODOLÓGICO
Para el desarrollo de software necesitamos de metodologías y estándares para
poder contar con guías a fin de tener conocimiento acerca del camino que se
debe recorrer antes de llegar a nuestro objetivo. Es responsabilidad del equipo
que estará a cargo del proyecto el seleccionar una metodología que esté acorde a
sus objetivos y cumpla con sus requerimientos.
Para el presente proyecto se escogió la metodología RUP para poder cumplir con
un producto de calidad.
3.1. METODOLOGÍA RUP
Rational Unified Process o Proceso Unificado de Racional es “un marco de trabajo
genérico que puede especializarse para una gran variedad de sistemas software,
para diferentes áreas de aplicación, diferentes tipos de organizaciones, diferentes
niveles de aptitud y diferentes tamaños de proyecto”20
Este proceso se basa en guiar al proyecto a que sea construido en base a
componentes interconectados a través de interfaces.
Los orígenes del RUP se encuentran en el modelo espiral originalmente de Barry
Boehm en el año de 1986. Las actividades de este modelo se conforman en una
espiral, en la que cada iteración (o bucle) representa un conjunto de actividades.
El RUP se caracteriza por ser incremental, estar centrado en la arquitectura y
guiado por los casos de uso. El ciclo de vida RUP es una implementación del
Desarrollo en espiral. Fue creado ensamblando los elementos en secuencias
semi-ordenadas.
JACOBSON I, BOOCH G, RUMBAUGH J. El Proceso Unificado de Desarrollo de Software. Addison Wesley, 1999.
pp.4
20
32
El RUP es el resultado del trabajo de varias personas a lo largo de tres décadas,
partiendo desde la metodología Ericsson en 1967, pasando por la compañía
Objetory a finales de los 80`s hasta llegar a mediados de los años 90´s cuando
Rational se une a UML y en 1998 lanzan RUP.
Figura 3.1. Historia de RUP
3.1.1. CARACTERÍSTICAS
Lo que hace único al RUP es que está dirigido por casos de uso, centrado en la
arquitectura y que es iterativo e incremental.
Dirigido por casos de uso: el RUP parte desde el uso de los casos de uso para la
obtención de requisitos con los que se inicia el proyecto de Software.
Figura 3.2. Modelos desarrollados en los flujos de trabajo de RUP.
21
JACOBSON I, BOOCH G, RUMBAUGH J. El Proceso Unificado de Desarrollo de Software. Addison Wesley, 1999.
pp.32
21
33
El modelo de casos de uso se transforma en el modelo de diseño por medio del
modelo de análisis ya que éste último es una especificación detallada del modelo
de casos de uso y trabaja como una primera aproximación de modelo de diseño.
Proceso centrado en la arquitectura.- Cada producto tiene una función y una
forma. La función la determina los casos de uso y la forma está determinada por
la arquitectura de software, es por esto que la arquitectura es una parte medular
en el proceso. Los casos de uso deben encajar en la arquitectura y la arquitectura
debe permitir que los casos de uso requeridos se desarrollen.
Iterativo e Incremental.- Por razones de tiempo empleado en el proyecto de
software es recomendable subdividir el mismo en partes más pequeñas o
iteraciones. Cada iteración representa un incremento en el proyecto. En cada
iteración se determinan los casos de uso relevantes y crean un diseño utilizando
la arquitectura seleccionada, la cual trabajará como guía. Cada iteración debe
cumplir con lo siguiente:
• Establecer oportunidad y alcance,
• Identificar las entidades externas o actores con las que se trata,
• Identificar los casos de uso.
3.1.2. CICLO DE VIDA DEL RUP
El ciclo de vida de la metodología RUP, al ser ésta una metodología iterativa, se
compone de fases y disciplinas.
34
Figura 3.3. Fases del ciclo de vida del método RUP
3.2. CONSTRUCCIÓN DEL SISTEMA
Este sistema SAESFAC, ha seguido las fases de la metodología RUP, lo cual se
evidencia en el desarrollo de los siguientes ítems.
3.2.1. FASE DE INICIO
En esta fase se genera una descripción del producto final y se presenta el análisis
de negocio para el producto. Se centra en estas preguntas:
1. “¿Cuáles son las principales funciones del sistema para sus usuarios más
importantes?”
2. “¿Cómo podría ser la arquitectura del sistema?”
3. “¿Cuál es el plan de proyecto y cuánto costará desarrollar el producto?”22
Para responder la primera pregunta se utiliza el modelo de casos de uso con los
más críticos que para el presente sistema se encuentra en el manual técnico en la
página 3. Se realizan bosquejos mostrando los subsistemas los más importantes
JACOBSON I, BOOCH G, RUMBAUGH J. El Proceso Unificado de Desarrollo de Software. Addison Wesley, 1999.
pp.11 - 12
22
35
lo cuales para el sistema SAESFAC son gestión de personal, gestión estudiantil y
gestión de curso. Se deben identificar los riesgos más importantes y priorizarlos.
Además se planifica detalladamente la fase de elaboración y se estima de manera
aproximada todo el proyecto.
En el caso del sistema de Administración Estudiantil del SFAC se realizó la
planificación de la siguiente manera:
• Para la fase de inicio se tomarán 6 semanas del 21 de mayo al 30 de junio
del 2012
• Para la fase de elaboración se tomarán aproximadamente 12 semanas que
irían desde el 2 de julio al 23 de septiembre de 2012.
• Se planeó que para la fase de construcción se tomará un aproximado de 20
semanas las cuales serían entre el 24 de septiembre del 2012 y el 8 de
febrero del 2013
• Las pruebas y la implementación tomarán entre 2 a 4 semanas las cuales
se realizarían entre mediados de febrero y el mes de marzo del 2013.
Dentro de la fase de inicio encontramos las disciplinas de modelado de negocio y
los análisis de requerimientos.
3.2.1.1. Modelado de negocio
El Modelado del Negocio consiste en tener un conocimiento preciso de lo que
actualmente se hace en los procesos que serán considerados en el nuevo
sistema.
En esta etapa se busca tener una visión general de la empresa. Después de esto,
identificar y descubrir los procesos correspondientes así como los usuarios
responsables y el flujo de procesos e información en el área directamente
relacionada al sistema. Con esto se determina ventajas y desventajas así como
posibles mejoras a sus procesos actuales.
36
3.2.1.2. Análisis de requerimientos
Esta etapa tiene su principal actividad en la Fase de Elaboración, sin embargo ya
se van considerando ciertos aspectos en la Fase de Inicio, al momento de
identificar los procesos actuales también se van viendo sus necesidades o
requerimientos.
También
se
debe
identificar
los
requerimientos
funcionales,
operativos,
ergonómicos, de prueba y de rendimiento de cada componente. Buscamos la
identificación de los Casos de Uso.
3.2.1.3. Productos
3.2.1.3.1. Documento Visión
Para el sistema SAESFAC la fase de inicio se la realizó mediante reuniones
mantenidas con el director del San Francisco AutoClub y su personal docente y
administrativo para poder recopilar los requisitos de todos los miembros del
equipo.
Se estudió exhaustivamente los procesos realizados. Se identificó plenamente los
potenciales usuarios del sistema que sería el personal de la escuela. Y se
describieron las ventajas del cambio, las cuales las puede encontrar al inicio de
este documento en el capítulo 1 en la página número 2.
3.2.1.3.2. Diagramas de casos de uso
Un caso de uso es una descripción de las acciones de un sistema desde el punto
de vista del usuario. El caso de uso es una estructura que ayuda a los analistas a
trabajar con los usuarios para determinar la forma en que se usará un sistema.
Con una colección de casos de uso se puede hacer el bosquejo de un sistema en
términos de lo que los usuarios intenten hacer con él.
En los diagramas de casos de uso se muestra en forma gráfica y explícita la
interacción de los entes externos con nuestro sistema, aquí mostramos cómo
esperamos que los usuarios interactúen con el sistema.
37
En los diagramas de casos de uso se puede nombrar los siguientes elementos:
Actor.- Es la representación gráfica de una entidad externa ya sea usuario,
proceso u objeto material que interactúa con el sistema o subsistema. Se lo
representa como un monigote.
Figura 3.4. Actor – Diagrama de casos de uso
Caso de uso.- Un caso de uso define una pieza de comportamiento coherente
más no revela la estructura interna del sistema. Es una descripción lógica de una
parte de funcionalidad del sistema. Se representa gráficamente como una elipse
con su nombre colocado dentro o bajo ella.
Figura 3.5. Caso de uso
Límite de un sistema.- se lo representa dentro de un rectángulo y se colocan
todos los casos de uso del sistema dentro de éste.
Figura 3.6. Límite del sistema
Para el presente sistema se partió del modelado de negocio y se procedió a la
elaboración del primer diagrama de casos de uso el cual abarca a groso modo
que es lo que espera el director de un sistema en su escuela.
Figura 3.7. Caso de Uso general
38
Los diagramas de casos de uso obtenidos en esta fase se encuentran en el
Manual Técnico en la página 1 y 2.
3.2.2. FASE DE ELABORACIÓN
En la fase de elaboración se seleccionan los casos de uso que permiten definir la
arquitectura base del sistema y se desarrollaran en esta fase, se realiza la
especificación de los casos de uso seleccionados y el primer análisis del dominio
del problema, se diseña la solución preliminar.
Al terminar esta fase se obtiene la línea base de la arquitectura. También permite
que el director del proyecto planifique y estime actividades para lograr terminar el
proyecto a tiempo y según reglas que se establecerán a partir de aquí.
3.2.2.1. Análisis y diseño
Es una etapa en la que se realiza el prototipado del Sistema, por lo tanto requiere
la participación activa de los usuarios involucrados en el proyecto, sean estos
directos o indirectos
De manera general las tareas que se realizan en esta etapa o fase del proyecto
son:
• El análisis funcional del Sistema, con la especificación del modelo de casos
de Uso
• La especificación de los requerimientos de Salidas. Comprende un
modelado lo más preciso posible a lo que se implementará.
• La especificación de los requerimientos de Entradas, que consiste en el
prototipado de las interfaces o pantallas de actualización de datos.
• Especificación de interfaces con otros sistemas o aplicaciones.
• Definición del Modelo de Clases, que consiste en la definición de la
estructura de información del sistema.
• Especificación de los diagramas de Secuencia.
• Mapeo del modelo de clases al modelo relacional. Consiste en convertir el
modelo de clase de datos a un modelo de BD relacional.
• La especificación de la estructura de menús del sistema.
39
• El diseño detallado de Programas. En el que se hace uso de los diagramas
de Estados, diagramas de Actividades.
• El diseño del modelo de clases de implementación.
3.2.2.2. Productos
3.2.2.2.1. Diagrama de clases
El diagrama de clases es un producto de la fase de elaboración y es parte de la
vista lógica. Sirve para visualizar las relaciones entre las clases que involucran el
sistema, las cuales pueden ser asociativas, de herencia, de uso y de contenido.
Un diagrama de clases está compuesto por los siguientes elementos:
•
Clase: atributos, métodos y visibilidad. Es la unidad básica que
encapsula toda la información de un Objeto (un objeto es una instancia
de una clase). A través de ella podemos modelar el entorno en estudio.
•
Relaciones: Herencia, Composición, Agregación, Asociación y Uso. Las
relaciones muestran el comportamiento que tienen las clases entre sí.
Hay relaciones de herencia, agregación, asociación y dependencia.
En el SAESFAC hemos identificado las clases de Empleado, estudiante, curso,
aula, horario, notas, materias. El diagrama de clases se encuentra en el manual
técnico en la página número 3.
3.2.2.2.2. Modelo entidad-relación
Este modelo es parte de la fase de elaboración en la vista lógica. El modelo
Entidad – Relación (E-R) se basa en una percepción del mundo real, la cual está
formada por objetos básicos llamados entidades, los cuales poseen atributos y las
relaciones entre estos objetos.
El Modelo Entidad Relación es una herramienta apropiada en la transformación
de un sistema de mundo real a un modelo conceptual. Para muchos diseñadores
y modeladores de sistemas el mundo es visto en una forma abstracta, por ello su
preocupación se basa en describir con precisión el negocio, en lugar de
preocuparse acerca de detalles tales como el rendimiento de la base de datos.
40
Para nuestro caso se realizó el diagrama en base a las ideas planteadas en el
diagrama de clases. El diagrama entidad-relación del SAESFAC se encuentra en
el manual técnico en la página número 4.
3.2.2.2.3. Diagrama de Secuencia
El diagrama de secuencias es parte de la fase de elaboración y pertenece a la
vista de implementación. Representa una interacción en el sistema como un
gráfico de dos dimensiones. La dimensión vertical es el eje de tiempo y la
dimensión horizontal muestra una representación gráfica de los roles de objetos
individuales en la colaboración.
Los diagramas de secuencias se crean para poder mostrar gráficamente como
trabajan las diferentes secuencias de actividades que se van a generar en el
sistema que construiremos. Por ejemplo en nuestro sistema hemos construido los
diagramas de secuencia para la gestión de curso, gestión de notas y gestión de
estudiante.
Los elementos en los diagramas de secuencia son los siguientes:
Actor exterior.- es un actor que inicia la secuencia de eventos en un determinado
ciclo del sistema. Se lo representa a través de un monigote y va normalmente
sobre la línea vertical de vida de la secuencia.
Figura 3.8. Actor – Diagrama de secuencias
Objeto activo.- es el objeto que participa en la secuencia de eventos. Se lo
representa con un rectángulo recostado con su nombre en el interior. Debajo de
este aparece una línea punteada que representa los momentos en los cuales éste
objeto no participa de la secuencia y en un momento determinado se crea un
rectángulo vertical que es la representación del momento en la secuencia en la
cual participa el objeto.
41
Figura 3.9. Objeto activo – Diagrama de secuencia
Mensaje.- es la representación gráfica de la interacción de un objeto sobre otro en
la secuencia de estudio. Se lo representa como una flecha y la punta de ésta
representa la dirección de la interacción.
Figura 3.10.Mensajes – Diagrama de secuencia
En la vista de implementación se realizaron los diagramas de secuencia para la
gestión de curso, gestión de notas y gestión de estudiante. Los diagramas antes
mencionados se encuentran en el manual técnico en las páginas 5, 6 y 7.
Figura 3.11. Diagrama de secuencia de gestión de estudiante del SAESFAC
3.2.2.2.4. Diagrama de Estados
El diagrama de estados es parte de la fase de elaboración y pertenece a la vista
de implementación. También conocido como motor de estados, es una manera
42
para caracterizar un cambio en un sistema es decir que los objetos que lo
componen modificaron su estado como respuestas a los sucesos y al tiempo. El
diagrama muestra los cambios de estado junto con las transiciones entre los
estados.
Los elementos son:
Nodo inicial y final.- denotan el estado inicial y final del objeto. El nodo inicial se lo
representa con un círculo de color negro. El nodo final se lo representa con un
círculo negro rodeado de una circunferencia.
Figura 3.12.Nodos – Diagrama de estados
Estado.- Representa un estado. Se lo representa con un rectángulo con esquinas
redondeadas. En la parte superior del rectángulo está el nombre del estado.
Puede contener una línea horizontal en la mitad, debajo de la cual se indican las
actividades que se hacen en el estado.
Figura 3.13.Estado – Diagrama de estados
Flujo de control.- denota la transición de los estados. El nombre del evento (si
existiera) que causa esta transición etiqueta el cuerpo de la flecha. Se representa
por una flecha y la punta de esta muestra la dirección del flujo.
Figura 3.14. Flujo – Diagrama de estados
En el sistema SAESFAC se realizó el diagrama de estados del curso y del
estudiante. Ambos diagramas se encuentran en el manual técnico en las páginas
8 y 9.
43
Figura 3.15. Diagrama de estados de curso del SAESFAC
3.2.2.2.5. Diagrama de Colaboración
El diagrama de colaboración es parte de la fase de elaboración y pertenece a la
vista de implementación. Es una forma de representar la interacción entre objetos.
Muestra cómo las instancias específicas de las clases trabajan juntas para
conseguir un objetivo común. Implementa las asociaciones del diagrama de
clases mediante el paso de mensajes de un objeto a otro. La implementación es
llamada enlace.
44
Los objetos interactúan entre sí pasándose mensajes y se conectan a través de
enlaces. Los mensajes especifican la transmisión de información entre objetos. Y
los enlaces especifican un camino a lo largo del cual un objeto puede enviar un
mensaje a otro objeto.
Para el sistema SAESFAC se realizaron los diagramas de colaboración
basándose en los diagramas obtenidos de secuencia. Los diferentes diagramas
de colaboración se encuentran en el manual técnico en las páginas 10, 11 y 12.
Figura 3.16 Diagrama de colaboración de cierre de matrículas del SAESFAC
3.2.3. FASE DE CONSTRUCCIÓN
Es en esta fase donde se crea el producto. La línea base del sistema se
transforma en un sistema completo. Al finalizar esta fase, el producto contiene
todos los casos de uso determinados para el producto final de esta iteración.
3.2.3.1. Implementación
La fase de Construcción y las actividades de Implementación comprenden lo
siguiente:
• Asignación de los programas especificados a los programadores.
• Definición de los estándares de codificación.
• Codificación de programas.
• Implementación de la Base de Datos del módulo o sistema.
• Pruebas individuales de programas.
• Integración de los programas en los módulos o componentes.
45
• Implementación de los criterios de Seguridad, Control y Auditoría del
sistema.
• Pruebas integrales de los módulos o componentes (testing).
• Consolidación de los programas en el menú del módulo y éste a su vez en
el menú general del sistema.
Esta es una de las fases más técnicas del sistema, en la cual hay una interacción
y comunicación permanente entre el equipo de analistas, diseñadores y el equipo
de programadores, la participación del usuario es muy mínima, estando limitada a
coadyuvar en las pruebas de programas o módulos.
En esta fase se creó la instancia de base de datos con Microsoft SQL Server
2008. Después de esto se determinó el método de acceso a la base de datos que
fue por autenticación de SQL Server la cual no se basa en las cuentas de usuario
Windows ya que las cuentas de usuario y contraseñas se crean utilizando SQL
Server.
Utilizando SQL Server Management Studio se ejecutó el script de la base de
datos. Luego de esto se procedió a la creación de consultas, vistas y store
procedures necesarios para el funcionamiento del sistema.
Por último se realizó la conexión a tablas vinculadas a través de Access 2010 por
medio de ODBC. En Access 2010 se crearon las interfaces de usuario y se
generaron las restricciones respectivas.
3.2.4. FASE DE TRANSICIÓN
Se determina si la versión está en capacidad de ser entregada a los usuarios. Se
revisan los errores y se estudia si estos pueden ser corregidos en esta versión o
si se necesitará una nueva iteración para hacerlo.
3.2.4.1. Pruebas
Las actividades relacionadas a las Pruebas en RUP se las realiza en todo el ciclo
de vida del proyecto, las pruebas se inician desde la primera iteración de la fase
46
de Elaboración, verificando el cumplimiento de los prototipos respecto a los
requerimientos de los usuarios, luego en la fase de Construcción con más énfasis
cuando se van desarrollando los programas y los componentes del sistema, sin
embargo, la mayor actividad de pruebas es a la conclusión de la fase de
Construcción, cuando se van integrando todos los módulos o componentes del
Sistema y se deben realizar las pruebas integrales.
Las pruebas que se realizan son muy variadas, siendo las más usuales:
• Pruebas de Funcionalidad, orientadas a determinar el cumplimiento de las
funcionalidades del sistema respecto a los requerimientos de los usuarios.
• Pruebas de Integridad, orientadas a probar el sistema en su conjunto y
evaluar
si
los
módulos
y
componentes
operan
bien
estando
interrelacionados.
• Pruebas de Sobrecarga, orientadas a probar fundamentalmente el
desempeño de la base de datos, la velocidad de los algoritmos de
búsqueda de datos y las funciones de ordenamiento de la base de datos.
• Pruebas de Tensión, orientadas a probar los programas de manera
simultánea desde varias terminales.
• Pruebas de ergonomía del sistema, orientadas a evaluar la facilidad de uso
de los programas, su amigabilidad, su personalización, etc.
En el sistema de administración estudiantil se realizaron varios tipos de pruebas
entre ellas las de funcionalidad en las cuales se determinaron algunas fallas de
comprensión, estos errores fueron oportunamente corregidos.
En la parte de pruebas de Integridad se descubrió un error en la parte de integrar
el formulario independiente al formulario de navegación ya que al programar el
formulario independientemente se realizaba un criterio llamando únicamente al
formulario pero al integrarlo al módulo de navegación se debía llamar primero al
módulo de navegación para después llamar al formulario y con esto obtener el
criterio de búsqueda. Gracias a las pruebas de integridad se pudo detectar este
error y corregirlo. El formulario específico dónde se halló dicho error fue en el
“Registro de Matrícula” en la Gestión de Estudiantes.
47
3.2.4.2. Despliegue
En esta etapa es cuando se presenta el sistema al usuario final. Se entrega el
producto terminado al jefe del proyecto quien evaluará si el sistema ya se
encuentra en estado de ser utilizado por el usuario final. Esta etapa se encuentra
principalmente en la fase de Transición.
Para este proyecto el usuario ha cumplido con la etapa de Transición. El sistema
ha sido sometido a la pre-defensa donde el tribunal ha revisado la calidad del
sistema.
48
CONCLUSIONES
1) El presente proyecto permitió al San Francisco AutoClub contar con un
sistema amigable para la administración estudiantil de los alumnos de la
licencia tipo C.
2) Al haber realizado el desarrollo con la herramienta Microsoft Access 2010 se
pudo ofrecer un sistema robusto a través de una herramienta para ellos
conocida pero no aprovechada.
3) Por medio de Microsoft Access se puede realizar sistemas a pequeñas y
medianas empresas quienes no cuentan con infraestructura robusta ni medios
para conseguirla.
4) Microsoft Access ha tenido una gran evolución con el pasar de los años, la
cual se ha convertido en una robusta herramienta de manejo y conexión
remoto a base de datos. Y
nos brinda una amplia gama de opciones al
momento de querer escalar a otras plataformas como por ejemplo la
plataforma Web.
5) La solución Microsoft SQL Server 2008 con su suite Microsoft SQL Server
Management Studio 2008 Express son muy útiles para trabajar en bases de
datos a pequeña o a gran escala.
49
RECOMENDACIONES
1) Se recomienda seguir los protocolos ya establecidos en el San Francisco
AutoClub para que el sistema brinde un correcto acompañamiento.
2) La creación de registros sensibles como cursos, cambio de estado de
matrículas y carga de notas de grado lo debe hacer una persona con
responsabilidad designada por el San Francisco AutoClub.
3) Respaldar la base de datos con cierta periodicidad y en especial luego de
pasos claves como matriculación y registro de notas.
4) En base al trabajo realizado y habiendo analizado el funcionamiento de la
herramienta Microsoft Access 2010 se recomienda que en el pensum de la
carrera de Tecnología en Análisis de Sistemas Informáticos se incluya la
cátedra de ofimática avanzada para mejorar la productividad en las empresas
a través de herramientas muy conocidas y a la vez muy poco explotadas.
50
BIBLIOGRAFÍA
LIBROS
PRESSMAN, Roger. Ingeniería de Software, Un Enfoque Práctico. Mc Graw Hill,
2002. México.
SOMMERVILLE, Ian. Ingeniería del Software. Addison Wesley. 2005. España.
ALONSO F, MARTINEZ L, SEGOVIA J. Introducción a la Ingeniería del Software.
Delta Publicaciones. 2005. España.
NEVADO CABELLO, Ma Victoria. Introducción a las Bases de Datos Relacionales.
Visión Libros. 2010. España.
RAMOS MARTÍN Alicia, RAMOS MARTIN Ma. Jesús. Operaciones con Bases de
Datos Ofimáticas y Corporativas. Paraninfo. 2008. España.
SINCLAIR, Russell. From Access to SQL Server. Apress; Springer-Verlag, 2000.
New York.
COUCH, Andrew. Microsoft® Access® 2010 VBA Programming Inside Out;
Microsoft, 2011. USA.
VIESCAS, John L. Building Microsoft® Access Applications; Microsoft, 2005. USA.
WEITZENFELD, Alfredo. Ingeniería de Software orientada a Objetos con UML,
Java en Internet. Cengage Learning Editores, 2005.
GUÉRIN, Brice-Arnaud. Gestión de proyectos informáticos. Eni Ediciones. 2012.
España.
JACOBSON I, BOOCH G, RUMBAUGH J. El Proceso Unificado de Desarrollo de
Software. Addison Wesley, 1999. Madrid
RUMBAUGH J, JACOBSON I, BOOCH G. El Lenguaje Unificado de Modelado,
Manual de Referencia. Addison Wesley, 2000. Madrid
51
SITIOS WEB
Emagister,
Septiembre
2012,
http://www.emagister.com/curso-informatica-
administracion-publica-3/bases-datos-concepto-caracteristicas-funcionalidades
Microsoft,
SQL
Server
Express
Edition
–
Windows,
Mayo
2012,
http://www.microsoft.com/sqlserver/en/us/editions/2012-editions/express.aspx
Microsoft,
Microsoft
Access
2010
–
Office.com,
Mayo
2012,
http://office.microsoft.com/es-es/access/
Microsoft, Introducción a la programación de Access – Access – Office 2010,
Mayo
2012,
http://office.microsoft.com/es-es/access-help/introduccion-a-la-
programacion-de-access-HA010341717.aspx?CTT=1
http://msdn.microsoft.com/es-ec/
http://office.microsoft.com/es-hn/access-help/tareas-basicas-en-access-2010HA101829991.aspx?CTT=5&origin=HA010341722
http://msdn.microsoft.com/es-es/library/thzzea08%28v=vs.80%29.aspx
http://msdn.microsoft.com/es-es/library/ms172579%28v=vs.80%29.aspx
http://msdn.microsoft.com/eses/library/office/ee814735%28v=office.14%29.aspx#ProductVersionKeyword_Intro
duction, Mayo 2013
http://es.wikipedia.org/wiki/Visual_Basic_for_Applications, Mayo 2013
http://office.microsoft.com/es-es/access-help/importar-o-vincular-datos-de-sqlserver-HA010200494.aspx#BM3
52
ANEXOS
53
DICCIONARIO DE DATOS
NOMBRE DE CAMPO
ID_ALUMNO
NOMBRES
APELLIDOS
DIRECCION
TELEFONO
CELULAR
FECHA_NACIMIENTO
EMAIL
ID_EMPLEADO
SIGLAS_EMPLEADO
NOMBRES_EMPLEADO
APELLIDOS_EMPLEADO
TITULO_EMPLEADO
DIRECCION_EMPLEADO
TELEFONO_EMPLEADO
CELULAR_EMPLEADO
FECHA_NACIMIENTO_EMPLEADO
EMAIL_EMPLEADO
ID_MATERIA
MATERIA
CREDITOS_MATERIA
DESCRIPCION_MATERIA
ID_AULA
AULA
DESCRIPCION_AULA
ID_CURSO
FECHA_INICIO_CURSO
FECHA_FIN_CURSO
NUMERO_AUTOS_CURSO
PUNTAJE_MINIMO_TEORIA
PUNTAJE_MINIMO_PRACTICA
ID_ESTADO_CURSO
ESTADO_CURSO
DESCRIPCION_ESTADO_CURSO
ID_ESTADO_ALUMNO
ESTADO_ALUMNO
DESCRIPCION_ESTADO_ALUMNO
ID_ESTADO_EMPLEADO
ESTADO_EMPLEADO
DESCRIPCION_ESTADO_EMPLEADO
ID_ESTADO_GENERAL
ESTADO_GENERAL
DESCRIPCION_ESTADO_GENERAL
ID_ESTADO_ALUMNO_MATRICULADO
ESTADO_ALUMNO_MATRICULADO
DESCRIPCION_ESTADO_ALUMNO_MATRICULADO
ID_TIPO_SANGRE
TIPO_SANGRE
ID_ESTADO_CIVIL
ESTADO_CIVIL
DESCRIPCIÓN
Identificador de alumno
Nombres de alumno
Apellidos de alumno
Dirección de alumno
Teléfono de alumno
Celular de alumno
Fecha de nacimiento de alumno
Correo electrónico de alumno
Identificador de empleado
Siglas de empleado para manejo interno
Nombres de empleado
Apellidos de empleado
Título académico de empleado
Dirección de empleado
Teléfono de empleado
Celular de empleado
Fecha de nacimiento de empleado
Correo electrónico de empleado
Identificador de materia
Nombre de materia
Número de créditos de materia
Descripción de materia
Identificador de aula
Nombre de aula
Descripción de aula
Identificador de curso
Fecha en la que inicia el curso
Fecha en la que finaliza el curso
Número de autos disponibles para el
curso
Puntaje mínimo para aprobar teoría
Puntaje mínimo para aprobar práctica
Identificador del estado del curso
Estado del curso
Descripción del estado del curso
Identificador del estado de alumno
Estado de alumno
Descripción del estado de alumno
Identificador del estado de empleado
Estado de empleado
Descripción del estado de empleado
Identificador del estado general
Estado general
Descripción del estado general
Identificador del estado de alumno
matriculado
Estado de alumno matriculado
Descripción del estado de alumno
matriculado
Identificador de tipo de sangre
Tipo de sangre
Identificador de estado civil
Estado civil
54
ID_NACIONALIDAD
NACIONALIDAD
ID_SEXO
SEXO
NUMERO_ALUMNOS
NUMERO_AULAS
ID_HORARIO
HORARIO
ID_CARGO
CARGO
DESCRIPCION_CARGO
ID_CICLO_PRACTICA
FECHA_INICIO_CICLO_PRACTICA
FECHA_FIN_CICLO_PRACTICA
FECHA_INICIO_CICLO_TEORIA
FECHA_FIN_CICLO_TEORIA
ASISTENCIA_NOTA_MATERIA
NOTA1_NOTA_MATERIA
NOTA2_NOTA_MATERIA
NOTA3_NOTA_MATERIA
NOTA4_NOTA_MATERIA
SUPLETORIO_NOTA_MATERIA
NOTA1_NOTA_PRACTICA
SUPLETORIO_NOTA_PRACTICA
GRADO_NOTA_GRADO
SUPLETORIO_NOTA_GRADO
COD_ALUM_ALUMNO_MATRICULADO
Identificador nacionalidad
Nacionalidad
Identificador sexo
Sexo
Número de alumnos en un horario
determinado
Número de aulas que se necesitarán
para el número de alumnos
Identificador de horario
Horario
Identificador de cargo
Cargo
Descripción de cargo
Identificador de ciclo de práctica
Fecha en que inicia el ciclo de práctica
Fecha en que finaliza el ciclo de práctica
Fecha en que inicia el ciclo de teoría
Fecha en que finaliza el ciclo de teoría
Porcentaje de asistencia en una materia
Primera nota de la materia
Segunda nota de la materia
Tercera nota de la materia
Cuarta nota de la materia
Nota de supletorio de la materia
Nota final de práctica
Nota de supletorio de práctica
Nota de grado
Nota de supletorio de grado
Código de alumno matriculado
55
MANUAL TÉCNICO
56
MANUAL TÉCNICO
1. FASE DE INICIO
1.1. IDENTIFICACIÓN DE ACTORES
Actores
Director
Secretaria
Profesor
Supervisor de flota
Actividades
Crea cursos
Cierra matriculas
Habilita Grados
Finaliza cursos
Registra ciclo de teoría
Registra ciclo de práctica
Registrar nuevo alumno
Matricular alumno registrado
Asigna profesores y aulas
Registrar notas de supletorio de teoría
Registrar notas de grado
Registrar notas de supletorio de grado
Imprime reportes
Registrar notas de teoría y asistencia
Registrar notas de práctica
-1-
1.2. DIAGRAMA DE CASOS DE USO DEL SISTEMA SFAC
1.2.1. DIAGRAMA DE CASOS DE USO GENÉRICO
1.2.2. DIAGRAMA DE CASOS DE USO ESPECÍFICO
-2-
2. FASE DE ELABORACIÓN
2.1 VISTA LÓGICA
2.1.1. DIAGRAMA DE CLASES DEL SAESFAC
-3-
char(10)
int
int
int
int
int
int
varchar(4)
varchar(50)
varchar(50)
varchar(50)
varchar(100)
varchar(30)
varchar(30)
datetime
varchar(30)
<pk>
<fk1>
<fk2>
<fk3>
<fk4>
<fk5>
<fk6>
T E003_ESTADO_EMPLEADO
NUMERO_ALUMNOS int <pk>
NUMERO_AULAS
int
TT005_DISTRIBUCION_AULA
TE001_ESTADO_CURSO
TE005_ESTADO_ALUMNO_MATRICULADO
ID_EST ADO_CURSO
int
<pk>
ESTADO_CURSO
varchar(100)
DESCRIPCION_ESTADO_CURSO varchar(150)
ID_ALUMNO
ID_CURSO
NOTA1_NOTA_PRACTICA
SUPLETORIO_NOT A_PRACTICA
char(10) <pk,fk>
char(6) <pk,fk>
float
float
TX005_NOTA_PRACT ICA
FK_TX005_NO_REFERENCE_T X007_AL
ID_EST ADO_ALUMNO_MATRICULADO
int
<pk>
ESTADO_ALUMNO_MATRICULADO
varchar(100)
DESCRIPCION_ESTADO_ALUMNO_MAT RICULADO varchar(150)
ID_EMPLEADO char(10)
<pk,fk>
PASSWORD
varchar(500)
TT007_CARGO
int
<pk>
datetime
datetime
<fk>
char(6)
ID_AULA
ID_ESTADO_GENERAL
AULA
DESCRIPCION_AULA
TB004_AULA
ID_CURSO
char(6)
<pk>
ID_ESTADO_CURSO
int
<fk>
FECHA_INICIO_CURSO
datetime
FECHA_FIN_CURSO
datetime
NUMERO_AUTOS_CURSO
int
PUNTAJE_MINIMO_TEORIA
float
FK_TX002_MA_REFERENCE_TB004_AU
PUNTAJE_MINIMO_PRACTICA float
TB005_CURSO
FK_TX003_CI_REFERENCE_TB005_CU
ID_EST ADO_ALUMNO
int
<pk>
ESTADO_ALUMNO
varchar(100)
FK_TX003_CI_REFERENCE_TB003_MA
DESCRIPCION_ESTADO_ALUMNO varchar(150)
FK_TB005_CU_REFERENCE_TE001_ES
T E002_ESTADO_ALUMNO
FK_TX007_AL_REFERENCE_TT008_CI
ID_ESTADO_GENERAL
int
<pk>
ESTADO_GENERAL
varchar(100)
DESCRIPCION_EST ADO_GENERAL varchar(150)
TE004_EST ADO_GENERAL
int
int
varchar(50)
varchar(100)
FK_TX002_MA_REFERENCE_TT006_HO
T X003_CICLO_T EORIA
TB003_MAT ERIA
FECHA_INICIO_CICLO_T EORIA datetime
FK_TB001_AL_REFERENCE_TE002_ES
ID_MAT ERIA
int
<pk>
FECHA_FIN_CICLO_TEORIA
datetime
ID_ESTADO_GENERAL
int
<fk>
<pk,fk1>
ID_CURSO
char(6)
FK_TB003_MA_REFERENCE_TE004_ES
MATERIA
varchar(150)
ID_MATERIA
int
<pk,fk2>
FK_T T008_CI_REFERENCE_TB005_CU
CREDITOS_MATERIA
int
DESCRIPCION_MATERIA varchar(200)
FK_T X002_MA_REFERENCE_TB002_EM
ID_CICLO_PRACTICA
FECHA_INICIO_CICLO_PRACTICA
FECHA_FIN_CICLO_PRACTICA
ID_CURSO
FK_TB004_AU_REFERENCE_TE004_ES
T T008_CICLO_PRACTICA
ID_CARGO
int
<pk>
CARGO
varchar(30)
DESCRIPCION_CARGO varchar(50)
TT006_HORARIO
<pk>
ID_HORARIO int
HORARIO
varchar(30)
ID_ESTADO_ALUMNO_MATRICULADO
ID_ALUMNO
ID_CURSO
ID_HORARIO_TEORIA
ID_HORARIO_PRACTICA
ID_AULA
ID_CICLO_PRACTICA
CODIGO_ALUMNO_ALUMNO_MATRICULADO
int
<fk1>
TX004_NOTA_MATERIA
FK_T X002_MA_REFERENCE_T B005_CU
char(10) <pk,fk2>
FK_T X007_AL_REFERENCE_TB004_AU
ID_ALUMNO
char(10) <pk,fk1>
char(6) <pk,fk3>
FK_TX007_AL_REFERENCE_TB005_CU
ID_CURSO
char(6) <pk,fk1>
int
<fk4>
ID_MATERIA
int
<pk,fk2>
int FK_TX004_NO_REFERENCE_TX007_AL
<fk5>
ASISTENCIA_NOTA_MAT
ERIA
int
int
<fk6>
NOTA1_NOTA_MATERIA
float
int
<fk7>
NOTA2_NOTA_MATERIA
float
int
NOTA3_NOTA_MATERIA
float
NOTA4_NOTA_MATERIA
float
SUPLETORIO_NOT A_MATERIA float
TX007_ALUMNO_MAT RICULADO
FK_TX007_AL_REFERENCE_TB001_ALTX006_NOTA_GRADO
TX002_MATERIA_AULA_PROFESOR
ID_ALUMNO
char(10) <pk,fk>
ID_CURSO
char(6) <pk,fk>
ID_CURSO
char(6) <pk,fk1>
GRADO_NOTA_GRADO
float
ID_MATERIA
int
<pk,fk2>
SUPLETORIO_NOTA_GRADO float
ID_EMPLEADO char(10) <pk,fk3>
FK_TX007_AL_REFERENCE_TE005_ES
FK_TX004_NO_REFERENCE_TB003_MA
ID_HORARIO
int
<pk,fk4>
FK_T X006_NO_REFERENCE_TX007_AL
FK_TX002_MA_REFERENCE_T B003_MA
ID_AULA
int
<pk,fk5>
ID_ALUMNO
char(10)
<pk>
ID_TIPO_SANGRE
int
<fk1>
ID_NACIONALIDAD
int
<fk2>
ID_ESTADO_CIVIL
int
<fk3>
ID_SEXO
int
<fk4>
FK_TB002_EM_REFERENCE_TT002_ES
ID_ESTADO_ALUMNO
int
<fk5>
NOMBRES
varchar(50)
APELLIDOS
varchar(50)
DIRECCION
varchar(100)
TELEFONO
varchar(30)
CELULAR
varchar(30)
FECHA_NACIMIENT O datetime
EMAIL
varchar(50)
TB001_ALUMNO
TT004_SEXO
ID_SEXO int
<pk>
FK_TX007_AL_REF_TT006_HO
SEXO
varchar(30)
FK_TX007_AL_REFERENCE_T T006_HO
FK_T B001_AL_REFERENCE_TT 004_SE
FK_TB002_EM_REFERENCE_TT 007_CA
ID_ESTADO_EMPLEADO
int
<pk>
FK_T B002_EM_REFERENCE_TE003_ES
ESTADO_EMPLEADO
varchar(100)
DESCRIPCION_EST ADO_EMPLEADO varchar(150)
TB006_ACCESO
FK_TB006_AC_REFERENCE_TB002_EM
ID_EMPLEADO
ID_NACIONALIDAD
ID_T IPO_SANGRE
ID_ESTADO_CIVIL
ID_SEXO
ID_CARGO
ID_ESTADO_EMPLEADO
SIGLAS_EMPLEADO
NOMBRES_EMPLEADO
APELLIDOS_EMPLEADO
TITULO_EMPLEADO
DIRECCION_EMPLEADO
TELEFONO_EMPLEADO
CELULAR_EMPLEADO
FECHA_NACIMIENTO_EMPLEADO
EMAIL_EMPLEADO
TB002_EMPLEADO
FK_TB002_EM_REFERENCE_TT003_NA
FK_T B001_AL_REFERENCE_TT001_T I
FK_TB001_AL_REFERENCE_TT 003_NA FK_T B001_AL_REFERENCE_TT002_ES
ID_NACIONALIDAD int
<pk>
NACIONALIDAD FK_Tvarchar(30)
B002_EM_REFERENCE_T T001_TI
T T003_NACIONALIDAD
FK_TB002_EM_REFERENCE_TT004_SE
TT002_ESTADO_CIVIL
ID_ESTADO_CIVIL int
<pk>
ESTADO_CIVIL
varchar(30)
TT 001_T IPO_SANGRE
ID_TIPO_SANGRE int
<pk>
TIPO_SANGRE
varchar(5)
2.1.2.- DIAGRAMA DE ENTIDAD RELACIÓN DEL SISTEMA SAESFAC
-4-
2.2 VISTA DE IMPLEMENTACIÓN
2.2.1. DIAGRAMAS DE SECUENCIA
2.2.1.1. Diagrama de secuencia de Gestión de Curso del SAESFAC
-5-
2.2.1.2.- Diagrama de secuencia de Gestión de Notas
-6-
2.2.1.3.- Diagrama de secuencia de Gestión de Estudiantes
-7-
2.2.2. DIAGRAMAS DE ESTADO
2.2.2.1.- Diagrama de Estados de Curso
8
2.2.2.2.- Diagrama de Estados de Alumno Matriculado
9
2.2.3. DIAGRAMAS DE COLABORACIÓN
2.2.3.1. Gestión del curso
2.2.3.1.1. Diagrama de colaboración de creación de curso
2.2.3.1.2. Diagrama de colaboración de cierre de matrículas
2.2.3.1.3. Diagrama de colaboración de habilitación de grados
10
2.2.3.1.4. Diagrama de colaboración de cierre de curso
2.2.3.2. Diagrama de colaboración de Gestión de notas
11
2.2.3.3. Diagrama de colaboración de matriculación de estudiante
12
4. IMPLEMENTACIÓN
4.1. SCRIPT DE LA BASE DE DATOS
/*==============================================================*/
/* DBMS name:
Microsoft SQL Server 2008
*/
/* Created on:
11/05/2012 13:26:16
*/
/*==============================================================*/
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TB001_ALUMNO') and o.name =
'FK_TB001_AL_REFERENCE_TT001_TI')
alter table TB001_ALUMNO
drop constraint FK_TB001_AL_REFERENCE_TT001_TI
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TB001_ALUMNO') and o.name =
'FK_TB001_AL_REFERENCE_TE002_ES')
alter table TB001_ALUMNO
drop constraint FK_TB001_AL_REFERENCE_TE002_ES
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TB001_ALUMNO') and o.name =
'FK_TB001_AL_REFERENCE_TT003_NA')
alter table TB001_ALUMNO
drop constraint FK_TB001_AL_REFERENCE_TT003_NA
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TB001_ALUMNO') and o.name =
'FK_TB001_AL_REFERENCE_TT002_ES')
alter table TB001_ALUMNO
drop constraint FK_TB001_AL_REFERENCE_TT002_ES
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TB001_ALUMNO') and o.name =
'FK_TB001_AL_REFERENCE_TT004_SE')
alter table TB001_ALUMNO
drop constraint FK_TB001_AL_REFERENCE_TT004_SE
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TB002_EMPLEADO') and o.name =
'FK_TB002_EM_REFERENCE_TE003_ES')
alter table TB002_EMPLEADO
drop constraint FK_TB002_EM_REFERENCE_TE003_ES
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TB002_EMPLEADO') and o.name =
'FK_TB002_EM_REFERENCE_TT003_NA')
alter table TB002_EMPLEADO
drop constraint FK_TB002_EM_REFERENCE_TT003_NA
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TB002_EMPLEADO') and o.name =
'FK_TB002_EM_REFERENCE_TT001_TI')
alter table TB002_EMPLEADO
drop constraint FK_TB002_EM_REFERENCE_TT001_TI
13
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TB002_EMPLEADO') and o.name =
'FK_TB002_EM_REFERENCE_TT002_ES')
alter table TB002_EMPLEADO
drop constraint FK_TB002_EM_REFERENCE_TT002_ES
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TB002_EMPLEADO') and o.name =
'FK_TB002_EM_REFERENCE_TT004_SE')
alter table TB002_EMPLEADO
drop constraint FK_TB002_EM_REFERENCE_TT004_SE
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TB002_EMPLEADO') and o.name =
'FK_TB002_EM_REFERENCE_TT007_CA')
alter table TB002_EMPLEADO
drop constraint FK_TB002_EM_REFERENCE_TT007_CA
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TB003_MATERIA') and o.name =
'FK_TB003_MA_REFERENCE_TE004_ES')
alter table TB003_MATERIA
drop constraint FK_TB003_MA_REFERENCE_TE004_ES
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TB004_AULA') and o.name = 'FK_TB004_AU_REFERENCE_TE004_ES')
alter table TB004_AULA
drop constraint FK_TB004_AU_REFERENCE_TE004_ES
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TB005_CURSO') and o.name = 'FK_TB005_CU_REFERENCE_TE001_ES')
alter table TB005_CURSO
drop constraint FK_TB005_CU_REFERENCE_TE001_ES
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TB006_ACCESO') and o.name =
'FK_TB006_AC_REFERENCE_TB002_EM')
alter table TB006_ACCESO
drop constraint FK_TB006_AC_REFERENCE_TB002_EM
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TT008_CICLO_PRACTICA') and o.name =
'FK_TT008_CI_REFERENCE_TB005_CU')
alter table TT008_CICLO_PRACTICA
drop constraint FK_TT008_CI_REFERENCE_TB005_CU
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TX002_MATERIA_AULA_PROFESOR') and o.name =
'FK_TX002_MA_REFERENCE_TB005_CU')
alter table TX002_MATERIA_AULA_PROFESOR
drop constraint FK_TX002_MA_REFERENCE_TB005_CU
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
14
where r.fkeyid = object_id('TX002_MATERIA_AULA_PROFESOR') and o.name =
'FK_TX002_MA_REFERENCE_TB003_MA')
alter table TX002_MATERIA_AULA_PROFESOR
drop constraint FK_TX002_MA_REFERENCE_TB003_MA
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TX002_MATERIA_AULA_PROFESOR') and o.name =
'FK_TX002_MA_REFERENCE_TB002_EM')
alter table TX002_MATERIA_AULA_PROFESOR
drop constraint FK_TX002_MA_REFERENCE_TB002_EM
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TX002_MATERIA_AULA_PROFESOR') and o.name =
'FK_TX002_MA_REFERENCE_TT006_HO')
alter table TX002_MATERIA_AULA_PROFESOR
drop constraint FK_TX002_MA_REFERENCE_TT006_HO
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TX002_MATERIA_AULA_PROFESOR') and o.name =
'FK_TX002_MA_REFERENCE_TB004_AU')
alter table TX002_MATERIA_AULA_PROFESOR
drop constraint FK_TX002_MA_REFERENCE_TB004_AU
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TX003_CICLO_TEORIA') and o.name =
'FK_TX003_CI_REFERENCE_TB005_CU')
alter table TX003_CICLO_TEORIA
drop constraint FK_TX003_CI_REFERENCE_TB005_CU
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TX003_CICLO_TEORIA') and o.name =
'FK_TX003_CI_REFERENCE_TB003_MA')
alter table TX003_CICLO_TEORIA
drop constraint FK_TX003_CI_REFERENCE_TB003_MA
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TX004_NOTA_MATERIA') and o.name =
'FK_TX004_NO_REFERENCE_TX007_AL')
alter table TX004_NOTA_MATERIA
drop constraint FK_TX004_NO_REFERENCE_TX007_AL
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TX004_NOTA_MATERIA') and o.name =
'FK_TX004_NO_REFERENCE_TB003_MA')
alter table TX004_NOTA_MATERIA
drop constraint FK_TX004_NO_REFERENCE_TB003_MA
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TX005_NOTA_PRACTICA') and o.name =
'FK_TX005_NO_REFERENCE_TX007_AL')
alter table TX005_NOTA_PRACTICA
drop constraint FK_TX005_NO_REFERENCE_TX007_AL
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TX006_NOTA_GRADO') and o.name =
'FK_TX006_NO_REFERENCE_TX007_AL')
alter table TX006_NOTA_GRADO
15
drop constraint FK_TX006_NO_REFERENCE_TX007_AL
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TX007_ALUMNO_MATRICULADO') and o.name =
'FK_TX007_AL_REFERENCE_TE005_ES')
alter table TX007_ALUMNO_MATRICULADO
drop constraint FK_TX007_AL_REFERENCE_TE005_ES
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TX007_ALUMNO_MATRICULADO') and o.name =
'FK_TX007_AL_REFERENCE_TB001_AL')
alter table TX007_ALUMNO_MATRICULADO
drop constraint FK_TX007_AL_REFERENCE_TB001_AL
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TX007_ALUMNO_MATRICULADO') and o.name =
'FK_TX007_AL_REFERENCE_TB005_CU')
alter table TX007_ALUMNO_MATRICULADO
drop constraint FK_TX007_AL_REFERENCE_TB005_CU
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TX007_ALUMNO_MATRICULADO') and o.name =
'FK_TX007_AL_REF_TT006_HO')
alter table TX007_ALUMNO_MATRICULADO
drop constraint FK_TX007_AL_REF_TT006_HO
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TX007_ALUMNO_MATRICULADO') and o.name =
'FK_TX007_AL_REFERENCE_TT006_HO')
alter table TX007_ALUMNO_MATRICULADO
drop constraint FK_TX007_AL_REFERENCE_TT006_HO
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TX007_ALUMNO_MATRICULADO') and o.name =
'FK_TX007_AL_REFERENCE_TB004_AU')
alter table TX007_ALUMNO_MATRICULADO
drop constraint FK_TX007_AL_REFERENCE_TB004_AU
go
if exists (select 1
from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('TX007_ALUMNO_MATRICULADO') and o.name =
'FK_TX007_AL_REFERENCE_TT008_CI')
alter table TX007_ALUMNO_MATRICULADO
drop constraint FK_TX007_AL_REFERENCE_TT008_CI
go
if exists (select 1
from sysobjects
where id = object_id('TB001_ALUMNO')
and
type = 'U')
drop table TB001_ALUMNO
go
if exists (select 1
from sysobjects
where id = object_id('TB002_EMPLEADO')
and
type = 'U')
drop table TB002_EMPLEADO
go
if exists (select 1
from sysobjects
16
where id = object_id('TB003_MATERIA')
and
type = 'U')
drop table TB003_MATERIA
go
if exists (select 1
from sysobjects
where id = object_id('TB004_AULA')
and
type = 'U')
drop table TB004_AULA
go
if exists (select 1
from sysobjects
where id = object_id('TB005_CURSO')
and
type = 'U')
drop table TB005_CURSO
go
if exists (select 1
from sysobjects
where id = object_id('TB006_ACCESO')
and
type = 'U')
drop table TB006_ACCESO
go
if exists (select 1
from sysobjects
where id = object_id('TE001_ESTADO_CURSO')
and
type = 'U')
drop table TE001_ESTADO_CURSO
go
if exists (select 1
from sysobjects
where id = object_id('TE002_ESTADO_ALUMNO')
and
type = 'U')
drop table TE002_ESTADO_ALUMNO
go
if exists (select 1
from sysobjects
where id = object_id('TE003_ESTADO_EMPLEADO')
and
type = 'U')
drop table TE003_ESTADO_EMPLEADO
go
if exists (select 1
from sysobjects
where id = object_id('TE004_ESTADO_GENERAL')
and
type = 'U')
drop table TE004_ESTADO_GENERAL
go
if exists (select 1
from sysobjects
where id = object_id('TE005_ESTADO_ALUMNO_MATRICULADO')
and
type = 'U')
drop table TE005_ESTADO_ALUMNO_MATRICULADO
go
if exists (select 1
from sysobjects
where id = object_id('TT001_TIPO_SANGRE')
and
type = 'U')
drop table TT001_TIPO_SANGRE
go
if exists (select 1
from sysobjects
where id = object_id('TT002_ESTADO_CIVIL')
and
type = 'U')
drop table TT002_ESTADO_CIVIL
go
17
if exists (select 1
from sysobjects
where id = object_id('TT003_NACIONALIDAD')
and
type = 'U')
drop table TT003_NACIONALIDAD
go
if exists (select 1
from sysobjects
where id = object_id('TT004_SEXO')
and
type = 'U')
drop table TT004_SEXO
go
if exists (select 1
from sysobjects
where id = object_id('TT005_DISTRIBUCION_AULA')
and
type = 'U')
drop table TT005_DISTRIBUCION_AULA
go
if exists (select 1
from sysobjects
where id = object_id('TT006_HORARIO')
and
type = 'U')
drop table TT006_HORARIO
go
if exists (select 1
from sysobjects
where id = object_id('TT007_CARGO')
and
type = 'U')
drop table TT007_CARGO
go
if exists (select 1
from sysobjects
where id = object_id('TT008_CICLO_PRACTICA')
and
type = 'U')
drop table TT008_CICLO_PRACTICA
go
if exists (select 1
from sysobjects
where id = object_id('TX002_MATERIA_AULA_PROFESOR')
and
type = 'U')
drop table TX002_MATERIA_AULA_PROFESOR
go
if exists (select 1
from sysobjects
where id = object_id('TX003_CICLO_TEORIA')
and
type = 'U')
drop table TX003_CICLO_TEORIA
go
if exists (select 1
from sysobjects
where id = object_id('TX004_NOTA_MATERIA')
and
type = 'U')
drop table TX004_NOTA_MATERIA
go
if exists (select 1
from sysobjects
where id = object_id('TX005_NOTA_PRACTICA')
and
type = 'U')
drop table TX005_NOTA_PRACTICA
go
if exists (select 1
from sysobjects
where id = object_id('TX006_NOTA_GRADO')
and
type = 'U')
drop table TX006_NOTA_GRADO
18
go
if exists (select 1
from sysobjects
where id = object_id('TX007_ALUMNO_MATRICULADO')
and
type = 'U')
drop table TX007_ALUMNO_MATRICULADO
go
/*==============================================================*/
/* Table: TB001_ALUMNO
*/
/*==============================================================*/
create table TB001_ALUMNO (
ID_ALUMNO
char(10)
not null,
ID_TIPO_SANGRE
int
not null,
ID_NACIONALIDAD
int
not null,
ID_ESTADO_CIVIL
int
not null,
ID_SEXO
int
not null,
ID_ESTADO_ALUMNO
int
not null,
NOMBRES
varchar(50)
not null,
APELLIDOS
varchar(50)
not null,
DIRECCION
varchar(100)
not null,
TELEFONO
varchar(30)
null,
CELULAR
varchar(30)
null,
FECHA_NACIMIENTO
datetime
not null,
EMAIL
varchar(50)
not null,
constraint PK_TB001_ALUMNO primary key (ID_ALUMNO)
)
go
/*==============================================================*/
/* Table: TB002_EMPLEADO
*/
/*==============================================================*/
create table TB002_EMPLEADO (
ID_EMPLEADO
char(10)
not null,
ID_NACIONALIDAD
int
not null,
ID_TIPO_SANGRE
int
not null,
ID_ESTADO_CIVIL
int
not null,
ID_SEXO
int
not null,
ID_CARGO
int
not null,
ID_ESTADO_EMPLEADO
int
not null,
SIGLAS_EMPLEADO
varchar(4)
not null,
NOMBRES_EMPLEADO
varchar(50)
not null,
APELLIDOS_EMPLEADO
varchar(50)
not null,
TITULO_EMPLEADO
varchar(50)
not null,
DIRECCION_EMPLEADO
varchar(100)
not null,
TELEFONO_EMPLEADO
varchar(30)
not null,
CELULAR_EMPLEADO
varchar(30)
not null,
FECHA_NACIMIENTO_EMPLEADO datetime
not null,
EMAIL_EMPLEADO
varchar(30)
not null,
constraint PK_TB002_EMPLEADO primary key (ID_EMPLEADO)
)
go
/*==============================================================*/
/* Table: TB003_MATERIA
*/
/*==============================================================*/
create table TB003_MATERIA (
ID_MATERIA
int
identity,
ID_ESTADO_GENERAL
int
not null,
MATERIA
varchar(150)
not null,
CREDITOS_MATERIA
int
not null,
DESCRIPCION_MATERIA varchar(200)
not null,
constraint PK_TB003_MATERIA primary key (ID_MATERIA)
)
go
/*==============================================================*/
/* Table: TB004_AULA
*/
/*==============================================================*/
create table TB004_AULA (
ID_AULA
int
identity,
ID_ESTADO_GENERAL
int
not null,
AULA
varchar(50)
not null,
DESCRIPCION_AULA
varchar(100)
not null,
19
constraint PK_TB004_AULA primary key (ID_AULA)
)
go
/*==============================================================*/
/* Table: TB005_CURSO
*/
/*==============================================================*/
create table TB005_CURSO (
ID_CURSO
char(6)
not null,
ID_ESTADO_CURSO
int
not null,
FECHA_INICIO_CURSO
datetime
not null,
FECHA_FIN_CURSO
datetime
not null,
NUMERO_AUTOS_CURSO
int
not null,
PUNTAJE_MINIMO_TEORIA float
not null,
PUNTAJE_MINIMO_PRACTICA float
not null,
constraint PK_TB005_CURSO primary key (ID_CURSO)
)
go
/*==============================================================*/
/* Table: TB006_ACCESO
*/
/*==============================================================*/
create table TB006_ACCESO (
ID_EMPLEADO
char(10)
not null,
PASSWORD
varchar(500)
not null,
constraint PK_TB006_ACCESO primary key (ID_EMPLEADO)
)
go
/*==============================================================*/
/* Table: TE001_ESTADO_CURSO
*/
/*==============================================================*/
create table TE001_ESTADO_CURSO (
ID_ESTADO_CURSO
int
identity,
ESTADO_CURSO
varchar(100)
not null,
DESCRIPCION_ESTADO_CURSO varchar(150)
null,
constraint PK_TE001_ESTADO_CURSO primary key (ID_ESTADO_CURSO)
)
go
/*==============================================================*/
/* Table: TE002_ESTADO_ALUMNO
*/
/*==============================================================*/
create table TE002_ESTADO_ALUMNO (
ID_ESTADO_ALUMNO
int
identity,
ESTADO_ALUMNO
varchar(100)
not null,
DESCRIPCION_ESTADO_ALUMNO varchar(150)
null,
constraint PK_TE002_ESTADO_ALUMNO primary key (ID_ESTADO_ALUMNO)
)
go
/*==============================================================*/
/* Table: TE003_ESTADO_EMPLEADO
*/
/*==============================================================*/
create table TE003_ESTADO_EMPLEADO (
ID_ESTADO_EMPLEADO
int
identity,
ESTADO_EMPLEADO
varchar(100)
not null,
DESCRIPCION_ESTADO_EMPLEADO varchar(150)
null,
constraint PK_TE003_ESTADO_EMPLEADO primary key (ID_ESTADO_EMPLEADO)
)
go
/*==============================================================*/
/* Table: TE004_ESTADO_GENERAL
*/
/*==============================================================*/
create table TE004_ESTADO_GENERAL (
ID_ESTADO_GENERAL
int
identity,
ESTADO_GENERAL
varchar(100)
not null,
DESCRIPCION_ESTADO_GENERAL varchar(150)
null,
constraint PK_TE004_ESTADO_GENERAL primary key (ID_ESTADO_GENERAL)
)
go
/*==============================================================*/
/* Table: TE005_ESTADO_ALUMNO_MATRICULADO
*/
20
/*==============================================================*/
create table TE005_ESTADO_ALUMNO_MATRICULADO (
ID_ESTADO_ALUMNO_MATRICULADO int
identity,
ESTADO_ALUMNO_MATRICULADO varchar(100)
not null,
DESCRIPCION_ESTADO_ALUMNO_MATRICULADO varchar(150)
null,
constraint PK_TE005_ESTADO_ALUMNO_MATRICU primary key (ID_ESTADO_ALUMNO_MATRICULADO)
)
go
/*==============================================================*/
/* Table: TT001_TIPO_SANGRE
*/
/*==============================================================*/
create table TT001_TIPO_SANGRE (
ID_TIPO_SANGRE
int
identity,
TIPO_SANGRE
varchar(5)
not null,
constraint PK_TT001_TIPO_SANGRE primary key (ID_TIPO_SANGRE)
)
go
/*==============================================================*/
/* Table: TT002_ESTADO_CIVIL
*/
/*==============================================================*/
create table TT002_ESTADO_CIVIL (
ID_ESTADO_CIVIL
int
identity,
ESTADO_CIVIL
varchar(30)
not null,
constraint PK_TT002_ESTADO_CIVIL primary key (ID_ESTADO_CIVIL)
)
go
/*==============================================================*/
/* Table: TT003_NACIONALIDAD
*/
/*==============================================================*/
create table TT003_NACIONALIDAD (
ID_NACIONALIDAD
int
identity,
NACIONALIDAD
varchar(30)
not null,
constraint PK_TT003_NACIONALIDAD primary key (ID_NACIONALIDAD)
)
go
/*==============================================================*/
/* Table: TT004_SEXO
*/
/*==============================================================*/
create table TT004_SEXO (
ID_SEXO
int
identity,
SEXO
varchar(30)
not null,
constraint PK_TT004_SEXO primary key (ID_SEXO)
)
go
/*==============================================================*/
/* Table: TT005_DISTRIBUCION_AULA
*/
/*==============================================================*/
create table TT005_DISTRIBUCION_AULA (
NUMERO_ALUMNOS
int
not null,
NUMERO_AULAS
int
not null,
constraint PK_TT005_DISTRIBUCION_AULA primary key (NUMERO_ALUMNOS)
)
go
/*==============================================================*/
/* Table: TT006_HORARIO
*/
/*==============================================================*/
create table TT006_HORARIO (
ID_HORARIO
int
identity,
HORARIO
varchar(30)
not null,
constraint PK_TT006_HORARIO primary key (ID_HORARIO)
)
go
/*==============================================================*/
/* Table: TT007_CARGO
*/
/*==============================================================*/
create table TT007_CARGO (
ID_CARGO
int
identity,
CARGO
varchar(30)
not null,
21
DESCRIPCION_CARGO
varchar(50)
null,
constraint PK_TT007_CARGO primary key (ID_CARGO)
)
go
/*==============================================================*/
/* Table: TT008_CICLO_PRACTICA
*/
/*==============================================================*/
create table TT008_CICLO_PRACTICA (
ID_CICLO_PRACTICA
int
identity,
FECHA_INICIO_CICLO_PRACTICA datetime
not null,
FECHA_FIN_CICLO_PRACTICA datetime
not null,
ID_CURSO
char(6)
not null,
constraint PK_TT008_CICLO_PRACTICA primary key (ID_CICLO_PRACTICA)
)
go
/*==============================================================*/
/* Table: TX002_MATERIA_AULA_PROFESOR
*/
/*==============================================================*/
create table TX002_MATERIA_AULA_PROFESOR (
ID_CURSO
char(6)
not null,
ID_MATERIA
int
not null,
ID_EMPLEADO
char(10)
not null,
ID_HORARIO
int
not null,
ID_AULA
int
not null,
constraint PK_TX002_MATERIA_AULA_PROFESOR primary key (ID_CURSO, ID_MATERIA,
ID_EMPLEADO, ID_HORARIO, ID_AULA)
)
go
/*==============================================================*/
/* Table: TX003_CICLO_TEORIA
*/
/*==============================================================*/
create table TX003_CICLO_TEORIA (
FECHA_INICIO_CICLO_TEORIA datetime
not null,
FECHA_FIN_CICLO_TEORIA datetime
not null,
ID_CURSO
char(6)
not null,
ID_MATERIA
int
not null,
constraint PK_TX003_CICLO_TEORIA primary key (ID_CURSO, ID_MATERIA)
)
go
/*==============================================================*/
/* Table: TX004_NOTA_MATERIA
*/
/*==============================================================*/
create table TX004_NOTA_MATERIA (
ID_ALUMNO
char(10)
not null,
ID_CURSO
char(6)
not null,
ID_MATERIA
int
not null,
ASISTENCIA_NOTA_MATERIA int
not null,
NOTA1_NOTA_MATERIA
float
not null,
NOTA2_NOTA_MATERIA
float
not null,
NOTA3_NOTA_MATERIA
float
not null,
NOTA4_NOTA_MATERIA
float
not null,
SUPLETORIO_NOTA_MATERIA float
null,
constraint PK_TX004_NOTA_MATERIA primary key (ID_ALUMNO, ID_CURSO, ID_MATERIA)
)
go
/*==============================================================*/
/* Table: TX005_NOTA_PRACTICA
*/
/*==============================================================*/
create table TX005_NOTA_PRACTICA (
ID_ALUMNO
char(10)
not null,
ID_CURSO
char(6)
not null,
NOTA1_NOTA_PRACTICA float
not null,
SUPLETORIO_NOTA_PRACTICA float
null,
constraint PK_TX005_NOTA_PRACTICA primary key (ID_ALUMNO, ID_CURSO)
)
go
/*==============================================================*/
/* Table: TX006_NOTA_GRADO
*/
/*==============================================================*/
22
create table TX006_NOTA_GRADO (
ID_ALUMNO
char(10)
not null,
ID_CURSO
char(6)
not null,
GRADO_NOTA_GRADO
float
not null,
SUPLETORIO_NOTA_GRADO float
null,
constraint PK_TX006_NOTA_GRADO primary key (ID_ALUMNO, ID_CURSO)
)
go
/*==============================================================*/
/* Table: TX007_ALUMNO_MATRICULADO
*/
/*==============================================================*/
create table TX007_ALUMNO_MATRICULADO (
ID_ESTADO_ALUMNO_MATRICULADO int
not null,
ID_ALUMNO
char(10)
not null,
ID_CURSO
char(6)
not null,
ID_HORARIO_TEORIA
int
not null,
ID_HORARIO_PRACTICA int
not null,
ID_AULA
int
not null,
ID_CICLO_PRACTICA
int
not null,
CODIGO_ALUMNO_ALUMNO_MATRICULADO int
null,
constraint PK_TX007_ALUMNO_MATRICULADO primary key (ID_ALUMNO, ID_CURSO)
)
go
alter table TB001_ALUMNO
add constraint FK_TB001_AL_REFERENCE_TT001_TI foreign key (ID_TIPO_SANGRE)
references TT001_TIPO_SANGRE (ID_TIPO_SANGRE)
go
alter table TB001_ALUMNO
add constraint FK_TB001_AL_REFERENCE_TE002_ES foreign key (ID_ESTADO_ALUMNO)
references TE002_ESTADO_ALUMNO (ID_ESTADO_ALUMNO)
go
alter table TB001_ALUMNO
add constraint FK_TB001_AL_REFERENCE_TT003_NA foreign key (ID_NACIONALIDAD)
references TT003_NACIONALIDAD (ID_NACIONALIDAD)
go
alter table TB001_ALUMNO
add constraint FK_TB001_AL_REFERENCE_TT002_ES foreign key (ID_ESTADO_CIVIL)
references TT002_ESTADO_CIVIL (ID_ESTADO_CIVIL)
go
alter table TB001_ALUMNO
add constraint FK_TB001_AL_REFERENCE_TT004_SE foreign key (ID_SEXO)
references TT004_SEXO (ID_SEXO)
go
alter table TB002_EMPLEADO
add constraint FK_TB002_EM_REFERENCE_TE003_ES foreign key (ID_ESTADO_EMPLEADO)
references TE003_ESTADO_EMPLEADO (ID_ESTADO_EMPLEADO)
go
alter table TB002_EMPLEADO
add constraint FK_TB002_EM_REFERENCE_TT003_NA foreign key (ID_NACIONALIDAD)
references TT003_NACIONALIDAD (ID_NACIONALIDAD)
go
alter table TB002_EMPLEADO
add constraint FK_TB002_EM_REFERENCE_TT001_TI foreign key (ID_TIPO_SANGRE)
references TT001_TIPO_SANGRE (ID_TIPO_SANGRE)
go
alter table TB002_EMPLEADO
add constraint FK_TB002_EM_REFERENCE_TT002_ES foreign key (ID_ESTADO_CIVIL)
references TT002_ESTADO_CIVIL (ID_ESTADO_CIVIL)
go
alter table TB002_EMPLEADO
add constraint FK_TB002_EM_REFERENCE_TT004_SE foreign key (ID_SEXO)
references TT004_SEXO (ID_SEXO)
go
23
alter table TB002_EMPLEADO
add constraint FK_TB002_EM_REFERENCE_TT007_CA foreign key (ID_CARGO)
references TT007_CARGO (ID_CARGO)
go
alter table TB003_MATERIA
add constraint FK_TB003_MA_REFERENCE_TE004_ES foreign key (ID_ESTADO_GENERAL)
references TE004_ESTADO_GENERAL (ID_ESTADO_GENERAL)
go
alter table TB004_AULA
add constraint FK_TB004_AU_REFERENCE_TE004_ES foreign key (ID_ESTADO_GENERAL)
references TE004_ESTADO_GENERAL (ID_ESTADO_GENERAL)
go
alter table TB005_CURSO
add constraint FK_TB005_CU_REFERENCE_TE001_ES foreign key (ID_ESTADO_CURSO)
references TE001_ESTADO_CURSO (ID_ESTADO_CURSO)
go
alter table TB006_ACCESO
add constraint FK_TB006_AC_REFERENCE_TB002_EM foreign key (ID_EMPLEADO)
references TB002_EMPLEADO (ID_EMPLEADO)
go
alter table TT008_CICLO_PRACTICA
add constraint FK_TT008_CI_REFERENCE_TB005_CU foreign key (ID_CURSO)
references TB005_CURSO (ID_CURSO)
go
alter table TX002_MATERIA_AULA_PROFESOR
add constraint FK_TX002_MA_REFERENCE_TB005_CU foreign key (ID_CURSO)
references TB005_CURSO (ID_CURSO)
go
alter table TX002_MATERIA_AULA_PROFESOR
add constraint FK_TX002_MA_REFERENCE_TB003_MA foreign key (ID_MATERIA)
references TB003_MATERIA (ID_MATERIA)
go
alter table TX002_MATERIA_AULA_PROFESOR
add constraint FK_TX002_MA_REFERENCE_TB002_EM foreign key (ID_EMPLEADO)
references TB002_EMPLEADO (ID_EMPLEADO)
go
alter table TX002_MATERIA_AULA_PROFESOR
add constraint FK_TX002_MA_REFERENCE_TT006_HO foreign key (ID_HORARIO)
references TT006_HORARIO (ID_HORARIO)
go
alter table TX002_MATERIA_AULA_PROFESOR
add constraint FK_TX002_MA_REFERENCE_TB004_AU foreign key (ID_AULA)
references TB004_AULA (ID_AULA)
go
alter table TX003_CICLO_TEORIA
add constraint FK_TX003_CI_REFERENCE_TB005_CU foreign key (ID_CURSO)
references TB005_CURSO (ID_CURSO)
go
alter table TX003_CICLO_TEORIA
add constraint FK_TX003_CI_REFERENCE_TB003_MA foreign key (ID_MATERIA)
references TB003_MATERIA (ID_MATERIA)
go
alter table TX004_NOTA_MATERIA
add constraint FK_TX004_NO_REFERENCE_TX007_AL foreign key (ID_ALUMNO, ID_CURSO)
references TX007_ALUMNO_MATRICULADO (ID_ALUMNO, ID_CURSO)
go
alter table TX004_NOTA_MATERIA
add constraint FK_TX004_NO_REFERENCE_TB003_MA foreign key (ID_MATERIA)
references TB003_MATERIA (ID_MATERIA)
go
24
alter table TX005_NOTA_PRACTICA
add constraint FK_TX005_NO_REFERENCE_TX007_AL foreign key (ID_ALUMNO, ID_CURSO)
references TX007_ALUMNO_MATRICULADO (ID_ALUMNO, ID_CURSO)
go
alter table TX006_NOTA_GRADO
add constraint FK_TX006_NO_REFERENCE_TX007_AL foreign key (ID_ALUMNO, ID_CURSO)
references TX007_ALUMNO_MATRICULADO (ID_ALUMNO, ID_CURSO)
go
alter table TX007_ALUMNO_MATRICULADO
add constraint FK_TX007_AL_REFERENCE_TE005_ES foreign key (ID_ESTADO_ALUMNO_MATRICULADO)
references TE005_ESTADO_ALUMNO_MATRICULADO (ID_ESTADO_ALUMNO_MATRICULADO)
go
alter table TX007_ALUMNO_MATRICULADO
add constraint FK_TX007_AL_REFERENCE_TB001_AL foreign key (ID_ALUMNO)
references TB001_ALUMNO (ID_ALUMNO)
go
alter table TX007_ALUMNO_MATRICULADO
add constraint FK_TX007_AL_REFERENCE_TB005_CU foreign key (ID_CURSO)
references TB005_CURSO (ID_CURSO)
go
alter table TX007_ALUMNO_MATRICULADO
add constraint FK_TX007_AL_REF_TT006_HO foreign key (ID_HORARIO_TEORIA)
references TT006_HORARIO (ID_HORARIO)
go
alter table TX007_ALUMNO_MATRICULADO
add constraint FK_TX007_AL_REFERENCE_TT006_HO foreign key (ID_HORARIO_PRACTICA)
references TT006_HORARIO (ID_HORARIO)
go
alter table TX007_ALUMNO_MATRICULADO
add constraint FK_TX007_AL_REFERENCE_TB004_AU foreign key (ID_AULA)
references TB004_AULA (ID_AULA)
go
alter table TX007_ALUMNO_MATRICULADO
add constraint FK_TX007_AL_REFERENCE_TT008_CI foreign key (ID_CICLO_PRACTICA)
references TT008_CICLO_PRACTICA (ID_CICLO_PRACTICA)
go
25
MANUAL DE USUARIO
1
MANUAL DE USUARIO
Al momento de ingresar al sistema le recibe un formulario de acceso donde debe
ingresar su nombre de usuario y contraseña:
Una vez que se ingresaron los datos correctos llegamos a una pantalla genérica
principal.
Como se puede observar en la imagen existen 5 menús superiores: Inicio
(pantalla inicial como se muestra en la imagen), gestión personal, gestión
estudiante, gestión curso y configuración. A continuación se detallará los procesos
que se pueden realizar en cada una de ellas.
1. GESTIÓN PERSONAL
Dentro de este menú se encuentra un solo formulario que se ve de la siguiente
manera:
1
Este formulario se lo utiliza para la creación de nuevos empleados.
Para crear un nuevo registro, guardar, deshacer (salir de un registro sin guardarlo)
o eliminar un registro se utilizan en ese mismo orden los siguientes botones que
se encuentran al final del formulario.
2. GESTIÓN ESTUDIANTE
Dentro de este menú se encuentran las acciones que recaen o tienen
directamente relación con el estudiante.
Tenemos 5 submenús:
2
2.1. REGISTRO ALUMNO
En este formulario se realiza el registro de un alumno nuevo que busca ingresar a
la escuela de conducción. Primero se lo registra, y se le toman los exámenes de
ingreso, si el estudiante aprueba éstos exámenes está apto para cancelar los
valores correspondientes y matricularse en el curso. Este registro de alumno se lo
puede realizar únicamente cuando el estado del curso este en: “Matrículas
Abiertas”
2.2. PROCESO DE MATRÍCULA
Para realizar la matrícula de un estudiante, se escoge el alumno, previamente
registrado, ya sea por su número de cédula o por apellidos y nombres. Se escoge
el curso (se habilita solo los cursos en los cuales su estado sea “Matrículas
Abiertas”), se selecciona el horario de teoría y con las opciones que quedan
escoge el horario de práctica y por ultimo selecciona el ciclo de práctica que son
las tres semanas en las cuales realizará la práctica el estudiante.
3
2.3. REGISTRO DE NOTAS
Dentro de la opción “Registro de notas” tenemos dos menús: Teoría y Práctica
2.3.1. Registro de notas TEORÍA
Para el registro de Notas de teoría se debe primero escoger el curso, en este
combo box solo se habilitarán los cursos que estén en el estado “Habilitación de
notas”. Después se escoge la materia. Para el horario y aula se muestran
únicamente las opciones en las que el usuario (profesor) haya sido asignado para
dar clase.
Ya seleccionados estos parámetros se cargan los alumnos del aula y horario
seleccionados, el profesor debe digitar la asistencia (valor de porcentaje de 1 a
100) y las notas de trabajo en equipo, estudio de casos, prueba práctica y prueba
teórica notas que se califican sobre 20 puntos.
4
2.3.2. Registro de notas PRÁCTICA
Para el registro de notas de práctica el único habilitado para este registro será el
Supervisor de flotas. El supervisor escoge el curso que este en estado “Habilitado
notas” y posteriormente escoge al alumno, carga su nota final de práctica y si ésta
es menor que 16 da la orden de tomar un examen supletorio y lo pasa en este
mismo formulario.
2.4. REGISTRO SUPLETORIO
En este formulario se registran las notas de supletorio de teoría de los alumnos
que en la asistencia obtuvieron menos del 80% y/o que en el promedio de las
cuatro notas de la materia hayan obtenido menos de 16. Esta tarea la realiza
únicamente la Secretaria. Para el registro se debe escoger el curso, la materia y
el alumno y se registra la nota.
2.5. GRADO
En este formulario se ingresa la información de los exámenes de grado. Hay dos
opciones: grado y supletorio. En este formulario se escoge el curso que su estado
sea “Habilitación grados”, se escoge el alumno (en el combo box se muestra los
5
alumnos que se encuentren en el estado “Apto para grado”) y se publica la nota
de grado sobre 20 y si ésta es menor que 16 el alumno debe rendir un examen
supletorio de grado y lo pasa en este mismo formulario.
3. GESTIÓN CURSO
En esta parte del sistema, se gestiona todo lo que tiene relación con el curso.
Tenemos 8 subsecciones como se ve en la imagen:
3.1. MATERIA
Este formulario nos permite crear y actualizar materias que se imparten en los
cursos.
6
3.2. AULA
Este formulario nos permite crear y actualizar las aulas disponibles para los
cursos.
3.3. CICLO TEORÍA
Este formulario nos permite crear los ciclos en los que las materias de teoría será
impartidas.
3.4. CICLO PRÁCTICA
Este formulario nos permite crear los ciclos en los que los alumnos pueden tomar
las tres semanas de práctica que deben cumplir.
7
3.5. MATERIA AULA PROFESOR
En este formulario se asignará un profesor a un aula en un horario determinado
por cada materia del curso activo. Por lo tanto este formulario no permitirá que se
asigne dos veces la misma aula en un mismo horario durante la misma materia,
pasa de igual manera con el profesor.
3.6. CIERRE MATRICULAS
En esta opción es dónde, únicamente el director, cambia el estado del curso de
“Matriculas abiertas” a “Cierre de matrículas”. Por lo tanto en el combo box donde
selecciona el curso solo se muestran los cursos que estén en el primer estado.
El proceso realizado aquí es el siguiente:
1) El director selecciona el curso y elige cerrar matrículas.
2) Se cambia el estado del curso a “Cierre matrículas”, con esto se impide que
nuevos alumnos sean matriculados.
3) Se ordena alfabéticamente a los alumnos matriculados en el presente curso.
4) Se asigna el código del alumno a lista ordenada desde el número 1 hasta el
último matriculado.
8
5) Se contabiliza cuántos alumnos se han matriculado por horario en el presente
curso, con este dato obtiene el número de aulas a ser utilizadas por horario.
6) Se asigna el aula a los estudiantes en forma aleatoria dependiendo del horario
escogido y del número de aulas disponibles.
7) Por último se cambia el estado del curso a “Habilitado notas” para que inicie el
curso.
3.7. HABILITAR GRADOS
En esta opción es dónde, únicamente el director, cambia el estado del curso de
“Habilitación de notas” a “Habilitación grados”. Por lo tanto en el combo box donde
selecciona el curso solo muestra los cursos que estén en el primer estado.
El proceso realizado aquí es el siguiente:
1) Cambia el estado del curso a “Habilitado grados” con esto se impide que
pasen más notas de teoría o práctica
2) Consulta la vista “Lista aprobados única”. En esta vista
se muestran los
estudiantes que aprobaron todas las materias de teoría y la práctica.
3) A los alumnos de este curso que consten en esta lista les cambia el estado a
“Aptos para grados”
4) Los que no estén en la lista su estado cambiará a: “Suspenso” esto quiere
decir que perdieron el presente curso.
3.8. FINALIZAR CURSO
En esta opción es dónde, únicamente el director, cambia el estado del curso de
“Habilitación grados” a “Finalizado”. Por lo tanto en el combo box donde
selecciona el curso solo muestra los cursos que estén en el primer estado.
9
El proceso realizado aquí es el siguiente:
1) Cambia el estado del curso a “Finalizado” con esto se impide que pasen más
notas de grado.
2) Se consulta la tabla de notas de grado de los alumnos de este curso.
3) Los alumnos que tengan el estado “Apto para grado” que tengan en nota de
grado o de supletorio igual o mayor a 16 se les cambia el estado a
“Graduado”, caso contrario se cambia su estado a “No aprobado”
4. CONFIGURACIÓN
En esta parte del sistema, se gestiona todo lo que tiene relación con los
parámetros y tablas de estados. También aquí se encuentra el formulario para la
creación del curso.
10
Descargar