“Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf ·...

30
UNIVERISDAD PANAMERICANA FACULTAD DE INGENIERÍA “Evolución de la Programación en el ambiente laboral.” INFORME SOBRE LA DEMOSTRACIÓN DE EXPERIENCIA PROFESIONAL QUE PARA OBTENER EL TÍTULO DE LICENCIADO EN INGENIERÍA EN SISTEMAS COMPUTACIONALES P R E S E N T A JOSE LUIS REYES MORELL ASESOR DE INFORME: ING. CAROLINA ELVIRA ROHDE FARAUDO MÉXICO, CDMX. Septiembre-2018 Con estudios incorporados a la Secretaría de Educación Pública

Transcript of “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf ·...

Page 1: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

UNIVERISDAD PANAMERICANA

FACULTAD DE INGENIERÍA

“Evolución de la Programación en el ambiente laboral.”

INFORME

SOBRE LA DEMOSTRACIÓN DE EXPERIENCIA PROFESIONAL

QUE PARA OBTENER EL TÍTULO DE

LICENCIADO EN INGENIERÍA EN SISTEMAS COMPUTACIONALES

P R E S E N T A

JOSE LUIS REYES MORELL

ASESOR DE INFORME:

ING. CAROLINA ELVIRA ROHDE FARAUDO

MÉXICO, CDMX. Septiembre-2018

Con estudios incorporados a la

Secretaría de Educación Pública

Page 2: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

2

ÍNDICE: 1. Introducción 2. Casos de experiencia

a. Desarrollo venta en ruta Refresquera b. Desarrollo de aplicación de punto de venta WEB de sistema Telefónica

Lada Internacional c. Desarrollo de sistemas de impresión masiva en Mensajería mundial para

clientes Proveedor de Impresoras y Proveedor de Equipo de Computo d. Desarrollo de sistema CFDI e. Página de prevención de lavado de dinero f. Facturación Estacionamiento y Pista de Hielo de Centro Comercial Santa

Fe 3. Referencias electrónicas 4. Bibliografía

Page 3: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

3

1. INTRODUCCIÓN: Este informe describe de manera general mi desarrollo profesional después de terminada la carrera de Ingeniería en Sistemas Computacionales en la Universidad Panamericana la cual se ha ido desenvolviendo usando como base los conocimientos adquiridos en las diferentes áreas que abarcan las materias que cursé. Desde el término de la Universidad mi experiencia laboral la he desempeñado en el área de desarrollo de software, rama de la carrera que desde el inicio me atrapó. Lo anterior porque nos dedicamos a la programación en diferentes lenguajes, realizamos concursos en las olimpiadas de la Escuela de Ingeniería, atacamos diferentes tendencias del mercado, de tal manera que no importando la complejidad de los lenguajes de programación podemos ser capaces de adquirir el conocimiento de manera muy ágil. Durante este tiempo me he ido especializando y adecuando a las necesidades del mercado y de los clientes que tuvimos en las diferentes empresas en las que he colaborado. Teniendo como base los conocimientos de programación orientada a objetos, C#, C++, administración y manejo de bases de datos así como planeación de proyectos, siendo estos los ejes centrales en la vida de un proyecto fui aprendiendo las nuevas tendencias con respecto a la evolución que ha tenido el mercado en los últimos 15 años. Siempre me he desempeñado con la ética profesional que nos enseñaron en la Universidad, aplicando lo adquirido en las clases de Humanidades y económico administrativas que sirven de base para la participación en diversos proyectos del ramo.

Page 4: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

4

2. CASOS DE EXPERIENCIA

a. Desarrollo venta en ruta Refresquera. Periodo: Enero 2007 a Diciembre 2009 Lenguaje de programación: VB .NET Antecedentes En una consultoría de software tuvimos como cliente a una empresa refresquera, la cual es líder en el centro de México. Dentro de la consultoría me desempeñé como Desarrollador de software, reportando directamente a la dirección general. Para la concepción del proyecto el organigrama dentro de la empresa y con el cliente está conformado de la siguiente manera: Desarrollo de proyecto El Proyecto desarrollado, llamado Venta en Ruta, consiste de una herramienta en terminal portátil con Windows CETM1, impresora ZebraTM2 portátil modelo MZ 320, aplicación tipo Windows Forms3 para administración y aplicación WEB para administración y rastreo. Las aplicaciones WEB en la ingeniería de software son aquellas herramientas que los usuarios pueden utilizar accediendo a un servidor web a través de internet o de una intranet mediante un navegador.

1 Windows CE, también abreviado como WinCE es un sistema operativo desarrollado por Microsoft para sistemas empotrados. 2 Zebra Technologies International, LLC es fabricante de impresoras de etiquetas de código de barras, impresoras/codificadoras de etiquetas RFID e impresoras de tarjetas. La empresa tiene la base situada en Vernon Hills, Illinois, Estados Unidos de América. 3 Windows Forms (o formularios Windows) es el nombre dado a la interfaz de programación de aplicación gráfica (API) que se incluye como parte de Microsoft .NET Framework, que proporciona acceso a los elementos de la interfaz de Microsoft Windows nativas envolviendo la API de Windows existente en código administrado.

Líder de proyecto Refresquera Director General

Dirección de sistemas Director de ventas José Luis Reyes Morell

Desarrollador

Ingeniero de soporte

Ingeniero de soporte

Page 5: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

5

Funcionamiento:

1. El operador se autentica en su terminal y descarga la ruta de venta que debe recorrer en el día (aproximadamente 200 puntos entre tiendas y locales).

2. En cada punto de venta que visita, el operador debe leer su ubicación para registrarlo en la ruta.

3. Selecciona si el punto de venta requiere de producto, de ser así procede con la selección de los mismos y realiza la venta.

4. En caso de no requerir producto ingresa el motivo por el cual el cliente no está interesado.

5. Si necesita marcar una incidencia, como la comida por ejemplo, la aplicación le da la opción de marcar el inicio y el fin de la misma, ya que la idea es marcar tiempos y movimientos.

6. Al final del día la aplicación tiene opción de cierre de ruta la cual transmite lo que se hizo durante el día al servidor central, éste se coteja a su llegada al centro de distribución en un reporte que obtiene el equipo de ventas desde el sistema WEB.

Colaboré realizando:

La administración de catálogos en Visual Basic4. Los reportes en Crystal ReportsTM5. La impresión de los tickets de venta y de cortes. La aplicación Móvil para la venta y trazo de ruta de los operadores. Una aplicación

Móvil es un programa que se descarga e instala en el dispositivo móvil de un usuario, mientras que un sitio web para móviles no es más que una página web adaptada a los formatos de tabletas y teléfonos inteligentes.

Metodología La metodología utilizada durante el proyecto fue UML6. Me dieron la oportunidad de seleccionarla y la elegí porque es la que conocía desde la Universidad y que llevamos durante el último semestre de la carrera.

4 Visual Basic (VB) es un lenguaje de programación dirigido por eventos, desarrollado por Alan Cooper para Microsoft 5 Crystal Reports es una aplicación de inteligencia empresarial utilizada para diseñar y generar informes desde una amplia gama de fuentes de datos (bases de datos) 6 El lenguaje unificado de modelado (UML, por sus siglas en inglés, Unified Modeling Language) es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; está respaldado por el Object Management Group (OMG)

Base de datos

Servidor

Servicio

WEB/WEB

Equipo

móvil

Aplicación Windows

Impresora

Page 6: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

6

Resultados del proyecto Logros:

1. La gestión de los vendedores con respecto al cumplimiento de visitas en su ruta diaria asignada, ya que se tenían muy bajos los márgenes de venta para los 100 puntos asignados que tenía cada uno de ellos.

2. Alza en clientes y ventas en un 300%. Al poder controlar su ruta se alcanzaba a cubrir los clientes proyectados en el área de ventas proyectada.

3. Implementación de estrategia de IMPULSO de ventas. Esta estrategia es el esquema de comercialización de la vieja escuela: “la del esfuerzo, la de sudar el camino, desgastar la suela, peinar el territorio, tocar todas las puertas, de todas las esquinas, de todas las ciudades. Hay que llamar, llamar, llamar, hasta que "caiga" uno. Si te dicen que no, vuelve a insistir, agéndalo nuevamente y, otra vez, vuelve a insistir. Sácale una cita, pídele una referencia”.

4. Se logra dar bonos de productividad a los empleados al conocer los tiempos reales de trabajo.

Fallos:

1. No se pudo realizar el reporte contable del día para la integración con su ERP (por sus siglas en inglés, “Enterprise Resource Planning”). Un ERP es un sistema de planificación de recursos empresariales el cual es un sistema de información gerencial que integran y manejan muchos de los negocios asociados con las operaciones de producción y de los aspectos de distribución de una compañía en la producción de bienes o servicios. Se hicieron varias integraciones pero el área contable no proporcionó toda la información necesaria por lo que se optó en generar un archivo de Excel7 de todas las ventas y ellos la procesaban de manera independiente.

7 Excel es un programa informático desarrollado y distribuido por Microsoft Corp. Se trata de un software que permite realizar tareas contables y financieras gracias a sus funciones, desarrolladas específicamente para ayudar a crear y trabajar con hojas de cálculo.

Page 7: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

7

Experiencia y conocimientos adquiridos Como profesionista adquirí el conocimiento en: 1. Programación móvil, realizando todos los módulos e interacción con “SQL Compaq”.

“Microsoft SQL Server Compact (SQL Server CE)” es un motor de base de datos relacional, de libre descarga y distribución, tanto para dispositivos móviles como para aplicaciones de escritorio. Especialmente orientada a sistemas ocasionalmente conectados, ofrece unas características especialmente útiles para clientes ligeros. La versión más reciente es SQL Server Compact 3.5 SP2. Desde la versión 2.0, el lanzamiento de SQL Server Compact ha ido ligado al de Microsoft Visual Studio .NET.

2. Conocimiento de ZPLTM para impresión en componentes de ZebraTM. ZPLTM es un

lenguaje de programación con paralelismo implícito orientado a operaciones con vectores o arreglos, creado por Lawrence Snyder de la Universidad de Washington en 1993 (el primer compilador disponible para uso general, fue liberado en 1997). Esta tecnología permitió realizar la impresión del ticket de venta en sitio y con esto poder tener un mejor control a la hora de entregas de producto y cuentas por cobrar.

Page 8: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

8

3. Con respecto a desarrollo web incursioné en la administración de catálogos así como en el desarrollo de servicios web que permitían la interacción entre las plataformas. Un servicio web es una interfaz de software que describe un conjunto de operaciones a las cuales se puede acceder por la red a través de mensajería XML estandarizada. Usa protocolos basados en el lenguaje XML con el objetivo de describir una operación para ejecutar o datos para intercambiar con otro servicio web.

4. Realicé la administración e instalación de servidor de aplicaciones y de base de datos

Page 9: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

9

b. Desarrollo de aplicación de punto de venta WEB de sistema Telefónica Lada Internacional8

Periodo: Enero 2007 a Diciembre 2009 Lenguaje de programación: VB .NET Antecedentes En una consultoría de software tuvimos como cliente a una empresa que proveía servicio de Larga Distancia Internacional con cobro a tarjeta de crédito. Dentro de la consultoría me desempeñé como Desarrollador de software reportando directamente a la dirección general. Continuando con la experiencia en programación orientada a objetos se me asignó a este proyecto, ahora dedicado más al proyecto WEB, Este tipo de proyecto lo desarrollamos en la materia de proyectos del último semestre de la carrera y fue mi proyecto final. Para la concepción del proyecto el organigrama estaba conformado de la siguiente manera: Desarrollo de proyecto El Proyecto desarrollado llamado LADA consiste de una herramienta en aplicación WEB para administración, cobro y seguimiento del consumo de minutos. Colaboré realizando la administración de catálogos, alta de clientes, cobro con tarjeta en Visual Basic y los reportes en Crystal ReportsTM. Realicé la administración de los servidores de aplicaciones y base de datos. Al ser una aplicación orientada a objetos el modelo de la base de datos se originó del diseño de las clases utilizadas. Las clases se utilizan para representar entidades o conceptos, como los sustantivos en el lenguaje. Cada clase es un modelo que define un conjunto de variables -el estado, y métodos apropiados para operar con dichos datos -el comportamiento.

8 Un prefijo telefónico (también llamado indicativo telefónico o código de área) es una sucesión numérica que se marca delante del número de usuario al realizar una llamada telefónica, con el propósito de seleccionar la demarcación territorial lógica a la que pertenece dicho usuario

José Luis Reyes Morell

Desarrollador

Líder de proyecto Telefónica Director General

Dirección de operaciones

Ingeniero de soporte

Page 10: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

10

Funcionamiento:

1. El usuario se da de alta desde la página web ingresando sus datos. 2. Se revisa que su tarjeta y los datos de la misma sean válidos y se le hace un

precargo para validar que cuente con crédito disponible. 3. Para realizar la llamada el cliente ingresa su código, el cual se autentica vía

servicio web. Dependiendo del estatus del cliente le permite o no realizar la llamada.

4. El usuario administra su perfil e incluso puede dar de alta más tarjetas asociadas. 5. Cuenta con un apartado de reportes donde el cliente puede consultar su historial

de cargos con el banco. Metodología Al igual que el proyecto anterior se utilizó UML, la cual ya había sido adoptada por la consultora Resultados del proyecto Logros:

1. El proyecto se puso en marcha con la contratación de minutos a Estados Unidos en primera fase

2. Se tuvo segunda fase con minutos a Latinoamérica y Europa. Fallos: 1. No se pudo realizar la integración con PayPal por incompatibilidad con el API. PayPal

es una empresa de comercio electrónico que permite pagos y transferencias de dinero por internet, una alternativa a los métodos de pagos tradicionales como cheques y giros postales y API es la interfaz de programación de aplicaciones, abreviada de esta manera del inglés: “Application Programming Interface”, la cual es un conjunto de subrutinas, funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizada por otro software como una capa de abstracción.

2. Nos “hackearon” la página y hubo que recalcular información histórica con respaldos en Estados Unidos. “Hackear” es muy conocido en el contexto de la informática, ya que define la acción entrar de forma abrupta y sin permiso a un sistema de cómputo o a una red. La persona que realiza esta acción se le denomina “hacker”.

Base de datos

Servidor

Servicio

WEB/WEB Banco

Page 11: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

11

Experiencia y conocimientos adquiridos 1. Integración de API de banco para cobro con tarjetas. Este tipo de integraciones me dio

la oportunidad de aprender el manejo de interfaces de programación de aplicaciones en ambientes de Visual Basic, esto me sirvió de base para proyectos a futuro.

2. Desarrollo de protocolos de seguridad con SSL9. Este tipo de protocolos permiten autenticar de manera segura a los sitios web, abriendo un canal de comunicación privado el cual permite que la transacción no sea tomada por un intruso y que los datos viajen seguros. Esto me permitió en proyectos posteriores de cobro con tarjeta ofrecer un plus y dar seguridad al cliente.

9 SSL significa "Secure Sockets Layer". SSL Definición, Secure Sockets Layer es un protocolo diseñado para permitir que las aplicaciones para transmitir información de ida y de manera segura hacia atrás.

Page 12: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

12

c. Desarrollo de sistemas de impresión masiva en Mensajería mundial para clientes Proveedor de Impresoras y Proveedor de Equipo de Computo

Periodo: Enero 2007 a Diciembre 2009 Lenguaje de programación: VB .NET Antecedentes En una consultoría de software tuvimos como cliente a una empresa que proveía servicio de mensajería, quien a su vez daba servicio a un proveedor de impresoras y a otra de equipo de cómputo. Dentro de la consultoría me desempeñé como Desarrollador de software reportando directamente a la dirección general. Continuando con la experiencia en programación orientada a objetos se me asignó a este proyecto dedicado a la realización de procedimientos almacenados, desarrollo de interfaz Windows, aplicación WEB para administración y reportes de estadísticas. Un procedimiento almacenado es un programa (o procedimiento) almacenado físicamente en una base de datos. Su implementación varía de un gestor de bases de datos a otro. La ventaja de un procedimiento almacenado es que al ser ejecutado, en respuesta a una petición de usuario, es ejecutado directamente en el motor de bases de datos, el cual usualmente corre en un servidor separado. Como tal, posee acceso directo a los datos que necesita manipular y sólo necesita enviar sus resultados de regreso al usuario, deshaciéndose de la sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes. Para la concepción del proyecto el organigrama estaba conformado de la siguiente manera: Desarrollo de proyecto El Proyecto desarrollado llamado Retorno de paquete consiste de una página WEB donde se llenan los datos del usuario y del equipo a reparar, una interfaz dónde el usuario puede imprimir la guía del envío y reportes WEB donde puede dar seguimiento a los mismos. Colaboré realizando la administración de la aplicación WEB e interfaz de usuario en Visual Basic y en la creación de los reportes en Crystal ReportsTM. También participé en la administración e implementación de los servidores de aplicaciones y base de datos

Líder de proyecto Mensajería Director General

Dirección de comercial

Ingeniero de soporte

José Luis Reyes Morell

Desarrollador

Page 13: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

13

Funcionamiento:

1. El usuario reporta por teléfono la garantía del equipo y se le asigna un número de reporte y sucursal donde debe dejar el mismo.

2. El proveedor de la garantía manda un archivo con los datos de los usuarios vía ftp10, el cual se importa a la base de datos usando procedimientos almacenados y una interfaz para el procesamiento del mismo.

3. El usuario llega al centro con su número de servicio a entregar su equipo dañado, se verifica en el sistema y se procede con el envío.

4. El usuario puede dar seguimiento a su solicitud con su número de servicio y así saber en qué proceso se encuentra, dicho seguimiento lo debe alimentar el proveedor en el sistema WEB.

5. Una vez reparado el equipo, se le manda correo al usuario automáticamente para indicarles que se le entregará en el centro de servicio registrado, en caso de que el usuario no lo encontraran se reporta como incidencia y se manda al centro donde lo dejó desde inicio.

Metodología Se utilizó UML, la cual ya había sido adoptada por la consultoría como institucional Resultados del proyecto Logros:

1. Visibilidad de los puntos de control para el usuario 2. Se tiene como antecedente que la importación masiva de la información de los

equipos tardaba 1 hora y se logra disminuir a 5 minutos con la ayuda de procedimientos almacenados.

10 El Protocolo de transferencia de archivos (en inglés “File Transfer Protocol” o FTP), es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (“Transmission Control Protocol”), basado en la arquitectura cliente-servidor. Desde un equipo cliente se puede conectar a un servidor para descargar archivos desde él o para enviarle archivos, independientemente del sistema operativo utilizado en cada equipo

Base de datos Importar

archivo FTP

Registro

de puntos

de control

Page 14: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

14

Fallos:

1. La integración de los puntos de control para el seguimiento de los paquetes se

deben reportar cada 20 minutos pero el cliente por problemas de conectividad en su recorrido al mover los equipos no es capaz de hacerlo por lo que los reporta hasta llegar a un centro de distribución.

2. La alerta para recoger el equipo no les llega a los usuarios porque el correo al ser masivo se registra en una lista negra la cual se define como un directorio o base de datos en la que se encuentran registradas direcciones IP, direcciones de correo, dominios, usuarios u otra información que identifica a elementos sospechosos de producir ataques, del envío de spam a través de correo electrónico, de otras actividades maliciosas en el ámbito de internet o de estar infectados por algún tipo de virus, gusano o troyano.

Experiencia y conocimientos adquiridos 1. Manejo de recursos de base de datos usando los procedimientos almacenados. 2. Utilización de funciones y cursores para mejorar los tiempos de procesamiento

reduciéndolos en un 90%. 3. Manejo de gráficos para reportes WEB.

Page 15: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

15

d. Desarrollo de sistema CFDI

Periodo: Enero 2010 a Diciembre 2011 Lenguaje de programación: VB .NET Antecedentes En una consultoría de software tuvimos como proyecto generar un sistema que permitiera emitir CFDI en sus primeras versiones, siendo pioneros en este tipo de desarrollos. El CFDI (Comprobante Fiscal Digital por Internet) en México es un documento XML que cumple con la especificación proporcionada por el SAT (Servicio de Administración Tributaria) Dentro de la consultoría me desempeñé como Desarrollador de software reportando al gerente de operaciones. Continuando con la experiencia en programación orientada a objetos se me asignó a este proyecto dedicado a la realización de aplicación Windows, aplicación de mapeo, generador de archivos XML, generación de reportes PDF11, aplicación WEB para administración de CFDI. XML, siglas en inglés de “eXtensible Markup Language”, traducido como "Lenguaje de Marcado Extensible" o "Lenguaje de Marcas Extensible", es un meta-lenguaje que permite definir lenguajes de marcas desarrollado por el “World Wide Web Consortium” (W3C) utilizado para almacenar datos en forma legible. Proviene del lenguaje SGML12 y permite definir la gramática de lenguajes específicos (de la misma manera que HTML es a su vez un lenguaje definido por SGML) para estructurar documentos grandes Para la concepción del proyecto el organigrama estaba conformado de la siguiente manera: Desarrollo de proyecto El Proyecto desarrollado llamado CFDI, está concebido en 2 funciones principales:

11 PDF (sigla del inglés “Portable Document Format”, «formato de documento portátil») es un formato de almacenamiento para documentos digitales independiente de plataformas de software o hardware. Este formato es de tipo compuesto (imagen vectorial, mapa de bits y texto). 12 El lenguaje de marcado generalizado estándar o SGML (por sus siglas en inglés de “Standard Generalized Markup Language”) (SGML; ISO 8879: 1986) es un estándar para definir lenguajes de marcado generalizados para documentos.

Director General

Gerente de operaciones

José Luis Reyes Morell

Desarrollador

Page 16: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

16

1. Importar la información del ERP del usuario a través de un archivo de texto 2. Importar la información del ERP del usuario conectándose a la base de datos del

mismo Colaboré realizando la aplicación Windows donde se configuran los datos del cliente y se mapea la información, en la generación de interfaz que procesa los datos y genera el archivo XML para mandar al PAC y en la generación de la representación gráfica del mismo, por último en la generación de portal web donde se configuran los datos fiscales del cliente y donde puede descargar sus CFDI. Se denomina PAC al Proveedor Autorizado para la Certificación de CFDI; se trata de aquella persona moral que cuenta con autorización por parte del Servicio de Administración Tributaria (SAT) para validar los CFDI generados por los contribuyentes, para asignarles un folio y finalmente para incorporarles el sello digital del SAT. También participé en la administración e implementación de los servidores de aplicaciones y base de datos. Para el manejo de los archivos XML y PDF se opta por montar un servidor Linux ya que éste cuenta con un manejo de archivos muy eficiente. Linux es un sistema operativo; multiplataforma, multiusuario y multitarea. El sistema es la combinación de varios proyectos, entre los cuales destacan GNU13 (encabezado por Richard Stallman y la “Free Software Foundation”) y el núcleo Linux (encabezado por Linus Torvalds). Funcionamiento:

1. Se configura en el portal web los datos fiscales del usuario. 2. Se configura los datos donde se toma la información:

a. Por archivo de texto el cual se busca en la ruta guardada cada 1 minuto. b. Por conexión a base de datos donde se crea una tarea que corre cada 1

minuto para buscar la información. 3. Se procesa la información y se generaba un XML el cual se manda al PAC vía

servicios web. 4. Si la factura era válida se guardaba el XML timbrado y se genera la representación

impresa. 5. Se suben ambos archivos al portal para que estén disponibles para el usuario.

Metodología

13 El proyecto GNU es un proyecto colaborativo de software libre con el objetivo de crear un sistema operativo completamente libre: el sistema GNU.

Base de datos

Importar

archivo PAC

Base de datos

Procesar

de base de

datos PAC

Base de datos

Page 17: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

17

Se utilizó UML, como ya he mencionado ya había sido adoptada por la consultora como institucional Resultados del proyecto Logros:

1. Implementación de la solución en escuela de idiomas de renombre en el ramo instalando en más de 45 de sus sucursales.

2. Procesamiento de CFDI desde las oficinas centrales integrando desde AS40014. 3. Procesamiento de CFDI desde las oficinas centrales integrando desde SQL.

Fallos:

1. La integración con AS400 llevó más del tiempo del pensado ya que se había explicado que se podía integrar como si fuera SQL lo cual no fue así y se tuvo que desarrollar un proceso donde el usuario tomaba su información y la guardaba en una base de SQL intermedia una vez hecho esto se pudo proceder con el proceso de manera regular

2. La generación de 1000 facturas sin relacionarlas a la factura original para el caso de facturas que se devengarían en parcialidades, aquí se tuvo que generar proceso alterno para volver a sellar

Experiencia y conocimientos adquiridos 1. Creación, validación y estructuras de archivos XML. 2. Implementación de conversión de archivos en PDF a partir de un reporte de Crystal

Reports y generación de código de barras de QR para generar la representación impresa de las facturas. Un código QR (del inglés “Quick Response code”, "código de respuesta rápida") es la evolución del código de barras. Es un módulo para almacenar información en una matriz de puntos o en un código de barras bidimensional. La matriz se lee en el dispositivo móvil por un lector específico (lector de QR) y de forma inmediata nos lleva a una aplicación en internet y puede ser un mapa de localización, un correo electrónico, una página web o un perfil en una red social

3. Instalación y configuración de servidor con sistema operativo Linux y la generación de tareas que permitieran interactuar con servidores con sistema operativo Windows.

4. Manejo estructura de carpetas para la administración de archivos en el servidor Linux para que estuvieran disponibles en la página WEB.

14 El sistema AS/400 es un equipo de IBM de gama media y alta, para todo tipo de empresas y grandes departamentos.

Se trata de un sistema multiusuario, con una interfaz controlada mediante menús y comandos CL (“Control Language”) intuitivos que utiliza terminales y un sistema operativo basado en objetos y bibliotecas, denominado OS/400

Page 18: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

18

e. Página de prevención de lavado de dinero

Periodo: Julio-Agosto 2015 Lenguaje de programación: C# .NET Antecedentes En una consultoría de software llamada Catarsys Lab, tuvimos como proyecto generar un sistema WEB para la nueva ley de prevención de lavado de dinero, la cual permite evaluar y registrar los XML de operaciones. Dicha aplicación debía ser usada por cualquier persona que realiza alguna actividad económica para cualquiera de los siguientes conceptos definidos por el SAT en Ley de prevención de lavado de dinero15:

1. Arrendamiento de inmuebles: La constitución de derechos personales de uso o goce de bienes inmuebles.

2. Inmuebles: La prestación habitual o profesional de servicios de construcción o desarrollo de bienes inmuebles o de intermediación en la transmisión de la propiedad o constitución de derechos sobre dichos bienes, en los que se involucren operaciones de compra o venta de los propios bienes por cuenta o a favor de clientes de quienes prestan dichos servicios.

3. Metales y joyas: La comercialización e intermediación habitual o profesional de metales preciosos, piedras preciosas, joyas o relojes.

4. Servicios profesionales: La compraventa de bienes inmuebles o la cesión de derechos sobre estos, la administración y manejo de recursos, valores o cualquier otro activo de sus clientes, manejo de cuentas bancarias, de ahorro o de valores, la organización de aportaciones de capital o cualquier otro tipo de recursos para la constitución, operación o asociación de sociedades mercantiles.

5. Tarjetas prepago: La emisión o comercialización, habitual o profesional de tarjetas prepagadas, vales o cupones, impresos o electrónicos, que puedan ser utilizados o canjeados para la adquisición de bienes o servicios, que no sean emitidos o comercializados por Entidades Financieras.

6. Vehículos: La comercialización o distribución habitual o profesional de vehículos, nuevos o usados, ya sean aéreos, marítimos o terrestres.

Dentro de la consultoría me desempeñé como Desarrollador de software reportando al gerente de desarrollo. Tuve la oportunidad de retomar la programación en C#, la cual nos enseñaron en la carrera como base y a su vez desarrollarme en javascripts16, generación de XML y usar mi experiencia para integrar el cobro con tarjeta a través de API con el proveedor Openpay, empresa que se dedica a la gestión del pago con tarjeta.

15 Ley de prevención de lavado de dinero. (s.f.). En SAT. Recuperado el 3 de mayo de 2018 de https://sppld.sat.gob.mx/pld/index.html 16 JavaScript (abreviado comúnmente JS) es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico

Page 19: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

19

La aplicación está montada sobre Umbraco, la cual es una plataforma de gestión de contenidos (CMS17) de código abierto utilizado para publicar contenido en la “World Wide Web” e “intranets”. Está desarrollado con C# y funciona sobre infraestructura Microsoft. El código abierto es un modelo de desarrollo de software basado en la colaboración abierta. Se enfoca más en los beneficios prácticos (acceso al código fuente) que en cuestiones éticas o de libertad que tanto se destacan en el software libre. Para muchos el término «libre» hace referencia al hecho de adquirir un software de manera gratuita, pero más que eso, la libertad se refiere al poder modificar la fuente del programa sin restricciones de licencia, ya que muchas empresas de software encierran su código, ocultándolo, y restringiéndose los derechos a sí misma Para la concepción del proyecto el organigrama estaba conformado de la siguiente manera: Desarrollo de proyecto El Proyecto desarrollado llamado “Easy Compliance”, permite validar los diferentes casos de prevención que estipula el SAT y que se definieron en la página anterior. Esto permite al usuario que realiza una venta o compra en estos ramos:

1. Tener facilidad administrativa para la presentación del primer aviso para desarrolladores inmobiliarios.

2. Contar con formas de presentar avisos cuando se emitan o comercialicen tarjetas adicionales o suplementarias.

3. Permitir el llenado de avisos para quienes presten servicios de “outsourcing”18.

17 Un sistema de gestión de contenidos (en inglés: “Content Management System”, más conocido por sus siglas CMS) es un programa informático que permite crear una estructura de soporte (“framework”) para la creación y administración de contenidos, principalmente en páginas web, por parte de los administradores, editores, participantes y demás usuarios. 18 La subcontratación, externalización de la mercadotecnia o tercerización (del neologismo inglés: “outsourcing”) es el proceso económico empresarial en el que una sociedad mercantil transfiere los recursos y las responsabilidades referentes al cumplimiento de ciertas tareas a una sociedad externa, empresa de gestión o subcontratista, que precisamente se dedica a la prestación de diferentes servicios especializados.

Director General

Gerente de desarrollo

Desarrollador de estilos José Luis Reyes Morell

Desarrollador

Page 20: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

20

Colaboré realizando la programación para la validación de los XML de las operaciones de:

1. Arrendamiento de inmuebles. 2. Inmuebles. 3. Metales y joyas. 4. Servicios profesionales. 5. Tarjetas prepago. 6. Vehículos.

Integré el pago con tarjeta de crédito o débito usando Openpay e interfaz con sitio de administración de pagos de la misma.

Como funciona es:

1. Se autentica el usuario en el sitio WEB. 2. Se selecciona el tipo de caso a llenar. 3. Se llena los datos de acuerdo a los catálogos e información solicitada por el SAT.

Servidor

Page 21: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

21

4. Se generan archivos XML. 5. Se procede con el cobro al usuario.

Resultados del proyecto Logros:

1. Ser pioneros en las aplicaciones de prevención de lavado de dinero lo que da oportunidad de posicionarse en el mercado.

2. Interacción con servicios del SAT, gracias a esto la misma dependencia nos recomienda con nuevos clientes lo cual hace que el proyecto creciera de manera exponencial.

Fallos:

1. Los archivos XML no contaban con todos los apartados que son validados por el SAT y el portal de la dependencia no arroja exactamente el error, por lo que se tiene que tener conferencias y reuniones con ellos para solucionarlo retrasando un mes la entrega del proyecto.

2. La cancelación de pagos con tarjeta de crédito vía la aplicación de OpenPay no regresa el monto a los tarjetahabientes ya que el API que nos entregaron está desactualizada, después de varias versiones y reuniones con ellos se solucionaó.

Umbraco Usuario

Final Base de datos

Openpay

Page 22: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

22

Experiencia y conocimientos adquiridos 1. Aprendizaje de la tecnología Umbraco en el manejo de “razor”. Razor es una sintaxis

basada en C# (aunque se puede programar en Visual Basic) que permite usarse como motor de programación en las vistas o plantillas de nuestros controladores. Es una de las novedades de ASP.NET MVC 3.

2. Cobro de con tarjeta de crédito usando OpenPay

Page 23: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

23

f. Facturación Estacionamiento y Pista de Hielo de Centro Comercial Santa Fe

Periodo: Julio 2015 Lenguaje de programación: C# .NET Antecedentes En una consultoría de software llamada Catarsys Lab, tuvimos como proyecto generar un sistema WEB para la generación de facturas del estacionamiento y la pista de hielo del Centro Comercial Santa Fe Dentro de la consultoría me desempeñé como Desarrollador de software reportando al gerente de desarrollo. La aplicación está desarrollada en C#, se me asignó al proyecto por mi experiencia en CFDI, expuesta en el punto “d” de este informe. La aplicación está montada sobre Umbraco. Para la concepción del proyecto el organigrama estaba conformado de la siguiente manera: Desarrollo de proyecto El Proyecto desarrollado llamado CCFE, permite interactuar con los servicios web del centro comercial para que el usuario pueda generar su factura a través de un sitio web, para lo cual debía proporcionar:

1. Número de folio de ticket. 2. Fecha de emisión. 3. Hora de emisión. 4. Datos fiscales.

Colaboré realizando la programación del sitio WEB en su totalidad interactuando con los servicios web del cliente así como en la implementación e instalación en sitio con él.

Director General

Gerente de desarrollo

Desarrollador de estilos José Luis Reyes Morell

Desarrollador

Page 24: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

24

Funcionamiento:

1. Se selecciona si el ticket es de pista de hielo o de estacionamiento 2. Se ingresan y validan los datos del ticket

3. Se ingresa RFC del cliente para saber si ya existe:

Page 25: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

25

4. Se ingresan o comprueban los datos fiscales

5. Se manda petición a los servicios web para validar el ticket y generar la factura 6. Se guarda la representación gráfica y XML de la factura

Page 26: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

26

7. Se descargan los archivos o se mandaban por correo

Resultados del proyecto Logros:

1. Implementación de la solución en uno de los centros comerciales más grandes y renombrados del país

2. Apertura para nuevos desarrollos con los franquiciatarios del centro comercial Fallos:

1. La implementación en servidor de producción del cliente derivado de la seguridad implementada en éste ya que por medidas de seguridad tiene cerrados varios puertos de comunicación los cuales son necesarios para la interacción con su PAC.

2. La impresión de la hora versus la que se imprime en el ticket lo cual genera que no se encuentre el comprobante para facturar, esto se arregla buscando en la base de datos la hora que se guarda en vez de poner la que calcula en el sistema

Umbraco Usuario

Final Base de datos

Page 27: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

27

Experiencia y conocimientos adquiridos 1. Desarrollo WEB en C#. 2. Integración de servicios web CFDI

Page 28: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

28

3. Referencias electrónicas:

Windows CE. (s.f.). En Wikipedia. Recuperado el 10 de octubre de 2017 de https://es.wikipedia.org/wiki/Windows_CE

Zebra Technologies. (s.f.). En Wikipedia. Recuperado el 10 de octubre de 2017 de https://es.wikipedia.org/wiki/Zebra_Technologies

Windows Forms. (s.f.). En Wikipedia. Recuperado el 10 de octubre de 2017 de https://es.wikipedia.org/wiki/Windows_Forms

Visual Basic. (s.f.). En Wikipedia. Recuperado el 5 de febrero de 2018 de https://es.wikipedia.org/wiki/Visual_Basic

Crystal Reports. (s.f.). En Wikipedia. Recuperado el 5 de febrero de 2018 de https://es.wikipedia.org/wiki/Crystal_Reports

Microsoft Excel. (s.f.). En Wikipedia. Recuperado el 5 de febrero de 2018 de https://es.wikipedia.org/wiki/Microsoft_Excel

UML. (s.f.). En Wikipedia. Recuperado el 6 de febrero de 2018 de https://es.wikipedia.org/wiki/Lenguaje_unificado_de_modelado

SQL Server Compact. (s.f.). En Wikipedia. Recuperado el 6 de febrero de 2018 de https://es.wikipedia.org/wiki/SQL_Server_Compact

LADA. (s.f.). En Wikipedia. Recuperado el 13 de febrero de 2018 de https://es.wikipedia.org/wiki/Prefijo_telef%C3%B3nico

SSL. (s.f.). En Wikipedia. Recuperado el 13 de febrero de 2018 de https://es.wikipedia.org/wiki/Transport_Layer_Security

FTP. (s.f.). En Wikipedia. Recuperado el 10 de marzo de 2018 de https://es.wikipedia.org/wiki/Protocolo_de_transferencia_de_archivos

PDF. (s.f.). En Wikipedia. Recuperado el 20 de marzo de 2018 de https://es.wikipedia.org/wiki/PDF

SGML. (s.f.). En Wikipedia. Recuperado el 27 de agosto de 2018 de https://es.wikipedia.org/wiki/SGML

GNU. (s.f.). En Wikipedia. Recuperado el 27 de agosto de 2018 de https://es.wikipedia.org/wiki/Proyecto_GNU

XML. (s.f.). En Wikipedia. Recuperado el 20 de marzo de 2018 de https://es.wikipedia.org/wiki/Extensible_Markup_Language

CFDI. (s.f.). En Wikipedia. Recuperado el 20 de marzo de 2018 de https://es.wikipedia.org/wiki/CFDI

LINUX. (s.f.). En Wikipedia. Recuperado el 22 de marzo de 2018 de https://es.wikipedia.org/wiki/GNU/Linux

AS/400. (s.f.). En Wikipedia. Recuperado el 10 de abril de 2018 de https://es.wikipedia.org/wiki/AS/400

Page 29: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

29

QR. (s.f.). En Wikipedia. Recuperado el 10 de abril de 2018 de https://es.wikipedia.org/wiki/C%C3%B3digo_QR

JavaScript. (s.f.). En Wikipedia. Recuperado el 20 de abril de 2018 de https://es.wikipedia.org/wiki/JavaScript

CMS. (s.f.). En Wikipedia. Recuperado el 20 de abril de 2018 de https://es.wikipedia.org/wiki/Sistema_de_gesti%C3%B3n_de_contenidos

OpenPay. (s.f.). En OpenPay. Recuperado el 3 de mayo de 2018 de https://www.openpay.mx/

Catarsys Lab. (s.f.). En Catarsys Lab. Recuperado el 3 de mayo de 2018 de http://www.catarsyslab.com/

Razor. (s.f.). En SAT. Recuperado el 1 de agosto de 2018 de https://si.ua.es/es/documentacion/asp-net-mvc-3/1-dia/vista/razor.html

Page 30: “Evolución de la Programación en el ambiente laboral ...biblio.upmx.mx/tesis/197317.pdf · facultad de ingenierÍa “evolución de la programación en el ambiente laboral.”

30

4. Bibliografía:

ARNUSH, CRAIG APRENDIENDO BORLAND C++ 5 EN 21 DIAS Edición: primera Editorial: PRENTICE HALL HISPANOAMERICANA S.A 1997

Wahlberg, Nik y Sterling, Paul Umbraco User's Guide Edición: primera Editorial WROX/PEER INFORMATION INC May 2011

BALENA, FRANCESCO PROGRAMACION AVANZADA CON MICROSOFT VISUAL BASIC.NET Editorial: S.A. MCGRAW-HILL / INTERAMERICANA DE ESPAÑA 2003