baez morales victor
TRANSCRIPT
-
8/18/2019 Baez Morales Victor
1/126
UNIVERSIDAD VERACRUZANA
Facultad de Contaduría y Administración
Enero 2014Xalapa-Enríquez, Veracruz
“Evaluación de la aplicación web SCAT en laFacultad de Contaduría y Administración”
T E S I S
Para obtener el Título de:
Licenciado en SistemasComputacionales Administrativos
P R E S E N T A:
Víctor Javier Báez Morales
ASESOR:
Mte. Mayra Minerva Méndez Anota
-
8/18/2019 Baez Morales Victor
2/126
-
8/18/2019 Baez Morales Victor
3/126
-
8/18/2019 Baez Morales Victor
4/126
AGRADECIMIENTOS
Le agradezco a Dios y a S.J.T. por haberme guiado en el transcurso de
mi carrera y de tomar las decisiones adecuadas, así como de habermedado unos padres maravillosos.
Quedo en deuda con mis padres Hipólito Báez, Faustina Morales, mis
hermanos y a mi familia por todo el apoyo moral y económico para
terminar mi licenciatura.
Le agradezco a mis maestros la confianza, apoyo, dedicación y tiempoextra para mi aprendizaje: Maestra Mayra, Maestra Paty. Y a todos los
que hicieron posible el CDPT.
Agradezco a mis amigos del alma que siempre estuvieron en las buenas
y en las malas: Ángel A. Contreras y Gibran Córdoba.
Gracias a la Maestra Mayra Minerva Méndez Anota por creer en mí y
haberme brindado la oportunidad de obtener conocimiento laboral que
es muy importante.
-
8/18/2019 Baez Morales Victor
5/126
II
ÍNDICEPágina
RESUMEN ......................................................................................................................... 1
INTRODUCCIÓN ............................................................................................................... 2
CAPÍTULO I: MARCO CONTEXTUAL ............................................................................ 6
1.1. ¿Qué es el Centro de Apoyo a la Titulación (CAT)? ......................................... 7
1.2. Antecedentes de la aplicación web SCAT ........................................................ 8
1.2.1. Propósito de la investigación ................................................................... 10
1.2.2. Justificación ............................................................................................ 10
1.2.3. Objetivos del proyecto ............................................................................. 11
1.3. Introducción a la aplicación web del Centro de Apoyo a la Titulación (SCAT). 11
1.3.1. Formulación del Problema ...................................................................... 12
1.3.2. Interrogantes de Mediciones de la aplicación web SCAT ........................ 13 1.3.3. Delimitación de la Investigación .............................................................. 14
1.3.4. Normativa de trabajo Recepcional .......................................................... 14
CAPÍTULO II: METODOLOGÍA..................................................................................... 17
2.1. Definición de Metodología .............................................................................. 18
2.1.1. Antecedentes de Procesos de Desarrollo ............................................... 18
2.2. Metodología de desarrollo de Sistemas de Información ................................. 22
2.2.1. Metodologías Tradicionales .................................................................... 23
2.2.2. Metodologías Agiles ................................................................................ 24 2.2.3. Extreme Programming (XP) .................................................................... 27
2.2.4. Proceso continuo en lugar de por lotes. .................................................. 30
2.2.5. ¿Historia de la aplicación web? ............................................................... 33
2.2.6. ¿Qué es una aplicación web? ................................................................. 33
2.3. ¿Qué es la web 2.0? ...................................................................................... 33
2.3.1. Atributos de la Web 2.0 ........................................................................... 34
2.3.2. ¿Para qué sirve la Web 2.0? ................................................................... 34
2.4. ¿Cómo se desarrolló la aplicación web SCAT? .............................................. 35
CAPITULO III: CALIDAD PARA LA MEDICIÓN DEL SOFTWARE .............................. 47
3.1. ¿Qué es la calidad? ....................................................................................... 48
3.1.1. Factor de calidad de McCall .................................................................... 48
3.2. ¿Qué es la ISO? ............................................................................................ 49
3.3. Modelos de evaluación y mejora en la calidad del software ........................... 50
-
8/18/2019 Baez Morales Victor
6/126
III
3.3.1. El modelo SPICE .................................................................................... 50
3.3.2. Modelo de normas ISO para la calidad del software ............................... 50
3.3.3. ¿Qué es la IEC? ..................................................................................... 51
3.3.4. Norma ISO/IEC 15504 ............................................................................ 52
3.3.5. Norma ISO/IEC 12207 ............................................................................ 54 3.3.6. Norma ISO/IEC 14598 ............................................................................ 57
3.4. Norma ISO/IEC 9126 ..................................................................................... 58
3.5. Calidad interna y externa ............................................................................... 60
3.5.1. Funcionalidad .......................................................................................... 60
3.5.2. Confiabilidad ........................................................................................... 61
3.5.3. Usabilidad ............................................................................................... 61
3.5.4. Eficiencia ................................................................................................ 62
3.5.5. Mantenibilidad ......................................................................................... 62 3.5.6. Portabilidad ............................................................................................. 63
3.6. Calidad del uso .............................................................................................. 63
3.6.1. Eficiencia ................................................................................................ 63
3.6.2. Productividad .......................................................................................... 64
3.6.3. Seguridad ............................................................................................... 64
3.6.4. Satisfacción ............................................................................................. 64
3.7. Modelo 2QCV3Q ............................................................................................ 64
3.8. Metodología WebQEM ................................................................................... 65
3.9. WebQual ........................................................................................................ 65
3.10. Modelo SQuaRE ......................................................................................... 65
3.11. Norma ISO/IEC 25000 ............................................................................... 66
3.12. Norma ISO/IEC 29119 ................................................................................ 69
3.12.1. Medición .............................................................................................. 71
CAPITULO IV: ANÁLISIS DE RESULTADOS .............................................................. 72
4.1. Métricas internas y externas técnicas ............................................................. 73
4.1.1. Métricas orientadas a la función .............................................................. 73
4.1.2. Métricas del Mantenimiento .................................................................... 77
4.1.3. Densidad de defectos ............................................................................. 78
4.1.4. Medición de la confiabilidad .................................................................... 78
4.1.5. Validadores de la W3C ........................................................................... 79
4.1.6. Validador de HTML ................................................................................. 80
4.1.7. Validador de CSS.................................................................................... 81
-
8/18/2019 Baez Morales Victor
7/126
IV
4.1.8. Medición de Eficiencia ............................................................................ 82
4.1.9. Herramientas de medición para evaluar páginas web ............................. 82
4.1.10. Medición de Portabilidad ..................................................................... 87
4.1.11. Usabilidad ............................................................................................ 88
4.2. Resultados de encuesta ................................................................................. 89 CONCLUSIÓN ................................................................................................................. 96
FUENTES DE INFORMACIÓN .................................................................................. 100
ANEXOS ....................................................................................................................... 106
ÍNDICE DE FIGURAS ................................................................................................ 117
ÍNDICE DE TABLAS .................................................................................................. 118
ÍNDICE DE GRAFICAS .............................................................................................. 118
-
8/18/2019 Baez Morales Victor
8/126
1
RESUMEN
Las aplicaciones web son cada vez más utilizadas y eficientes que funcionan a
través de internet y se asemejan a una página web, las funciones generales son
gestionar, compartir información y realizar transacciones, restringiendo accesos a
personas ajenas a la aplicación, es una gran ventaja tener aplicaciones web en una
organización, centrando los esfuerzos en las instituciones educativas para generar
software que puede ser desarrollados por estudiantes con el objetivo principal de
obtener formación metodológica y de aprendizaje en el área de software, por este
motivo se creó una aplicación web llamada SCAT en la Facultad de Contaduría y
Administración para el departamento de apoyo a la titulación, generando beneficios
como reduciendo la carga administrativa en los procesos del departamento.
En el proceso de desarrollo de la aplicación web SCAT se realizaron esfuerzos para
culminar e implementar la aplicación en el departamento, cumpliendo con el objetivo
inicial, pero surge la inquietud del desempeño de dicha aplicación, por lo tanto en el
presente trabajo se realiza un análisis y evaluación para determinar la calidad y el
funcionamiento que está brindando a los usuarios, mediante instrumentos de
medición basados en los estándares internacionales de calidad, culminando con laconclusión de las pruebas realizadas a la aplicación web SCAT.
-
8/18/2019 Baez Morales Victor
9/126
2
INTRODUCCIÓN
-
8/18/2019 Baez Morales Victor
10/126
3
Actualmente la industria del software ha crecido exponencialmente junto con el
desarrollo de nuevo software lo cual es una necesidad a nivel mundial, esto va
enfocando los esfuerzos en producir aplicaciones web rápidamente y gastos
mínimos y sin dejar a un lado la alta calidad, favoreciendo la competitividad entre
las grandes industrias, ya que al aumentar el uso de las aplicaciones los usuarios
exigen mejoras constantes y en ello va implícito la calidad la cual juega un papel
muy importante al momento de desarrollar las aplicaciones web, creando para el
usuario un mercado más amplio al momento de elegir aplicaciones que se adapten
a sus necesidades.
Las aplicaciones web tienen gran importancia hoy en día, ya que existen muchas
personas que son usuarios del mismo, estos crean una expectativa de calidad delsoftware cuando evalúan subjetivamente o globalmente el desempeño del software.
Haciendo una comparativa de lo que el usuario necesita o requiere contra lo que el
proveedor de software entrega, son conceptos que deben ir de la mano o ser
igualitarios ya que de eso depende el éxito del software, es decir, si este es aceptado
o no, promoviendo como responsabilidad de la organización desarrolladora la
satisfacción de los requisitos del usuario.
La creación de aplicaciones conlleva a una responsabilidad la cual debe estar sujeta
a garantizar la calidad del software que se desarrolle, por ese motivo se debe llevar
a cabo con metodologías o procedimientos estándares en las etapas de diseño,
programación y pruebas creando una forma de trabajo más fluida, con menos
errores y creando una filosofía de trabajo, a su vez establece el camino ideal para
lograr confiabilidad, mantenibilidad haciendo una vía para realizar las pruebas lo
que permitirá controlar la calidad del software.
La calidad del software es subjetiva y no se puede medir de forma exacta ya que
cada persona tiene un concepto diferente de lo que es calidad y depende de las
necesidades y atributos de cada organización.
-
8/18/2019 Baez Morales Victor
11/126
4
Pero algunos profesionales del ámbito coinciden en ciertos índices los cuales
pueden determinar bases medibles para la calidad y el control del software creando
una mayor productividad dependiendo de lo que se quiera medir se eligen los
índices que podrían ayudar a realizar las pruebas, esto permitirá posteriormente
establecer procedimientos para llevar a cabo el desarrollo de cada índice. Se puede
tomar la siguiente lista como algunos aspectos a considerar:
Definir el software a medir teniendo en cuenta la complejidad del mismo y
como fue desarrollado
Realizar una selección de indicadores adecuadas al tipo de software a medir
y la magnitud de la misma.
Definir los métodos necesarios para crear los instrumentos como son:encuestas y/o someter al software a condiciones controladas.
Procesar la información y dar el veredicto del estado del software y que
acciones se debe realizar para realizar mejoras en el mismo.
Un aspecto muy importante de la calidad del software es la medición, se puede
realizar de 2 formas: cuando el software está terminado o cuando se va
desarrollando el software, pero es una mala práctica dejar al final las mediciones yaque si el software no tiene problemas y todo resulta bien no habrá obstáculos para
utilizarlo pero de lo contrario resultaría muy costos en proyectos de grandes
proporciones corregir los errores surgidos durante las pruebas.
La calidad del software es muy importante para satisfacer las necesidades del
usuario y la mejora constante, por ese motivo en la presente tesis se aborda este
tema, aplicando al sistema de apoyo a la titulación (SCAT), dicho trabajo se divide
en 4 capítulos para llevar a cabo la comprobación de la calidad del software,
específicamente del departamento de apoyo a la titulación (CAT).
En el primer capítulo se habla acerca de los sistemas antecesores y que están en
funcionamiento en la Facultad de Contaduría y Administración así como el
-
8/18/2019 Baez Morales Victor
12/126
5
propósito, justificación y objetivos por la cual fue creada la aplicación, hace un breve
panorama del funcionamiento y normativas del trabajo recepcional.
En el segundo capítulo se abordan las diferentes metodologías para el desarrollo
de proyectos de software principalmente las dos más utilizadas, también se define
que es una aplicación web y dando a conocer como se desarrolló la aplicación web
SCAT.
El capítulo 3 abordar el problema, los estándares, los cuales se enfocan a
normalizar y establecer condiciones adecuadas para garantizar la calidad del
software (considerando que existen varios estándares que pueden funcionar para
la aplican) las condiciones y requerimientos de cada usuario, por lo cual fueronseleccionadas mediciones que se consideran útiles y adaptables en lo posible a
dicha aplicación para que fuera los más exacta posible.
En el capítulo 4 se muestra la aplicación de instrumentos de medición del lado del
usuario aplicando encuestas para recolectar información útil con las cuales
podamos hacer conclusiones validas, y los demás atributos restantes fueron
realizados adaptándolos a lo que son las aplicaciones web, estos son:
funcionalidad, confiabilidad, eficiencia, mantenibilidad, portabilidad entre otras, las
cuales fueron utilizadas para obtener valoraciones apegadas a los indicadores
planteados originalmente por cada prueba que se debía realizar al sistema web
SCAT lo cual permitió reducir tiempo.
-
8/18/2019 Baez Morales Victor
13/126
CAPÍTULO I: MARCO CONTEXTUAL1.
-
8/18/2019 Baez Morales Victor
14/126
7
1.1. ¿Qué es el Centro de Apoyo a la Titulación (CAT)?
El Centro de Apoyo a la Titulación (CAT) es un departamento creado por la Facultad
de Contaduría y Administración (referenciando el logo del departamento en la figura
1.1) encargado de planear, organizar, implementar y evaluar todas las actividades
conducentes para ofrecer a los interesados, servicios académicos y
extracurriculares que faciliten su titulación a través de una experiencia recepcional.
El CAT aprovecha el funcionamiento oficial de fideicomisos universitarios, haciendo
que su operación y sus servicios sean autofinanciables, por lo tanto, independientes
de la estructura formal de la Universidad.
Por ello, también sus servicios son extracurriculares permitiendo a estudiantes y
egresados de la Licenciatura en: Contaduría, Administración, Sistemas
Computacionales Administrativos y Dirección y Gestión de Negocios, titularse de un
modo productivo, tanto para sí mismo, como para su Facultad formadora.
Figura 1.1 Logo del departamento CAT.
(Departamento CAT, 2013).
-
8/18/2019 Baez Morales Victor
15/126
8
1.2. Antecedentes de la aplicación web SCAT
Dando referencia al interés por sistematizar y automatizar los procesos al interior de
la Universidad Veracruzana, específicamente en la Facultad de Contaduría
Administración, se da pie a la diversificación y desarrollo de los servicios de apoyo
a los departamentos involucrados, esto además de solo construcción de sistemas
ayuda a los alumnos de la Facultad a desarrollar aptitudes en cuanto a la fabricación
de proyectos reales que beneficiaran y se reflejara en la experiencia que más
adelante desempeñara en el ámbito laboral.
Dentro de la investigación se tiene que hacer mención a los esfuerzos realizadospor otras personas interesadas en el tema, basándose en el departamento CAT, por
ello (Muñoz Salas 2008) realizo su tesis titulada “Sistema de Información para la
Gestión de los Servicios del CAT” proponiendo el funcionamiento de un sistema que
ayudaría al departamento CAT a realizar sus labores cotidianas dentro del margen
de la automatización de procesos, dando a conocer la construcción del mismo y los
beneficios que se podrían obtener cristalizando esa idea, todo surgió por la
necesidad de manejar la información en tiempo real sobre el registro de instructores,periodos, materiales, registro y actualización relativa a egresados y alumnos
inmersos en un proceso de titulación pero solo quedo en una propuesta.
Existe otro sistema que utiliza el departamento de servicio social realizado por
(Gonzales Raúl, 2012) “Sistema de Información para el departamento del Servicio
Social (SISSA)”, se encarga de llevar el control de todo lo que compete respecto a
la realización del servicio social, captura de datos de los alumnos y empresas donde
el alumno realiza el servicio o donde pudiera realizarlo así como llevar registro del
proceso que lleva el alumno durante periodo que cursa la experiencia educativa.
El panorama es alentador ya que también existen otros sistemas dentro de la
Facultad de Contaduría y Administración que sirvieron como base para los eventos
-
8/18/2019 Baez Morales Victor
16/126
9
subsecuentes como una alusión se menciona al “Sistema Integral de Gestión
Administrativa” (SIGA) el cual permitió controlar el proceso de inscripción y
administración relacionada con los alumnos, las materias, los maestros, las
calificaciones, entre otros.
Como parte de los sistemas de información utilizados dentro de la Facultad, en
especial el departamento CAT por varios años registro en hojas de cálculo (Excel)
los datos de los alumnos, con los cuales daba seguimiento desde la inscripción
hasta la culminación de su trabajo recepcional, este seguimiento incluía: datos
generales del alumno, elección de: tema, director y sinodales del trabajo, pagos que
los alumnos realizan, horario de examen, lugar de examen, formas de titulación
(monografía, tesis, tesina), numero de asesorados por docente principalmente; elregistro de estos datos no estaban en un solo archivo de Excel, sino en varios, lo
cual provocaba que la búsqueda de datos, además de incomoda (por tener que abrir
varios archivos) fuera tardada, y complicaba dar el seguimiento personalizado a los
candidatos a la titulación, así como llevar el control del número de asesorados que
tenía un sinodal académico, además al momento de calendarizar los exámenes
profesionales provocaba en algunas ocasiones cruce de horarios en el aula, es
decir, dos exámenes en el mismo salón a la misma hora o que los docentes tuvieran
que estar en dos exámenes profesionales a la misma hora, por otro lado era difícil
llevar el control del número de estudiantes que están asesorando, y esto provocaba
que los profesores al tener exceso de asesorados, estos últimos no fueran atendidos
de manera adecuada, y el CAT al no tener los mencionados datos a tiempo, pues
debía tomar decisiones improvisadas y a veces erróneas, provocando descontento
entre los tesistas.
Retomando la intención de los antecedentes para la creación de un sistema dentro
del departamento CAT, la Facultad a través del Centro de Desarrollo y Producción
Tecnológica (CDPT) se dio a la tarea de la realización de la aplicación web “Sistema
del Centro de Apoyo a la Titulación” (SCAT el logo en la figura 1.2) el cual fue
realizado en base a las necesidades del departamento.
-
8/18/2019 Baez Morales Victor
17/126
10
Figura 1.2 Logo de SCAT
(Elaboración Propia)
1.2.1. Propósito de la investigación
Cuando se realiza, culmina y está en funcionamiento un sistema de información,
nace o surge la necesidad de saber si en realidad dicho sistema está cumpliendo
con las expectativas globales del departamento, esto implica tomar en cuenta varios
aspectos como pruebas, mediciones, recolección de datos, análisis, procesamiento
de la información entre otras.
A continuación se lista los propósitos de la investigación:
Dar a conocer el nivel de seguridad del sistema.
Identificar errores de inconsistencia en el código
Mostrar el nivel de rapidez del sistema
El nivel de satisfacción del departamento por el sistema Dar a conocer el nivel de satisfacción con la interfaz del sistema.
1.2.2. Justificación
El CAT ha superado las expectativas iniciales y cada día tiene más demanda por
lo que se hace necesaria la búsqueda de una herramienta tecnológica que pueda
ayudar a manejar el cumulo actual de información y estar en posibilidad de cruzarlacon el sistema tradicional para evitar sobrecargas de trabajo, mala asignación de
aulas y de asesores y sinodales, además de conocer quiénes se ha titulado en
tiempo y forma y los que estén pendientes.
-
8/18/2019 Baez Morales Victor
18/126
11
De acuerdo a lo anterior, se debe medir y saber si realmente las acciones que
actualmente la aplicación web SCAT realiza, cumplen con las necesidades
planteadas inicialmente, así mismo ir mejorando la elaboración de sistemas
teniendo antecedentes con la creación de sistemas de calidad.
1.2.3. Objetivos del proyecto
General
Evaluar el funcionamiento, calidad y desempeño de la aplicación web SCAT a
través de la aplicación de herramientas de medición para promover un panorama
de fiabilidad y así tener un índice de calidad del mismo.
Especifico
Identificar errores y/o pérdida de información en el sistema.
Medir la rapidez con la que se procesan los datos (Eficiencia).
Evaluar la funcionalidad.
Evaluar la seguridad del sistema (confiabilidad).
Determinar la portabilidad.
Evaluar la mantenibilidad.
Evaluar la interfaz.
Identificar la satisfacción del usuario con respecto al uso del mismo.
1.3. Introducción a la aplicación web del Centro de Apoyo a
la Titulación (SCAT).
Con la aplicación web SCAT se lleva el control por periodo escolar, sobre los
estudiantes en proceso de titulación, numero titulados, número de asesorados por
docente, el número avances entregados, control de pagos realizados, salones y
-
8/18/2019 Baez Morales Victor
19/126
-
8/18/2019 Baez Morales Victor
20/126
13
que solicitan información extraída de los datos recolectados a través de cada
alumno, dicho lo anterior debemos medir la eficiencia con la cual realiza cada
módulo o acción que desempeña el sistema y saber si en realidad cumple con los
requerimientos planteados inicialmente y, analizar la posibilidad de añadir nuevos
módulos si es que fuera necesario.
Además de realizar las mediciones se debe comprobar con elementos visuales
como son por ejemplo gráficas para respaldar la información procesada.
1.3.2. Interrogantes de Mediciones de la aplicación web SCAT
Tener la incertidumbre de cómo opera y se desempeña el sistema genera preguntas
obligadas.
¿Qué tan funcional y que beneficios aporta la aplicación web SCAT para el
departamento CAT?
Cuando se implementa un sistema para automatizar procesos surge de la necesidad
de resolver un problema, existe una íntima relación entre esfuerzo dentro deldepartamento que se involucra en el proceso e innovación de parte de las personas
que desarrollan el sistema, esto quiere decir cuando se plantean los objetivos,
metas de cada módulo, acción que desempeñara, el sistema es modelado a las
necesidades del departamento, pero esto muchas veces no reúna las expectativas
finales del cliente como son la funcionalidad y a su vez el beneficio que podría
aportar el departamento que sería la eficiencia y eficacia de sus procesos, más
adelante comprobaremos todos las preguntas aquí plantadas.
¿En que beneficia la aplicación web SCAT a la Facultad de Contaduría y
Administración?
-
8/18/2019 Baez Morales Victor
21/126
14
La aplicación web SCAT tiene diferentes funcionalidades, una de las cuales es evitar
los traslapes de directores y sinodales al asignar un salón en un día en específico a
una hora acordada, esto ayuda en las funciones de la Facultad para llevar un control
ordenado de salones asignados y horarios disponibles, lo cual es un beneficio
significativo ya que se ahorra tiempo en buscar coincidencias por maestro. Estos
son beneficios comprobables que se pueden medir en un nivel de efectividad.
Interrogantes ligadas al objetivo de esta investigación.
¿Cómo se puede medir los errores de codificación?
¿Cómo se puede evaluar la seguridad del sistema?
¿Con que herramientas podemos evaluar la seguridad del sistema?¿Cómo evaluar la ergonomía del sistema?
¿Cómo medir la rapidez del sistema?
¿Cómo medir la fiabilidad del sistema?
¿Tiene calidad a nivel interno visualizando el lado técnico?
¿Tiene calidad a nivel externo visualizando el lado del usuario?
1.3.3. Delimitación de la Investigación
Las pruebas de medición se llevan a cabo en la Facultad de Contaduría y
Administración por un periodo de 8 meses aproximadamente.
1.3.4. Normativa de trabajo Recepcional
La Universidad Veracruzana como institución educativa de nivel superiorcomprometida con la sociedad, egresa profesionistas titulados, para esto establece
a través de su Ley Orgánica (capitulo 3, art. 94 que “…son graduados los que hayan
obtenido el título correspondiente”, apoyándose en las atribuciones que competen
al secretario académico, señalando que debe “Fomentar la titulación de egresados”
-
8/18/2019 Baez Morales Victor
22/126
15
(Ley orgánica. capítulo V, art. 41 fracción XIV); además es importante señalar que
en el Estatus de los alumnos 2008 se señalan los derechos y obligaciones de los
estudiantes, y para este artículo es importante hacer mención de los lineamiento
que debe seguir un estudiante para titularse.
El Estatutos 2008, señala que para titularse deben acreditar la experiencia
recepcional, en capítulo I, al art. 80 y 81 indica los requisitos que debe reunir el
alumno para cursar y acreditar esta experiencia educativa (E.E.), de los artículos
mencionados previamente se toman los siguientes fragmentos:
Artículo 80 . Para cursar y acreditar la experiencia recepcional, el alumno debe:
I. Cumplir como mínimo con el 70% de los créditos del programa educativo. La
Junta Académica determinará si este porcentaje se incrementa, atendiendo el perfil
profesional requerido;
III. Presentar ante el Secretario de la Facultad o titular de la entidad académica la
solicitud y la documentación con la cual se pretenda acreditar la experiencia
recepcional
Artículo 81. Para las opciones de acreditación de la experiencia recepcional por
trabajo escrito o práctico deberá observarse lo siguiente:
IV. Es responsabilidad del académico designado programar y dar seguimiento a
la experiencia recepcional;
V. Para realizar el trabajo escrito o práctico, el alumno contará con un asesor, queserá nombrado por el Consejo Técnico o por los coordinadores de Academia. El
asesor podrá ser el mismo académico asignado a la experiencia recepcional;
VII. La evaluación de la experiencia recepcional la realizará un jurado constituido
por tres integrantes, nombrados por el Director de la Facultad;
-
8/18/2019 Baez Morales Victor
23/126
16
Para cumplir con este requisito la Facultad de Contaduría y Administración creo el
departamento de trabajo recepcional, pero con el paso del tiempo se dio cuenta que
requería crear además otra opción que le permitiera aumentar el número de
titulados, en razón del gran rezago que había, entonces surge el Centro de Apoyo
a la titulación (CAT) el cual tiene como objetivos: “Proporcionar una alternativa
viable y expedita de titulación.
Proveer una metodología sólida y consistente para la elaboración de trabajos
recepcionales”, y ofrece los siguientes beneficios: “Asesoría en la selección del tema
de investigación y elaboración de la agenda de trabajo. Disponer de una guía
metodológica que permita recopilar, organizar y analizar la información para el
desarrollo del trabajo recepcional. Asesoría personalizada para la realización delprotocolo de investigación.
Seguimiento del proceso de elaboración del trabajo recepcional. Realización de
trámites ante las autoridades correspondientes para el proceso de titulación. Apoyo
técnico para la presentación del examen profesional.” Este centro ha crecido mucho
y actualmente muchos estudiantes hacen uso de este servicio, por lo cual ahora es
nuestro objeto de estudio, debido a que el sistema de información que manejaban
se volvió inapropiado, y aprovechando la tecnología que existe y el ambiente digital
que actualmente se vive, la automatización de procesos se utiliza como estrategia
de mejora para el manejo de información y toma de decisiones.
-
8/18/2019 Baez Morales Victor
24/126
CAPÍTULO II: METODOLOGÍA
2. S
-
8/18/2019 Baez Morales Victor
25/126
18
2.1. Definición de Metodología
Al ocupar la palabra metodología se debe saber de qué se trata, como dice la (R.A.E,
2013) es la ciencia del método y conjunto de métodos que se siguen en una
investigación científica o en una exposición doctrinal.
Ampliando la definición, tiene como fin crear un conocimiento y medios los cuales
se han de ejecutar en este caso los métodos. La lógica es parte importante de la
actividad intelectual y sirve de guía para conocer la realidad.
2.1.1. Antecedentes de Procesos de Desarrollo
En los inicios de la industria del software surgieron prototipos que contribuyeron a
formular el análisis estructurado y se originó el denominado modelo en cascada, dio
pie a la estandarización interna de la ingeniería del software. Esta idea surgió por
una mala costumbre utilizada en la década de los sesentas: el modelo codificar y
probar, a razón de esta problemática se decidió formalizar y crear una disciplina, en
esa época ya existían modelos iterativos e incrementales pero sin tomarlos en
cuenta y eran poco utilizado.
Por esta causa se decidió estructurar definidamente el proceso de desarrollo, el cual
en funcionamiento parecía conveniente utilizarlo, he hizo al modelo en cascada
popularizar su manejo. Como menciona (Pressman Roger, 2005) el manejo del
modelo es basado en procesos en forma de cascada, esto quiere decir que debe
terminar la etapa anterior para continuar con la siguiente representada en la figura
-
8/18/2019 Baez Morales Victor
26/126
19
2.1. Esto provocaba que los requerimientos se detuvieran y al momento de querer
realizar cambios causaba mayor trabajo al modificar la petición.
No es factible las limitantes que se deberían establecer al inicio del proceso es no
realizar ningún cambio, ocasionaba que el usuario solo podía ver su aplicación hasta
que estuviera construida completamente podría causar descontento y muy
probablemente no cubrir las necesidades al momento de interactuar con ella.
Por las características del modelo poniendo énfasis en las fases de implementación
exigía desarrollar cada etapa en forma independiente con sus respectivas pruebas,
siguiendo con el procedimiento en etapa subsecuente se realizaba la unificación de
los módulos. La forma de desarrollar causaba un perjudicar resultado ya que alrealizar pruebas unitarias los demás módulos no interactuaban entre ellos. Los
problemas se presentaban cuando se realizaba la unificación de cada pieza
desarrollada, provocaba demora en la entrega del proyecto y a su vez no resultaba
con la calidad esperada.
Figura 2.1 Modelo de Cascada.
(Bennington, 1956).
-
8/18/2019 Baez Morales Victor
27/126
20
Fueron surgiendo procesos en etapas prematuras en algunos casos como los
procesos iterativos que solucionaban algunos problemas del modelo en cascada
como por ejemplo las acciones de cambios inesperados del software, anticipando
los errores en etapas tempranas. La iteratividad de los procesos donde se derivan
varias vertientes como el modelo iterativo e incremental, el modelo en espiral, el
modelo basado en prototipo, el modelo SLCD, el MBASE, el RUP entre otros.
Otro de los prototipos creados fue el modelo en espiral desarrollado por Barry
Boehm que posteriormente fuera una idea para crear una metodología para el
temprano análisis de riesgos representado en la figura 2.2. La característica
principal del modelo en espiral es su iteratividad en las etapas iniciales, plantea
realizar iteraciones para resolver la necesidad de prevenir los riesgos críticosdurante el proyecto, esto propiciaba a crear prototipos o simulacros eventuales para
probar algunas dudas que surjan durante la elaboración. Cuando los prototipos son
aprobados se vuelve a realizar nuevamente otra iteración para verificar: objetivos,
la evaluación, el desarrollo y la planeación. Teniendo la aprobación del cliente y el
diseño detallado se implementa pero con un problema aun presente, el cual es
utiliza aun el modelo en cascada. El problema persiste en etapas finales del software
es una falla del modelo en espiral por la razón de no poder realizar cambios cuando
se haya empezado la construcción, también perjudica en la etapas del modelo en
espiral.
Figura 2.2 Modelo de espiral.
(Barry Boehm, 1986).
-
8/18/2019 Baez Morales Victor
28/126
21
El propio desarrollador del modelo en espiral, Barry Boehm, identifico tres puntos
críticos dentro de un proyecto en cuestión de planificación y el control progresivo de
mismo, dando importancia y haciendo énfasis en los stakeholders. Tomando en
cuenta la relación de las etapas puestas en marcha durante un proyecto y las etapas
de Ingeniería como las que se ocupan en el modelo de espiral, la tarea de
producción ocupada en el modelo de cascada. Demostrando tal importancia en el
ámbito del software que el RUP es uno de los procesos actuales mayores utilizados
uno de los acontecimientos importantes que los incorpora son:
Objetivos del Ciclo de Vida
Arquitectura del Ciclo de Vida
Capacidad de Operación Inicial
El principal acontecimiento culmina con determinación de la magnitud del software
en la construcción, la percepción de los stakeholders, el planteamiento del
desarrollo del sistema.
El segundo acontecimiento termina con la edificación del software, determinación
de los riesgos del proyecto, y alineando los objetivos con el alcance del sistema.
Culminando con los acontecimientos, considerado la entrega del sistema aplicando
las iteraciones correspondientes. Es importante considerar contenido como manual
de usuario y manual de operación.
Constantemente se ha mencionado la importancia sobre el proceso RUP, el cual en
la comunidad del software es un hito, es el principal proceso que se comercializa al
tal grado que se piensa como un producto. Se considera como una de las mejores
prácticas en la elaboración de software que actualmente es eficaz y una idea
vigente.
-
8/18/2019 Baez Morales Victor
29/126
22
Tomando en cuenta la utilización del RUP y la aplicación del mismo se puede diferir
en proyectos de grandes dimensiones o pequeñas puede crear una imperfección
para describir factores del desarrollo que en los proyectos son muy importantes, las
personas involucradas en el software.
Razones por la cual surgen distintos pensamientos y en este caso metodologías
para el desarrollo del software.
2.2. Metodología de desarrollo de Sistemas de Información
La realización de Sistemas de Información no es nada sencillo. Teniendo en cuenta
la variedad de propuestas que siguen particularmente sus metodologías de
desarrollo. Existen varias ideas, una de ellas es la metodología tradicional, su
propósito es centrar la atención en el control del procesos, fijado inflexiblemente las
actividades involucradas, los mecanismos que se deben hacer, contando
herramientas y apuntes que se emplearan.
Esta metodología se ocupa con buenos resultados y actualmente vigente, pero
existen problemas, no cumple por completo el desarrollar de un proyecto, una
posible solución sería agregar procesos de desarrollo añadiendo actividades, más
herramientas, agregando restricciones y/o apoyándose en puntos débiles
detectados. También la unión de todo lo anterior podría causar problemas al
desarrollar el sistema de información lo cual se podría volver complejo y complicaría
el trabajo al equipo.
Existe otra idea de desarrollo el cual se llama metodologías agiles, estas centran laatención en el factor humano y el software como producto final, valora al individuo
que desarrolla el sistema, la colaboración con el cliente y la interacción incremental
del sistema con el cliente mostrando resultados. La metodología ágil aporta mayor
efectividad a proyectos dinámicos exigiendo la reducción en tiempo de desarrollo
pero sin perder calidad del mismo.
-
8/18/2019 Baez Morales Victor
30/126
23
Esta metodología es la más adecuada y está creando un auge en el ámbito del
desarrollo, pero como toda idea tiene sus pros y contras, una de ellas es que no
acepta como alternativa a la metodología tradicional. Solo es un panorama general
de los temas que se hablaran a profundidad más adelante.
2.2.1. Metodologías Tradicionales
En el proceso de creación de software, en sus inicios eran totalmente rústicos, y
esto ocasionaba problemas al crear proyectos largos, complejos, entre otros, por
esta razón se vio en la necesidad de mejorar el desarrollo y lograr los objetivos del
proyecto, se optó por introducir elementos importantes como metodologías y
conceptos útiles de otras disciplinas para el desarrollo de software. Al adoptar
distintos conceptos empezó a evolucionar y aumentar la adaptación al contenido de
cada proyecto dividiendo en etapas secuenciales.
Dentro de las metodologías tradicionales surgieron conceptos importantes y
conocidos como por ejemplo:
RUP
MSF Win-Win Spiral Model
Iconix
Entre otros, los cuales el objetivo principal era cumplir con el plan del proyecto
definido en la concepción de proyecto y documentar exhaustivamente todo el
proceso. El enfoque tradicional existían varios problemas, uno de ellos se
ocasionaba cuando se trataba de realizar algún cambio en el proyecto provocabaun alto costo al querer realizar esta acción, al no existir una solución viable esta
metodología no servía y se empezó a centrar la atención en la documentación,
planificación y procesos, dentro de las prácticas tradicionales surgió una
metodología llamada RUP, que se enfocaba en plantillas, técnicas de
administración, revisiones, entre otros.
-
8/18/2019 Baez Morales Victor
31/126
24
2.2.2. Metodologías Agiles
La metodología agiles en el desarrollo de software es realmente nuevo y bastante
revolucionario para su momento ya que estaba en contra de toda ideología de los
procesos altamente definidos, se iba a lograr obtener software en tiempo costo y
calidad. Con esto se pretendía ofrecer una alternativa a los procesos de desarrollo
de software tradicionales caracterizados por ser rígidos y orientados por la
documentación que genera por cada actividad creada en cada una de las
actividades desarrolladas. Cuando emerge el término ágil se crea The Agile Alliance
que ayuda a las organizaciones relacionados con el desarrollo de software para
que adquieran dichos conceptos.
El manifiesto ágil valora las interacciones de un equipo de desarrollo sobre el
proceso y herramientas, para tener éxito con un software se necesita tener un buen
equipo de personal que trabajen en un buen entorno, esto contribuye a que se
desarrolle un buen software que funcione adecuadamente, en el manifiesto se
valora que no se deben de copiar documentos a menos que sea necesario de forma
inmediata, estos documentos deben ser cortos y centrarse en lo fundamental y
necesario, el manifiesto ágil indica que el cliente debe involucrarse en el proyectopara que se obtenga el éxito en el proyecto este se debe planificar pero debe ser
flexible y abierto para posibles cambios.
(Calderón Amaro 2007) define que la metodología ágil solo se aplica para
pequeños equipos y para que estos resuelvan problemas concretos, ya que a si se
dividen el trabajo en módulos y esto disminuye los fallos. Esta metodología se aplica
generalmente para proyectos cortos pero también funciona para desarrollar
grandes sistemas, esta metodología destaca en su:
Capacidad de respuesta a cambios de requisitos a lo largo del desarrollo
Entrega continua y en plazos breves de software funcional
Trabajo conjunto entre el cliente y el equipo de desarrollo
-
8/18/2019 Baez Morales Victor
32/126
25
Importancia de la simplicidad, eliminado el trabajo innecesario
Atención continua a la excelencia técnica y al buen diseño
Mejora continua de los procesos y el equipo de desarrollo.
Con esto se busca satisfacer al cliente mediante constantes entregas de software
valioso.
Aunque el movimiento ágil está sustentado por valores y principios para el desarrollo
de productos software, la mayoría de estas metodologías tienen asociadas un
conjunto de prácticas, en muchos casos comunes, que buscan la agilidad en el
desarrollo. En esta sección vamos a analizar algunas de las más relevantes:
planificación, programación en parejas o pair programming, integración continua,refactorización y desarrollo dirigido por pruebas (Test Drive Development).
En la metodología ágil cuando se generan sistemas de alta complejidad se utilizan
parejas de programadores que realizan la producción de código y estos utilizan el
método de pair programming esto ayuda a los programadores mientras uno genera
código otro revisa posibles errores en el código y esto ayuda a acelerar el proceso
de desarrollo mejora aspectos en el diseño del software.
Pair programming, se ha visto como una herramienta de aprendizaje para los
propios programadores. Haciendo una pequeña comparativa entre las metodologías
tradicionales y agiles se muestra la tabla 2.1 donde se examinan algunos elementos
importantes que hay que tomar en cuenta al momento de elegir cual debemos
ocupar en la tabla 2.2 mencionado por Ticona Cordoni.
-
8/18/2019 Baez Morales Victor
33/126
26
Tabla 2.1 Comparación de metodologías agiles y tradicionales
(Letelier Patricio y Penadés M. Carmen, 2003)
Tabla 2.2 Comparación de elementos entre metodologías agiles y tradicionales
(Letelier Patricio y Penadés M. Carmen, 2003)
Metodologías Ágiles Metodologías Tradicionales
Basadas en heurísticas provenientes deprácticas de producción de código.
Basadas en normas provenientes deestándares seguidos por el entorno dedesarrollo.
Especialmente preparados para cambios
durante el proyecto.
Cierta resistencia a los cambios.
Impuestas internamente (por el equipo). Impuestas externamente.No existe contrato tradicional o al menos esbastante flexible.
Proceso mucho más controlado, connumerosas políticas/normas.
Proceso menos controlado, con pocosPrincipios.
Existe un contrato prefijado.
El cliente es parte del equipo deDesarrollo.
El cliente interactúa con el equipo dedesarrollo mediante reuniones.
Grupos pequeños (
-
8/18/2019 Baez Morales Victor
34/126
27
Dentro del contexto de las metodologías agiles existen una gama de ellas entre las
más importantes están:
Extreme programming (XP).
Scrum.
Crystal Clear.
Dynamic Systems Development Method (DSDM).
Feature Driven Development (FDD).
XBreed.
Extreme Modeling.
2.2.3. Extreme Programming (XP)
La metodología Programación extrema nos permite optimizar el tiempo en el
desarrollo de software el cual forma parte de las metodologías ágiles, esto quiere
decir que la ingeniería del software tiene varios complementos que ayudan y hacen
posible los requerimientos del cliente, dicho por (Martínez Lucio, 2013), también
menciona que la metodología fue formulada por Kent Benck en 1999, esta nos
permite responder a las necesidades del cliente las cuales constantemente cambian
los requerimientos de sus sistemas al cual hacen confiable y segura la utilización
del mismo. El éxito de la programación extrema se fundamenta en la simplicidad, la
comunicación y el reciclado continuo de código.
Los objetivos de la metodología son los siguientes:
Satisfacer al cliente: Trata de que el usuario quede convencido con losrequerimientos que el mismo solicita tomando en cuenta el tiempo y calidad
del software, tratando que el usuario cuando requiera cambios en la
estructura puedan ser posibles.
-
8/18/2019 Baez Morales Victor
35/126
28
Maximizar la eficiencia y eficacia del trabajo en equipo: Es muy importante
tomar en cuenta el involucramiento de los individuos involucrados a
desarrollar el software.
Garantizar la Calidad del software que se está desarrollando: Al realizar la
entrega del producto final se debe dar respaldo al funcionamiento.
Como ya se mencionó anteriormente, la programación extrema deriva de las
metodologías ágiles las cuales son basadas en el hecho de aumentar la
productividad al momento de programar y facilitar el desarrollo.
En la utilización de la metodología se ha creado una revuelta y existen opiniones
encontradas los cuales hay comunidades a favor y en contra que son criteriosaceptables del punto de vista de cada proyecto o necesidad del cliente dentro de
las opiniones negativas argumentan que los programadores se sienten dueños del
código la cual no es lo que la programación extrema promueve.
En cambio los que están a favor de esta metodología dicen que es completamente
funcional para las personas comprometidas profesionalmente y con capacidades
para crear diseñar y facilitar la fluidez de manera sencilla todo lo antes dicho
haciendo alusión a (kniberg, 2007).
Principios Básicos de XP
La programación Extrema se basa en 12 principios básicos agrupados en 4
categorías dicho por (Beck y Fowler, 2000).
Retroalimentación a escala fina.
1. El principio de pruebas: se tiene que establecer un período de pruebas de
aceptación del programa (llamado también período de caja negra) donde se
definirán las entradas al sistema y los resultados esperados de estas
-
8/18/2019 Baez Morales Victor
36/126
29
entradas. Es muy recomendable automatizar estas pruebas para poder hacer
varias simulaciones del sistema en funcionamiento. Para hacer estas
simulaciones automatizadas, se pueden utilizar Ambientes de Prueba (Unit
testing frameworks).
2. Proceso de planificación: en esta fase, el usuario tendrá que escribir sus
necesidades, definiendo las actividades que realizará el sistema. Se creará
un documento llamado Historias del usuario (User Stories). Entre 20 y 80
historias (todo dependiendo de la complejidad del problema) se consideran
suficientes para formar el llamado Plan de Liberación, el cual define de forma
específica los tiempos de entrega de la aplicación para recibir
retroalimentación por parte del usuario. Por regla general, cada una de lesHistorias del usuario suelen necesitar de una a tres semanas de desarrollo.
3. El cliente en el sitio: se le dará poder para determinar los requerimientos,
definir la funcionalidad, señalar las prioridades y responder las preguntas de
los programadores. Esta fuerte interacción cara a cara con el programador
disminuye el tiempo de comunicación y la cantidad de documentación, junto
con los altos costes de su creación y mantenimiento. Este representante del
cliente estará con el equipo de trabajo durante toda la realización del
proyecto.
4. Programación en parejas: uno de los principios más radicales y en el que
la mayoría de gerentes de desarrollo pone sus dudas. Requiere que todos
los programadores XP escriban su código en parejas, compartiendo una sola
máquina. De acuerdo con los experimentos, este principio puede producir
aplicaciones más buenas, de manera consistente, a iguales o menores
costes.
-
8/18/2019 Baez Morales Victor
37/126
30
2.2.4. Proceso continuo en lugar de por lotes.
1. Integración continua: permite al equipo hacer un rápido progreso
implementando las nuevas características del software. En lugar de crear
builds (o versiones) estables de acuerdo a un cronograma establecido, los
equipos de programadores XP pueden reunir su código y reconstruir el
sistema varias veces al día. Esto reduce los problemas de integración
comunes en proyectos largos y estilo cascada.
2. Refactorización: permite a los equipos de programadores XP mejorar el
diseño del sistema a través de todo el proceso de desarrollo. Los
programadores evalúan continuamente el diseño y recodifican lo
necesario. La finalidad es mantener un sistema enfocado a proveer el valor
de negocio mediante la minimización del código duplicado y/o ineficiente.
3. Entregas pequeñas: colocan un sistema sencillo en producción
rápidamente que se actualiza de forma rápida y constante permitiendo que
el verdadero valor de negocio del producto sea evaluado en un ambiente
real. Estas entregas no pueden pasar las 2 o 3 semanas como máximo.
Entendimiento compartido.
1. Diseño simple: se basa en la filosofía de que el mayor valor de negocio es
entregado por el programa más sencillo que cumpla los requerimientos.
Simple Design se enfoca en proporcionar un sistema que cubra las
necesidades inmediatas del cliente, ni más ni menos. Este proceso permite
eliminar redundancias y rejuvenecer los diseños obsoletos de forma sencilla.
2. Metáfora: desarrollada por los programadores al inicio del proyecto, define
una historia de cómo funciona el sistema completo. XP estimula historias,
que son breves descripciones de un trabajo de un sistema en lugar de los
-
8/18/2019 Baez Morales Victor
38/126
31
tradicionales diagramas y modelos UML (Unified Modeling Language). La
metáfora expresa la visión evolutiva del proyecto que define el alcance y
propósito del sistema.
3. Propiedad colectiva del código: un código con propiedad compartida.
Nadie es el propietario de nada, todos son el propietario de todo. Este método
difiere en mucho a los métodos tradicionales en los que un simple
programador posee un conjunto de código. Los defensores de XP
argumentan que mientras haya más gente trabajando en una pieza, menos
errores aparecerán.
4. Estándar de codificación: define la propiedad del código compartido asícomo las reglas para escribir y documentar el código y la comunicación entre
diferentes piezas de código desarrolladas por diferentes equipos. Los
programadores las han de seguir de tal manera que el código en el sistema
se vea como si hubiera estado escrito por una sola persona.
Bienestar del programador
1. La semana de 40 horas: la programación extrema sostiene que los
programadores cansados escriben código de menor cualidad. Minimizar las
horas extras y mantener los programadores frescos, generará código de
mayor calidad. Como dice Beck , está bien trabajar tiempos extra cuando es
necesario, pero no se ha de hacer durante dos semanas seguidas.
Proceso de desarrollo.
La programación extrema parte del caso habitual de una compañía que desarrolla
software, normalmente a medida, en la que hay diferentes roles: un equipo de
gestión (o diseño), uno de desarrollo y los clientes finales. La relación entre el equipo
de diseño, los que desarrollan el software y clientes es totalmente diferente al que
-
8/18/2019 Baez Morales Victor
39/126
32
se ha producido en las metodologías tradicionales, que se basaba en una fase de
captura de los requisitos previa al desarrollo, y de una fase de validación posterior
al mismo.
1. Interacción con el cliente: En este tipo de programación el cliente pasa a
ser parte implicada en el equipo de desarrollo. Su importancia es máxima en
el momento de tratar con los usuarios y en efectuar las reuniones de
planificación. Tiene un papel importante de interacción con el equipo de
programadores, sobre todo después de cada cambio, y de cada posible
problema localizado, mostrando las prioridades, expresando sus
sensaciones. En este tipo de programación existirán pruebas de aceptación
de la programación que ayudarán a que su labor sea lo más provechosaposible.
2. Planificación del proyecto: En este punto se tendrá que elaborar la
planificación por etapas, donde se aplicarán diferentes iteraciones. Para
hacerlo será necesaria la existencia de reglas que se han de seguir por las
partes implicadas en el proyecto para que todas las partes tengan voz y se
sientan realmente partícipes de la decisión tomada.
3. Diseño, desarrollo y pruebas: El desarrollo es la parte más importante en
el proceso de la programación extrema. Todos los trabajos tienen como
objetivo que se programen lo más rápidamente posible, sin interrupciones y
en dirección correcta. También es muy importante el diseño, y se establecen
los mecanismos, para que éste sea revisado y mejorado de manera
continuada a lo largo del proyecto, según se van añadiendo funcionalidades
al mismo. La clave del proceso de desarrollar XP es la comunicación. La
mayoría de los problemas en los proyectos son por falta de comunicación en
el equipo.
-
8/18/2019 Baez Morales Victor
40/126
33
2.2.5. ¿Historia de la aplicación web?
Como menciona (Mateu Carles, 2004), empezó con una simplicidad atendiendo a
las necesidades de los usuarios teniendo la posibilidad de consultarlas o
descargarlas agrupadas en colecciones de páginas estáticas y documentos.
Posteriormente estos pasos fueron aumentando y la mentalidad también haciendo
métodos de creación de páginas que se generaran a partir de peticiones eventuales
haciendo así peticiones dinámicas método llamado CGI (common Gateway
interface), el cual define mecanismos de mediante el cual podíamos pasar
información entre el servidor HTTP y programas externos. La sencillez y la rapidez
y diversidad de lenguajes de desarrollo de los CGI dan pauta para que sigan siendo
utilizados ya que la mayoría de servidores web lo soportan.
2.2.6. ¿Qué es una aplicación web?
Los sistemas y aplicaciones web (WebApps) son basados en la web ofrecen un
complejo arreglo de contenido y funcionalidad a una amplia población de usuarios
finales.
2.3. ¿Qué es la web 2.0?
La Web 2.0 es una actitud que representa la evolución de la forma tradicional de
desarrollar aplicaciones web, preocupándose principalmente en brindar mejores
soluciones al usuario final, como publicó (Van Der Christian, 2005) en maestros del
web, haciendo el enfoque en la transición de las aplicaciones tradicionales como
son las aplicaciones de escritorio para reemplazarlas y migrarlas hacia el ambiente
web.
El objetivo que lleva la Web 2.0 es preocuparse por el usuario final, esto crea una
etapa importante en la web, la cual se generan nuevos proyectos en internet lo cual
-
8/18/2019 Baez Morales Victor
41/126
34
conduce subjetivamente a reinventar lo que era el internet, creando una evolución
progresiva del medio, ya que en un principio el entorno web era estático, realizadas
con HTML rígido que no hacia interacción con el usuario y tenían pocas
actualizaciones.
Todo comenzó en una conferencia que realizo Dale Dougherty de O´Reilly Media
en la cual utilizo el término de Web 2.0, creando una lluvia de ideas junto con Craig
Cline de MediaLive haciendo énfasis en la evolución de la web.
2.3.1. Atributos de la Web 2.0
Existen varias tecnologías las cuales crea una vía para que las aplicaciones web se
incorporen a la Web 2.0 y buscan seguir evolucionando a la par del ámbito web. Las
tecnologías y atributos mencionados por (Van Der Christian, 2005) en proyectos 2.0
son las siguientes:
Transformar software de escritorio hacia plataformas web
Respetar los estándares como XHTML
Separar el contenido del diseño con el uso de hojas de estilo
Ajax
Uso de Ruby on Rails para programar páginas dinámicas
Utilizar redes sociales al manejar usuarios y comunidades
Dar control total a los usuarios en el manejo de su información
Proveer Apis o XML para que las aplicaciones puedan ser manipuladas por
terceros
Facilitar el posicionamiento con URL sencillos.
2.3.2. ¿Para qué sirve la Web 2.0?
La tendencia actual es Web 2.0, este término está de moda ya que en internet se
crea grandes ideas tecnológicas, y principalmente nos sirve para que los proyectos
-
8/18/2019 Baez Morales Victor
42/126
35
generados con esta metodología se renueven y evolucionen creando una actitud de
desarrollador y ofrecer al usuario final una experiencia satisfactoria al utilizar la
aplicación web ideando expectativas con mejora continua, así fueron surgiendo
nuevos servicios desarrollados con esta metodología como lo son:
Blogs
Wikis
Redes sociales
Entornos para compartir recursos
o Google Drive, Sky Drive, Dropbox
o Youtube
o Prezi, Slideshare
o Plataformas educativas
Creando una gama extensa de aplicaciones web que son muy populares, teniendo
bondades como reducir costos de difusión de información entre otras.
2.4. ¿Cómo se desarrolló la aplicación web SCAT?
Al crear un proyecto es importante realizar acciones previas como la investigación,
recopilación de información necesaria de los procesos internos del sistema a
desarrollar, el funcionamiento del propio departamento y las acciones cotidianas,
teniendo claro la ejecución de la marcha diaria y fijando objetivos deseados nos
permitirán tener una amplia perspectiva de lo que se desarrollara y se materializara
el finalizar el sistema.
Para el departamento CAT es fundamental el desarrollo del sistema para lograr losobjetivos y mejorar los servicios que ofrece a los alumnos de la Facultad de
Contaduría y Administración y con ello tener éxito en su labor diaria.
En el desarrollo del sistema surgieron y se plantearon varias preguntas previas al
desarrollo, la cuales fueron ¿Cuál es el problema que se debe solucionar?, ¿Cómo
-
8/18/2019 Baez Morales Victor
43/126
36
debemos realizar los procesos actuales del proyecto?, ¿Qué herramientas de
desarrollo debemos ocupar?, ¿Qué lenguaje de programación será el apropiado
para desarrollar el sistema?, ¿Qué metodología debemos ocupar?, entre otras. De
acuerdo a las preguntas planteadas surgieron respuestas que posteriormente se
solucionaron y otras conforme se avanzaba en el desarrollo del proyecto, y al mismo
tiempo se obtuvo una visión clara del problema.
Uno de los pasos primordiales es definir las acciones que realizan por proceso o en
el departamento, el cual nos da una herramienta muy útil para tener una idea de lo
que se desarrollara.
Dentro de lo que es la planificación del sistema se llevó a cabo preguntas yredacción del procedimiento por parte de usuario sin terminologías técnicas como
ellos comprenden las acciones cotidianas y las necesidades que ellos creen y
perciben, seguida de la necesidades del departamento proporcionando información
valiosa y tener una idea para la estimación de tiempo de desarrollo y los posibles
riesgos futuros, costos de implementación del mismo sistema, entre otros.
Respecto a los detalles que el usuario proporcione se traza un plan estratégico,
convocando a las personas involucradas en el proyecto para acordar y realizar
propuestas para resolver el problema, en la línea de la metodología de
programación extrema se realiza un plan de iteración creando decisiones técnicas
posteriormente teniendo el plan estratégico realizar reuniones en conjunto
convocando a las personas interesadas a los usuarios en este caso a los del
departamento CAT y a los desarrolladores del sistema.
Las ideas se ordenaran conforme a urgencia e importancia, de forma que se trazaun plan estratégico en funciones de los parámetros: tiempo de desarrollo ideal y
grado de importancia de los usuarios se da una demostración centrando la atención
el proceso de inscripción, le es punto medular del sistema y por lo tanto se realizó
un boceto para poder entender la relación y la secuencia del procedimiento desde
-
8/18/2019 Baez Morales Victor
44/126
37
que llega el alumno al CAT y solicita la inscripción empezando a registrar sus datos
generales, datos de curso, datos de proceso de titulación y por ultimo datos de cuota
modelado en notación business process modeling notation (BPMN) en la figura 2.3.
Los demás complementos que se agregan al sistema en este caso en forma de
modulo.
Figura 2.3 Proceso de inscripción
(Elaboración Propia)
El avance del proyecto va en función de la velocidad de desarrollo, personas
involucradas, de acuerdo de los requerimientos iniciales, cuando se realiza una
planificación por alcance se divide el número total de semanas entre la velocidad
de proyecto para determinar cuántas iteraciones estarán disponibles dicho por
(Escribano Fernando, 2002).
En la división del proyecto cada iteración corresponde a un periodo de tiempo de
desarrollo del proyecto de entre una y tres semanas. De esta forma, un proyecto,
se divide en una docena de iteraciones, más o menos. Al principio de cada iteración
se debería convocar una reunión para trazar el plan de iteración correspondiente.
Está prohibido intentar adelantarse e implementar cualquier cosa que no esté
-
8/18/2019 Baez Morales Victor
45/126
38
planeada para la iteración en curso. Habrá suficiente tiempo para añadir la
funcionalidad extra cuando sea realmente importante según el plan de entregas.
Se usará la velocidad del proyecto para determinar si una iteración está
sobrecargada. La suma de los días que costará desarrollar todas las tareas de la
iteración no debería sobrepasar la velocidad del proyecto de la iteración anterior. Si
la iteración está sobrecargada, el cliente deberá decidir que historias de usuario
retrasar a una iteración posterior. Si, por el contrario, la iteración tiene huecos se
rellenará con otras historias de usuario mencionado por (Escribano Fernando, 2002)
como se muestra en la Figura 2.4
En ocasiones la metodología de programación extrema presenta algunas fallas quese presentan en el desarrollo del proyecto, los problemas que presente se deben
comunicar al equipo todos deben estar enterados de la situación que acontece, pero
no implica cambiar radicalmente lo antes planeado sino adecuar la solución al
problema aislando la causa para no afectar al resto del equipo.
Figura 2.4 Plan de iteración
(Fernando Escribano, 2002).
-
8/18/2019 Baez Morales Victor
46/126
39
Diseño
Implica crear una estructura lógica del sistema concentrando y reduciendo la
dispersión de los elementos que lo componen, rediciendo el trabajo en caso de
cambios futuros creando un buen diseño.
Para la realización inicial se utilizaron herramientas para diseñar interfaz, acciones
necesarias formulas, interacciones con el usuario el cual nos ayudan a realizar la
unión de todos los elementos de desarrollo y formar un producto final que es el
sistema SCAT, a continuación se mencionan las herramientas utilizas:
PHP JavaScript JQuery MySQL HTML5 CSS3 MPDF Sublime Text
¿Qué es PHP?
PHP. Tres letras según la (w3school 2013) que juntas constituyen el nombre de uno
de los lenguajes de programación más populares para el desarrollo de Web, el
Preprocesador de Hipertexto PHP. Y mientras tal vez sonríes por lo insulso y
reiterativo del acrónimo, que las estadísticas indican que PHP no debe tomarse a la
ligera: actualmente este lenguaje se utiliza en más de 20 millones de sitios Web y
en más de un tercio de los servidores Web en todo el mundo; no es algodespreciable, especialmente cuando se considera que el lenguaje ha sido
desarrollado por completo por una comunidad de voluntarios repartida en todo el
mundo y está disponible en Internet ¡sin costo alguno!
-
8/18/2019 Baez Morales Victor
47/126
40
Durante los últimos años, PHP se ha convertido, de facto, en la opción para el
desarrollo de aplicaciones Web orientadas a bases de datos, sobre todo por su
escalabilidad, facilidad, uso y el amplio soporte para diferentes bases de datos y
formatos de éstos. Este primer capítulo te presentará una introducción amigable al
mundo de PHP con un recorrido relámpago por su historia y sus características, y
luego te guiará por la escritura y ejecución de tu primer programa PHP.
Características únicas
a. Rendimiento Los scripts escritos en PHP se ejecutan más rápido que
los escritos en otros lenguajes de creación de scripts; numerosos
estudios comparativos independientes ponen este lenguaje porencima de sus competidores como JSP, ASP.NET y Perl. El motor de
PHP 5.0 fue completamente rediseñado con un manejo óptimo de
memoria para mejorar su rendimiento y es claramente más veloz que
las versiones previas. Además, están disponibles aceleradores de
terceros que pueden mejorar aún más el rendimiento y el tiempo de
respuesta.
b. Portabilidad PHP está disponible para UNIX, Microsoft Windows,
Mac OS y OS/2 y los programas escritos en PHP se pueden
transportar de una plataforma a otra. Como resultado, las aplicaciones
PHP desarrolladas en Windows, por ejemplo, se ejecutarán en UNIX
sin grandes contratiempos. Esta capacidad de desarrollar fácilmente
para múltiples plataformas es muy valiosa, en especial cuando se
trabaja en un ambiente corporativo de varias plataformas o cuando se
intenta atacar diversos sectores del mercado.
c. Fácil de usar “La sencillez es la mayor sofisticación”, dijo Leonardo
da Vinci y, de acuerdo con ello, PHP es un lenguaje de programación
extremadamente sofisticado. Su sintaxis es clara y consistente y viene
-
8/18/2019 Baez Morales Victor
48/126
41
con una documentación exhaustiva para las más de 5 000 funciones
incluidas en la distribución principal. Esto reduce de manera
importante la curva de aprendizaje tanto para los desarrolladores
novatos como para los expertos, y es una de las razones por las que
PHP es favorecido como una herramienta rápida para la creación de
prototipos que permitan el desarrollo de aplicaciones basadas en
Web.
d. Código libre PHP es un proyecto de código libre; el lenguaje es
desarrollado por un grupo de programadores voluntarios distribuidos
por todo el mundo, quienes ponen a disposición gratuita el código
fuente a través de Internet, y puede ser utilizado sin costo, sin pagospor licencia y sin necesidad de grandes inversiones en equipo de
cómputo ni programas. Con ello se reduce el costo del desarrollo de
programas sin afectar la flexibilidad ni la confiabilidad de los productos.
La naturaleza del código libre implica que cualquier desarrollador,
dondequiera que se encuentre, puede inspeccionar el árbol de código,
detectar errores y sugerir posibles correcciones; con esto se produce
un producto estable y robusto, en que las fallas, una vez descubiertas,
se corrigen rápidamente, en algunas ocasiones, ¡horas después de
ser descubiertas!
e. Soporte comunitario Una de las mejores características de los
lenguajes a los que da soporte una comunidad, como PHP, es el
acceso que ofrece a la creatividad e imaginación de cientos de
desarrolladores ubicados en diferentes partes del mundo. En la
comunidad PHP, los frutos de esta creatividad pueden ser
encontrados en PEAR (PHP Extension and Application Repository), el
repositorio de extensiones y aplicaciones de PHP (http://pear.php.net),
y en PECL (PHP Extension Community Library), la biblioteca de la
comunidad de extensiones PHP (http://pecl.php.net), que contienen
-
8/18/2019 Baez Morales Victor
49/126
42
cientos de soluciones y extensiones que los desarrolladores pueden
ocupar para añadir sin esfuerzo nuevas funcionalidades a sus
aplicaciones PHP. Utilizar estas soluciones suele ser una mejor opción
en tiempo y costo, en vez de desarrollar desde cero tu propio código.
Lo anterior dicho por (Vaswani Vikram, 2009) El lenguaje de programación utilizado
para crear las formulas, operaciones y transacciones entre la bases de datos e
interfaz de usuarios la cual es un elemento primordial en la aplicación web SCAT.
¿Qué es JavaScript?
JavaScript es un lenguaje de programación que se utiliza principalmente para crearpáginas web dinámicas. Una página web dinámica es aquella que incorpora efectos
como texto que aparece y desaparece, animaciones, acciones que se activan al
pulsar botones y ventanas con mensajes de aviso al usuario. Técnicamente,
JavaScript es un lenguaje de programación interpretado, por lo que no es necesario
compilar los programas para ejecutarlos. En otras palabras, los programas escritos
con JavaScript se pueden probar directamente en cualquier navegador sin
necesidad de procesos intermedios. A pesar de su nombre, JavaScript no guarda
ninguna relación directa con el lenguaje de programación Java. Legalmente,
JavaScript es una marca registrada de la empresa Sun Microsystems, dicho por
(Pérez Eguíluz, 2008).
La utilización de este lenguaje de programación ayuda a la interacción entre el
usuario y php con la ayuda de este script se realizan las acciones del usuario más
rápido y en una sola vista.
¿Qué es JQuery?
Es una biblioteca de JavaScript de código abierto que facilita la interacción entre un
Documento HTML, o más precisamente el Document Object Model (también
-
8/18/2019 Baez Morales Victor
50/126
43
conocido como el DOM), y JavaScript. En pocas palabras, y para los hackers de la
vieja escuela de JavaScript por ahí, jQuery hace HTML dinámico (DHTML).
Específicamente, jQuery simplifica el documento HTML según (Resig John, 2010).
Este script se utilizó para dar efectos, transacciones entre el usuario y el motor que
es php para hacer más amena la experiencia a usuario.
¿Qué es HTML5?
HTML5 es la actualización de HTML, el lenguaje en el que es creada la web. HTML5
también es un término de marketing para agrupar las nuevas tecnologías de
desarrollo de aplicaciones web: HTML5, CSS3 y nuevas capacidades de JavaScript.
La versión anterior y más usada de HTML, HTML4, carece de características
necesarias para la creación de aplicaciones modernas basadas en un navegador.
El uso fuerte de JavaScript ha ayudado a mejorar esto, gracias a frameworks como
jQuery 1, jQuery UI2, Sproutcore3, entre otros.
Flash en especial ha sido usado en reemplazo de HTML para desarrollar web apps
que superaran las habilidades de un navegador: Audio, video, webcams,
micrófonos, datos binarios, animaciones vectoriales, componentes de interfaz
complejos, entre muchas otras cosas. Ahora HTML5 es capaz de hacer esto sin
necesidad de plugins y con una gran compatibilidad entre navegadores.
Mencionado (Vega Freddy y Henst Van Der, 2011).
HTML se ocupó para maquetar y dar estructura al sistema formar la cabecera en
este caso representadas con las etiquetas el menú con lasetiquetas el cuerpo de la página con y la parte
inferior con así creando un el esqueleto para posteriormente darle
diseño visual.
-
8/18/2019 Baez Morales Victor
51/126
44
¿Qué es css3?
El CSS es un lenguaje de estilos empleado para definir la presentación, el formato
y la apariencia de un documento de marcaje, sea HTML, XML, o cualquier otro.
Comúnmente se emplea para dar formato visual a documentos HTML o XHTML que
funcionan como espacios web. También puede ser empleado en formatos XML, u
otros tipos de documentos de marcaje para la posterior generación de documentos.
Las hojas de estilos nacen de la necesidad de diseñar la información de tal manera
que podemos separar el contenido de la presentación y, así, por una misma fuente
de información, generalmente definida mediante un lenguaje de marcaje, ofrecer
diferentes presentaciones en función de dispositivos, servicios, contextos oaplicativos. Por lo que un mismo documento HTML, mediante diferentes hojas de
estilo, puede ser presentado por pantalla, por impresora, por lectores de voz o por
tabletas braille. Separamos el contenido de la forma, composición, colores y fuentes.
Las diferentes revisiones de las hojas de estilo tienen el origen en la primera
especificación publicada por el W3C en diciembre de 1996 y que pretendía unificar
la sintaxis y el modo de definir una hoja de estilos por los diferentes lenguajes
derivados del SGML. Así, las principales características que se pueden definir
mediante esta primera especificación son:
1) Propiedades del tipo de letra, así como el estilo de este.
2) Colores de los textos y de los fondos.
3) Atributos del texto tales como espacio entre caracteres, palabras y líneas.
4) Alineación de tablas, bloques de texto, imágenes, párrafos.
5) Márgenes externos e internos, filetes y posición de la mayoría de los elementos.6) Definición única de elementos mediante ids y agrupamiento de atributos mediante
clases mencionado por (Puig Collell, 2013).
-
8/18/2019 Baez Morales Victor
52/126
45
El CSS se utilizó para controlar el estilo y el diseño como colores, tamaño, formas
texturas, degradados entre otras del sistema SCAT.
¿Qué es (MPDF)?
MPDF es una clase PHP que genera archivos PDF desde UTF-8 codificación
HTML. Se basa en FPDF y HTML2FPDF, con una serie de mejoras. Esta clase es
utilizada para realizar los reportes en PDF fácilmente para el usuario.
Otra tarea importante fue la realización del esquema de la base de datos el cual
consta de llevar a cabo el diseño lógico la cual es el cimiento del sistema SCAT en
el cual se representa en la figura 2.5 las tablas que se hicieron y ocuparon
Cargo, Responsabilidad y Colaboración
Para la realización del sistema SCAT se creó un equipo de desarrollo y asesoría el
cual contribuyo a la tarea de diseño los cuales fueron:
Mayra Minerva Méndez Anota (Asesora del proyecto)
Víctor Javier Báez Morales (Programador Proyecto).
Ángel Antonio Contreras Moctezuma. (Programador del Proyecto).
Simplicidad
La simplicidad es un requisito al momento de realizar el diseño, ya que los
planteamientos complejos generan un mayor costo tiempo y esfuerzo al desarrollar
e implementar. El sistema SCAT se basa en un diseño limpio y simple aunque en
las transacciones resulta algo complejo respecto a programación aplicada.
Se apega a las normas de la Universidad Veracruzana utilizando logos, colores
institucionales los cuales son verde y azul en combinación con tonalidades de gris,
utilizando imágenes para realizar la representación de las secciones u opciones en
el panel de opciones.
-
8/18/2019 Baez Morales Victor
53/126
46
Utilizando la semántica de HTML5, la estructura del sistema consta de 4 secciones:
1. Cabecera (header); Consta de los logos oficiales de la Universidad
Veracruzana y del Departamento CAT
2. Menú (nav); Consta de una franja azul que contiene las etiquetas inicio,
alumnos, maestros, contabilidad, parámetros, reportes, usuarios y mi perfil.
3. Contenido (section); En donde se muestra el contenido del menú
seleccionado
4. Pie de página (footer); Contiene los derechos reservados del CAT En la figura
2.5 se representa la semántica de html5 estándar.
Figura 2.5 Semántica de HTML5
(Gauchat, 2012)
-
8/18/2019 Baez Morales Victor
54/126
-
8/18/2019 Baez Morales Victor
55/126
48
3.1. ¿Qué es la calidad?
La calidad del software es el cumplimiento de los requisitos de la funcionalidad y
desempeño explícitamente establecidos, de los estándares de desarrollo
explícitamente documentados y las características implícitas que se esperan de
todo software de desarrollo profesionalmente definido por (Pressman Roger, 2005).
3.1.1. Factor de calidad de McCall
Los factores de cálida del software se dividen en dos grandes grupos,
Mediciones directas (defectos descubiertos durante la prueba).
Mediciones indirectas (facilidad de uso o de mantenimiento).
Son factores que independientemente deben presentar mediciones.Tomando en cuenta tres factores importantes a su vez tiene subdivisiones que
desarrollo McCall representados en la figura 3.1.
Revisión
o Facilidad de mantenimiento
o Flexibilidad
o Facilidad de prueba
Transacción
o Portabilidad
o Facilidad de reutilización
o interoperabilidad
Operación
o Facilidad de uso
-
8/18/2019 Baez Morales Victor
56/126
49
o Corrección
o Confiabilidad
o Integridad
o Eficiencia
La medición del software directamente suele ser difícil y en algún caso imposible,
alguno de los aspectos que propone McCall son mediciones subjetivas ya que no
siempre pueden comprobar o ser aplicadas con resultados satisfactorios.
Figura 3.1 Factor de Calidad del software de McCall
(Pressman Roger, 2005)
3.2. ¿Qué es la ISO?
ISO (Organización Internacional de Normalización) es una federación mundial de
organismos nacionales de normalización (organismos miembros de ISO). El trabajo
de preparación de las normas internacionales normalmente se realiza a través de
los comités técnicos de ISO. Cada organismo miembro interesado en una materia
para la cual se haya establecido un comité técnico, tiene el derecho de estar
representado en dicho comité. Las organizaciones internacionales, públicas y
privadas, en coordinación con ISO, también participan en el trabajo. ISO colabora
INTEROPERABILIDAD(¿Podre comunicarlo con otro sistema?)
PORTABILIDAD(¿Podré utilizarlo en otra máquina?)
REUSABIINTEROPERABILIDAD(¿Podre comunicarlo con otro sistema?)
PORTABILIDAD(¿Podré utilizarlo en otra máquina?)
FACILIDAD DE MANTENIMIENTO(¿Puedo arreglarlo?)
Facilidad de Prueba(¿Puedo probarlo?)
Flexibilidad(¿Puedo modificarlo?)
OPERACIÓN
-
8/18/2019 Baez Morales Victor
57/126
-
8/18/2019 Baez Morales Victor
58/126
-
8/18/2019 Baez Morales Victor
59/126
52
Tanto en la ISO como en la IEC hay diversos comités técnicos (Technical Comittees)
en los que intervienen los organismos de cada nación y que participan en el
desarrollo de estándares en un determinado ámbito. En ocasiones, la ISO y la IEC
colaboran en los llamados Comités Técnicos Conjuntos (Joint Tech