El presente proyecto de investigación realiza el análisis, diseño e implantación de un sistema automatizado de control de asistencia para el Bachillerato Tecnológico “Moisés Sáenz” de San Juan Bautista Tuxtepec, Oaxaca. El sistema permitirá optimizar la generación de reportes de información sobre las horas laboradas por el personal a través de una interfaz gráfica y una base de datos. Se utilizó la metodología en cascada para cumplir los objetivos de identificar requerimientos, diseñar la estructura lóg
Sistema control asistencia Bachillerato Moisés Sáenz
1. S.E.P
I
D.G.E.S.T
S.N.E.S.T
NSTITUTO TECNOLÓGICO
DE TUXTEPEC
INGENIERIA EN SISTEMAS COMPUTACIONALES
“DESARROLLO DE UN SISTEMA DE CONTROL
DE ASISTENCIA PARA EL BACHILLERATO
TECNOLÓGICO MOISÉS SÁENZ DE SAN JUAN
BAUTISTA TUXTEPEC OAXACA”
PROYECTO DE INVESTIGACIÓN
PRESENTA:
ANTONIO GÓMEZ MARÍA DEL ROSARIO
CONTI SÁNCHEZ CRISTIAN JOAQUÍN
JORGE RAFAEL CLEOTILDE
MARTÍNEZ HERRERA KEREN ARADI
SÁNCHEZ GONZÁLEZ CARLOS ALEJANDRO
VICENTE MENDOZA ANTONIO
ASESOR:
L.I. MARÍA DE LOS ÁNGELES MARTÍNEZ
MORALES
Tuxtepec, Oax.
ISC – 2013 / 12
Diciembre de 2013
2. NOMBRE DEL PROYECTO
Desarrollo de un sistema de control de asistencia para el Bachillerato Tecnológico
“Moisés Sáenz” de San Juan Bautista Tuxtepec, Oaxaca.
ii
3. RESUMEN
El Bachillerato Tecnológico Moisés Sáenz es una institución particular, la
cual fue establecida desde el año de 1998, ofreciendo desde entonces estudios
de nivel medio superior
a los estudiantes de San Juan Bautista Tuxtepec,
Oaxaca, donde se encuentra ubicada.
El presente proyecto de investigación realiza el análisis, diseño e
implantación de un sistema automatizado de control de asistencia para la
institución “Bachillerato Tecnológico Moisés Sáenz”, así mismo hace énfasis en la
optimización de la generación de los reportes de información de horas laboradas
por el personal.
En éste documento se describen los objetivos que se buscan cumplir,
entre ellos se encuentran, identificar los requerimientos para el sistema, diseñar la
estructura física y lógica de la base de datos, diseñar la interfaz gráfica del
sistema, realizar las pruebas del sistema, implantación del sistema en la
Institución, realizar las pruebas pertinentes y la elaboración del manual de usuario,
herramienta de apoyo para el personal.
Se presentan también las herramientas y técnicas que fueron utilizadas en
el desarrollo del Sistema de control de asistencia, se anexan además los formatos
diseñados de cada una de éstas herramientas las cuales se llevaron a cabo con el
personal de la institución.
El mencionado procedimiento que se implementó en el desarrollo de dicho
sistema es la metodología en cascada o también conocido como ciclo de vida
clásico, ya que a través de cada una de sus fases de análisis, diseño, codificación,
pruebas y entrega, y mantenimiento fue posible lograr cumplir los requerimientos y
necesidades que la institución demanda.
iii
4. A través de la finalización del procedimiento fue posible identificar las
grandes ventajas que éste sistema otorga a la institución y, sobre todo, que se
lograron los objetivos que éste proyecto señala desde la planificación hasta la
implantación del sistema; además de que principalmente se cumple la hipótesis
planteada.
iv
5. ÍNDICE DE CONTENIDO
RESUMEN ______________________________________________________ iii
ÍNDICE DE CONTENIDO ____________________________________________ v
ÍNDICE DE TABLAS _____________________________________________ viii
ÍNDICE DE FIGURAS _____________________________________________ ix
INTRODUCCIÓN _________________________________________________ 10
Identificación del problema ______________________________________ 12
Planteamiento del problema _____________________________________ 13
Formulación del problema _______________________________________ 13
Justificación del proyecto _______________________________________ 14
Impacto Social________________________________________________ 14
Impacto Tecnológico ___________________________________________ 15
Impacto Económico ____________________________________________ 15
Impacto Ambiental ____________________________________________ 15
Objetivos de investigación ______________________________________ 15
Objetivo General ______________________________________________ 16
Objetivos Específicos __________________________________________ 16
Establecimiento de la hipótesis __________________________________ 17
Hipótesis de Trabajo ___________________________________________ 17
Hipótesis Nula ________________________________________________ 17
Identificación de las variables __________________________________ 17
Variable Independiente _________________________________________ 17
Variable Dependiente __________________________________________ 17
Definición de las variables _____________________________________ 17
Conceptual __________________________________________________ 17
Operativa____________________________________________________ 18
v
6. ANÁLISIS DE FUNDAMENTOS _____________________________________ 20
1. INTRODUCCIÓN A LOS SISTEMAS DE INFORMACIÓN _______________ 21
1.1
¿Qué es un sistema? ______________________________________ 21
1.2
Definición de sistemas de información _______________________ 22
1.3
Componentes de un sistema de información __________________ 23
1.4
Clasificación de los sistemas de información __________________ 27
2. METODOLOGÍAS DEL PROCESO DE SOFTWARE ___________________ 32
2.1
Definición de Metodología _________________________________ 32
2.2
Tipos de Metodologías ____________________________________ 33
2.2.1 Modelo de cascada _______________________________________ 33
2.2.2 Modelo espiral ___________________________________________ 35
2.2.3 Construcción de Prototipos ________________________________ 39
3.
SISTEMAS GESTORES DE BASES DE DATOS ____________________ 42
3.1
3.2
Tipos de base de datos ____________________________________ 43
3.3
Componentes de los sistemas gestores de bases de datos ______ 44
3.4
4.
Concepto de base de datos ________________________________ 42
Arquitectura de los sistemas de Bases de datos _______________ 45
INTRODUCCIÓN A MYSQL _____________________________________ 47
4.1
4.2
Concepto de SQL _________________________________________ 47
4.3
Tipos de datos ___________________________________________ 48
4.4
5.
¿Qué es MySQL? _________________________________________ 47
Tipos de sentencias SQL __________________________________ 50
JAVA_______________________________________________________ 51
5.1
Fundamentos de programación _____________________________ 51
vi
7. 5.2
Tipos de datos ___________________________________________ 52
5.3
Programación orientada a objetos ___________________________ 56
6. PROGRAMAS _________________________________________________ 58
6.1
JCreator ________________________________________________ 58
6.2
Netbeans ________________________________________________ 59
PROCEDIMIENTO O MÉTODO______________________________________ 60
Enfoque metodológico __________________________________________ 60
Alcance de la investigación ______________________________________ 60
Tipo de investigación ___________________________________________ 60
Diseño de investigación _________________________________________ 61
Universo o Población ___________________________________________ 62
Muestra o unidad de análisis _____________________________________ 62
Elaboración, selección y desarrollo de instrumentos _________________ 64
Técnicas de recolección de datos _________________________________ 64
Instrumentos de recolección de datos ______________________________ 64
Metodología de desarrollo del sistema _____________________________ 65
ANÁLISIS DE RESULTADOS _______________________________________ 81
CONCLUSIONES ________________________________________________ 85
RECOMENDACIONES ____________________________________________ 86
GLOSARIO _____________________________________________________ 87
FUENTES CONSULTADAS ________________________________________ 91
ANEXOS _______________________________________________________ 94
vii
8. ÍNDICE DE TABLAS
Tabla 4.3.1 Tipos de datos de MySQL _______________________________ 48
Tabla 4.3.2 Tipos de datos _________________________________________ 49
Tabla 5.2.1 Palabras reservadas de Java ____________________________ 53
Tabla 5.2.2 Precedencia de operadores en Java _______________________ 54
Tabla 5.2.3 Rangos de los tipos de datos para enteros _________________ 55
Tabla 5.2.4 Tipos de datos básicos reales en Java _____________________ 55
Tabla 5.2.5 Precedencia de operadores en Java _______________________ 56
Tabla 6.1.1 Requerimientos de Hardware para el desarrollo del sistema ___ 70
Tabla 6.1.2. Requerimientos de Software para el desarrollo del sistema ___ 70
Tabla 6.1.3. Costos generales ______________________________________ 71
Tabla 6.1.4. Salarios del equipo técnico que participara en el desarrollo del
proyecto _______________________________________________________ 71
Tabla 6.1.5. Costo de Ambiente ____________________________________ 73
Tabla 6.1.6. Costos de operación durante el desarrollo _________________ 73
Tabla 6.1.7. Costos totales del sistema. ______________________________ 74
viii
9. ÍNDICE DE FIGURAS
Figura 1.1.1 Modelo general de un sistema ___________________________ 22
Figura 1.3.1 Tipología de usuarios de sistemas _______________________ 24
Figura 2.2.1.1 El modelo lineal secuencial ____________________________ 34
Figura 2.2.2.1 Modelo en espiral de Boehm para el proceso del software
(IEEE, 1998) _____________________________________________________ 37
Figura 2.2.2.2 Un modelo espiral típico ______________________________ 38
Figura 2.2.3.1 El modelo de construcción de prototipos ________________ 40
Figura 3.1.1 Pantalla de una base de datos ___________________________ 42
Figura 5.1.1 Encapsulación de métodos y atributos ____________________ 52
Figura 6.1.1 Interfaz gráfica de JCreator _____________________________ 58
Figura 6.2.1. Interfaz gráfica de NetBeans ____________________________ 59
ix
10. INTRODUCCIÓN
Actualmente la tecnología constituye un elemento de esencial interés en
todos los sectores de la sociedad; entre otras razones, por la facilidad y
comodidad
que le ha brindado al hombre para sobrevivir. La tecnología de
información día a día se mejora para incorporar nuevos ámbitos de la sociedad a
la misma. En paralelo encontramos los sistemas de información, los cuales
agilizan la gestión de los procesos dentro de las organizaciones, en este sentido
se ejecutan procesos largos, tediosos y repetitivos en menor tiempo y con mayor
precisión. A este proceso se ha unido organizaciones de todo tipo, tales como
gubernamentales, bancarias y comerciales y por supuesto las educativas.
En el bachillerato Tecnológico “Moisés Sáenz”, a fin de agilizar sus
procesos administrativos internos, tales como el control de asistencia personal y el
reporte
de
nómina,
actualmente
existen
procesos
que
no
funcionan
apropiadamente, por tal motivo deben ser adaptados a la nueva tecnología de la
información para ofrecer mayores y mejores servicios a su personal, quienes
actualmente no poseen un sistema de información automatizado.
Es por esto que en la presente investigación se incluyen todos los
elementos que interactúan con el sistema creado, además de la fundamentación,
la cual se presenta en seis capítulos, en el capítulo 1 se puede encontrar una
breve definición de qué es un sistema, sus componentes y como se clasifican, en
el capítulo 2 se mencionan las metodologías del proceso de software que existen,
y explicación de algunos de los tipos que se pueden utilizar.
Se integra además en el capítulo 3 la conceptualización de los Sistemas
gestores de base de datos, los tipos que hay y sus componentes. Encontrará
también en el capítulo 4 una explicación de qué es MYSQL, sus tipos de datos y
algunas sentencias, así como la definición de fundamentos de investigación, en el
capítulo 5 encontrará la definición de JAVA, fundamentos de programación, tipos
de datos y programación orientada a objetos, y en el capítulo 6 se describen los
10
11. 11
programas que intervienen en éste sistema, JCreator y Netbeans.
Es importante señalar que se encuentra especificado el procedimiento que
se llevó a cabo durante el desarrollo de dicho sistema, mostrando desde de la
identificación del problema que la institución presenta, planeación, hipótesis,
justificación hasta la muestra de resultados y conclusiones a las que se llegaron.
Por las razones anteriormente expuestas, la presente investigación tiene
por objeto diseñar un sistema de información automatizado que agilice la gestión
de los procesos administrativos internos del Bachillerato Tecnológico “Moisés
Sáenz”, específicamente en el control de asistencia del personal de la institución.
12. Identificación del problema
El Bachillerato Tecnológico “Moisés Sáenz” se encuentra ubicado en la
ciudad de Tuxtepec, Oaxaca. Fue fundado en el año de 1999, es una escuela
particular incorporada a la DGETI.
Actualmente cuenta con aproximadamente 177 alumnas en el sistema
escolarizado (de lunes a viernes) y 105 alumnos en el sistema abierto (sábados),
haciendo un total de 272 alumnos de los cuales 30% son hombres y 70% mujeres.
Además en la institución labora el siguiente personal:
Personal
H
M
Jornada Laboral
Administrativo
10
3
13:00 – 19:00 Hrs
Docentes
10
9
14:00 – 19:00 Hrs
Cabe mencionar que el personal docente tiene distintos cargos de
materias y por lo tanto, diferente hora de entrada y salida.
La realización del registro del personal es efectuado manualmente, lo cual
provoca inexactitud al llevar a cabo la remuneración económica de los docentes,
entre ellos, excedente en la nómina y a su vez, menor pago en las actividades u
horarios que se cubren en la institución.
12
13. Planteamiento del problema
El Bachillerato Tecnológico “Moisés Sáenz” está conformado por cinco
departamentos, los cuales son: administrativo, desarrollo académico, control
escolar, prefectura y dirección.
El problema que presenta el sistema actual de dicha institución está
relacionado con la generación de aumento innecesario de gastos administrativos y
económicos; perdida y manejo de información errónea; uso de tiempo (horas
laboradas) innecesarias, es muy lento el proceso; carece de fiabilidad e integridad
de datos ya que la carga de información es manual; la relación entre los resultados
y el tiempo utilizado para obtener información del personal y alumnado es alto por
lo tanto no se tiene buena productividad.
Todo el proceso de registro de asistencia del personal se realiza mediante
un formato establecido por el departamento de servicios administrativos, el cual
consta de los siguientes elementos:
Logotipo de la institución que lo identifica.
Nombre de la persona a registrar.
Cuatro columnas, que corresponden a la fecha, hora de entrada, hora de
salida y firma.
Formulación del problema
¿Cuáles son los efectos de utilizar un software para el control de asistencia del
personal
en
el
Bachillerato
Tecnológico
13
“Moisés
Sáenz”?
14. Justificación del proyecto
El presente proyecto surge de la necesidad de que el Bachillerato
Tecnológico “Moisés Sáenz” no dispone de un sistema de control de asistencia
automatizado, por lo que se pretende realizar un software que permita facilitar las
consultas de la información, agilizar los procesos para contribuir al funcionamiento
eficiente y eficaz de las operaciones, siendo esta confiable, oportuna, precisa y
actualizada.
A través del sistema se busca satisfacer las necesidades del usuario, rápido
acceso a la información, velocidad, ahorro de tiempo, dinero y recursos (cintas,
papel, etc.). Los sistemas automatizados, representan la unificación entre
hardware, software, personas, procedimientos y datos.
El proyecto que se llevara a cabo será de gran beneficio, no solo para la
institución, sino para el personal en general, ya que con ello se hará eficiente el
control de asistencias, y por lo tanto la manipulación de la información para la
elaboración del reporte de nómina.
Dirección: Proporcionándole el control de la información para hacer toma
de decisiones.
Personal docente: Evita el retraso a sus labores académicas.
Departamento Académico: Para agilizar los procesos y hacer el cálculo de
nómina para el pago correspondiente a cada trabajador.
Institución: Mejorando su imagen ante la sociedad.
Impacto Social
El sistema de control de asistencias, logrará satisfacción, tanto para los
usuarios como para las personas que realizan este control por la agilidad que
brindará, dado que hasta la presente fecha de usuario no sabe exactamente
cuándo sufre un descuento por atraso o falta.
14
15. 15
Los directivos y jefes departamentales serán los principales favorecidos
con la implantación del sistema, ya que les permitirá controlar la asistencia del
personal que labora en esta institución, como: conocer el ingreso y salida exacta
de los profesores, personal de servicios y administrativos de esta institución.
Los usuarios conocerán su hora de ingreso al establecimiento al igual que
su hora de salida, para evitar inconvenientes por las sanciones recibidas por esta
causa. Gracias a la calidad de servicio que se brindara con la implantación de este
sistema, los hará más responsables y puntuales en la hora de llegada.
Impacto Tecnológico
Actualmente nos encontramos en un proceso de constante cambios y
transformaciones que obedecen a una serie de factores y entre ellas a la
incorporación vertiginosa de nuevas tecnologías de la información y la
comunicación en diversos campos, incluidos en el aspecto educativo.
Con la colaboración del sistema de control de asistencias se pretende que
el personal tenga conocimientos sobre las nuevas tecnologías, así como plantear
una solución integral que permite a la institución optimizar las operaciones, con la
finalidad de simplificar procesos para su mejor labor dentro del plantel.
Impacto Económico
Con la creación del sistema de control de asistencia, se disminuirá
considerablemente el gasto económico de la institución, ya que no será necesaria
la utilización de formatos impresos para llevar a cabo el control del personal.
Impacto Ambiental
Con la creación de este sistema de control de asistencias se pretende
ayudar a conservar el medio ambiente, ya que no influiremos en la tala de árboles
ni a la deforestación.
16. Objetivos de investigación
Objetivo General
Analizar, diseñar y desarrollar un sistema de control de asistencia para el
Bachillerato Tecnológico “Moisés Sáenz”, que permita generar el reporte de las
horas trabajadas por el personal de la Institución.
Objetivos Específicos
Identificar los requerimientos para el sistema de control de Asistencia.
Diseñar la estructura física y lógica de la base de datos.
Diseñar la interfaz gráfica del sistema.
Realizar las pruebas del sistema.
Implantación del sistema en la Institución.
Elaboración de los manuales para el sistema.
16
17. Establecimiento de la hipótesis
Hipótesis de Trabajo
La implementación de un sistema de control de asistencia permite generar el
reporte de las horas trabajadas e incrementar el sentido de la responsabilidad y
puntualidad del personal del Bachillerato Tecnológico “Moisés Sáenz”.
Hipótesis Nula
La implementación de un sistema de control de asistencia no permite generar
el reporte de las horas trabajadas e incrementar el sentido de la responsabilidad y
puntualidad del personal del Bachillerato Tecnológico “Moisés Sáenz”.
Identificación de las variables
Variable Independiente
Variable Dependiente
La implementación de un
sistema
de
control
de
Generar el reporte de las
horas trabajadas.
asistencia.
Incrementar el sentido de
responsabilidad
y
puntualidad.
Definición de las variables
Conceptual
Sistema de control de asistencias: Es una poderosa herramienta que ejecuta el
“Control de horario laboral” de los trabajadores de una empresa. El reporte de
17
18. 18
entradas y salidas, se obtiene mediante un programa instalado en una
computadora, desde donde se descarga la información del control, que es
procesada para generar el informe de asistencias y tiempo de los empleados de la
empresa.
Sistema de control de asistencias: Se enfoca principalmente en obtener la
información necesaria para la pre nómina; determinando las horas de labor,
tiempo de retardo, tiempo extra, incidencias, asistencias entre otros parámetros a
evaluar, dependiendo del
Reloj checador y el software seleccionado, con el
objetivo de importar las incidencias a un sistema de nómina como NOI, ASPEL,
GIRU o NOMIPAQ, entre otros.
Reporte: Es un documento, generado por el sistema, que nos presenta de manera
estructurada y/o resumida, datos relevantes guardados o generados por la misma
aplicación de tal manera que se vuelvan útiles para fines que la escuela o al
programa escuelas de calidad convengan. (Pública, s.f.)
Responsabilidad: Es la capacidad existente en todo sujeto activo de derecho
para reconocer y aceptar las consecuencias de un hecho aceptado libremente.
(ARRIETA & DE LA CRUZ, 2009, pág. 20)
Puntualidad: Se refiere al lapso comprendido entre el fin de un período de
referencia (o una fecha de referencia) de los datos y la fecha de divulgación de los
datos. (Found, 2007)
Operativa
Variable Independiente: Sistema de control de asistencia.
Importancia de la creación del sistema de control de asistencia.
Qué objetivos generales persiguen.
Beneficios que tendrá la creación del sistema de control de asistencia en el
19. 19
proceso de registro al personal.
Efecto de la creación del sistema de control de asistencia.
Variable Dependiente: Generar el reporte de las horas trabajadas.
Conocimientos básicos de computadoras.
Formas de acceder a los elementos interactivos.
Capacitación al usuario de la nueva aplicación.
Evaluar la aplicación para determinar el rendimiento.
Variable Dependiente: Incrementar el sentido de la responsabilidad y
puntualidad.
Mejoramiento en el ámbito escolar y profesional.
Un buen rendimiento académico.
Remuneración del salario en tiempo y forma.
21. 1. INTRODUCCIÓN A LOS SISTEMAS DE INFORMACIÓN
1.1
¿Qué es un sistema?
Un sistema es un conjunto de partes interrelacionadas que posee alguna
singularidad dentro de su medio. Los sistemas extraen materia prima del medio, la
transforman y una vez procesada la introducen de nuevo al ambiente. Todo lo que
alimenta a un sistema se denomina “insumo” y todo lo que sale de él se denomina
“producto”. En los sistemas de información, los insumos se llaman datos y los
productos se llaman información. (BERNAL Niño, 2004, pág. 13)
Un sistema es un conjunto de componentes que interactúan entre sí para lograr
un objetivo común. Aunque existen una gran variedad de sistemas, la mayoría de
ellos pueden representarse a través de un modelo formado por cinco bloques
básicos; elementos de entrada, elementos de salida, sección de transformación,
mecanismos de control y objetivos. Tal y como se muestra en la figura 1.1.1, los
recursos acceden al sistema a través de los elementos de entrada para ser
modificados en le sección de transformación. Este proceso es controlado por el
mecanismo de control con el fin de lograr el objetivo marcado. Una vez se ha llevado
a cabo la transformación, el resultado sale del sistema a través de los elementos de
salida. (FERNÁNDEZ Alarcón, 2006, pág. 11)
21
22. 22
Figura 1.1.1 Modelo general de un sistema
1.2
Definición de sistemas de información
Un sistema de información se puede definir técnicamente como un conjunto
de componentes interrelacionados que recolectan (o recuperan), procesan,
almacenan y distribuyen información
para apoyar la toma de decisiones, la
coordinación y el control, los sistemas de información también pueden ayudar a los
gerentes y trabajadores a analizar problemas, visualizar asuntos complejos y crear
productos nuevos. (LAUDON & LAUDON, 2004, pág. 8)
Los sistemas de| información contienen información acerca de gente, lugares y
cosas importantes dentro de la organización o en el entorno en que se desenvuelve.
Por información se entiende los datos que se han modelado en forma significativa y
útil para los seres humanos. En contraste, los datos son secuencias de hechos en
bruto y representan eventos que ocurren en las organizaciones o en el entorno físico
antes de ser organizados y ordenados en una forma que las personas puedan
entender y utilizar. (LAUDON & LAUDON, 2004, pág. 8)
23. 23
1.3
Componentes de un sistema de información
De acuerdo a Whitten, Bentley y Dittman (2004) los sistemas de información
proponen diversos componentes que deben interactuar entre ellos para un correcto
desarrollo del sistema de información. A continuación, se analizan cada uno se los
componentes que forman parte de un sistema de información, así como de sus
relaciones. (FERNÁNDEZ Alarcón, 2006, pág. 15)
Individuos participantes
El primer componente que se analiza, que es el más importante, es el formado
por las personas. Según Whitten, Bentley y Dittman (2004) todos los individuos que
pueden y deben participar en el desarrollo de un sistema de información se pueden
clasificar en función de la visión que tienen de un sistema de información. En este
caso, la clasificación está formada por cinco grandes grupos.
Propietarios
Usuarios
Diseñadores
Constructores
Analistas y el Project Manager
A todos los individuos que usan los sistemas de información se les puede englobar
con el término trabajadores de la información. (WHITTEN, BENTLEY, & DITTMAN,
2004)
24. 24
Usuarios de sistemas
Los usuarios de sistemas son aquellas personas que utilizan los sistemas de
información de una forma regular para capturar, introducir, validar, transformar y
almacenar datos e información. Entre todos los grupos de individuos que participan
en el desarrollo de un sistema de información, los usuarios es el más cuantioso.
Así mismo, los usuarios deben ser considerados como el grupo de individuos
más importante en el desarrollo de un sistema de información, ya que será este
colectivo el que tendrá que trabajar diariamente sobre él, y el que decidirá si cumple
con las necesidades que tiene el negocio.
Los sistemas de información pueden ser utilizados por una gran cantidad de
individuos con objetivos y necesidades muy diversas. Es por ese motivo que puede
ser interesante agrupar a los usuarios de sistemas en grupos y subgrupos en función
de la relación con la empresa. Para empezar, se puede distinguir entre usuarios
internos a la organización y usuarios externos a la organización.
Personal administrativo
Internos
Profesionales y técnicos
Gestores y directivos
Usuarios
Clientes
Proveedores
Externos
Aliados o partners
Trabajadores externos
Figura 1.3.1 Tipología de usuarios de sistemas
25. 25
Diseñadores de sistemas
Los diseñadores de sistemas son expertos en la tecnología que resuelven las
necesidades y las restricciones manifestadas por usuarios de la empresa mediante
recursos tecnológicos.
Debido al crecimiento en el desarrollo de la tecnología, así como su utilización,
los diseñadores de sistemas han sido especializados e lo largo de las últimas
décadas. Algunos de estas especialidades son la administración de datos
(tecnologías de bases de datos), la arquitectura de redes (tecnologías de
comunicación), el diseño Web), o la seguridad (tecnologías de seguridad y
privacidad).
A diferencia de los propietarios y de los usuarios de sistemas, los diseñadores
se centran en aspectos tecnológicos más que en aspectos de negocio. La
divergencia existente entre la perspectiva de los usuarios de sistemas y de los
diseñadores de sistemas hace necesario introducir un nuevo individuo en el
desarrollo de sistemas: el analista de sistemas. (WHITTEN, BENTLEY, & DITTMAN,
2004):
Constructores de sistemas
Los constructores de sistemas, otro tipo de especialistas en tecnología, son los
encargados de fabricar sistemas de información basados en las especificaciones de
diseño obtenidas de los diseñadores de sistemas.
Tal y como ocurre con los diseñadores los avances tecnológicos han llevado a
especializar a los constructores en distintas tareas en el desarrollo de sistemas.
Entre ellas se pueden nombrar la de programador de aplicaciones informáticas, la de
programador de sistemas, la de programador de base de datos o la de integrador de
software. (WHITTEN, BENTLEY, & DITTMAN, 2004)
26. 26
Analista de sistemas
Un analista de sistemas es una persona que estudia los problemas y las
necesidades de una empresa para determinar cómo podrían combinarse los recursos
humanos, los procesos, los datos y la tecnología de la información para obtener
mejoras en la empresa.
Las habilidades necesarias para cumplir de una forma eficiente las funciones de
un analista de sistemas son (WHITTEN, BENTLEY, & DITTMAN, 2004):
Conocimientos generales de empresa
Los analistas deben solventar problemas que se producen dentro de la
empresa, por lo que es necesario que entiendan y comprendan el funcionamiento
interno de la empresa, así como ser capaces de comunicarse con las distintas
personas que trabajan en la empresa.
Capacidades de resolver problemas
Como solventador de problemas, los analistas deben ser capaces de abordar
grandes problemas, descomponerlos en partes más pequeñas, analizar cada una de
estas partes, y posteriormente ensamblarlo de nuevo.
Técnicas de comunicación interpersonal
Un analista de sistemas debe poder comunicarse de forma eficiente con el resto
de miembros de la organización para poder detectar las necesidades y
posteriormente transmitir las soluciones.
Flexibilidad y capacidad de adaptación
Cada organización es diferente, así como cada situación en la que se puede
encontrar el analista, por lo que debe aprender a ser flexible ante cualquier tipo de
circunstancias.
27. 27
Carácter y ética
Para solventar los problemas que surgen en las empresas, el analista debe
conocer información confidencial y privada de la empresa, de sus trabajadores, de
sus clientes e incluso de sus proveedores, por lo que es necesario un fuerte carácter
y una ética profesional intachable.
Mejorar los conocimientos en tecnología y sistemas de información
Un analista en sistemas debe estar al día de la tecnología disponible, así como
de las ventajas y desventajas que proporciona cada una. Para ello existen diversas
fuentes de información como recursos, revistas, etc.
Experiencia y dominio de la programación informática
Aunque en la mayoría de ocasiones un analista no se encarga de programar
informáticamente, su conocimiento le proporciona la capacidad de preparar las
especificaciones técnicas necesarias para su posterior implementación por el
constructor. (WHITTEN, BENTLEY, & DITTMAN, 2004)
1.4
Clasificación de los sistemas de información
Los sistemas de información se desarrollan con diversos propósitos, según las
necesidades de la empresa. A continuación se muestra la diversidad de sistemas de
información que podrían desarrollar los analistas. (E. Kendall & E. Kendall, 2005,
págs. 2-4)
Sistemas de procesamiento de transacciones
Los sistemas de procesamiento de transacciones (TPS, Transaction Processing
Systems) son sistemas de información computarizada creados para procesar
grandes cantidades de datos relacionadas con transacciones rutinarias de negocios,
28. 28
como las nóminas y los inventarios. Un TPS elimina el fastidio que representa la
realización de transacciones operativas necesarias y reduce el tiempo que una vez
fue requerido para llevarlas a cabo de manera manual, aunque los usuarios aún
tienen que capturar los datos en los sistemas computarizados.
Los sistemas de procesamiento de transacciones expanden los límites de la
organización dado que le permiten interactuar con entornos externos. Es importante
para las operaciones cotidianas de un negocio, que estos sistemas funcionen sin
ningún tipo de interrupción, puesto que los administradores recurren a los datos
producidos por los TPS con el propósito de obtener información actualizada sobre el
funcionamiento de sus empresas. (E. Kendall & E. Kendall, 2005, págs. 2-4)
Sistemas de automatización de la oficina y sistemas de trabajo del
conocimiento
Existen dos clases de sistemas en el nivel del conocimiento de una
organización. Los sistemas de automatización de la oficina (OAS, Office Automation
Systems) apoyan a los trabajadores de dato, quienes por lo general no generan
conocimientos nuevos, sino más bien analizan la información con el propósito de
transformar los datos o manipularlos de alguna manera antes de compartirlos o, en
su caso, distribuirlos formalmente con el resto de la organización y en ocasiones más
allá de ésta. Entre los componentes más comunes de un OAS están el
procesamiento de texto, las hojas de cálculo, la autoedición, la calendarización
electrónica y las comunicaciones mediante correo de voz, correo electrónico y
videoconferencia.
Los sistemas de trabajo del conocimiento (KWS, Knowledge Work Systems)
sirven de apoyo a los trabajadores profesionales, como los científicos, ingenieros y
médicos, en sus esfuerzos de creación de nuevo conocimiento y dan a éstos la
29. 29
posibilidad de compartirlo con sus organizaciones o con la sociedad. (E. Kendall & E.
Kendall, 2005, págs. 2-4)
Sistemas de información gerencial
Los sistemas de información gerencial (MIS, Management Information Systems)
no reemplazan a los sistemas de procesamiento de transacciones, más bien,
incluyen el procesamiento de transacciones. Los MIS son sistemas de información
computarizados cuyo propósito es contribuir a la correcta interacción entre los
usuarios y las computadoras. Debido a que requieren que los usuarios, el software
(los programas de cómputo) y el hardware (las computadoras, impresoras, etc.),
funcionen de manera coordinada, los sistemas de información gerencial dan apoyo a
un espectro de tareas organizacionales mucho más amplio que los sistemas de
procesamiento de transacciones, como el análisis y la toma de decisiones.
Para acceder a la información, los usuarios de un sistema de información
gerencias comparten una base de datos común. Ésta almacena datos y modelos que
ayudan al usuario a interpretar y aplicar los datos. Los sistemas de información
gerencial producen información que se emplea en la toma de decisiones. Un sistema
de información gerencial también puede contribuir a unificar algunas de las funciones
de información computarizadas de una empresa, a pesar de que no existe como una
estructura individual en ninguna parte de ésta. (E. Kendall & E. Kendall, 2005, págs.
2-4)
Sistema de apoyo a la toma de decisiones
Los sistemas de apoyo a la toma de decisiones (DSS, Decision Support
Systems) constituyen una clase de alto nivel de sistemas de información
computarizada. Los DSS coinciden con los sistemas de información gerencial en que
ambos dependen de una base de datos para abastecerse de datos. Sin embargo,
difieren en que el DSS pone énfasis en el apoyo a la toma de decisiones en todas
30. 30
sus fases, aunque la decisión definitiva es responsabilidad exclusiva del encargado
de tomarla. Los sistemas de apoyo a la toma de decisiones se ajustan más al gusto
de la persona o grupo que los utiliza que a los sistemas de información gerencial
tradicionales. En ocasiones se hace referencia a ellos como sistemas que se enfocan
en la inteligencia de negocios.
Sistemas expertos e inteligencia artificial
La inteligencia artificial (AI, Artificial Intelligence) se puede considerar como un
campo general para los sistemas expertos. La motivación principal de la AI ha sido
desarrollar máquinas que tengan un comportamiento inteligente. Dos de las líneas de
investigación de la AI son la comprensión del lenguaje natural y el análisis de la
capacidad para razonar un problema hacia su conclusión lógica. Los sistemas
expertos utilizan las técnicas de razonamiento de la AI para solucionar problemas
que les plantean los usuarios de negocios (y de otras áreas). (E. Kendall & E.
Kendall, 2005, págs. 2-4)
Los sistemas expertos conforman una clase especial de sistema de información
que se ha puesto a disposición de usuarios de negocios gracias a la amplia
disponibilidad de hardware y software como computadoras personales (PCs) y
generadores de sistemas expertos. Un sistema experto (también conocido como
sistema basado en el conocimiento) captura y utiliza el conocimiento de un experto
para solucionar un problema específico en una organización.
Los componentes básicos de un sistema experto son la base de conocimiento,
un motor de interferencia que conecta al usuario con el sistema mediante el
procesamiento de consultas realizadas con lenguajes como SQL (Structured Query
Languaje,
Lenguaje de
consultas estructurado) y la
interfaz de
usuario.
Profesionales conocidos como ingenieros de conocimiento capturan la pericia de los
expertos, construyen un sistema de cómputo que contiene este conocimiento experto
y lo implementan. Es muy factible que la construcción e implementación de sistemas
31. 31
expertos se constituya en el trabajo futuro de muchos analistas de sistemas.
Sistema de apoyo a la toma de decisiones en grupo y sistemas de trabajo
colaborativo por computadora
Cuando los grupos requieren trabajar en conjunto para tomar decisiones
semiestructuradas o no estructuradas, un sistema de apoyo a la toma de decisiones
en grupo (GDSS, Group Decision Support Systems) podría ser la solución. Este tipo
de sistemas, que se utiliza en salones especiales equipados con diversas
configuraciones, faculta a los miembros del grupo a interactuar con apoyo electrónico
-casi siempre software especializado- y la asistencia de facilitador especial.
Los sistemas de apoyo a la toma de decisiones en grupo tienen el propósito de
unir a un grupo en búsqueda de la solución a un problema con la ayuda de diversas
herramientas como los sondeos, los cuestionarios, la lluvia de ideas y la creación de
escenarios. En ocasiones se hace referencia a los GDSS con el termino más general
sistemas de trabajo colaborativo apoyadas por computadora (CSCWS, ComputerSupported Collaborative Work Systems), que pueden contener el respaldo de un tipo
de software denominado groupware para la colaboración en equipo a través de
computadoras conectadas en red. (E. Kendall & E. Kendall, 2005, págs. 2-4)
Sistema de apoyo a ejecutivos
Los sistemas de apoyo a ejecutivos (ESS, Executive Support Systems) ayudan
a estos últimos a organizar sus actividades relacionadas con el entorno externo
mediante herramientas gráficas y de comunicaciones, que por lo general se
encuentran en salas de juntas o en oficinas corporativas personales. A pesar de que
los ESS dependen de la información producida por los TPS y los MIS, ayudan a los
usuarios a resolver problemas de toma de decisiones no estructuradas, que no
32. 32
tienen una aplicación específica, mediante la creación de un entorno que contribuye
a pesar en problemas estratégicos de manera bien informada. Los ESS amplían y
apoyan las capacidades de los ejecutivos al darles la posibilidad de comprender sus
entornos. (E. Kendall & E. Kendall, 2005, págs. 2-4)
2. METODOLOGÍAS DEL PROCESO DE SOFTWARE
Un proceso de software es un conjunto de actividades que conducen a la
creación de un producto de software. Estas actividades pueden consistir en el
desarrollo de software desde cero en un lenguaje de programación estándar como
java o C. Sin embargo, cada vez, mas, se desarrolla nuevo software ampliando y
modificando los sistemas existentes y configurando e integrando software comercial
o componentes del sistema. (SOMMERVILLE, 2005, pág. 60)
2.1
Definición de Metodología
Una metodología es un conjunto integrado de técnicas y métodos que permite
abordar de forma homogénea y abierta cada una de las actividades del ciclo de vida
de un proyecto de desarrollo. Es un proceso de software detallado y completo.
Las metodologías se basan en una combinación de los modelos de proceso
genéricos (cascada, incremental…). Definen artefactos, roles y actividades, junto con
prácticas y técnicas recomendadas.
La metodología para el desarrollo de software en un modo sistemático de
realizar, gestionar y administrar un proyecto para llevarlo a cabo con altas
posibilidades de éxito. Una metodología para el desarrollo de software comprende
los procesos a seguir sistemáticamente para idear, implementar y mantener un
producto software desde que surge la necesidad del producto hasta que cumplimos
el objetivo por el cual fue creado. (S., PRESSMAN, 2007)
33. 33
2.2
Tipos de Metodologías
2.2.1 Modelo de cascada
Llamado algunas veces «ciclo de vida básico» o modelo en cascada», el
modelo lineal secuencial sugiere un enfoque5 sistemático, secuencial, para el
desarrollo del software que comienza en un nivel de sistemas y progresa con el
análisis, diseño, codificación, pruebas y mantenimiento. La Figura 2.4 muestra el
modelo lineal secuencial para la ingeniería del software. Modelado según el ciclo de
ingeniería convencional, el modelo lineal secuencial comprende las siguientes
actividades: (S., PRESSMAN, 2007)
Ingeniería y modelado de Sistemas/Información.
Como el software siempre forma parte de un sistema más grande (o empresa),
el trabajo comienza estableciendo requisitos de todos los elementos del sistema y
asignando al software algún subgrupo de estos requisitos. Esta visión del sistema es
esencial cuando el software se debe interconectar con otros elementos como
hardware, personas y bases de datos. La ingeniería y el análisis de sistemas
comprenden los requisitos que se recogen en el nivel del sistema con una pequeña
parte de análisis y de diseño. La ingeniería de información abarca los requisitos que
se recogen en el nivel de empresa estratégico y en el nivel del área de negocio. (S.,
PRESSMAN, 2007)
34. 34
Figura 2.2.1.1 El modelo lineal secuencial
Análisis de los requisitos del software. El proceso de reunión de requisitos
se intensifica y se centra especialmente en el software. Para comprender la
naturaleza del (los) programa(s) a construirse, el ingeniero («analista») del software
debe comprender el dominio de información del software, así como la función
requerida, comportamiento, rendimiento e interconexión. (S., PRESSMAN, 2007)
Diseño. El diseño del software es realmente un proceso de muchos pasos que
se centra en cuatro atributos distintos de programa: estructura de datos, arquitectura
de software, representaciones de interfaz y detalle procedimental (algoritmo). El
proceso del diseño traduce requisitos en una representación del software donde se
pueda evaluar su calidad antes de que comience la codificación. (S., PRESSMAN,
2007)
Generación de código. El diseño se debe traducir en una forma legible por la
máquina. El paso de generación de código lleva a cabo esta tarea. Si se lleva a cabo
el diseño de una forma detallada, la generación de código se realiza mecánicamente.
(S., PRESSMAN, 2007)
35. 35
Pruebas. Una vez que se ha generado el código, comienzan las pruebas del
programa. El proceso de pruebas se centra en los procesos lógicos internos del
software, asegurando que todas las sentencias se han comprobado, y en los
procesos externos funcionales; es decir, realizar las pruebas para la detección de
errores y asegurar que la entrada definida produce resultados reales de acuerdo con
los resultados requeridos. (S., PRESSMAN, 2007)
Mantenimiento. El software indudablemente sufrirá cambios después de ser
entregado al cliente (una excepción posible es el software empotrado). Se producirán
cambios porque se han encontrado errores, porque el software debe adaptarse para
acoplarse a los cambios de su entorno externo (por ejemplo: se requiere un cambio
debido a un sistema operativo o dispositivo periférico nuevo), o porque el cliente
requiere mejoras funcionales o de rendimiento. El soporte y mantenimiento del
software vuelve a aplicar cada una de las fases precedentes a un programa ya
existente y no a uno nuevo. (S., PRESSMAN, 2007)
2.2.2 Modelo espiral
El modelo de espiral, desarrollado durante la década de los ochenta, es una
extensión del modelo de cascada. A diferencia del modelo de cascada, que es
dirigido por documentos, el modelo espiral se basa en una estrategia para reducir el
riesgo del proyecto en áreas de incertidumbre, como requerimientos iniciales
incompletos e inestables. El modelo enfatiza ciclos de trabajo, cada uno de los
cuales estudia el riesgo antes de proceder al siguiente ciclo. Cada ciclo comienza
con la identificación de los objetivos, soluciones alternativas, restricciones asociadas
con cada alternativa y, finalmente, se procede a su evaluación. Cada ciclo del
modelo de espiral termina con una revisión que discute los logros actuales y los
planes para el siguiente ciclo. (WEITZENFELD, 2005, pág. 53)
El modelo en espiral del proceso del software fue originalmente propuesto por
36. 36
Boehm (Boehm, 1998). Más que representar el proceso del software como una
secuencia de actividades con retrospectiva de una actividad a otra, se presenta como
una espiral. Así el ciclo más interno podría referirse a la viabilidad del sistema, el
siguiente ciclo a la definición de requerimientos, el siguiente ciclo al diseño del
sistema se divide en cuatro sectores: (SOMMERVILLE, 2005, págs. 68-69)
1. Definición de objetivos. Para esta fase del proyecto se definen los objetivos
específicos. Se identifican las restricciones del proceso y el producto, y se
traza un plan detallado de gestión. Se identifican los riesgos del proyecto.
Dependiendo de estos riesgos, se plantean estrategias alternativas.
2. Evaluación y reducción de riesgos. Se lleva a cabo un análisis detallado para
cada uno de los riesgos del proyecto identificado. Se definen los pasos para
reducir dichos riesgos.
3. Desarrollo y validación. Después de la evaluación de los riesgos, se elige un
modelo para el desarrollo del sistema.
4. Planificación. El proyecto se revisa y se toma la decisión de si se debe
continua con un ciclo posterior de la espiral. Si se decide continuar, se
desarrollan los planes para la siguiente fase del proyecto. (SOMMERVILLE,
2005, págs. 68-69)
37. 37
Figura 2.2.2.1 Modelo en espiral de Boehm para el proceso del software (IEEE,
1998)
El modelo espiral, que Boehm propuso originalmente, es un modelo de proceso
de software evolutivo que conjuga la naturaleza iterativa de la construcción de
prototipos con los aspectos controlados y sistemáticos del modelo en cascada.
Proporciona el material para el desarrollo rápido de versiones incrementales del
software. Boehm describe este modelo de la siguiente manera:
El modelo de desarrollo en espiral es un generador del modelo de proceso
guiado por el riesgo que se emplea para conducir sistemas intensivos de ingeniería
de software concurrente y con múltiples usuarios. Tiene dos características
distintivas principales. Una de ellas es un enfoque cíclico para el crecimiento
incremental del grado de definición e implementación de un sistema, mientras
disminuye su grado de riesgo. La otra es un conjunto de puntos de fijación para
asegurar el compromiso del usuario con soluciones de sistema que sean factibles y
38. 38
mutuamente satisfactorias. (PRESSMAN, 2006, pág. 58)
Un proceso en espiral se divide en un conjunto de actividades del marco de
trabajo que define el equipo de ingenieria del software. Cada una de las actividades
genericas del marco de trabajo representa un segmento de la ruta en espiral que se
presenta en la figura 3.5. Cuando comienza este proceso evolutivo el equipo de
software realiza actividades implicadas en un circulo alrededor de la espiral que tiene
una dirección en el sentido del movimiento de las manecillas del reloj, y que se inicia
desde el centro. (PRESSMAN, 2006, págs. 58-59)
Figura 2.2.2.2 Un modelo espiral típico
El modelo en espiral es un enfoque realista para el desarrollo del software y
sistemas a gran escala. Como el software evoluciona conforme avanza el proceso, el
desarrollador y el cliente entienden y reaccionan de mejor manera ante los riesgos en
cada etapa evolutiva. El modelo en espiral emplea la construcción de prototipos en
39. 39
cualquier etapa evolutiva del producto. Mantiene el enfoque sistemático de los pasos
que sugiere el ciclo de vida clásico, pero lo incorpora al marco de trabajo iterativo
que refleja de forma más verídica el mundo real. El modelo en espiral exige una
consideración directa de los riesgos técnicos en todas las etapas del proyecto y, si se
aplica en forma apropiada, debe reducir los riesgos antes de que se vuelvas
problemáticos. (PRESSMAN, 2006, pág. 59)
2.2.3 Construcción de Prototipos
Un prototipo es una versión preliminar, intencionalmente incompleta o reducida
de un sistema. El uso de prototipo es una estrategia que puede aplicarse en casi
todas las actividades del proceso de software. El propósito de los prototipos es
obtener rápidamente la información necesaria para ayudar en la toma de decisiones.
(WEITZENFELD, 2005, pág. 47)
Kenneth E. Kendall menciona: “La elaboración de prototipos es una técnica de
recopilación útil para complementar el ciclo de vida de desarrollo de un sistema
tradicional.”
El paradigma de construcción de prototipos (figura 2.2.3.1) se inicia con la
comunicación. El ingeniero de software y el cliente encuentran y definen los objetivos
globales para el software, identifican los requisitos conocidos y las áreas del
esquema donde es necesaria más definición. Entonces se plantea con rapidez una
iteración de construcción de prototipos y se presenta el modelado (en la forma de un
diseño rápido). El diseño rápido se centra en una representación de aquellos
aspectos del software que serán visibles para el cliente o el usuario final.
(PRESSMAN, 2006, págs. 55-56)
40. 40
Figura 2.2.3.1 El modelo de construcción de prototipos
El prototipo puede servir como “primer sistema”, el que Brooks recomienda
desechar. Pero ésta tal vez sea una visión idealizada. Sim embargo, la construcción
de prototipos
también se toma problemática por las siguientes razones:
(PRESSMAN, 2006, págs. 56-57)
1. El cliente ve lo que parece una versión en funcionamiento del software, sin
saber que el prototipo está unido “con chicle y cable para embalaje”, que por
la prisa de hacerlo funcionar no se ha considerado la calidad del software
global o la facilidad de mantenimiento a largo plazo. Cuando se informa que el
producto debe construirse otra vez para mantener los altos niveles de calidad,
el cliente no le entiende y pide la aplicación de “unos pequeños ajustes” para
que pueda elaborar un producto final a partir del prototipo. Es muy frecuenten
que la gestión del desarrollo de software sea muy lenta.
2. A menudo, el desarrollador establece compromisos de implementación para
lograr que el prototipo funcione con rapidez. Tal vez se utilice un sistema
41. 41
operativo o lenguaje de programación inadecuado solo porque está disponible
y es conocido; se puede implementar un algoritmo ineficiente sólo para
mostrar capacidad. Después de un tiempo, el desarrollador quizá se
familiarice con estas selecciones y olvide las razones por las que son
inapropiadas. La sección menos ideal ahora se convierte en una parte integral
del sistema.
A pesar de que tal vez surjan problemas, la construcción de prototipos puede
ser un paradigma efectivo para la ingeniería de software. La clave es definir las
reglas del juego desde el principio; es decir, el cliente y el desarrollador se deben
poner de acuerdo en que el prototipo se construya y sirva como un mecanismo para
la definición de requisitos, es que se descarte, al menos en parte, y que después se
desarrolle el software real con un enfoque hacia la calidad. (PRESSMAN, 2006, pág.
57)
42. 3. SISTEMAS GESTORES DE BASES DE DATOS
3.1 Concepto de base de datos
Una base de datos es un programa computacional que permite almacenar y
gestionar gran cantidad de información. En una base de datos la información se
organiza en registros y campos.
Los campos pueden ser de varios tipos. Campo de tipo carácter, campo de tipo
numérico y campo de tipo lógico. (BALLÚS, FORNALS, & GALVE, 2004, pág. 320)
La base de datos se utiliza para referirse a una gran masa de datos que se
hallan relacionados entre sí. Estos datos se encuentran divididos en varias
categorías, que son los registros, los ficheros, las bibliotecas, etcétera.
La base de datos no es más que un potente manipulador de las relaciones
existentes entre estas jerarquías de información, con el que se puede definir nuevas
relaciones o acceder a los datos mediante las ya definidas. (BIOSCA, GÁRRIZ, &
SORT, 2005, pág. 1086)
Figura 3.1.1 Pantalla de una base de datos
42
43. 43
3.2 Tipos de base de datos
Modelo Entidad-Relación
Está basado en una percepción del mundo real que consta de una colección de
objetos básicos, llamados entidades, y de relaciones entre esos objetos. Una entidad
es una <cosa>, u <objeto> en el mundo real que es distinguible de otros objetos. Por
ejemplo, una persona es una entidad, y las cuentas bancarias pueden ser
consideradas entidades.
Las entidades se describen en una base de datos mediante un conjunto de
atributos. Una relación es una asociación entre varias entidades. El conjunto de
todas las entidades del mismo tipo, y el conjunto de todas las relaciones del mismo
tipo, se denominan respectivamente conjunto de entidades y conjunto de relaciones.
(SIBERSCHATZ & F. Korth , 2002, pág. 20)
El modelo Entidad-Relación consta de los siguientes componentes:
Rectángulos, que representan conjuntos de entidades.
Elipses, que representan atributos.
Rombos, que representan relaciones entre conjuntos de entidades.
Líneas, unen los atributos con los conjuntos de entidades y los conjuntos de
entidades con las relaciones.
Modelo Relacional
Se utiliza un grupo de tablas para representar los datos y las relaciones entre
ellos. Cada tabla está compuesta por varias columnas, y cada columna tiene un
nombre único.
44. 44
Otros modelos de Datos
El modelo orientado a objetos se puede observar como una extensión del
modelo E-R con las nociones de encapsulamiento, métodos (funciones) e identidad
de objeto.
El modelo de datos relacional orientado a objetos combina las características
del modelo de datos orientado a objetos y el modelo de datos relacional.
(SIBERSCHATZ & F. Korth , 2002, pág. 21 y 22)
3.3 Componentes de los sistemas gestores de bases de datos
Los SGBD son paquetes de software muy complejos que deben proporcionar
una serie de servicios que van a permitir almacenar y explotar los datos de forma
eficiente. Los componentes principales son los siguientes:
Lenguajes de los SGBD. Los lenguajes van a permitir al administrador de la BD
especificar los datos que componen la BD, su estructura, las relaciones que existen
entre ellos, las reglas de integridad, los controles de acceso, las características de
tipo físico y las vistas externas de los usuarios. Los lenguajes de los SGBD se
clasifican en:
Lenguaje de definición de datos (DDL o LDD)
Lenguaje de manipulación de datos (LMD o DML)
Diccionario de datos. Es el lugar donde se deposita información acerca de todos los
datos que forman la BD. Es una guía en la que se describe la BD y los objetos que la
forman.
Seguridad e integridad de datos. Un SGBD proporciona los siguientes mecanismos
para garantizar la seguridad e integridad de los datos:
45. 45
Garantizar la protección de los datos contra accesos no autorizados.
Ofrecen mecanismos para implantar restricciones de integridad de la BD.
Proporciona herramientas para la planificación y realización de copias de
seguridad y restauración.
Administrador de la BD. Existen diferentes categorías de usuarios:
Usuarios de la categoría DBA. Administran la base de datos, tienen el nivel
más alto de privilegios.
Usuarios categoría RESOURCE, pueden crear sus propios objetos.
Usuarios tipo CONNECT, solo utilizan objetos a los que tienen permisos.
(RAMOS, RAMOS, & MONTERO, 21-10-2008, pág. 11)
3.4 Arquitectura de los sistemas de Bases de datos
Un sistema de bases de datos se divide en módulos que se encargan de cada
una de las responsabilidades del sistema completo. Los componentes funcionales de
un sistema de bases de datos se pueden dividir a grandes rasgos en los
componentes gestores de almacenamientos y procesador de consultas. (BIOSCA,
GÁRRIZ, & SORT, 2005, pág. 1087)
Gestor de Almacenamiento. Es un módulo de programa que proporciona la
interfaz entre los datos de bajo nivel en la base de datos y los programas de
aplicación y consultas emitidas al sistema. Es responsable de la interacción con el
gestor de archivos. Traduce las diferentes instrucciones LMD a órdenes de un
sistema de archivos de bajo nivel. Es responsable del almacenamiento, recuperación
y actualización de los datos en la base de datos.
46. 46
Los componentes del gestor de almacenamiento incluyen (BALLÚS, FORNALS, &
GALVE, 2004, pág. 321):
Gestor de autorización e integridad
Gestor de transacciones
Gestor de archivos
Gestor de memoria intermedia
El gestor de almacenamiento implementa varias estructuras de datos como parte de
la implementación física del sistema.
Archivos de datos
Diccionario de datos
Índices
Procesador de consultas. Los componentes del procesador de consultas incluyen
(SIBERSCHATZ & F. Korth , 2002, pág. 24):
Interprete del LDD
Compilador del LMD
Motor de evaluación de consultas.
47. 4. INTRODUCCIÓN A MYSQL
4.1 ¿Qué es MySQL?
MySQL es un sistema para la administración de bases de datos relacionales
(RDBMS) rápido y sólidos. Las bases de datos permiten almacenar, buscar, ordenar
y recuperar datos de forma eficiente. El servidor de MySQL, controla el acceso a los
datos para garantizar el uso simultáneo de varios usuarios, para proporcionar acceso
a dichos datos y para asegurarse de que sólo obtienen acceso a ellos los usuarios
con autorización. Por lo tanto, MySQL es un servidor multiusuario y de
subprocesamiento múltiple. Utiliza SQL (del inglés Structured Query Langueje,
Lenguaje de consulta estructurado), el lenguaje estándar para la consulta de
bases de datos utilizando en todo el mundo. MySQL lleva disponible desde 1996
pero su nacimiento se remonta a 1979. Ha obtenido el galardón Choice Award del
Linux Journal Readers en varias ocasiones. (WELLING & THOMSON, 2006, pág. 33)
MySQL distribuye bajo un sistema de licencias dual. Puede utilizarlo bajo una
licencia de código abierto (GPL), que es gratuita mientras cumpla las condiciones de
la misma. Si desea distribuir una aplicación que no sea GPL y que incluya MySQL,
puede adquirir una licencia comercial. (WELLING & THOMSON, 2006, pág. 33)
4.2 Concepto de SQL
SQL equivale a Lenguaje de consulta estructurado. Se trata del lenguaje
estándar para acceder a los sistemas de administración de base de datos (RDBMS).
SQL se utiliza para almacenar y consultar datos desde y hasta una base de datos.
Se utiliza en sistemas de base de datos como MySQL, Oracle, PostgreSQL, sybase y
Microsoft SQL Server entre otros. . (WELLING & THOMSON, 2006, pág. 286)
47
48. 48
Existe un estándar ANSI de SQL, y los sistemas de bases de datos como
MySQL suelen implementarlo. Sin embargo, existen diferencias sutiles entre el SQL
estándar y el SQL de MySQL, que en algunos casos está provisto integrar en el
estándar y en otros resultan deliberadas. (WELLING & THOMSON, 2006, pág. 286)
4.3 Tipos de datos
Para cada columna tenemos que elegir entre algún dominio definido por el
usuario alguno de los tipos de datos predefinidos que se describen a continuación:
(MARTÍN, 2007, pág. 13)
Tabla 4.3.1 Tipos de datos de MySQL
Tipos de datos predefinidos
Tipos de datos
BIT (longitud)
BIT VARYING (longitud)
Descripción
Cadenas de bits de longitud fija.
Cadenas de bits de longitud variables.
NUMERIC
Número decimales con tantos dígitos como indique la
(precisión, escala)
precisión y tantos decimales como indique la escala.
DECIMAL
Número decimales con tantos dígitos como indique la
(precisión, escala)
precisión y tantos decimales como indique la escala.
INTEGER
Números enteros.
SMALLINT
Números enteros pequeños.
REAL
FLOAT (precisión)
DOUBLE PRECISION
DATE
Números con coma flotante con precisión predefinida.
Números con coma flotante con la precisión
especificada.
Números con coma flotante con más precisión
predefinida que la del tipo REAL.
Fechas. Están compuestas de: YEAR año, MONTH
49. 49
mes, DAY día.
Horas. Están compuestas de HOUR hora, MINUT
TIME
minutos, SECOND segundos.
Fechas y horas. Están compuestas de YEAR año,
TIMESTAMP
MONTH mes, DAY día, HOUR hora, MINUT minutos,
SECOND segundos.
Tabla 4.3.2 Tipos de datos
Tipos de datos predefinidos
Tipos de datos
Descripción
CHARACTER (longitud)
Cadenas de caracteres de longitud fija.
CHARACTER VARYING (longitud)
Cadenas de caracteres de longitud variable.
Los tipos de datos NUMERIC y DECIMAL
NUMERIC y DECIMAL se describen igual, y es posible utilizar tanto el uno como el
otro para definir números decimales.
El tratamiento del tiempo
El estándar SQL92 define la siguiente nomenclatura para trabajar con el tiempo:
YEAR
MONTH
HOUR
MINUT
DAY
SECOND
De todos modos, los sistemas relacionales comerciales disponen de diferentes
formatos, entre los cuales podemos elegir cuando tenemos que trabajar con
columnas temporales. (MARTÍN, 2007, pág. 13)
51. 5. JAVA
5.1 Fundamentos de programación
En el proceso de desarrollo de un sistema de información (un programa,
software, en general) hay una serie de etapas o fases en las que la programación
como tal es una de ellas, ni tan siquiera la más importante. (LLOBET, Azpitarte,
DEVESA, Llinares, RUÍZ, Fuertes, TORRES, Goterris, & MIEDES, de Elías, 2009,
pág. 1)
Un lenguaje orientado a objetos ataca estos problemas. Tiene tres
características básicas: debe estar basado en objetos, basado en clases y capaz de
tener herencia de clases. Muchos lenguajes cumplen uno o dos de estos puntos;
muchos menos cumplen los tres.(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ,
Fuertes, TORRES, Goterris, & MIEDES, de Elías, 2009, pág. 2)
El elemento fundamental de la POO es, como su nombre indica, el objeto.
Podemos definir un objeto como un conjunto complejo de datos y programas que
poseen estructura y forman parte de una organización. En este caso las estructuras
de datos y los algoritmos usados para manipularlas están encapsulados en una idea
común llamada objeto.(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ, Fuertes,
TORRES, Goterris, & MIEDES, de Elías, 2009, pág. 3)
En la figura 5.1.1 se muestra un esquema de cómo se ven los
objetos.(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ, Fuertes, TORRES, Goterris, &
MIEDES, de Elías, 2009, pág. 3)
51
52. 52
Figura 5.1.1 Encapsulación de métodos y atributos
5.2 Tipos de datos
Java es un lenguaje fuertemente tipeado; esto implica que constantes, variables
y expresiones tienen un tipo asociado y toda variable que interviene en un programa
debe ser declarada antes de poder ser utilizada.
Una primera clasificación de los tipos de datos en Java nos obligaría a distinguir
entre tipos simples y definidos por el usuario, debido a que tienen características muy
diferentes, constituyendo los tipos simples la base sobre la que se crearán los tipos
definidos por el usuario. (JOYANES, Aguilar & FERNÁNDEZ, Azuela, 2007, pág. 34)
53. 53
Identificadores
Java, al igual que todos los lenguajes de programación, define una serie de
palabras reservadas, que se muestran en la tabla 5.2.1.(DURÁN, GUTIÉRREZ, &
PIMENTEL, 2007, pág. 24)
Tabla 5.2.1 Palabras reservadas de Java
Abstract
Const
Float
int
public
Throw
Boolean
Continue
For
interface
return
Throws
Break
Default
Goto
long
short
Transient
Byte
Do
If
native
static
Try
Case
Doublé
Else
new
super
Void
Catch
Extends
implements
package
switch
volatile
Char
Final
import
private
synchronized while
Class
Finally
instanceof
protected
this
Variables
Una variable es una representación alfanumérica de una posición de memoria.
La sintaxis de declaración de una variable es:(DURÁN, GUTIÉRREZ, & PIMENTEL,
2007, pág. 25)
<tipo de datos><nombre1> [<nombre2> .. <nombre>]
Operadores
Java define algunas operaciones básicas sobre los tipos primitivos.
La tabla 5.2.2 muestra los operadores que se pueden aplicar a cada tipo, ordenados
de mayor a menor precedencia.(DURÁN, GUTIÉRREZ, & PIMENTEL, 2007, pág. 27)
54. 54
Tabla 5.2.2 Precedencia de operadores en Java
Operador
Significado
Tipos aceptados
[ ] . (params)
Operadores postfijo
Todos
Postincremento/Postdecremento
Alfanuméricos
+ + X - -X + X - X
Postincremento/Postdecremento
Alfanuméricos
!
No lógico
Booleanos
new (tipo)expr
Creación o conversión de tipo
Todos
* / %
Multiplicación, división, módulo
Alfanuméricos
Suma, resta
Alfanuméricos
+ -
Desplazamiento binario
Todos
<<= >= >
Comparaciones de orden
Alfanuméricos
== !=
Test de igualdad
Todos
%
AND binario
Todos
|
OR binario
Todos
&&
AND lógico
Booleanos
||
OR lógico
Booleanos
Asignación
Todos (del mismo tipo)
X+ +
X- -
=+=-=*=/=%=&==
| = <<= >>= >>>=
Tipos numéricos enteros
Los tipos de datos que permiten representar números enteros en java son
cuatro: byte, short, int y long. Todos ellos permiten representar números positivos y
negativos sin partes decimales.(DURÁN, GUTIÉRREZ, & PIMENTEL, 2007, pág. 27)
La diferencia principal entre estos tipos está en su capacidad de representación.
La tabla 5.2.3 muestra los rangos de valores de cada tipo y su valor inicial por
defecto. (DURÁN, GUTIÉRREZ, & PIMENTEL, 2007, pág. 27)
55. 55
Tabla 5.2.3 Rangos de los tipos de datos para enteros
Tipo
Longitud Valor por
Valor mínimo
Valor máximo
en bits
defecto
Byte
8
0
-128
127
Short
16
0
-32768
32767
Int
32
0
-2147483648
-3147483647
Long
64
0
-9223372036854775808 -9223372036854775807
Tipos numéricos reales
En cuanto a los números reales o números en coma flotante, existen dos tipos
básicos en lenguaje Java, que se muestra en la tabla 5.2.4, junto con su tamaño en
bytes.(DURÁN, GUTIÉRREZ, & PIMENTEL, 2007, pág. 28)
Tabla 5.2.4 Tipos de datos básicos reales en Java
Tipo
Tamaño
Representa
Float
4 bytes
Número en coma flotante
Doublé
8 bytes
Número en coma flotante
de doble precisión
Tipo carácter
Una secuencia de escape es un carácter que está representado por el carácter
seguido por una letra o conjunto de dígitos. La tabla 5.2.5 muestra las secuencias de
escape definidas en Java.(DURÁN, GUTIÉRREZ, & PIMENTEL, 2007, pág. 29)
56. 56
Tabla 5.2.5 Precedencia de operadores en Java
Secuencia de escape
Significado
n
Salto de línea
t
Tabulador
v
Tabulador vertical
b
Retroceso (backspage)
r
Mueve el cursor al principio de la línea actual
a
Alerta visible o audible
f
Mueve el cursor a la siguiente página lógica
’
Comilla simple
”
Dobles comillas
El carácter
?
El carácter ?
5.3 Programación orientada a objetos
La programación orientada a objetos (POO) es la base de Java y constituye una
nueva forma de organización del conocimiento en la que las entidades centrales son
los objetos.(JOYANES, Aguilar & FERNÁNDEZ, Azuela, 2007, pág. 11)
Cuando se escribe un programa utilizando programación orientada a objetos, no
se definen verdaderos objetos, sino clases; una clase es como una plantilla para
construir varios objetos con características similares. Los objetos se crean cuando se
define una variable de su clase. En las clases pueden existir unos métodos
especiales denominados constructores que se llaman siempre que se crea un objeto
de esa clase y cuya misión es iniciar el objeto. Los destructores son otros métodos
especiales que pueden existir en las clases y cuya misión es realizar cualquier tarea
final que corresponda realizar en el momento de destruir el objeto. Las propiedades
fundamentales de los objetos son:(JOYANES, Aguilar & FERNÁNDEZ, Azuela, 2007,
pág. 11)
57. 57
El encapsulamiento, que consiste en la combinación de los datos y las
operaciones que se pueden ejecutar sobre esos datos en un objeto,
impidiendo usos indebidos al forzar que el acceso a los datos se efectúe
siempre a través de los métodos del objeto.(JOYANES, Aguilar &
FERNÁNDEZ, Azuela, 2007, pág. 11):
nombreobjeto. nombreComponente.
La herencia es la capacidad para crear nuevas clases (descendientes) que se
construyen sobre otras existentes, permitiendo que éstas les transmitan sus
propiedades. (JOYANES, Aguilar & FERNÁNDEZ, Azuela, 2007, pág. 11):
El polimorfismo consigue que un mismo mensaje pueda actuar sobre
diferentes tipos de objetos y comportarse de modo distinto. El polimorfismo
adquiere su máxima expresión en la derivación o extensión de clases; es
decir, cuando se obtienen nuevas clases a partir de una ya existente mediante
la propiedad de derivación de clases o herencia.(JOYANES, Aguilar &
FERNÁNDEZ, Azuela, 2007, pág. 12)
Métodos
Los métodos son funciones de una clase. Generalmente los métodos se dividen
en aquellos que se usan internamente en la clase, llamados métodos privados
(private), los que se usan fuera de la clase, llamados métodos públicos (public) y los
que son usados por la clase y sus derivadas, llamados métodos protegidos
(protected). (HOLZNER, 2005, pág. 181)
58. 6. PROGRAMAS
6.1
JCreator
Se trata de un IDE para Java desarrollado por la empresa Xinox cuya filosofía
es la sencillez. Hay dos versiones, JCreator “Pro” y JCreator “Life”. La versión “Pro”
es comercial, aunque se pueden bajar versiones de evaluación. La versión “Life” es
libre. (Burd, 2007)
Su uso puede ser de mucha utilidad cuando no se requieren características
avanzadas de entornos como Eclipse, ya que resulta mucho más rápido y compacto.
JCreator no es multiplataforma y sólo está disponible para Windows.
Representa un buen compromiso entre el poder y la simplicidad, a diferencia
de otros IDEs.
Funciona en casi todas las versiones de JAVA.
Figura 6.1.1 Interfaz gráfica de JCreator
58
59. 59
6.2
Netbeans
NetBeans es un entorno de desarrollo integrado a Java, IDE que permite el
desarrollo rápido de aplicaciones con los marcos más adoptados, tecnologías y
servidores. (Dantas, 2011)
Diferente a otros IDEs, NetBeans ya viene pre-empaquetado con una amplia
funcionalidad de la caja, como el apoyo a los diferentes marcos, servidores, bases de
datos y desarrollo de aplicaciones móviles. (Dantas, 2011)
Figura 6.2.1. Interfaz gráfica de NetBeans
60. PROCEDIMIENTO O MÉTODO
Enfoque metodológico
La presente investigación presenta un enfoque “Mixto”, esto porque
procedió de un proceso que recolectó, analizó y vinculó datos, tanto cuantitativos y
cualitativos en un mismo estudio. Con el enfoque Mixto, se logró una perspectiva
más precisa del fenómeno e incrementó la confianza en los resultados obtenidos,
ya que se emplearon procesos cuidadosos, sistemáticos y empíricos.
Alcance de la investigación
En la propuesta de sistema: “Desarrollo de un sistema de control de
asistencia para el Bachillerato Tecnológico Moisés Sáenz de San Juan Bautista
Tuxtepec Oaxaca”, se encontraron estudios descriptivos que nos ha permitieron
detectar y definir ciertas variables y generalizaciones.
Es por esto que dicha investigación fue iniciada de forma correlacional,
ya que a través de ella se encontraron las respuestas necesarias, que permitieron
responder a la pregunta de investigación ¿Cuáles son los efectos de utilizar un
software para el control de asistencia del personal en el Bachillerato Tecnológico
“Moisés Sáenz”?
Tipo de investigación
En cuanto al propósito de la investigación planteada y atendiendo a las
características del proyecto, se puede decir que el tipo de investigación es
“Aplicada”, ya que en base a ciertos conocimientos adquiridos se pretendió
60
61. 61
resolver un problema de la vida real para satisfacer las necesidades del usuario
donde fue necesario identificar, encausar y controlar hechos y fenómenos.
En relación a las fuentes consultadas, la investigación se encuentra
enmarcada en el contexto de la modalidad de investigación de tipo documental e
investigación de campo.
Es una investigación documental, por cuanto se apoyó en la información
proveniente de trabajos previos, libros y búsqueda por internet.
Es una investigación de campo, debido a que se abordó un problema real
existente actualmente, y los datos fueron recolectados directamente del personal
implicado, que para el presente caso se constituye en el bachillerato Tecnológico
“Moisés Sáenz”,
La investigación se clasificó en relación a la forma o momento en que
sucedió el fenómeno, por lo que atendiendo a las características de la
investigación se consideró descriptiva, ya que se explica en detalle, cada una de
las actividades de los procesos actuales y propuestos para la implementación del
sistema.
Diseño de investigación
De acuerdo con el marco de esta investigación se puede decir que el
diseño que se planteó, corresponde al tipo “experimental”.
Se cataloga como “experimental” porque su objetivo fundamental fue
comprobar, mediante un control exhaustivo las condiciones experimentales, el cual
es el motivo que
permitió estudiar los hechos, establecer condiciones y
comprobar.
El diseño de la investigación se observa desde un punto de vista
62. 62
“cuasiexperimentos”, porque los sujetos no se asignaron al azar, sino que dichos
grupos se formaron antes del experimento.
Universo o Población
El Bachillerato Tecnológico “Moisés Sáenz” de la ciudad de San Juan
Bautista Tuxtepec, Oaxaca, cuenta con un personal de 32 personas, los cuales se
mencionan en la siguiente tabla:
Personal
H
M
Administrativo
10
3
Docentes
10
9
Cabe mencionar que todos los docentes cuentan con estudios mínimos de
licenciatura, cada uno con perfil a fin con las asignaturas que imparten en la
institución, algunos de ellos son Ingenieros y otros con estudio de Posgrado. La
mayor parte del personal administrativo, tienen estudios en el área de Informática,
contaduría, algunos con perfil Pedagógico y con perfil propedéutico en
humanidades y ciencias sociales.
Muestra o unidad de análisis
Es la fracción elegida de modo que sus parámetros se ajustan a los de la
población cuando se desea obtener un dato respecto de la población, es por esto
que utilizaremos el método probabilístico, por lo que es necesario tomar una
muestra representativa, y emplearemos la fórmula para población finita.
Formula: n=
z2* P* Q* N
(N-1) E2 + Z2* P* Q
Dónde: n= tamaño de la muestra
63. 63
Z= valor critico correspondiente a un determinado grado de confianza
P= proposición poblacional
Q= probabilidad a encontrar
N= universo
E= error muestral permisible en investigación
Cálculos:
Sustituyendo los datos en la formula
N = 32
z = 1.96
E = 0.05
P = 0.5
Q = 0.5
n=
(1.96)2* 0.5*0.5* 32
(32-1) (0.05)2 + (1.96)2* 0.5* 0.5
n=
3.84* 0.5* 0.5* 32
(31) (0.0025) + 3.84* 0.25
n=
30.72
0.0775 + 0.96
n=
30.72
1.0375
n= 29.60 ≈ 30
Al elegir dicha muestra, se realizará de forma Aleatoria Simple. Cada uno del
personal de la institución tiene un número asignado en la nómina, por medio de los
64. 64
cuales al elegir aleatoriamente cada número, es como se obtuvo el nombre de las
30 personas que formaran parte de la muestra.
Elaboración, selección y desarrollo de instrumentos
Técnicas de recolección de datos
De acuerdo con lo descrito anteriormente, él enfoque mixto es el utilizado
en esta investigación ya que cuenta con las características que se requieren para
desarrollar el análisis de datos.
El enfoque cuantitativo se utilizó para la medición numérica de variables
como grado de satisfacción y conocimiento del participante, utilizando la entrevista
como técnica de recolección de datos.
El enfoque cualitativo se realizó mediante la observación, a fin de corroborar con
la información extendida por el personal de la institución y verificar la autenticidad
de la información obtenida mediante las entrevistas realizadas.
Instrumentos de recolección de datos
Cuestionario:
Será formulada con preguntas cerradas dicotómicas, abiertas y de opción
múltiple con el objetivo de recopilar la mayor información posible del personal
administrativo y docente en estudio, así como evaluar el funcionamiento del
sistema con que actualmente trabaja la institución, y verificar que se tenga la
necesidad de un sistema automatizado. (Ver anexo A. Cuestionario)
Guía de observación:
Consiste en obtener información mediante la percepción intencionada y
65. 65
selectiva, ilustrada e interpretativa del objeto de estudio. (Ver anexo B. Guía de
observación).
Metodología de desarrollo del sistema
Para llevar a cabo la realización del sistema se empleó la metodología del
Ciclo de vida clásico, la cual contempla las siguientes fases y actividades:
1. Análisis de los requisitos del software
Investigación Preliminar: Se muestran los formatos utilizados para la
obtención y recopilación de información (Ver anexo A, B y C).
Identificación de los requerimientos: Se establecen los diagramas
que fueron utilizados como:
Diagrama de Contexto (Nivel 0)
PERSONAL
ADMINISTRATIVO
Ingreso al
sistema
Pone Huella
Ingreso al sistema
Ingreso al sistema
DOCENTES
Ponen Huella
0
SISTEMA DE
CONTROL
DE
ASISTENCIA
Alta de usuarios
Horario
Reporte
ADMINISTRADOR
68. 68
Diagrama de Clases
Estudio de Factibilidad
Después de haber definido la problemática y haber establecido las causas
que requieren de la implementación del nuevo sistema, es conveniente realizar el
69. 69
estudio de factibilidad para así determinar la infraestructura tecnológica y la
capacidad técnica que implica la instalación del sistema en cuestión, además de
los costos-beneficios, la aceptación o rechazo que la propuesta genere a la
institución.
Cabe mencionar que éste análisis nos permitirá determinar las
posibilidades de diseñar el sistema propuesto, los aspectos que fueron tomados
en cuenta para su estudio, se clasificaron en tres áreas: Factibilidad Técnica,
Factibilidad Económica, Factibilidad Operativa, que a continuación se describen.
Factibilidad Técnica
Para poder desarrollar el sistema de asistencia para el personal, son
necesarios los recursos tecnológicos, por tal motivo se llevó a cabo una
evaluación de la tecnología con la que cuenta actualmente el Bachillerato, se
recopiló la información de éstos recursos y la posibilidad que existe de utilizarlos
durante el desarrollo o quizá implantación del sistema mencionado.
La evaluación de dichos recursos tecnológicos, se realizó en base al
enfoque de hardware y software. Hablando del hardware con el que cuentan, los
equipos de cómputo cumplen con los requisitos básicos que se establecen, como
lo es el servicio de internet inalámbrico. Sin embargo, será necesaria la
adquisición de un equipo de cómputo nuevo, ya que con los que cuenta la
institución son utilizados de tiempo completo por el personal que labora en las
oficinas.
En cuestión del software, el equipo que se va a adquirir, debe contar con
el sistema operativo de Windows 7, ya que el personal está familiarizado con éste
Sistema Operativo, al venir ya incluido en la compra de la computadora no
generará un costo adicional. A continuación se muestra en la siguiente tabla las
características del hardware y software.
70. 70
Tabla 6.1.1 Requerimientos de Hardware para el desarrollo del sistema
Hardware
Cantidad
1
Recurso
Computadora
Escritorio
Características
de Marca acer modelo az1650-md10s.
Procesador
intel
Atom
D2500,
memoria caché 1.86 GHz, Memoria
Ram 2Gb DDRIII-1333, Disco Duro
300 Gb, Sistema Operativo Windows 7
Starter 32 Bits, lector multitarjeta,
teclado y mouse USB, Pantalla 18.5”.
1
Lector
de
Digital
Huella Lector de Huella Digital U Are U
uru4500, conector USB.
Tabla 6.1.2. Requerimientos de Software para el desarrollo del sistema
Software
Recurso
Sistema Operativo
Características
Windows 7, Starter, Home basic, home
Premium, Professional, Ultimate, etc.
71. 71
Factibilidad Económica
Se presenta a continuación el estudio que dio como resultado la
factibilidad económica del sistema donde se determinaron los recursos
económicos para implementar el sistema de control de asistencia.
Costos Generales:
Son todos aquellos gastos realizados como la compra de programas
utilizados. Por consiguiente se muestra una tabla donde se indican dichos gastos.
Tabla 6.1.3. Costos generales
Nombre
Cantidad
Costo
MySQL
1
$0
Java
1
$0
Bouml
1
$0
Costo de Personal:
Se incluyen los gastos generados por el recurso humano que se necesita
para el desarrollo del sistema únicamente, donde bajo su responsabilidad estará el
contar con el personal que se encargue de operar y del funcionamiento del
sistema. A continuación se muestra en la tabla los gastos mencionados.
Tabla 6.1.4. Salarios del equipo técnico que participara en el desarrollo del
proyecto
Cantidad
Descripción
Esfuerzo
(horas)
Costo
73. Tabla 6.1.5. Costo de Ambiente
Cantidad
Recurso
Costo
1
Computadora
$4,500.00
1
Lector de Huella Digital
$1,299.00
1
Regulador
$ 349.00
TOTAL
$6,148.00
Costos operativos durante el desarrollo:
Estos costos se refieren a aquellos necesarios para la operatividad de las
actividades durante el periodo en el que se realizara el proyecto, por lo que se
suman al costo del desarrollo del mismo y al pago de servicios requeridos para
laborar. Los costos de operación se muestran a continuación:
Tabla 6.1.6. Costos de operación durante el desarrollo
PAGO
CONCEPTO DE PAGO
ACTIVIDADES
Luz
Suministro de energía eléctrica
$ 400
Comida
Desayuno
$ 800
Agua
Suministro de Agua Potable
$ 200
Teléfono
Comunicaciones
$ 1,000
TOTAL POR MES
73
MENSUAL
$ 2,400
74. Costos totales del desarrollo del sistema:
La tabla que se muestra a continuación, muestra los costos totales del sistema.
Tabla 6.1.7. Costos totales del sistema.
CONCEPTO DE PAGO
COSTO MENSUAL
Costos de Ambiente
$6,148.00
Salarios del equipo técnico
$25,410.00
Costos de operación
$ 2,400.00
TOTAL
$39,958.00
Factibilidad Operativa
Aquí se define si el sistema propuesto se pondrá en marcha, tomando en
cuenta las ventajas y beneficios que traerá al personal y a la institución, además
de considerar que el Bachillerato tenga la capacidad de mantener el sistema.
La necesidad de implementar el sistema en la institución, lleva
automáticamente a la aceptación de la propuesta de manera sencilla y rápida, ya
que se cubre completamente con los requisitos y necesidades del usuario, y al
mismo tiempo se proporcionará información exacta y oportuna, por lo que el
sistema es factible al ser operado.
Al implantar el sistema de Asistencia del personal se tendrán en cuenta las
siguientes restricciones:
La jefa de servicios administrativos será quien reciba la información de las
horas laboradas de todo el personal en cada quincena.
Quienes tendrán acceso a la manipulación o modificaciones de la base de
datos únicamente serán: jefa de servicios administrativos y dirección.
75. Se establece el contrato en el que quedaron especificadas las cláusulas y
especificaciones de lo que se otorgó junto con el sistema completo. (Ver anexo D).
2. Diseño
Se muestran los diagramas del diseño de cómo se encuentra conformado
éste sistema, los cuales se presentan a continuación:
Modelo de Entidad Relación (E-R)
77. 77
3. Generación de código
La codificación consiste en traducir el Diseño en instrucciones, que la
computadora pueda interpretar.
Durante esta etapa se realizó las tareas que comúnmente se conocen
como programación; que consiste, esencialmente, en llevar a código fuente, en el
lenguaje de programación elegido, todo lo diseñado en las fases de la metodología.
Esta tarea la realizo el programador, siguiendo por completo los lineamientos
impuestos en el diseño y en consideración siempre a los requisitos funcionales y no
funcionales (ERS).
Para la codificación del sistema se optó por la plataforma JAVA, que es un
lenguaje de programación potente, es independiente de una plataforma en
específico, es decir, que cualquier programa, sistema o software creado en JAVA,
puede funcionar en cualquier ordenador, ya sea manejando un Sistema Operativo
Linux, Windows, Apple, entre otras. JAVA es un lenguaje de programación
de
propósito general, es concurrente y orientado a objetos.
A continuación se presentará un fragmento del código implementado para
crear el enlace de una de las ventanas (Usuarios) con la base de datos. Es decir, en
la ventana Usuarios, el cual el administrador será la única persona que contara con
el acceso para dar de alta a un empleado.
Código
78. 78
private void GuardarActionPerformed(java.awt.event.ActionEvent evt) {
try{
Class.forName( CONTROLADOR_JDBC );
conexion = (Connection) DriverManager.getConnection( URL_BASEDEDATOS, login, password
);
instruccion = (Statement) conexion.createStatement();
if((Nombre.getText()).equals("")||(Tel.getText()).equals("")||(Email.getText()).equals("")||(Ca
rgo.getText()).equals("")||(Turno.getText().equals("")))
JOptionPane.showMessageDialog(null, "No puede haber campos vacios");
else{
instruccion.execute("INSERT INTO altausuarios VALUES('"+Nombre.getText()+
"', '"+Tel.getText()+"',
'"+Email.getText()+"','"+Cargo.getText()+"','"+Turno.getText()+"');");
JOptionPane.showMessageDialog(null, "Datos ingresados correctamente");
}
}
catch ( SQLException excepcionSql ) {
JOptionPane.showMessageDialog( null, excepcionSql.getMessage(),
"Error en base de datos", JOptionPane.ERROR_MESSAGE );
System.exit( 1 );
}
catch ( ClassNotFoundException claseNoEncontrada ) {
JOptionPane.showMessageDialog( null, claseNoEncontrada.getMessage(),
"No se encontró el controlador", JOptionPane.ERROR_MESSAGE );
System.exit( 1 );
}
finally {
try {
instruccion.close();
conexion.close();
}
// manejar posibles excepciones al cerrar instruccion y conexion
catch ( SQLException excepcionSql ) {
JOptionPane.showMessageDialog( null,
excepcionSql.getMessage(), "Error en base de datos",
JOptionPane.ERROR_MESSAGE );
System.exit( 1 );
}
}
4. Pruebas e implantación
Pruebas al Sistema
79. 79
Se llevaron a cabo algunas pruebas, las cuales se describen a continuación:
Pruebas unitarias
En esta prueba se verificó que el código fuente no tuviera errores sintácticos
o semánticos, para esto se checo el código línea por línea, de esta manera se evitó
la existencia de algún error de sintaxis en alguna de las instrucciones.
Pruebas integrales
Fue realizada para comprobar que el programa sea capaz de funcionar
interactuando con la base de datos sin afectar un valor de datos en las funciones.
Se estimaron solo dos procesos en este tipo de prueba, ya que son los que
comparten recursos de memoria y que pudieron haber tenido algún problema no
previsto.
Pruebas de volumen
Las pruebas de volumen fueron necesarias para identificar la forma en que
se comporta el sistema, si gradualmente la información aumenta en la base de datos.
Pruebas de usuario
Para esto se detectó las posibles fallas que una persona pueda generar, ya
que no están familiarizadas con el sistema, y la forma en que lo manipula es distinta
en cada usuario; para esto se piensa capacitar al personal para que no haya ningún
problema de este tipo.
Implantación
Dentro del Plan de Capacitación que se integró, se otorgó un pequeño curso
80. 80
a 2 personas de la institución, los cuales podrán manejar el nuevo Sistema de
Control de Asistencia implementado; consistió en la enseñanza de cómo utilizar el
sistema, agregar a una persona, ingresar sus datos, dar de baja, obtener las horas
laboradas y faltas de personal, etc. Dentro de la capacitación se hizo entrega de los
manuales los cuáles se muestran en el anexo E.
81. ANÁLISIS DE RESULTADOS
El análisis cuantitativo de los datos que serán obtenidos será llevado a cabo
a través de una computadora u ordenador, utilizando el programa de Microsoft Excel.
Se utilizará dicho software ya que la cantidad de los datos que serán interpretados es
pequeña, debido a la población y muestra que se analizará.
Además, podemos mencionar que Microsoft Excel es un software sencillo,
óptimo, fácil de utilizar, se encuentra al alcance y, sobre todo, que cumple con las
características que se requieren.
Los resultados obtenidos del cuestionario se pueden observar en las siguientes
gráficas:
1. ¿Qué tan satisfecho está usted con el
sistema actual de control de asistencia?
Nada
Poco
10%
Regular
7%
13%
70%
Mucho
82. 82
La pregunta Nº 1, está destinada a determinar el grado de satisfacción de los
empleados, respecto al sistema actual de control de asistencia. Se puede observar que
el 7% no está satisfecho con el proceso utilizado actualmente, el 70% está poco
satisfecho, el 13% tiene un grado regular de satisfacción y el 10% de la totalidad de la
población a la que fue aplicado el cuestionario se encuentra satisfecho con la forma en
que se lleva a cabo el control de asistencia en la institución.
2. ¿Qué tan importante considera usted la
creación de un sistema automatizado de
Control de Asistencias?
Nada
Poco
Regular
Mucho
0%
17%
53%
30%
La Pregunta Nº 2, Se realizó para conocer qué tan importante es para el personal un
sistema automatizado que permita controlar la asistencia, se puede observar que todo el
personal considera por lo menos un poco importante la creación de este sistema, lo cual
corresponde al 17% de la población, el 30% de la población considera que la importancia
de la creación de un sistema automatizado es regular y el resto de la población
correspondiente al 53% consideran muy importante la creación de un sistema
automatizado que permita llevar a cabo el control de la asistencia.
83. 83
3. ¿Cree usted que le beneficiaría el sistema
automatizado de Control de Asistencias?
si
no
7%
93%
La Pregunta Nº 3, está elaborada con la finalidad de conocer si hay confianza o no, por
parte de los empleados de la institución, es decir, saber si ellos están conscientes de los
posibles beneficios que pueden obtener con la implementación del sistema automatizado
de control de asistencia. En la gráfica se puede observar que el 7% de la población
piensa que no obtendría ningún beneficio, sin embargo el resto de la población que
corresponde al 93% cree que si puede obtener ciertos beneficios con la implementación
del nuevo sistema.
84. 84
4. ¿Qué efectos cree que producirá el sistema
en la institución?
Mejorará el prestigio de la institución ante la sociedad.
Mejora en el acceso del personal.
Exactitud en el tiempo laborado.
Un mejor reporte de las nóminas.
6%
17%
50%
27%
La Pregunta Nº 4, Tiene como finalidad saber qué es lo que esperan los empleados del
nuevo sistema, es decir los posibles efectos que ellos creen que traerá consigo la
implementación de dicho sistema. El 6% cree que mejorará el prestigio de la institución
ante la sociedad, el 17% cree que mejorará el acceso del personal, el 27% piensa que
habrá mayor exactitud en el tiempo laborado, y el resto, correspondiente al 50% de la
población cree que se producirá un mejor reporte de las nóminas.
85. CONCLUSIONES
En el nuevo sistema para el control de asistencia del Bachillerato
Tecnológico “Moisés Sáenz se consiguió automatizar algunas de las tareas propias
del personal administrativo; el control de asistencia es ahora más efectivo, ya que se
ha minimizado de gran manera el tiempo de emisión de reportes de control de
personal y planillas de pago.
Con este proyecto se ha conseguido desarrollar un sistema que permita
generar el reporte de las horas trabajadas por el personal de la Institución, con el
cual se ha logrado que haya aumentado el sentido de responsabilidad y puntualidad
de los mismos.
Los esfuerzos y tiempos que fueron invertidos en el análisis y diseño de la
solución
del
problema
planteado,
permitieron
la
cobertura
de
todos
los
requerimientos funcionales del usuario, y que de ésta manera se hayan maximizado
las funcionalidades que se esperaban del producto, sin embargo es importante
mencionar que las últimas fases de la metodología empleada se encuentran en
proceso por cuestiones de tiempo, considerándose la falta de tiempo como un
limitante, pero se espera cubrirlas en el tiempo adecuado.
La documentación técnica y funcional del producto brindó a todo aquel nuevo
usuario un mejor entendimiento de las funciones que se implementaron.
Finalmente se concluye que el proyecto cumplió con los requerimientos y objetivos
desde su planeación, puesto que se lograron cumplir con los objetivos específicos.
85
86. RECOMENDACIONES
Es necesario de un administrador del sistema que realice mantenimiento y
apoyo técnico a los usuarios.
Se recomienda que para un mejor control del personal se actualicen los
horarios de trabajo anualmente por que podrían existir variaciones de los
mismos, así como también la actualización de los datos del personal docente
y administrativo.
Posteriormente se podría desarrollar un módulo de inscripción de los
estudiantes empleando la tecnología biométrica para la optimización del
tiempo y eficiencia de recursos tanto materiales como humanos.
86
87. GLOSARIO
Automatización
Es un sistema donde se trasfieren tareas de
producción, realizadas habitualmente por
operadores humanos a un conjunto de
elementos tecnológicos.
Diccionario de datos
Contiene las características lógicas de los
sitios donde se almacenan los datos del
sistema, incluyendo nombre, descripción,
alias, contenido y organización.
Enfoque
Proviene del verbo enfocar, y significa la
acción y el efecto de lograr que la imagen de
una cosa que se produce en el foco de una
lente,
se
tome
claramente
sobre
determinada superficie.
Hardware
Componentes físicos del ordenador, es
decir, todo lo que se puede ver y tocar.
IDE de Programación
Un IDE es un entorno de programación que
ha sido empaquetado como un programa de
aplicación, o sea, consiste en un editor de
código, un compilador, un depurador y un
constructor de interfaz gráfica.
Java
Es una tecnología que se usa para el
desarrollo de aplicaciones que convierten a
la Web en un elemento más interesante y
útil. Java no es lo mismo que javascript, que
87
88. 88
se trata de una tecnología sencilla que se
usa para crear páginas web y solamente se
ejecuta en el explorador.
JCreator
Es un entorno de desarrollo para Java.
KWS o Sistemas del trabajo del
Sistemas de información que apoyan a los
conocimiento
trabajadores del conocimiento en la creación
e integración del nuevo conocimiento en una
organización.
Modelo
Es una abstracción teórica del mundo real.
Multiplataforma
Se refiere que cualquier formato que puede
ser disfrutado de modo pleno o que se
desarrolla en diferentes plataformas.
MySQL
Es
el
servidor
de
bases
de
datos
relacionales más popular, desarrollado y
proporcionado por MySQL AB.
Netbeans
Es un proyecto exitoso de código abierto con
una gran base de usuarios.
Planificación
Es la primera función de la administración, y
consiste en determinar las metas u objetivos
a cumplir.
Prototipo
Es la primera versión o modelo de su
producto, en que ha incorporado algunas
características del producto final.
89. 89
Sistemas de gestión de base de Son un tipo de software muy específico,
datos o SGBD
dedicado a servir de interfaz entre la base de
datos, el usuario y las aplicaciones que la
utilizan.
Sistema de gestión MIS (del
Es una herramienta o aplicación informática
inglés Management Information
que permite controlar todos y cada uno de
System)
los aspectos de una empresa (pedidos,
producción,
control
de
presencia,
facturación, ventas, administración, etc.).
Sistema de Procesamiento de Está basado en la computadora y la relación
Transacciones (TPS)
de sustentabilidad de los trabajos rutinarios,
es el más importante y el más utilizado
dentro de la empresa, pues reduce el tiempo
de las operaciones o actividades rutinarias
de la empresa.
Sistemas
de
Decisión (DSS)
Soporte
a
la Es una herramienta de Business Intelligence
enfocada al análisis de los datos de una
organización.
Software
Se refiere al equipamiento lógico o soporte
lógico
de
un
computador
digital,
y
comprende el conjunto de los componentes
lógicos necesarios para hacer posible la
realización de una tarea específica, en
contraposición a los componentes físicos del
sistema (hardware).
90. 90
SQL
La
sigla sql significa structured query
language, o su equivalente en español
lenguaje de pregunta estructurado, este es
un
lenguaje
universal
que
esta
implementado en todos los motores de
bases de datos razón por la cual el SQL es
el lenguaje estándar de comunicación entre
los diferentes motores existentes.