Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Reporte Final
Reporte Final
Presenta:
AVILA LEON LUIS EMMANUEL
Asesor:
SENEN JUAREZ TINOCO
H. VERACRUZ, VER. NOVIEMBRE 2022
AGRADECIMIENTO
1
RESUMEN
2
[Inicie aquí la redacción de su introducción]
3
ÍNDICE
AGRADECIMIENTO.....................................................................................................................2
RESUMEN.......................................................................................................................................3
ÍNDICE............................................................................................................................................4
Capítulo 4. Resultados...................................................................................................................42
4
4.1.Producto Final......................................................................................................................43
4.1.1 Pantalla de inicio de sesión................................................................................................44
4.1.1 Página principal.................................................................................................................46
4.2.Impacto en el ambiente laboral.............................................................................................48
Referencias Bibliográficas.............................................................................................................53
Anexos............................................................................................................................................54
Cuadro 2.1......................................................................................................................................19
Cuadro 2.2......................................................................................................................................20
Cuadro 2.3......................................................................................................................................21
ÍNDICE DE CUADROS
5
CAPÍTULO 1. PLANTEAMIENTO
GENERAL DEL PROYECTO
6
1.1. Descripción General de la Empresa y del Área en Dónde se Realizó la
Residencia
La empresa tiene por nombre oficial Ficachi y Asociados S, C. pero también es conocida como Ficachi
Consultores. Está ubicada en Pizarro No. 21, Fraccionamiento Reforma 91919 Veracruz, Ver. México.
La empresa se describe a sí misma como una firma de contadores públicos y licenciados en derecho
que presta servicios en materia de impuestos, derecho corporativo, auditoria, contabilidad y servicios
de nómina.
En el desarrollo de sus servicios busca identificar todas las áreas de oportunidad que existen en los di -
versos ordenamientos legales y administrativos a fin de capitalizarlos en beneficio de sus clientes. De
acuerdo a su tamaño se puede clasificar como una empresa mediana (no rebasa los 100 trabajadores).
Dentro de la empresa Ficachi, desde hace algunas décadas con la estandarización de los portales en lí-
nea y plataformas web, se ha creado la marca FCH Soluciones como la fábrica de software personal de
la empresa Ficachi que tiene como objetivo crear soluciones informáticas para automatizar los proce -
sos existentes de manera digital a través de soluciones web.
7
1.1.2. Descripción del Área en Dónde se Realizó la Residencia
Es en FCH Soluciones donde se realiza la residencia, siendo este un departamento de la empresa Fica -
chi Consultores con la categoría de submarca. Se define a sí misma como una organización encargada
de desarrollar, implementar, crear y ejecutar soluciones tecnológicas para optimizar las actividades en
los distintos sectores del ámbito laboral. De acuerdo con las necesidades y objetivos de cada cliente, se
han creado soluciones adecuadas, las cuales se desarrollan en aplicaciones web.
Actualmente cuenta con la siguiente estructura organizacional y plantilla de trabajadores que se en-
cuentra de manera listada ante la ausencia de un organigrama.
8
9
1.2. Planteamiento del Proyecto por Realizar o del Problema por Resolver
Parte del trabajo que efectúan los trabajadores de RR.HH en la empresa es el gestionar la con-
tratación del personal, gestionar el ámbito de las nóminas (prestaciones, salarios y beneficios),
evaluar el desempeño profesional de cada trabajador, gestionar las sanciones por incumpli-
miento de acciones reglamentarias y atender las solicitudes (permisos laborales) de los trabaja-
dores en la empresa.
Para llevar a cabo el proceso de atención y resolución de permisos a los trabajadores de la em-
presa, el área de RR.HH establece comunicación con el personal a través de correos electróni-
cos, para ello el trabajador envía un correo desde cualquier dirección de correo personal que
cuente con un texto sin formato en el que relata su situación y la solicitud para ausentarse en el
trabajo. Este proceso, si bien se puede realizar de manera rápida tanta la solicitud como la res-
puesta dada, el principal problema que se encuentra es el hecho de que el personal de RR.HH
cuente con demasiadas asignaciones dadas y aunado a ello tenga la responsabilidad de filtrar
sus correos para identificar a tiempo aquellos que están relacionados con los permisos solicita-
dos lo cual, ocasiona que en muchos casos los permisos sean autorizados a destiempo o inclu-
sive no sean otorgados debido a que no fue notificado de la solicitud requerida; ya ha sucecido
en más de una ocasión que el personal de trabajo no recibe la respuesta o estatus de su solici-
tud de permiso para ausentarse al trabajo.
La empresa Fichachi y Asociados, S.A. necesita que la o las personas encargadas de autorizar,
denegar, posponer o modificar los permisos a los trabajadores cumpla con su asignación en el
10
tiempo requisitado sin que este sea demasiado tedioso, informal y conlleve desatención plena
o en medida de sus demás responsabilidades.
11
1.3. Objetivos
Optimizar el proceso de la gestión de permisos laborales por parte del personal de RR.HH en
la etapa de resolución del estatus de los mismos mediante la creación de una aplicación web
integrada dentro de la página principal de acceso del personal que sea capaz de facilitar un ca-
nal de comunicación directo y exclusivo entre el trabajador y el o los encargados del área de
RR.HH, basados en la focalización de todas las solicitudes en un mismo espacio de trabajo
para que así tanto empleado como gestor de RR.HH, sean capaces de atender tanto la solicitud
como la respuesta en tiempo y forma oportunos y de este modo, dar resolución a los proble-
mas de retraso de respuesta u omisión de solicitudes en el personal de trabajo de la empresa.
12
1.4. Justificación y Delimitación
1.4.1. Justificación
A la luz de la situación actual, este trabajo es de fundamental importancia, dado que la crea-
ción de una aplicación web, integrada en la página principal de trabajo de la empresa, posibili-
tará detectar a tiempo y responder de manera oportuna las solicitudes (permisos de ausencia
laboral) que presenten los empleados.
El hecho de que dentro de la empresa se opte por crear y gestionar un canal de comunicación
basado en un esquema de aplicación web integrada permite reducir tiempos, costos y logística
de movimientos debido a que la creación y desarrollo del módulo web se asigna al área de in-
geniería de software de la empresa, la cual ya está familiarizada con el esquema de trabajo y
puede adaptar fácilmente los casos de uso y requisitos funcionales y no funcionales al prototi-
po.
1.4.2. Delimitación
El proyecto denominado FCH Web Interna tiene una duración de 3 a 4 meses aproximadamen-
te en los cuales se realizará la primera versión de dicho sistema en donde se contempla la im-
plementación de módulos que permitan la automatización de los procesos de gestión de solici-
tudes por parte de los colaboradores a RR.HH.
13
El sistema no contempla funciones que no estén intrínsicamente relacionados con la automati-
zación mencionada, pues es clave para solucionar la problemática.
14
CAPÍTULO 2. FUNDAMENTO
TEÓRICO
15
2.1. Antecedentes del Proyecto
2.1.1 Conceptos
Moral baja
Falta de comunicación interna
Clientes insatisfechos
Bajo rendimiento
Teniendo esto en cuenta la empresa Ficachi afronta un problema serio con la comunicación te-
niendo en frente el tema de las peticiones y el retardo que tienen estas en llegar a manos de los
superiores, el problema que afronta la empresa es el retardo de respuesta cuando se emite una
petición a RH, este problema surge al pedir la solicitud de falta temporal y peticiones de falta
temporal, así como la respuesta en si. Una vez emitida hay un tiempo considerable de respues-
ta ya que el personal responsable debe estar al pendiente de su correo lo cual hace ineficiente
la comunicación entre los empleados y el personal de RH, por lo que es necesario tener en
16
cuenta los siguientes conceptos para el completo entendimiento de los factores que intervienen
en el problema.
Comunicación efectiva
Túnez y Costa-Sánchez (2015) afirman que la comunicación establece una función fundamen-
tal en la empresa ya que por medio de esta las organizaciones transmiten con más facilidad y
eficacia sus claves estratégicas y fortalecen su capacidad competitiva, también contribuye a la
buena imagen ante los clientes internos y externos.
Elementos de la comunicación
17
de utilidad para transmitir un mensaje y tienen un significado común para las personas
involucradas.
Canal. Medio por el cual se difunde el mensaje del emisor al receptor, es específica-
mente
la línea de transmisión.
Contexto. Referente a la situación o condiciones concretas donde se desarrolla el
intercambio, relaciona características sociales, lugar y momento. Existe diferencia entre
una acción comunicativa entre personas conocidas o entornos familiares a un empresarial.
18
Decodificación. En esta etapa la persona que recibe el mensaje debe descifrarlo, es de-
cir
interpreta y reconstruye la idea original del mensaje. Se cumple la finalidad si la idea es
semejante a lo que quiso explicar el emisor.
Aceptación y respuesta. Una vez que se interprete y decodifique un individuo tiene la
posibilidad de aceptarlo o rechazarlo, por supuesto que el efecto deseado para establecer
el proceso comunicativo es que sea recibida dicha información y se genere uso adecuado
de lo recibido.
Retroalimentación o feedback. Ultimo paso que cierra el ciclo y permite disponer de
una
interacción entre las partes y quiere decir que el mensaje se recopilo, por lo tanto, si este
paso no se cumple totalmente permanecerá como unilateral información sin respuesta.
C. Barreras en la comunicación
Son interferencias que se producen en el proceso comunicativo y que provocan alteración en
el
mensaje o malentendidos entre lo que el emisor quiere decir y lo que se entiende.
14
Barreras físicas. Derivadas del ambiente en el que se produce la comunicación; carecen
de vínculo personal, pueden reflejarse en los ruidos, interferencias por teléfono, defectos
en navegación por internet, mala iluminación o espacios reducidos.
Barreras mentales. Funcionan como filtros a los cuales es necesario encontrar medidas
de
control para no deformar el sentido o interpretación del mensaje, muchas veces radican
prejuicios de las personas involucradas.
Barreras personales. El estado de ánimo de un individuo puede perjudicar la emisión o
recepción de mensajes, pueden generar equivocaciones en el ámbito laboral, la
personalidad del emisor y el puesto que ocupa puede condicionar a los demás. Las
emociones, temperamento, falta de capacidad al escuchar son características que
intervienen.
19
Barreras semánticas. Provienen de las complicaciones en el lenguaje, significado de los
símbolos para utilizar, cuanto más coincidan las características personales del emisor y el
receptor es probable es que estos símbolos tengan un significado semejante.
2.1.2. Antecedentes
Cuadro 2.1
Esta app se ha convertido en el canal transversal que cuenta con todas las funcionalidades que
permiten el acceso a la información corporativa, fomenta la participación e integra la inteli-
gencia artificial, con un chatbot que acompaña a las nuevas incorporaciones.
Cuadro 2.2
21
2.2. Marco Teórico
De acuerdo con la Real Academia Española (RAE) “Se le llama comunicación a la Transmi-
sión de señales mediante un código común al emisor y al receptor.”. La comunicación es un
componente fundamental para los seres humanos que existe desde hace años, su relevancia ra-
dica en el intercambio de información con un fin en específico. Para que exista una comunica-
ción adecuada debemos tener en cuenta los componentes que afectan a la comunicación y que
tipos de comunicación existen, en la comunicación existen los siguientes factores
Cuadro 2.3
Emisor
22
mismo canal que el receptor. De lo contrario será imposible que se produzca la comunicación
con éxito.
Ejemplo: Una persona que emite un correo electrónico para enviar información a otra.
Receptor
Ejemplo: La persona que ha recibido el correo electrónico y lee el contenido del ejemplo ante-
rior.
Código
El código en comunicación es un sistema de señales o signos que se utilizan para poder trans-
mitir un determinado mensaje. Algunos ejemplos son: los diferentes idiomas con sus letras,
signos, ortografía, fonética o su gramática. El código binario utilizado por la computación. Las
señales de tráfico, el sistema braille o el código morse son también otros ejemplos de código
de comunicación.
Ejemplo: el idioma en el que está escrito el correo electrónico que ha enviado el emisor.
Mensaje
23
a comunicar a través de un código conocido por ambos. Un mensaje puede ser verbal, no ver-
bal, visual o escrito.
Ejemplo: el contenido que incluye el email, ya sea una noticia, informes, etc.
Canal de comunicación
Ejemplo: Siguiendo con el ejemplo que nos acompaña a lo largo del artículo, en este caso el
canal de comunicación sería el correo electrónico.
Ruido
El ruido es una interferencia en el proceso de comunicación, la cual puede hacer que no sea
fluida o incluso que la llegue a interrumpir. Existen diferentes tipos de ruidos dentro de los
elementos de la comunicacion, como por ejemplo: música alta en un bar (ruido físico), un des-
piste o distracción (ruido psicológico), problemas técnicos o defectos en la tecnología (ruido
técnico), problemas físicos auditivos (ruido fisiológico), uso de terminología técnica como el
caso de un médico con un determinado paciente (ruido semántico). Por último si alguna de las
partes por su actitud impide el entendimiento, se denomina ruido de influencia.
Ejemplo: un ejemplo de ruido podría ser una distracción a mitad de la lectura del correo elec-
trónico.
Retroalimentación
24
La comunicación es bidireccional, tanto el emisor como el receptor intercambian su papel en
todo el proceso. Cuando el receptor recibe el mensaje del emisor, éste le contesta convirtién-
dose también en emisor.
Ejemplo: si el receptor da respuesta enviando una contestación al email que ha recibido se pro-
duciría retroalimentación.
Ahora sabiendo esto debemos tomar en cuenta que necesitamos saber para el correcto desarro-
llo de la solución al problema, la forma en la que podemos desarrollar nuestra solución puede
ser mediante el uso de los artefactos de la ingeniería de software
Así mismo, incluye el análisis previo de la situación, la redacción del proyecto, la creación del
software y las pruebas necesarias para garantizar el correcto funcionamiento del software antes
de poner el sistema en funcionamiento.
Esta ingeniería aborda todas las fases del ciclo de vida de desarrollo de cualquier tipo de siste-
ma de información y es aplicable a una amplia gama de ámbitos de la informática y la ciencia
de los ordenadores, como el diseño de compiladores, sistemas operativos y tecnologías de In-
tranet/Internet: La empresa, la investigación científica, la medicina, la fabricación, la logística,
la banca, el control del tráfico y la meteorología son sólo algunos de los campos en los que
puede trabajar.
25
Los objetivos de la ingeniería de software son muy diversos, pero podemos destacar los si-
guientes más importantes:
Una vez se realiza todo este ciclo, entramos en otra fase conocida como mantenimiento. Es
una de las etapas más importantes ya que se solucionan los problemas o errores que puedan
surgir durante su implementación y también su posterior puesta en marcha. Además, se incor-
26
poran actualizaciones teniendo en cuenta los requisitos del cliente con el objetivo de que pue-
dan cumplir la mayor cantidad de tareas.
Relacionado con la ingeniería de software también se encuentra la arquitectura de sistemas.
Consiste en la esquematización de la estructura general del proyecto a desarrollar. El objetivo
de conocer el esqueleto del software es tener la capacidad de señalar y conocer cuáles son los
componentes que son necesarios para llevar a cabo el desarrollo.
Hay que tener en cuenta que existen dos tipos de softwares. Por un lado, destacamos el están-
dar, más generalista y que se puede adaptar a varios modelos de negocio. Mientras que por el
otro lado, tenemos el personalizado. Se trata de un tipo de software que se desarrolla para el
uso exclusivo de un cliente. Se diseña a su imagen y semejanza, por lo que es lógico que sola-
mente sirve para esa empresa, ya que se adapta a las necesidades y características de la compa-
ñía que ha solicitado diseñarlo. A pesar de estas diferencias clave todos los softwares presen-
tan tres elementos que lo caracterizan: Programas y/o algoritmos, Estructura de datos y Docu-
mentos.
Ahora que sabemos en qué consiste la ingeniería de software debemos abordar los tipos de tra-
bajo que existen, es decir, las metodologías de trabajo y los enfoques que llevan
Las metodologías de desarrollo de software se utilizan en el ámbito de la programación, entre otros,
con el objetivo de trabajar en equipo de manera organizada. Estas metodologías han ido evolucionando
a lo largo del tiempo, pasando de ser un mero trámite de organización a ser una base importantísima a
la hora de desarrollar software de una manera productiva y eficaz.
En las últimas décadas, las metodologías ágiles de desarrollo de software se han impuesto sobre las
demás, tal como indica el último estudio de Project Manager Institute (PMI), que señala que el 71 % de
las empresas de ingeniería de software utiliza estas metodologías. Por lo tanto, si quieres dedicar tu ca-
rrera profesional al desarrollo de software, deberás aprender cómo funcionan las metodologías ágiles.
27
Cuando se trata de desarrollar productos o soluciones para un cliente o mercado concreto, es
necesario tener en cuenta factores como los costes, la planificación, la dificultad, el equipo de
trabajo disponible, los lenguajes utilizados, etc. Todos ellos se engloban en una metodología
de desarrollo que permite organizar el trabajo de la forma más ordenada posible.
El desarrollo de software puede ser un sector especialmente complejo, sobre todo cuando se
trata de grandes aplicativos y equipos de trabajo.
Ponerse a desarrollar un producto sin una metodología clara desembocará en un proceso aún
más complejo, que conducirá a problemas, retrasos, errores y, en definitiva, un mal resultado
final.
El trabajo con una metodología de desarrollo de software permite reducir el nivel de dificul-
tad, organizar las tareas, agilizar el proceso y mejorar el resultado final de las aplicaciones a
desarrollar.
Las metodologías de desarrollo de software tradicionales se caracterizan por definir total y rí-
gidamente los requisitos al inicio de los proyectos de ingeniería de software. Los ciclos de de-
sarrollo son poco flexibles y no permiten realizar cambios, al contrario que las metodologías
ágiles; lo que ha propiciado el incremento en el uso de las segundas.
La organización del trabajo de las metodologías tradicionales es lineal, es decir, las etapas se
suceden una tras otra y no se puede empezar la siguiente sin terminar la anterior. Tampoco se
puede volver hacia atrás una vez se ha cambiado de etapa. Estas metodologías, no se adaptan
nada bien a los cambios, y el mundo actual cambia constantemente. Las principales metodolo-
gías tradicionales o clasicas son:
Waterfall (cascada): es una metodología en la que las etapas se organizan de arriba a
abajo, de ahí el nombre. Se desarrollan las diferentes funciones en etapas diferenciadas
y obedeciendo un riguroso orden. Antes de cada etapa se debe revisar el producto para
28
ver si está listo para pasar a la siguiente fase. Los requisitos y especificaciones iniciales
no están predispuestos para cambiarse, por lo que no se pueden ver los resultados hasta
que el proyecto ya esté bastante avanzado.
Prototipado: se basa en la construcción de un prototipo de software que se construye
rápidamente para que los usuarios puedan probarlo y aportar feedback. Así, se puede
arreglar lo que está mal e incluir otros requerimientos que puedan surgir. Es un modelo
iterativo que se basa en el método de prueba y error para comprender las especificida-
des del producto.
Espiral: es una combinación de los dos modelos anteriores, que añade el concepto de
análisis de riesgo. Se divide en cuatro etapas: planificación, análisis de riesgo, desarro-
llo de prototipo y evaluación del cliente. El nombre de esta metodología da nombre a
su funcionamiento, ya que se van procesando las etapas en forma de espiral. Cuanto
más cerca del centro se está, más avanzado está el proyecto.
Incremental: en esta metodología de desarrollo de software se va construyendo el pro-
ducto final de manera progresiva. En cada etapa incremental se agrega una nueva fun-
cionalidad, lo que permite ver resultados de una forma más rápida en comparación con
el modelo en cascada. El software se puede empezar a utilizar incluso antes de que se
complete totalmente y, en general, es mucho más flexible que las demás metodologías.
Diseño rápido de aplicaciones (RAD): esta metodología permite desarrollar software
de alta calidad en un corto periodo de tiempo. Los costes son mucho más altos y el de-
sarrollo más flexible, aunque requiere una mayor intervención de los usuarios. Por otro
lado, el código puede contener más errores, y sus funciones son limitadas debido al
poco tiempo del que se dispone para desarrollarlas. El objetivo es iterar el menor nú-
mero posible de veces para conseguir una aplicación completa de forma rápida.
Como hemos dicho al principio del artículo, las metodologías ágiles de desarrollo de softwa-
re son las más utilizadas hoy en día debido a su alta flexibilidad y agilidad. Los equipos de tra-
bajo que las utilizan son mucho más productivos y eficientes, ya que saben lo que tienen que
29
hacer en cada momento. Además, la metodología permite adaptar el software a las necesidades
que van surgiendo por el camino, lo que facilita construir aplicaciones más funcionales.
Las metodologías ágiles se basan en la metodología incremental, en la que en cada ciclo de de-
sarrollo se van agregando nuevas funcionalidades a la aplicación final. Sin embargo, los ciclos
son mucho más cortos y rápidos, por lo que se van agregando pequeñas funcionalidades en lu-
gar de grandes cambios.
Este tipo de metodologías permite construir equipos de trabajo autosuficientes e independien-
tes que se reúnen cada poco tiempo para poner en común las novedades. Poco a poco, se va
construyendo y puliendo el producto final, a la vez que el cliente puede ir aportando nuevos
requerimientos o correcciones, ya que puede comprobar cómo avanza el proyecto en tiempo
real.
Las principales metodologías ágiles son:
Kanban: metodología de trabajo inventada por la empresa de automóviles Toyota.
Consiste en dividir las tareas en porciones mínimas y organizarlas en un tablero de tra-
bajo dividido en tareas pendientes, en curso y finalizadas. De esta forma, se crea un
flujo de trabajo muy visual basado en tareas prioritarias e incrementando el valor del
producto.
Scrum: es también una metodología incremental que divide los requisitos y tareas de
forma similar a Kanban. Se itera sobre bloques de tiempos cortos y fijos (entre dos y
cuatro semanas) para conseguir un resultado completo en cada iteración. Las etapas
son: planificación de la iteración (planning sprint), ejecución (sprint), reunión diaria
(daily meeting) y demostración de resultados (sprint review). Cada iteración por estas
etapas se denomina también sprint.
Lean: está configurado para que pequeños equipos de desarrollo muy capacitados ela-
boren cualquier tarea en poco tiempo. Los activos más importantes son las personas y
su compromiso, relegando así a un segundo plano el tiempo y los costes. El aprendiza-
je, las reacciones rápidas y potenciar el equipo son fundamentales.
Programación extrema (XP): es una metodología de desarrollo de software basada en
las relaciones interpersonales, que se consideran la clave del éxito. Su principal objeti-
vo es crear un buen ambiente de trabajo en equipo y que haya un feedback constante
del cliente. El trabajo se basa en 12 conceptos: diseño sencillo, testing, refactorización
30
y codificación con estándares, propiedad colectiva del código, programación en pare-
jas, integración continua, entregas semanales e integridad con el cliente, cliente in situ,
entregas frecuentes y planificación.
Sabiendo esto también es necesario conocer un poco acerca de las herramientas que tenemos a
nuestra disposición para el desarrollo de la solución, como podemos ver:
En esta tipología de tecnologías para desarrollo web se enmarcan aquellas que son las que se
ocupan de la creación de interfaces de usuario y de establecer comunicaciones con el servidor.
JavaScript
Es una de las tecnologías web más usadas. Con este lenguaje de programación multiplatafor-
ma, es posible dar una mayor interactividad y dinamismo a los sitios web. Entre sus distin-
tas funcionalidades, JavaScript permite crear tanto animaciones como objetos, localizar errores
en formularios, cambiar elementos web de manera intuitiva, crear cookies…
Además, también permite desarrollar aplicaciones tan potentes como Facebook o Twitter. Por
esto, JavaScript es una de las mejores tecnologías para desarrollo web de la actualidad.
HTML
De forma breve, HTML sirve para describir el contenido de un sitio web, como la información
estructurada de párrafos, imágenes, etc. Por eso, HTML es una de las habilidades indispensa-
bles de un desarrollador web.
31
CSS
CSS es una de las mejores tecnologías para desarrollo web y a la que más recurren los pro-
gramadores gráficos a la hora de desarrollar sus proyectos. Es un lenguaje que sirve, sobre
todo, para indicar la representación visual de las estructuras HTML. De esta manera, el len-
guaje CSS sirve para acotar y trazar el aspecto visual de las etiquetas generadas por el HTML.
PHP
La característica principal de PHP es que se usa para la comunicación de un sitio web con
un servidor de datos. Gracias a esta funcionalidad es posible crear un contenido dinámico
que permite trabajar con bases de datos como MySQL y con HTML. Con este lenguaje de pro-
gramación de propósito general también es posible proceder a la recopilación de datos de for-
mularios, la modificación de base de datos o la administración de archivos en el servidor.
Python
La popularidad de Python se debe a que, además de tener una gran cantidad de librerías, es to-
talmente gratis. Asimismo, destaca por su sencillez y potencia, ya que usa menos líneas de
código que cualquier otro lenguaje de programación para cualquier aplicación que se ejecu-
te. Esto supone una gran ventaja respecto a otros tipos de lenguajes de programación y la
constituye, sin duda, como una de las tecnologías web más usadas.
Frameworks y librerías
Además de los lenguajes de programación que definen cómo estará escrito el código, es im-
portante destacar la importancia de los frameworks de desarrollo. Son una serie de herramien-
tas y librerías de código ya escrito que facilitan a los desarrolladores las tareas cotidianas o de
uso común para evitar ejecutarlas desde cero.
32
Los frameworks dan un marco de trabajo para programar en un lenguaje y las librerías se en-
cargan de solucionar problemas haciendo el código más legible. Algunas de las más populares
son las siguientes:
Angular
React
React está escrito en código abierto en JavaScript, muy útil para construir las interfaces de
usuario. Es una biblioteca, aunque muchos programadores la consideran un framework por la
excelencia de sus componentes. Asimismo, admite y combina diferentes idiomas y tecnolo-
gías.
MySQL
33
Se ofrece bajo la GNU GPL aunque también es posible adquirir una licencia para empresas
que quieran incorporarlo en productos privativos (Desde la compra por parte de Oracle se está
orientando a este ámbito empresarial).
Las principales ventajas de este Sistema Gestor de Bases de datos son:
Facilidad de uso y gran rendimiento
Facilidad para instalar y configurar
Soporte multiplataforma
Soporte SSL
La principal desventaja es la escalabilidad, es decir, no trabaja de manera eficiente con bases
de datos muy grandes que superan un determinado tamaño.
MariaDB
Este SGBD es una derivación de MySQL que cuenta con la mayoría de las características
de este e incluye varias extensiones.
Nace a partir de la adquisición de MySQL por parte de Oracle para seguir la filosofía Open
Source y tiene la ventaja de que es totalmente compatible con MySQL.
SQLite
34
Más que un Sistema Gestor de bases de datos como tal, SQLite es una biblioteca escrita en
C que implementa un SGBD y que permite transacciones sin necesidad de un servidor ni
configuraciones.
Es una biblioteca utilizada en multitud de aplicaciones actuales ya que es open source y las
consultas son muy eficientes.
Las principales características de SQLite son:
El tamaño, al tratarse de una biblioteca, es mucho menor que cualquier SGBD
Reúne los cuatro criterios ACID (Atomicidad, Consistencia, Aislamiento y Du-
rabilidad) logrando gran estabilidad
Gran portabilidad y rendimiento
La gran desventaja de SQLite es la escalabilidad ya que no soporta bases de datos que
sean muy grandes.
PostgreSQL
Este sistema gestor de base de datos relacional está orientado a objetos y es libre, publica-
do bajo la licencia BSD.
Sus principales características son:
Control de Concurrencias multiversión (MVCC)
Flexibilidad en cuanto a lenguajes de programación
Multiplataforma
Dispone de una herramienta “pgAdmin”, muy fácil e intutiva para la administración
de las bases de datos.
Robustez, Eficiencia y Estabilidad.
La principal desventaja es la lentitud para la administración de bases de datos peque-
ñas ya que está optimizado para gestionar grandes volúmenes de datos.
35
Es un sistema gestor de bases de datos relacionales basado en el lenguaje Transact-
SQL, capaz de poner a disposición de muchos usuarios grandes cantidades de datos de
manera simultánea.
Oracle
Tradicionalmente, Oracle ha sido el SGBD por excelencia para el mundo empresarial, con-
siderado siempre como el más completo y robusto, destacando por:
Soporte de transacciones.
Estabilidad.
Escalabilidad.
Multiplataforma.
La principal desventaja, al igual que SQL Server, es el coste del software ya que, aunque
cuenta con una versión gratuita (Express Edition o XE), sus principales opciones son de
pago.
Las opciones de pago disponibles son:
Standard Edition (SE)
Standard Edition One (SE1)
Standard Edition 2 (SE2)
36
Personal Edition (PE)
Lite Edition (LE)
Entreprise Edition (EE)
37
CAPÍTULO 3. PROCEDIMIENTO Y
DESCRIPCIÓN DE LAS
ACTIVIDADES REALIZADAS
38
3.1. Actividades realizadas
A continuación, se realizará un listado de cada actividad realizada, Explicando las necesidades de cada
actividad, el proceso que se siguió para desarrollar las actividades y los resultados obtenidos en cada
una.
Durante esta actividad se realizó el primer contacto con la empresa, se dio una plática para conocer la
empresa, sus procesos y se conoció al equipo de desarrollo con el que se trabajó y se trató el tema del
proyecto con el que se trabajaría, Ficachi Web Interna es un proyecto para la comunicación de solicitu-
des de faltas programada para facilitar la comunicación entre recursos humanos y los empleados, se ex-
plicó el rol que llevaría el estudiante en el desarrollo y se respondieron las dudas que surgían.
Durante esta actividad se llevó a cabo la presentación de las pantallas que se incluirían en la aplicación,
se mostraron los diseños que se implementarían y las tecnologías que se planeaban usar para realizar-
los, además se presentó los casos de uso y las posibles interacciones que el usuario tendría con la apli -
cación, se explicó cómo se deseaba que la aplicación funcionare y se solicitó las pantallas implementa-
das en una aplicación de diseño.
Revisión de pantallas y CU
Durante esta actividad se llevó a cabo una reunión para evaluar las pantallas realizadas buscando cons -
tantemente elementos que mejorar que enriquezcan la experiencia de usuario, durante esos procesos se
atendían las diversas dudas y se anotaban las mejoras a realizar, también se presentaron los casos de
uso asociados a las pantallas para poder tener un control más adecuado de la experiencia del usuario y
se pidió realizar cambios para mejorar este apartado.
39
Introducción de Cosmic Function Points
Durante este proceso se introdujo los puntos cosmic y como la empresa maneja esta metodología, y
como se calcularían en específico para este proyecto, se resaltaron los recursos y tiempos en los que se
esperaba el proyecto fuese concluido y se recalcaba principalmente el flujo de trabajo que se deseaba
tener.
Durante esta actividad se desarrolló la primera reunión de entregables, en esta se incluyó las pantallas
realizadas junto con sus cambios pertinentes, se realizó el estudio de los casos de uso entregados bus-
cando que reflejen la naturaleza de la interacción con el usuario, y finalmente todos estos artefactos se
asociaron a los puntos cosmics para estimar el tiempo de desarrollo y la cantidad de recursos emplea-
dos en cada entregable, finalizando con la entrega de estos artefactos a cada departamento para el ini-
cio del desarrollo.
Durante esta actividad sea analizo los requerimientos necesarios para el desarrollo de la base de datos,
se estudió las necesidades del almacenamiento de datos en el proyecto bosquejando las primeras ideas
del diseño de la base de datos. Tras esta reunión se presentó el modelo de base de datos diseñado y las
características que se desean de él. Comenzando con el proceso de desarrollo de base de datos.
Introducción a FrontEnd
Durante esta actividad se introdujo a las herramientas utilizadas para el desarrollo de la interfaz gráfica
de la web interna de ficachi, se presentaron las tecnologías de desarrollo donde se destacaba HTML,
CSS, JavaScript y framworks de desarrollo web, se comenzó a asignar las diversas tareas para cada
miembro y se añadían al repositorio de la empresa y del proyecto.
Introducción a BackEnd
Durante esta actividad se introdujo, las diversas tecnologías de desarrollo backend, donde se ajustaban
los diversos requerimientos de las interacciones y consultas que los usuarios tendrán en el ciclo de vida
de la aplicación, y como conectarían la capa de FrontEnd con la de BackEnd, Finalmente, esta con la
40
capa de Base datos. Además de asignar las diversas tareas a cada miembro del equipo de desarrollo y
añadirlos al repositorio de la empresa y del proyecto.
Durante esta actividad se hizo entrega del modelo de base de datos implementado en mysql, los diver-
sos roles, el diccionario de datos y los triggers y procedimientos almacenados necesarios para el fun -
cionamiento de la web interna.
Durante esta actividad se analizaban los avances de forma iterativa para conocer si los requerimientos
solicitados pro ficachi se cumplían como se solicitó y que cambios se podrían dar en pro de mejorar el
producto, además de asignar las nuevas tareas a realizar.
Durante esta actividad se analizaban los avances de forma iterativa para conocer si los requerimientos
solicitados pro ficachi se cumplían como se solicitó y que cambios se podrían dar en pro de mejorar el
producto, además de asignar las nuevas tareas a realizar.
Se entrega el apartado grafico de la web, contando con todas las pantallas con los requerimientos soli-
citados por ficachi, además de contar con todo el soporte para que los usuarios puedan interactuar de
forma sencilla con la web, además de presentar las diversas interacciones en caso de errores o de cam -
bios en el sistema.
Prueba de sistema
Durante esta actividad se implementó la web en un servidor y se ingresó por diversos equipos para pro-
bar el funcionamiento de la web, detectar errores que no se encontraron en producción y asegurar el
41
buen funcionamiento de la web, además de presentar diversas pruebas con usuarios reales para recibir
feedback que ayude a pulir todos los apartados.
Métricas de calidad
En esta actividad en un entorno controlado la web tuvo un periodo de pruebas donde se colocaron di -
versos usuarios finales que probaban la web y generaban diversas consultas, que permitan generar las
métricas de calidad, con esto se podía asegurar el buen desempeño de la web y su uso correcto.
En esta actividad se hizo entrega del manual a todos los trabajadores y se dio una pequeña charla para
resolver dudas del funcionamiento de la aplicación y como usarla y en qué casos esta les ayudaría, ade -
más de capacitar a recursos humanos para atender las peticiones de los empleados.
42
CAPÍTULO 4. RESULTADOS
43
4.1. Producto Final
El producto que dio como resultado del proyecto en las residencias profesionales fue la herramienta
con la que el departamento de recursos humanos ahora podrá (como primera fase del producto) admi-
nistrar permisos de ausencia de diversos indoles por parte de los empleados y también para gestionar
datos de los empleados o dar de alta a uno. El producto es una aplicación web con un servidor dedicado
dentro de las instalaciones de la empresa, por lo cual es seguro de intrusiones y posee una baja vulnera-
bilidad de datos.
Esta pantalla es la misma para todos los roles y posiciones de los trabajadores dentro de la empresa.
Antes de entrar al sitio web, los usuarios deberán crear una contraseña con la cual ingresar junto con su
correo empresarial otorgado por Ficachi.
Dentro de esta pantalla se ingresan los datos anteriormente mencionados para poder acceder a la apli-
cación. En caso de que el usuario haya olvidado la contraseña, este debera ingresar a la opción que se
encuentra debajo del boton de acceso.
44
Dentro de este pequeño formulario, el usuario debe ingresar su correo empresarial con dominio @fica-
chi.com.mx para enviar un link en donde poder crear una nueva contraseña.
Una vez que hayamos ingresado al link enviado a nuestro correo, podemos volver a hacer el fomrulario
para crear una contraseña.
45
4.1.1 Página principal
Dentro de la página principal, dependiendo del rol si se es administrador (recursos humanos) o emplea-
do convencional, tendremos como resultado unas vistas no tan semejantes con funcionalidades clara-
mente diferentes debido a que el producto está en sus primeras fases antes de agregar otras funcionali-
dades para proyectos futuros.
El empleado tiene la posibilidad de ver el historial de los permisos que ha solicitado y su estado de ve-
rificación
En otro apartado se podra hacer la solicitud de permisos detallando su duración en dias habiles el tipo
de permiso y una corta explicación del mismo.
46
En las pantallas de los administradores se tienen mas funcionalidades con la gestion de usuarios.
Como podria ser dar de alta un usuario dentro del sistema
Para la verificación de los permisos, el administrador tiene una lista donde puede ver de primera mano
el tipo de permiso, el nombre del empleado y la duración del permiso.
47
Estos permisos pueden ser filtrados tomando en cuenta su tipo o la fecha de inicio de los mismos.
48
4.2. Impacto en el ambiente laboral
Durante sus primeros días de implementación. esta herramienta ha sido bien aceptada entre la
administración y los empleados. Ha logrado un aumento de eficacia y velocidad en el trámite
de los permisos. Los empleados se han dicho aliviados de evitarse el largo tiempo a esperar o
el rellenamiento de formularios físicos para poder solicitar un permiso simple de mudanza o
uno del fallecimiento de un ser querido. Ficachi espera poder digitalizar otros tramites que de-
bido a su naturaleza simple o por necesidad de ser mas eficaces deban agregarse a este produc-
to de software en un futuro proyecto.
49
CONCLUSIONES, PROPUESTAS DE MEJORA Y EXPERIENCIA
PROFESIONAL ADQUIRIDA
CONCLUSIONES
Desarrollar un sistema puede llegar a ser complicado en cuanto a estructura, porque más que un siste-
ma lo realizado ha sido todo un proyecto de software. Con esta experiencia queda en evidencia la gran
utilidad de herramientas como la Ingeniería de Software en general, así como también la gestión de
proyectos en base a guías como el PMBOK.
PROPUESTAS DE MEJORA
El entregable en cuestión resulta bastante completo, de momento. En las etapas posteriores a su imple-
mentación, como es el caso del seguimiento del proyecto, se harán evidentes algunas cosas que se pu-
dieran mejorar, corregir (en caso de ser errores o anomalías) o implementar. El siguiente paso en FCH
Web Interna, el cual ya no compete al periodo de tiempo de las residencias, es la implementación de su
versión 2.0 que abordará procesos ligados con los clientes de Ficachi.
A perspectiva personal de los integrantes de la residencia, se considera que podría intentar llevar a
cabo un proyecto orientado a las metodologías ágiles como SCRUM en vez del tradicional modelo en
cascada. Las estrategias para evitar tiempos muertos de actividad laboral en el desarrollo de FCH Web
Interna resultaron efectivas. Sin embargo, al analizar la situación puede verse como hay casos específi -
cos en donde no se puede avanzar más por parte de algunos roles hasta que se termine de completar de
manera adecuada ciertas implementaciones. Esto origina algunas consideraciones como alternar a otra
etapa del desarrollo o reconsideraciones de algunos aspectos. Esto es permisible debido a que el crono -
50
grama del proyecto no es específico a las implementaciones. Las metodologías ágiles le dan la bienve -
nida al cambio, pero en las metodologías clásicas pese a observarse una buena adaptación también se
puede ver la afectación y el descontento. El cambio es como un riesgo o amenaza en el contexto se -
cuencial.
Otro cambio que se podría notar es la elección de herramientas, aunque este es debatible ya que la em -
presa solo maneja el mismo conjunto de tecnologías y sería extremadamente riesgosa su modificación.
Sin embargo, algunas tecnologías usadas en el proyecto se podrían considerar cercanas al legado (que
ya no son tan usadas o se recomienda más usar otras alternativas, pero se puede seguir desarrollando de
forma mantenible). El problema de las tecnologías de legado es la carencia de adaptación tecnológica y
el conocimiento por parte de la comunidad a futuro. Esto afectará a largo plazo a ciertos proyectos y al
crecimiento profesional de la fuerza laboral.
Estar en un proyecto de software a nivel empresarial permite obtener otra visión del desarrollo, enfo -
cándose ya en clientes existentes, procesos que además de cumplir con los requerimientos deben cum -
plir con estándares de calidad y la participación en determinados momentos del desarrollo de acuerdo
con la especialización de los desarrolladores.
En la etapa educativa de la carrera nunca se tienen usuarios para los softwares desarrollados (más que
el mismo programador al testear) y se busca completar un problema determinado mediante un enuncia-
do, que sería similar a tener un solo requerimiento. En este caso se contemplan varias funciones para el
mismo sistema con los estándares de implementación de la industria intentando seguir siempre las me-
jores prácticas y, sobre todo, hacer que el sistema sea escalable. En la carrera, algunos proyectos suelen
estancarse en el final de la asignatura y no tener seguimiento. En el desarrollo profesional hay que te -
ner en cuenta que existirán nuevos proyectos que le darán continuidad al desarrollo previo, estén o no
los mismos participantes.
Otra gran aportación del proyecto son las etapas de pruebas. En la etapa de pruebas normalmente se
idean distintos escenarios para introducir datos al sistema y ver con cuales falla la aplicación al grado
de detenerse o si da valores incorrectos en caso de conocer los que deberían de obtenerse. No es una
idea tan descabellada dicho modus operandi, pero existen herramientas que nos permiten realizar prue-
51
bas a distintos niveles de profundidad en código ya de manera profesional sin tener que pasar horas fin -
giendo ser el usuario.
52
COMPETENCIAS DESARROLLADAS Y/O APLICADAS POR
EL RESIDENTE
Desarrollo de software del lado del servidor utilizando el lenguaje de programación JAVA me -
diante Spring Framework.
Desarrollo de software del lado del cliente utilizando el lenguaje de programación JAVA me-
diante ZK Framework.
Desarrollo de casos de uso a partir de requerimientos.
Valoración de los casos de uso del proyecto a partir de Cosmic Function Points.
Diseño de interfaces de usuario interactivas usando Power Point.
Manipulación y definición de datos estructuradas utilizando el lenguaje SQL y el SGBD MyS-
QL.
Persistencia de datos utilizando la especificación JPA y el ORM Hibernate.
Realización de pruebas unitarias utilizando JUnit.
Revisión de métricas de calidad mediante la plataforma SolarQube.
53
REFERENCIAS BIBLIOGRÁFICAS
Blanco, C, Lobato, F, y Lobato F. (2013) Comunicación y Atención al Cliente. España: Macmillan Ibe-
ria, S.A
Baena, G. y Montero, S. (2014). Ciencias de la comunicación 1. (1ª. ed.) México, D.F: Grupo editorial
Patria.
Vásquez, J. (2015). Relación entre la comunicación y la satisfacción laboral. Tesis Inédita, Universidad
Rafael Landívar, Guatemala.
54
ANEXOS
m.co/sistema-PQRS/
cess.uoc.edu/bitstream/10609/66586/6/nbarreiraTFM0617memoria.pdf
Gimenez, M. (2021, 26 julio). Los mejores casos de comunicación interna. Blog de Hiberus
Tecnología. https://www.hiberus.com/crecemos-contigo/los-mejores-casos-de-comuni-
cacion-interna/
https://robertoespinosa.es/2020/11/15/elementos-de-la-comunicacion/
Ortigosa, B. (2007) El trabajo en equipo como mejora del trabajo individual. Recuperado de
http://www.rrhhmagazine.com/articulos.asp?id=541
Ingeniería de software: Qué es, Objetivos y Funciones. (2021, 18 agosto). UNIR México.
https://mexico.unir.net/ingenieria/noticias/ingenieria-de-software-que-es-objetivos/
Martín, I. (2021, 22 octubre). ¿Qué es y qué utilidad tiene la Ingeniería de Software? Teknei.
https://www.teknei.com/2021/11/09/que-es-y-que-utilidad-tiene-la-ingenieria-de-so-
ftware/
thought-leadership/pulse/pulse-of-the-profession-2017.pdf
55
Santander Universidades. (2022, 16 septiembre). Metodologías de desarrollo software | Blog.
software.html
School. https://keepcoding.io/blog/7-tecnologias-para-desarrollo-web/
https://www.inesem.es/revistadigital/informatica-y-tics/los-gestores-de-bases-de-datos-mas-
usados/
56