UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES
ANÁLISIS Y DESARROLLO DE UN SISTEMA DE GESTOR Y RECEPTOR DE
COMPROBANTES ELECTRÓNICOS UTILIZANDO LAS NORMAS DE SEGURIDAD DE
ENCRIPTACIÓN DE LOS DATOS CON CIFRADO ASIMÉTRICO, PARA LA EMPRESA
“FIXED S.A”
PROYECTO DE TITULACIÓN Previa a la obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
AUTOR(ES):
CARLOS JOSE CEDEÑO ARELLANO
CARLOS EDUARDO SOLORZANO ZAVALA
TUTOR:
ING. JOSÉ ALONSO ANGUIZACA, M. SC.
GUAYAQUIL – ECUADOR
II
REPOSITORIO NACIONAL EN CIENCIAS Y TECNOLOGÍA FICHA DE REGISTRO DE TESIS
TÍTULO: “ANÁLISIS Y DESARROLLO DE UN SISTEMA DE GESTOR Y RECEPTOR DE
COMPROBANTES ELECTRÓNICOS UTILIZANDO LAS NORMAS DE SEGURIDAD DE
ENCRIPTACIÓN DE LOS DATOS CON CIFRADO ASIMÉTRICO, PARA LA EMPRESA FIXED S.A”
AUTOR(ES): Carlos José Cedeño Arellano
Carlos Eduardo Solorzano Zavala
REVISORES: Ing. Cristian Tomalá Mazzini INSTITUCIÓN: Universidad de Guayaquil FACULTAD: Ciencias Matemáticas y Físicas CARRERA: Ingeniería en Sistemas Computacionales.
FECHA DE PUBLICACIÓN: 2018 Ni DE PÁGS.: 137 ÁREA TEMÁTICA: Tecnología y sistemas
PALABRAS CLAVES: Metodología ágil, Visual Studio, Sistema Gestor y Receptor, Desarrollo, Ayuda al medo ambiente.
RESUMEN: Hoy en día un gran número de empresas emiten facturas electrónicamente, la entidad regulatoria de impuestos gubernamentales decretó que todas las empresas que son contribuyentes
especiales emitieran comprobantes electrónicos desde el 01/01/2015, con el objetivo de cuidar el medio
ambiente y poder reducir la evasión de impuesto. El sistema de gestor y receptor de comprobantes
electrónicos contará con dos principales funcionalidades que lo destaca y lo hace diferente del software
del mercado. En la actualidad los comprobantes electrónicos son emitidos mediante una cuenta de
correo a un cliente o proveedor que termina en un documento físico archivado para su historial, aquí ya
se perdió el enfoque que tenía el proyecto de facturación electrónica, cuidar del medio ambiente. El
sistema de gestor y receptor de comprobantes electrónicos evitará la necesidad de descargar el
comprobante electrónico e imprimirlo para que este no termine en un documento físico archivado. El
sistema leerá una cuenta de correo que se configure en el software, una vez que lea e identifique los
correo con comprobantes adjuntos con extensión XML, los convertirá en binario para almacenarlos en la
base de datos, así la empresa tendrá su información a la mano de manera digital ahorrando costos de
suministros de oficina.
N° DE REGISTRO (en base de datos): N° DE CLASIFICACIÓN: DIRECCIÓN URL (tesis en la web):
ADJUNTO PDF: SI NO
CONTACTO DE LA INSTITUCIÓN Nombre: Carrera de Ingeniería en Sistemas Computacionales
III
En mi calidad de Tutor(a) del trabajo de titulación, “ANÁLISIS Y DESARROLLO DE UN
SISTEMA DE GESTOR Y RECEPTOR DE COMPROBANTES ELECTRÓNICOS UTILIZANDO LAS NORMAS DE SEGURIDAD DE ENCRIPTACIÓN DE LOS DATOS CON CIFRADO ASIMÉTRICO, PARA LA EMPRESA FIXED S.A”, elaborado por el Sr. Carlos José Cedeño Arellano y el Sr. Carlos Eduardo Solorzano Zavala titulados de la Carrera de Ingeniería en Sistemas Computacionales, Facultad de Ciencias Matemáticas y
Físicas de la Universidad de Guayaquil, previo a la obtención del Título de Ingeniero en
Sistemas, me permito declarar que luego de haber orientado, estudiado y revisado, la
Apruebo en todas sus partes.
Atentamente
IV
Este presente trabajo se lo dedico a mispadres, y en memoria a mi madre que
siempre fue una mujer luchadora, que
desde el suelo se sabía levantar sin tener el
apoyo de nadie. Ese ejemplo de lucho lo
llevo en mi porque ella me lo enseño
V
AGRADECIMIENTOAgradezco primeramente a Dios por verme
encaminado hacia el camino del bien y
darme la sabiduría necesaria que me fue
posible llegar hasta aquí. También
agradezco a mis padres por su ejemplo de
lucha y ver incluido ética y morales en mi
vida. Un agradecimiento a mi esposa por
estar siempre brindarme su apoyo.
VI
DEDICATORIAEste presente trabajo se lo dedico a mis
padres, por siempre estar conmigo
apoyándome y guiándome con la sabiduría
necesaria para no flaquear ante los
fracasos a lo largo de mi vida, por sus
concejos e influencia positiva para que siga
siempre adelante. A cada una de las
personas que me apoyaron a lo largo de la
carrera, por brindarme la confianza y creer
en mí, por esa unión de esfuerzos y
perseverancia para alcanzar la meta
anhelada.
VII
AGRADECIMIENTOAgradezco a mis padres por darme el
ejemplo de lucha ante cualquier adversidad
y ser perseverante para alcanzar las metas
propuestas, su fortaleza y dedicación fue
transmitida con éxito eh aquí el fruto de
cada una de sus enseñanzas. A cada
integrante de mi familia por compartir esta
vida maravillosa llena de enseñanzas, a la
Universidad de Guayaquil (UG), cada uno
de los docentes de la CISC que aportaron
con su enseñanza para obtener el
conocimiento necesario que permitieron ser
cada día mejor en el ámbito profesional y
personal.
VIII
_______________________________
Ing. Eduardo Santos Baquerizo M Sc
DECANO DE LA FACULTAD
CIENCIAS MATEMÁTICAS Y FÍSICAS
________________________________
Ing. Abel Alarcón Salvatierra, M gs.
DIRECTOR DE LA CARRERA DE
INGENIERÍA EN SISTEMAS
Ab. Juan Chávez Atocha, Esp.
IX
DECLARACIÓN EXPRESA“La responsabilidad del contenido de este proyecto de titulación,
me corresponde exclusivamente; y el patrimonio intelectual de
la misma a la UNIVERSIDAD DE GUAYAQUIL”
CARLOS JOSE CEDEÑO ARELLANO
X
UG Universidad de Guayaquil.CISC Carrera de Ingeniería en Sistemas Computacionales.
FTP Archivos de Transferencia.
IDE Entornos de desarrollo integrado.
SRI Servicio de Rentas Internas.
LINQ Language Integrated Query.
MVC Modelo Vista Controlador
SQL Structured Query Language
SMTP Simple Mail Protocol
MD5 Message digests 5.
PMBOX Project Management Body of Knowledge
XML Extensible Markup Language
XI
PROYECTO DE TITULACIÓN
... I
REPOSITORIO NACIONAL EN CIENCIAS Y TECNOLOGÍA
... II
APROBACIÓN DEL TUTOR
... III
DEDICATORIA
... IV
ÍNDICE DE GRAFICOS
... XIV
ÍNDICE DE TABLAS
... XV
1.3.1. Objetivo General.
... 6
1.3.2. Objetivos específicos.
... 6
1.5. Contexto y marco teórico
... 8
1.5.1. El propósito del estudio.
... 8
1.5.2. El significado del estudio.
... 8
1.6.1. Presunciones del autor del estudio
... 8
XII
Capítulo 2
... 17
2.1. Antecedente del estudio
... 17
2.2. Fundamentación teórica
... 17
2.2.1. ¿Qué es un proyecto?
... 17
2.2.2. Ciclo de vida de un proyecto
... 17
2.2.3 Metodología
... 20
2.2.4. Clasificación de las metodologías según el grado de formalismo.
... 21
2.2.5. ¿Qué es el manifiesto ágil?
... 22
2.2.6. ¿Cómo se debe aplicar una metodología ágil?
... 23
2.2.7. Los datos y su encriptación
... 23
2.2.8. ¿Qué es Microsoft SQL Server?
... 24
2.2.9. ¿Qué es Visual Studio?
... 25
2.2.10. ¿Qué es .NET Framework?
... 28
2.2.11 Devexpress
... 29
2.2.12 Encriptación asimétrica
... 30
2.2.13 Algoritmo Md5
... 31
2.2.14 Linq “Language Integrated Query”. –
... 32
2.2.15 Hilos.
... 33
2.3. Fundamentación legal
... 36
2.3.1
Derecho de autoría.
... 36
2.3.2
Medio ambiente.
... 36
2.3.3 Emisión de comprobantes electrónicos.
... 36
2.3.4 Código Orgánico Integral Penal (http://www.justicia.gob.ec, 2014)
... 44
2.3.5 Hipótesis
... 47
XIII
3.1.1. Factibilidad operacional
... 49
3.1.2. Factibilidad técnica
... 60
3.1.3 Factibilidad legal
... 72
3.1.4 Factibilidad económica
... 73
3.1.5 Etapas de la metodología del proyecto
... 74
3.1.6 Entregables del proyecto
... 75
Capítulo 4
... 80
4.1
Criterios de aceptación del producto o Servicio
... 80
Técnica de recolección de datos
... 80
4.2
Conclusiones
... 96
4.3
Recomendaciones
... 97
4.4 Anexos
... 98
4.4.1 Formato XML Factura
... 98
4.2.2 Formato XML comprobante de retención
... 102
4.2.3 Formato XML guía de remisión
... 105
4.2.4 Formato XML nota crédito
... 106
4.2.5 Formato XML nota debito
... 111
4.5
Encuesta relacionada al Sistema gestor y receptor de comprobantes
electrónicos
... 113
XIV
figura 1. pruebas de usuarios ... 11
figura 2. casos de prueba ... 11
figura 3. metodologias ... 14
figura 4. ciclo de vida del software ... 18
figura 5. metodologias agil ... 22
figura 6. plataforma de onewindows ... 28
figura 7. encriptacion asimetrica ... 31
figura 8. algoritmo md5. ... 31
figura 9. proceso de hilos ... 34
figura 10. diseñador de reporte ... 35
figura 11. recepcion de comprobantes ... 50
figura 12. comprobantes validos ... 50
figura 13. comprobantes sin respuestas del sri ... 51
figura 14. comprobantes autorizados y no autorizados ... 51
figura 15. administrador de correo ... 52
figura 16. configuración de cuenta de correo ... 52
figura 18. registro de emisor ... 53
figura 19. parametrizacion de ws y servidor proxy ... 54
figura 20. descarga de correos………..………….……55
figura 21. sitio web inicio de sesion ... 56
figura 22. cambio contraseña sitio web ... 57
figura 23. página de inicio del portal web ………..57
figura 24. descarga de comprobantes del portal web ... 57
figura 25. ride ... 59
figura 26. comunicacioes entre capas ... 63
figura 27. diagrama entidad relacion... 65
figura 28. esquema offline ... 67
figura 29. codigo relevante ... 69
figura 30. metodologia del proyecto………...74
figura 31. modulo de seguridad de acceso ………...76
figura32. Modulo de firma electronica ………...77
figura 33. modulo de configuracion ………...78
figura 34. Modulo de administrador de correo ………...79
figura 35. caso de uso acceso al sistema ... 81
figura 36. caso de uso creación de usuarios ... 82
figura 37. caso uso de los procesos de facturación electrónica. ... 83
figura 38. caso de uso para configuracion de cuenta de correo. ... 84
figura 39. caso de uso para para registrar y modificar emisor ... 85
figura 40. caso de uso configuración de parámetros web service ... 86
figura 41. caso de uso modificar diseño de reporte “ride” ... 87
XVI
Universidad de GuayaquilFacultad de Ciencias Matemáticas y Físicas
RESUMEN
TEMA: “ANÁLISIS Y DESARROLLO DE UN SISTEMA DE GESTOR Y RECEPTOR DE COMPROBANTES ELECTRÓNICOS UTILIZANDO LAS
NORMAS DE SEGURIDAD DE ENCRIPTACIÓN DE LOS DATOS CON
CIFRADO ASIMÉTRICO, PARA LA EMPRESA FIXED S.A”
Hoy en día un gran número de empresas emiten facturas electrónicamente, la
entidad regulatoria de impuestos gubernamentales decretó que todas las
empresas que son contribuyentes especiales emitieran comprobantes
electrónicos desde el 01/01/2015, con el objetivo de cuidar el medio ambiente y
poder reducir la evasión de impuesto. El sistema de gestor y receptor de
comprobantes electrónicos contará con dos principales funcionalidades que lo
destaca y lo hace diferente del software del mercado. En la actualidad los
comprobantes electrónicos son emitidos mediante una cuenta de correo a un
cliente o proveedor que termina en un documento físico archivado para su historial,
aquí ya se perdió el enfoque que tenía el proyecto de facturación electrónica,
cuidar del medio ambiente. El sistema de gestor y receptor de comprobantes
electrónicos evitará la necesidad de descargar el comprobante electrónico e
imprimirlo para que este no termine en un documento físico archivado. El sistema
leerá una cuenta de correo que se configure en el software, una vez que lea e
identifique los correo con comprobantes adjuntos con extensión XML, los
convertirá en binario para almacenarlos en la base de datos, así la empresa tendrá
su información a la mano de manera digital ahorrando costos de suministros de
oficina.
XVII
ABSTRACTTHEME: "ANALYSIS AND DEVELOPMENT OF A MANAGEMENT SYSTEM AND ELECTRONIC RECEIPT RECEIVER USING THE SECURITY RULES OF
ENCRYPTION OF THE DATA WITH ASYMMETRIC ENCRYPTION, FOR THE
COMPANY FIXED S.A"
Today a large number of companies issue invoices electronically, the government
tax regulatory entity decree that all companies that are special taxpayers issue
electronic receipts from 01/01/2015, with the aim of taking care of the environment
and can reduce tax evasion. The system of electronic voucher manager and
receiver will have two main functionalities that make it stand out and makes it
different from the market software. At present, electronic receipts are issued
through an email account to a customer or supplier that ends up in a physical
document filed for their history, here the focus of the electronic invoicing project
was already lost, taking care of the environment. The electronic voucher manager
and receiver system will avoid the need to download the electronic voucher and
print it so that it does not end up in an archived physical document. The system
will read an email account that is configured in the software, once it reads and
identifies the emails with attached vouchers with XML extension, it will convert
them into binary to store them in the database, so the company will have its
information at hand digitally saving office supplies costs.
1
Capítulo 1Introducción
La presente propuesta es para el desarrollo de un sistema gestor y receptor de
comprobantes electrónicos para cumplir con las leyes tributarias impuestas por el
gobierno central. Todas las entidades o personas obligadas a llevar contabilidad
deben emitir comprobantes electrónicos, el software no solo ayudará a la empresa
FIXED S.A a cumplir con las leyes, también ayudará en ahorro de suministros de
oficinas y tener la información a la mano.
Este sistema es importante para los procesos de facturación de la empresa FIXED
S.A, aportará a la empresa en los lineamientos del negocio poniendo en práctica
las reglas impuestas por entidades controladoras del estado, el tener un sistema
de gestor y receptor de comprobantes electrónicos también ayudará en el prestigio
de la compañía, siendo FIXED S.A. una empresa de servicios de tecnologías
informáticas y relativamente nueva en el mercado, se exige contar con la
información de manera inmediata.
Este proyecto se enfocará en demostrar que la tecnología es un pilar importante
para el crecimiento de cualquier empresa, atomizando costos y procesos que les
pueda ayudar a emprender en nuevas áreas y poder competir en el mercado.
Muchas entidades hoy en día ven al área de informática como un gasto, inclusos
migrando toda su infraestructura a servidores a la nube para poder desligarse del
gasto de servidores de mantenimiento o de renovación, así como el costo de los
administradores del centro de cómputo.
Si existe un centro de datos en una compañía LTDA y este no tiene una misión y
visión enfocada a la misión y visión de la compañía realmente no será rentable
para esta. La empresa FIXED S.A, no cuenta con un centro de datos, pero cada
2
de la compañía. El sistema gestor de comprobantes electrónicos ayudará a lacompañía en sus estrategias de fidelidad de cliente, enviándoles las facturas a sus
clientes de manera inmediata y con respuesta a la mano en caso de ser extraviado
algún documento por parte del cliente.
1.1. Antecedentes
La empresa FIXED S.A. es una empresa constituida el 15 de agosto del 2017; que ofrece servicios de infraestructuras informáticas. Buscando el emprendimiento
en nuevos mercados de la informática, existen muchas empresas de servicios
informáticos, la gran mayoría de esta se enfoca en una sola sublíneas de la
informática. FIXED S.A., quiere atacar al nicho de mercado de empresas que
carecen de una asesoría informática.
Desde su constitución la empresa está en busca de clientes e incrustarse en el
mercado para llegar a ser una empresa líder en infraestructuras informáticas, la
empresa cuenta con cuatros accionista en la actualidad y cada uno de ellos
cumplen rol importante en la empresa
La empresa tiene proyectado para finales del 2020 tener una cartera de entre 50
y 100 clientes, la empresa está en proceso de capacitación de dos de los ERP
más robusto de Latinoamérica como son SAP y Dinamice AX, para ofrecer a sus
clientes un servicio completo de asesoría informática e infraestructura.
Los cuatros accionista son profesionales en la rama de sistemas informáticos y
cada uno con un gran potencial de conocimiento de mercado del área de la
informática, cada uno de ellos ha trabajado en empresas grandes y en
crecimientos, las experiencias de su trayectoria laboral los hace personas ricas en
conocimientos que los llevará al crecimiento.
El aplicativo nació en base a las necesidades que tienen muchas empresas en la entrega y recepción de comprobantes electrónicos y que han podido palpar lo
3
¿Qué es Certificado de Firma Electrónica?Es un documento digital mediante el cual la entidad certificadora, asegura la
vinculación entre la entidad del usuario, su clave pública y privada.
¿Qué contiene un certificado digital? Entidad de la empresa certificadora. Los datos del titular de la firma digital.
Fecha de emisión y fecha de vencimiento del certificado. La serie o número único que identifica el certificado. Clave pública del titular del certificado.
¿Qué garantiza la firma electrónica?
Autenticidad: información del documento y la firma le correspondiente
únicamente al titular de la firma.
Integridad: El contenido del mensaje o documento no ha sido modificada
después de la firma.
No repudio: El titular de la firma electrónica no podrá negar dicho documento
o mensajes firmados.
Confidencialidad: la información contenida ha sido cifrada y solo el emisor
puede autorizar que el receptor la des encripte.
Módulos del sistema
El sistema gestor y receptor de comprobantes electrónicos, contará con los
siguientes módulos:
1. Seguridad de Acceso. - El módulo de seguridad de acceso es muy importante, ya que en este se crearán las opciones del sistema, así como
también los roles por empresa y por usuarios, y el mantenimiento de usuarios.
2. Firma electrónica. – En dicho módulo se encontrarán las opciones de los procesos para la firma de los comprobantes, que estarán fundamentados en
cuatros pasos importantes para la firma de los documentos, estos pasos son
4
Paso 1 documentos en repositorios. – en esta opción se mostrarán todos los archivos que han sido depositados en el repositorio del sistema y que aún no hansido validados.
Paso 2 documentos válidos y pendientes de enviar y firmar. – Esta opción del sistema nos permitirá visualizar todos los documentos que fueron depositados en
el repositorio de recepción de comprobantes del sistema y que cumplieron con la
estructura exigida por el SRI.
Paso 3 documentos enviados y sin respuesta del SRI. – En esta opción se
mostrarán los archivos que cumplieron el paso unoy que no han tenido respuesta
del SRI.
Paso 4 documentos autorizados/ no autorizados. – En esta opción se mostrarán los archivos que cumplieron los pasos uno, dos, tres. En esta opción
los comprobantes electrónicos tienen dos estados posibles autorizados o no
autorizados.
3. Administrador de correos electrónicos
Este módulo nos permitirá administrar los correos electrónicos enviados y
recibidos de las cuentas respectivas configuradas en el sistema. Se podrá redactar
un correo, así como enviar comprobantes electrónicos por email de forma masiva
a los clientes cuando se emite una factura.
4. Configuraciones
En este módulo se configurará los parámetros del sistema, los parámetros del
sistema pueden ser de dos tipos:
Parámetros generales, son parámetros generales del sistema, un ejemplo de un parámetro global del sistema es donde se configuran las direcciones de los webs
services del SRI, este tipo de parámetros no son por empresas, porque los web
5
Parámetros por empresa, son parámetros exclusivos por empresa, ya que el sistema es multiempresa cada empresa se maneja de manera independiente,pueden existir grupos empresariales y el sistema debe soportar la configuración
individual. Uno de los parámetros por empresa que podemos hacer mención es la
cuenta de correo que se emitirán y receptarán comprobantes electrónicos.
Página web, el sistema contara con una página web para la consulta y descarga
de los comprobantes electrónicos. Los contribuyentes podrán acceder y bajar los
documentos en los formatos XML y .pdf, siendo estos:
XML, es el documento autorizado y firmado por la entidad regulatoria SRI. Este
documento no podrá modificar ni el contribuyente ni el emisor debido que dicho
documento ya fue autorizado.
PDF, el documento con extensión .pdf representa a una factura física y es un
documento autorizado, ya que este contiene una firma electrónica que lo hace
valido en la parte legal o tributaria.
Como se mencionó en el párrafo anterior los contribuyentes podrán hacer uso de
la página web, bajo esta primicia la página web contara con un cubo de
Resolución NAC-DGERCGC15-f00000745-B publicada el pasado octubre del
6
Muchas de estas empresas cuentan con sistemas heredados, es decir difícil deescalar, por ende, desarrollar un módulo de facturación electrónica en estos
sistemas podría ser muy costoso.
Adicionalmente el cliente facilita a sus proveedores una cuenta de correo. Para la
recepción de comprobantes electrónicos, muchas de estas cuentas reciben
grandes cantidades de correos no deseados o spam, por lo que genera dificultad
para localizar los correos de los proveedores, no existe un sistema de receptor de
comprobantes electrónicos, para que estos sean almacenados en una base local
del cliente y pueda ser consultada la información con tan solo dar un clic y no tener
que estar buscando el o los comprobantes en la cuenta de correo o en el montón
de factura archivadas.
1.2. Objetivos
1.3.1. Objetivo General.
Analizar y desarrollar un sistema gestor y receptor de comprobantes
electrónicos utilizando las normas de seguridad de encriptación de los datos
con cifrado asimétrico, para la empresa FIXED S.A.
1.3.2. Objetivos específicos.
Contribuir con el medio ambiente almacenando los comprobantes
electrónicos de manera digital.
Ahorrar tiempo en la busca de documentos.
Reducir espacio físico por almacenamiento de comprobantes.
Ahorrar costos de desarrollo sobre el módulo de facturación electrónica.
Tener información disponible de los comprobantes electrónicos
. Enviar un correo electrónico cuando un comprobante no ha sido autorizado, a
7
1.4. JustificaciónLos sistemas heredados o sistemas contables de muchas empresas solo se
limitarían a generar los XML, el sistema de gestor y receptor de comprobantes
electrónicos se encargará de hacer todo el proceso de la firma y envió de los
comprobantes, también se encargará de leer la cuenta de correo para capturar los
XML enviados por los proveedores, para almacenar dichos documentos de forma
binaria en la base de datos, esto dará lugar a:
Tener la información a la mano con tan solo dar clic. Fomentar a la digitalización de documento.
Contribuir con el cuidado del medio ambiente.
Se encriptará la información almacenada en la base de datos, los campos que se
consideren necesarios en el análisis. Usando cifrado asimétrico con el algoritmo
MD5 (message digest 5). Para obtener una mayor seguridad en el sistema y
resguardar la información se encriptarán los datos que puedan revelar o poner en
riesgo la información del sistema.
El sistema de gestor y receptor de comprobantes electrónicos necesitara de un
archivo. p12 o de un token, para el proceso de la firma digital sin uno de los dos
elementos antes mencionado el sistema no podrá funcionar, en otras palabras,
son requisitos indispensables para el funcionamiento del proyecto.
Los archivos .p12, son archivos de tecnología de firma digital que nos permite firmar documentos electrónicos.
El token, es un dispositivo electrónico USB, los cuales tiene la característica de almacenar contraseñas y certificados digitales, además permiten llevar la
identidad digital de la persona. Este dispositivo tiene una validez de vida útil de
8
1.5. Contexto y marco teórico1.5.1. El propósito del estudio.
Demostrar que la tecnología es una herramienta versátil e útil en las empresas de
crecimiento y en las que se encuentra madura en el mercado, con el sistema
gestor y receptor de comprobantes electrónico se busca evidenciar que si las
empresas usan la tecnología pueden dar un gran aporte al cuidado del medio
ambiente, y adicionalmente tienen grandes beneficios como el ahorrar costo,
ahorrar suministros de oficinas.
Se busca que la herramienta sea amigable al usuario, y fácil de entender para que
el usuario no necesite de una capacitación profunda para utilizar la herramienta
de manera adecuada.
1.5.2. El significado del estudio.
Este gestor y receptor de comprobantes electrónicos se diferencia de otros
productos del mercado, en muchas características, no necesita de programación
adicional para integrarse con otros sistemas, recibe un archivo estándar realiza
los procesos necesarios para enviar a autorizar dicho documento, reducir la
impresión de documentos.
El tener un sistema independiente que realice procesos nuevos, que tal vez
implementarlos en sistemas heredados son complejos y podría llevar mucho
tiempo, incluso entorpecer procesos ya funcionales de los sistemas. Con este tipo
de software sea una mejor opción de no tener el inconveniente de desarrollar
submódulos en sistemas antiguos.
1.6. Metodología de desarrollo
1.6.1. Presunciones del autor del estudio Se presume lo siguiente:
El personal de FIXED S.A, probará el software en la fase de pruebas de
9
El sistema gestor y receptor de comprobantes electrónicos será un softwareamigable
El docente tutor dará los mejores lineamientos para que el software tenga una
ingeniería de software adecuada para que el software tenga un alcance y
limitaciones.
Las buenas prácticas de programación y las herramientas harán del software
un sistema rápido.
1.6.2. Plan de calidad
Pruebas de desarrollo. – se realizarán pruebas durante el desarrollo del software, en cada uno de los procesos los desarrolladores asumirán los errores
comunes de los usuarios inexpertos que se podrían dar al usar la herramienta, y
validar que el sistema pueda detectar la entrada de datos. Las pruebas de
desarrollo son las primeras que se realizan en el desarrollo del sistema, mencionar
estas pruebas tal vez suene innecesario muchas veces los desarrolladores no
realizan las pruebas mínimas, cuando se pasa el sistema a las pruebas de calidad
en el primer intento suelen hacer caer al software.
Pruebas de calidad. Este tipo de pruebas las realiza un departamento aislado del departamento de desarrollo, en las empresas de desarrollo bien estructuras estos
dos departamentos son muy aisladas, no debería estar el departamento de
desarrollo junto al departamento de calidad, se suelen crear grupos de amigos que
busquen conveniencias y dejar pasar bugs del sistema.
El área de calidad se debe caracterizar por ser un área totalmente estricta, deben
realizar todas las pruebas posibles, utilizando las llamadas cajas negras y cajas
blancas.
El departamento de calidad debe tener equipos que figuren un ambiente de
producción, para que la prueba sea muy cercana o similar al ambiente de
producción.
Cuando el departamento de calidad apruebe el software o el aplicativo este debe
10
las entradas y salidas de datos. Y que este está apto para ser pasados a laspruebas finales las conocidas pruebas de usuarios a las que haremos mención
más adelante.
Pruebas de usuarios. Las pruebas de usuarios son las pruebas finales del software donde los usuarios o los dueños de procesos, ejecutarán en el sistema
sus tareas rutinarias de trabajos o procesos, el sistema debe permitir el ingreso
de datos necesarios para arrojar informes coherentes.
En estas fases de los proyectos de software suelen haber concordancia donde el
usuario o los dueños de procesos no siempre describen o dan toda la información
necesaria para desarrollar los procesos, esto se da cuando existen usuarios
resistente al cambio, la metodología ágil que se usará en este estudios minimizara
la probabilidad que se den este tipo de inconvenientes, ya que cada pantalla del
sistema se debe hacer una acta donde el usuario firma que ha entregado toda la
información necesaria.
En esta metodología se le muestra al usuario la pantalla de ingresos de datos o
de proceso para que este la apruebe y proceder con el desarrollo, es de muy
importancia pedir los reportes por pantalla o por procesos para saber que debe
11
Figura 1. PRUEBAS DE USUARIOSFuente: Datos de la investigación
Elaborado por: Carlos Cedeño y Carlos Solórzano
Figura 2. CASOS DE PRUEBA
Fuente: Datos de la investigación
12
Pruebas de estrés. - las pruebas de estrés se basan en realizar peticiones a la base de datos o realizando grandes tipos de transacciones simulando el trabajode muchos usuarios en el sistema. La ventaja de realizar las pruebas de estrés es
probar al sistema en su punto máximo para agotar la posibilidad de que el sistema
no se caiga en su máxima funcionalidad. Para realizar este tipo de pruebas se
necesita de tener una muestra o una media de las transacciones o usuarios
trabajando en el sistema. Es necesario recalcar, que cuando se aplican estas
pruebas se debe revisar el alcance del sistema. Si en el alcance dice que el
sistema soporta como máximo 100 usuarios conectados, las pruebas no pueden
pasar este límite.
1.6.3. Restricciones y alcance
El sistema gestor y receptor de comprobantes electrónicos es un sistema que
como todo sistema tiene un alcance y limitaciones, las cuales se detallarán a
continuación.
Restricciones.
Necesita un sistema operativo Windows.
Las versiones de Windows debe ser Windows 7 o superior.
Los equipos donde correrá el sistema debe ser Core i3 o superior con un
mínimo de dos GB de RAM.
Si el SRI cambia la estructura de uno de los documentos el sistema dejará de
funcionar, es decir es un sistema dependiente.
Necesita de un certificado o token con fecha de vencimiento no menor a la
fecha actual.
Alcance.
El sistema trabajará con las versiones de los documentos emitidas hasta la
actualidad por el SRI que son 1.0.0 y 1.1.1.
El sistema solo firmara los siguientes documentos: Factura
13
Nota débito Guía remisión Retenciones
1.6.4. Metodología
Esta metodología de programación fue implementada a mediado de la década de
los 90. Debido a las falencias de la metodología orientada a documentación, la
metodología orientada a documentación se basa en levantar la información y
posteriormente a documentar estos procesos, para luego continuar con el
desarrollo.
Esta metodología puede llevar al fracaso a un proyecto de software si este desde
el inicio del proyecto se realiza mal el levantamiento de información y
posteriormente se documentará mal y obviamente todo el desarrollo estará mal.
La metodología ágil se caracteriza por ser una herramienta que disminuye el
fracaso de un proyecto de software en las variables más importantes, en este tipo
de proyectos que son Tiempo y Costo. La metodología ágil se basa en realizar la
documentación al final de los procesos, es decir se procede con los mismos pasos
de la metodología orientada a documentación.
A diferencia que en cada proceso se realizan entregables pequeños desde los
diseños de pantallas. Donde el usuario o los dueños de procesos confirman que
los procesos diseñados o ya programados automatizan los procesos manuales o
los mejoran. Así cuando se tenga que entregar todo el proyecto, los submódulos
o procesos estarán probados por los usuarios y la posibilidad que el proyecto sea
rechazado por los patrocinadores del proyecto sea muy pequeña.
A continuación, se detalla cada uno de los procesos de amabas metodología
14
Figura 3. METODOLOGIASFuente: Datos de la investigación
Elaborado: Carlos Cedeño y Carlos Solorzano
Planteamiento. - En esta fase del proyecto las metodologías no inciden ningún cambio entre ellas, ya que en esta etapa del proyecto se está
planteando una necesidad y relativamente no se involucra ningún tipo de
ingeniería de software o algo relacionado con gestión de proyecto de
software. En el planteamiento se expone una problemática o una
necesidad que necesita ser atendida, es necesario recalcar que la etapa
en mención no necesariamente es utiliza en proyecto de software, en
proyecto de cualquier índole siempre existirá este punto inicial.
Análisis tradicional (“Metodología pesada”). - En esta fase del proyecto si nos basamos en la metodología tradicional o denominada pesada, una
vez planteada la necesidad o la problemática se procede a realizar el
análisis del problema dando como resultado un informe de viabilidad del
proyecto. En la metodología ágil también se realiza el análisis de viabilidad
del proyecto si el informe de viabilidad del proyecto du resultado es indica
que el proyecto es viable, se procederá a priorizar los requisitos que estos
pueden ser numerados de la siguiente forma:
15
Fuente: Datos de la InvestigaciónElaborado por: Carlos Cedeño y Carlos Solorzano
En la tabla se muestra como pueden ser priorizados los requisitos expuesto en la
etapa del análisis, la priorización de estos requisitos dependerá de muchos
factores y del proyecto que se lleve a cabo.
Como podemos apreciar en la figura las 7, la metodología tradicional es lineal,
esto quiere decir que una etapa depende de la otra. Detallaremos a continuación
las etapas de diseño, desarrollo y pruebas.
Es fácil apreciar que hay un gran cambio entre la metodología pesada y la
metodología ágil en estas tres etapas. En la metodología pesada la etapa de
diseño se basa en la etapa de análisis y juntamente con la documentación de los
procesos para diseñar el sistema, los subsistemas o un proceso.
Una vez culminada la etapa de diseño se procede con la etapa del desarrollo del
sistema, por lo general esta es la etapa más larga en la línea del tiempo del
desarrollo del proyecto, si nos detenemos a analizar y nos hacemos estas
preguntas de muchas que nos pueden surgir en esta etapa.
¿Se está utilizando la metodología adecuada?
¿Se hizo una buena ingeniería de requerimientos?
¿Los procesos están bien diseñados?
N.º Puntuación Priorización
1 1 Alta
2 2 Media
16
Si estas tres de tantas preguntas que podrían surgir, resulta que una de ellas esfalsa la probabilidad que el proyecto se desfase en la línea del tiempo y su costo
se dispare, y la probabilidad de que el proyecto fracase es muy alto.
En la figura 7 en la metodología ágil se puede observar que se hace una iteración
entre las tres etapas diseña, desarrolla, prueba, esto conlleva a que el proyecto tenga un margen de error de fracaso muy pequeño. Basándose a iteraciones
directamente con los usuarios o dueños de procesos y probando el desarrollo se
podría saber si los procesos están correctos. A diferencia de la metodología
pesada que al final del proyecto en la fase de pruebas podría saber si los procesos
17
Capítulo 2
2.1. Antecedente del estudio
Se realizó el respectivo análisis del proyecto y las conclusiones en la que se
determinó, que no existe un sistema gestor y receptor de comprobantes
electrónicos que coincidan con el tema expuesto. Sin lugar a duda existen muchos
sistemas de firma electrónica en el mercado no tiene una seguridad incluida y
muchos menos apoyan a cuidar el medio ambiente y enfocarse a la visión de toda
empresa que es la fidelidad al cliente.
2.2. Fundamentación teórica
2.2.1. ¿Qué es un proyecto?
Es un esfuerzo temporal que realiza una persona o un grupo de personas, por lo
general un proyecto tiende a solucionar una problemática o de innovación. Se dice
que un proyecto es un esfuerzo temporal porque un proyecto siempre tiene un
inicio y un fin ya siendo el fin satisfactorio o por abordar el proyecto.
2.2.2. Ciclo de vida de un proyecto
Los ciclos de vida de un proyecto son las fases o etapas de este definidas en
tiempos y actividades involucradas. Las fases de un proyecto son casi siempre
secuenciales, y por ende siempre la primera fase es el pilar fundamental del
proyecto en base a la primera fase se basarán las etapas siguientes, los proyectos
de software son como cuando se quieren construir un rascacielos, que si no tienes
bien las bases principal a medida de que crezca el rascacielos este podría
desplomarse echando a perder toda la infraestructura, de igual manera un
proyecto de software de realizarse un buen levantamiento de información que por
lo general es siempre la primera etapa en los proyectos de software. Si esta etapa
está mal constituida todas las demás etapas estarán mal.
A continuación, se mencionarán las etapas más comunes utilizadas en proyectos
de software que son: levantamiento de información, análisis, diseño, desarrollo,
18
Figura 4. CICLO DE VIDA DEL SOFTWAREFuente: Datos de la investigación
Elaborado: Carlos Cedeño y Carlos Solorzano
Necesidades. - en esta fase denominada necesidades, o requerimiento es la etapa inicial de todo proyecto, es una etapa de las cuales se le suele prestar
menos atención, pero realmente para los ingenieros de software esta etapa es una
de las más importante ya que de aquí se derivan las demás etapas, si no hubiese
necesidades no se pudiera realizar un análisis de viabilidad, desde la etapa de
análisis en adelante estas son dependiente de una etapa sucesora.
Si en esta etapa los requerimientos son ambiguo, o inalcanzable es probable que
en la etapa de Análisis de como resultado que el proyecto no es viable.
Cada etapa juega un papel importante en el proyecto, donde cada una de esta se
19
actividades y tareas no pueden ejecutarse por lo general en las etapas sucesorao antecesora.
Análisis. – Es la etapa donde se define la fiabilidad del proyecto, cada uno de los requerimientos son estudiados y priorizados, también se escurrían su
funcionabilidad. En esta fase del proyecto se define si el proyecto debe continuar,
aquí se analizan varias variables administrativas y de interés para los
patrocinadores del software e interesados, en la guía de gestión de proyectos
“PMBOX”, hace énfasis que el sistema o los sistemas deben estar alineados a la
visión y misión de la entidad. Los patrocinadores del proyecto se harán las
preguntas como:
¿Qué beneficios darán a la compañía?
¿El costo del proyecto está en los presupuestos de la compañía?
Diseño. – es la etapa donde se diseñará, la estructura del proyecto, diseño de base de datos, arquitectura, flujograma de procesos, diseño de front end, etc.
Cuando forme el equipo de trabajo para el desarrollo del software dependerá de
los recursos de quien auspicie el proyecto se recomienda que para cada etapa
exista un especialista enfocado en el tema del área, en este caso la etapa en
mención se necesitaría un arquitecto de software, que estudiaría la arquitectura y
diseño del mismo, y dependerá mucho del Análisis que se haya definido en la
etapa anterior.
Codificación. – También denominada etapa de desarrollo en esta fase intervienen los analista de sistemas o jefe de desarrollo y programadores, estos
ya reciben el proyecto macro desglosados en tareas y actividades, los
participantes de esta etapa por lo general no saben la cobertura del proyecto
muchas veces llegan a entender un subprograma o módulo, es el ingeniero de
software que mira y mide el proyecto de manera macro como un rompecabezas
que se distribuye en subsistemas, módulos, procesos, actividades y tareas.
Pruebas. – En el desarrollo de un software existen cuatros tipos de pruebas, cada una de estas buscan encontrar bugs del sistema o falencia, ya sea por malas
20
1.6.2. se hará mención más a detalle de las pruebas de software. Aquímencionamos las pruebas de desarrollo de software:
Pruebas de desarrollo. Pruebas de calidad. Pruebas de usuarios. Pruebas de estrés.
Validaciones. – esta fase puede variar depende del gerente de proyecto, en esta etapa se pueden llamar como validaciones al funcionamiento integral del sistema,
la integración entre módulos y procesos, se suele usar un método para realizar
estas validaciones que se le denomina paralelo, en la cual los usuarios trabajan
en los dos sistemas simultáneamente en caso de ser éste remplazando un
software. Se compararán los resultados arrojados por las dos aplicaciones, si la
implementación es totalmente nueva se trabajará en el sistema y los usuarios
finales validarán la información arrojada por el software.
Mantenimiento y evolución. – Cuando las etapas de validaciones han sido satisfactorias, se procede a firmar el acta de entrega por parte proveedores si el
proyecto fue tercerizado, de aquí en adelante se suele llegar a un acuerdo entre
el patrocinador del proyecto y la empresa desarrolladora, haciendo un contrato de
soporte para suplir las necesidades de los usuarios o pulir los bugs del sistema en
caso de ser encontrados.
2.2.3 Metodología
Definiremos la metodología como aquella disciplina que indicará qué métodos y
técnicas hay que usar en cada fase del ciclo de vida de desarrollo del proyecto”
(Gallego, 2014).
La metodología nos permite llevar un proyecto de software de manera ordenada,
aplicando las mejores prácticas y lineamientos, la metodología nos ayuda a cuidar
21
esto ocurre el proyecto se presupuestará y el riesgo que el proyecto sea abordadopor falta de recursos es muy alta.
2.2.4. Clasificación de las metodologías según el grado de formalismo.
Metodología pesada
“Son las metodologías clásicas, los métodos de trabajo son muy formales.
Conlleva realizar una gran carga de trabajo de gestión y generar una gran cantidad
de documentación.” (Gallego, 2014)
Los estudios basados en esta metodología se basaban en documentar todo el
proyecto al inicio, basándose en la documentación de los procesos que fueron
estudiados en la ingeniería de requerimiento. En esta metodología se asume que
la etapa de ingeniería de requerimiento todos los procesos serán levantados
correctamente y que todas las posibilidades que tengan un proceso serán
tomadas en cuenta.
En la vida real esto no funciona así, generalmente cuando se está en la etapa de
ingeniería de requerimiento los usuarios resistentes al cambio o por celos de
perder su empleo estos no describen los procesos correctamente lo que conlleva
al fracaso del proyecto. Sin lugar a duda esta metodología es obsoleta y no es la
mejor opción para que un proyecto sea satisfactorio.
Metodología ágil
“Son las últimas en aparecer y se basan en dar respuestas a los problemas con
los que se encuentran las metodologías tradicionales. Usan el concepto de
adaptación a los requisitos que no se conocen en lugar de predicción.” (Gallego,
2014).
Como se mencionó en el ítem anterior las metodologías pesadas son muy
cerradas a cambios y por ende el índice de probabilidad de que los procesos estén
mal planteados son muy grandes. Basándose en esas falencias de la metodología
22
con el usuario o con el dueño del proceso desde el inicio de hasta la finalizacióndel proyecto.
La metodología ágil se base en un espiral cerrada, así de esta forma se comienza
desde el levantamiento de información y posteriormente con el diseño del software
o pantalla y se mostrará a los usuarios o dueños de procesos para su aceptación,
si el usuario está de acuerdo se procederá con la programación, después de esto
nuevamente se reunirá con el usuario para mostrar el proceso y ejecutar ejercicios
reales donde el sistema tomará los datos de entradas y los procesará obteniendo
como resultados la salida de datos que será evaluada por los usuarios.
Figura 5. METODOLOGIAS AGIL
Fuente: Datos de la Investigación
Elaborado: Carlos Cedeño y Carlos Solorzano
2.2.5. ¿Qué es el manifiesto ágil?
“En marzo de 2001, se reunieron 17 profesionales de software. […] Los integrantes
23
como Manifiesto Ágil, que son los valores sobre los que se asientan las metodologías ágiles.” (Menzinsky, López, & Palacio, 2016)Es conocido como la norma establecida en marzo del 2001 por un grupo de
profesionales de ingeniería de software.
2.2.6. ¿Cómo se debe aplicar una metodología ágil?
“Se debe analizar el proyecto en concreto y ver cuál de todas las metodologías
existentes sería la más adecuada a su proyecto. Y si ninguna le satisface
plenamente, debería de ser capaz de adaptarlas.” (Fernández, 2014)
Las empresas de desarrollo de software de Ecuador por lo generalmente están
acostumbrados a utilizar la misma metodología para todos los proyectos y no
existe un estudio de por medio para calificar la metodología que más se apegue a
la problemática. El tomar en cuenta la metodología a usar en nuestro proyecto es
un buen principio y más que un principio debe ser una regla para que los proyectos
de software no se desfasen por la línea del tiempo.
2.2.7. Los datos y su encriptación
Los datos es un problema antiguo, que se vienen acarreando desde el inicio de la
era de las computadoras, en la primera generación de las computadoras cuando
se usaban tarjetas perforadas por la década de los 60, aun no existía el término
de bases de datos. Al inicio de la era del software informático estos solos
realizaban operaciones en memorias, no existía la facilidad de guardar el histórico,
después de estos aparecen los archivos planos que permiten guardar información
actuando en aquel tiempo como una opción de almacenamientos de datos
procesados por software informáticos.
Los archivos planos fue una solución temporal para los pasos agigantados que
daba la informática, los archivos .bat o .txt, etc. No fueron de gran ayuda a la
problemática de los datos.
La primera vez que se ha escuchado el término base de datos fue en 1963, desde
aquel tiempo el término base de datos es muy común y ha tomado tanta
24
bases de datos que no permiten almacenar grandes cantidades de datos, noquiere decir que los datos no sigan siendo un problema en el mundo de la
informática.
En el siglo XII aún se carece del problema de los datos, este estudio no está
enfocado a los datos, pero es necesario hacer referencia a estos, ya que hoy en
día los datos es lo más importantes para las empresas, si vulneran su seguridad
informática para secuestrarle los datos y pedir recompensa por su información o
para venderla a la competencia. Esto es tan grave que podría mandar a la ruina a
cualquier entidad.
Los datos están expuestas muchas veces a la red de redes que estos podrían ser
capturados alterados, y así violando la confidencialidad de los datos. De aquí el
problema de la seguridad de los datos que están expuesto a hacker de sombrero
negro siendo personas con muchos conocimientos informáticos que le dan un mal
uso a la información como, venderla, alterarla, o secuestrarla para pedir grandes
sumas de dinero.
Muchas empresas aplican hoy en día una seguridad doble se le podría llamar,
aplicando la seguridad en la red como son las MZ, pero si esta fuera vialidad se
opta por tener encriptada la base de datos. Ya que si un hacker ingresa a la red o
tiene acceso a los datos éste tendría que realizar otro trabajo forzoso para robar
la información que es la desencriptación de los datos.
2.2.8. ¿Qué es Microsoft SQL Server?
“Microsoft® SQL Server™ es un sistema de administración y análisis de bases de
datos relacionales de Microsoft para soluciones de comercio electrónico, línea de
negocio y almacenamiento de datos.” (Microsoft, 2017)
SQL Server es una de las tantas herramientas que nos permite almacenar y
manipular grandes cantidades de datos, SQL es una herramienta de Microsoft y
este producto se adquiere bajo licencia y por usuarios. Sin embargo, Microsoft
tiene una versión gratuita que es SQL Express la cual se utilizará para almacenar
25
2.2.9. ¿Qué es Visual Studio?En su página oficial, Microsoft (2017) lo define así:
Visual Studio es un conjunto completo de herramientas de desarrollo para la
generación de aplicaciones web ASP.NET, Servicios Web XML, aplicaciones de
escritorio y aplicaciones móviles. Visual Basic, Visual C# y Visual C++ utilizan
todos los mismos entornos de desarrollo integrado (IDE), que habilita el uso
compartido de herramientas y facilita la creación de soluciones en varios
lenguajes. Asimismo, dichos lenguajes utilizan las funciones de .NET Framework,
las cuales ofrecen acceso a tecnologías clave para simplificar el desarrollo de
aplicaciones web ASP y Servicios Web XML.
Visual estudio tiene una gama de lenguaje de programación como son C#, C++,
etc., cada uno de estos lenguajes nos permite crear más de un tipo de aplicación
desde un sistema de escritorio hasta una aplicación Android, nuestro estudio
estará desarrollado en C# desktop.
Su historia. – El paquete de lenguaje de desarrollo de visual studio incorpora más de una plataforma para el desarrollo de diversas aplicaciones. Sus versiones
destacadas que influyeron en mundo de la programación y que a medida del paso
del tiempo estas fueron siéndose más robusta y tomando mercado en el mundo
de la informática.
Visual Studio 6.0 esta versión fue lanzada en el año 1998, se dice que esta versión fue el indicio de la base para el desarrollo de Microsoft durante los
siguientes 4 años. En la cual la industria de software Microsoft puso sus
miradas a la plataforma .net Framework, hoy en día este IDE de programación
de Microsoft es una herramienta versátil y muy acogedora.
Visual Studio .net 2002.- Ya para esta época Microsoft había rompido el paradigma de y produjo un cambio sustancial y poniendo sus miradas en la
plataforma .net de Microsoft .net, los programas o aplicaciones desarrolladas
en esta versión ya no se compilaban en lenguaje de maquina si no en un
26
Con la aparición de esta versión se da el indicio del lenguaje c# hoy en día unpotente lenguaje de desarrollo, en el cual se desarrolló mi trabajo de tesis de
grado. El desarrollo de c# se basó en los pilares de c++ y java.
Visual Studio .net 2003.- Sin lugar a duda la corporación Microsoft su trabajo e evolución ha sido muy continuo, al cabo del año lanza esta nueva versión
con más de una edición, es decir más de un lenguaje de programación lo que
se podría denominar un paquete de lenguaje de desarrollo los cuales fueron:
Academic, Professional, Enterprise Developer y Enterprise Architect.
Visual Studio .net 2005.- En el año 2005 aparece una nueva versión mejorada y más robusta la cual se publicó por la internet a mediado del mes
de octubre del 2005 esta versión únicamente estaba en inglés. Esta versión se
mantuvo en ingles durante los dos primeros años, hasta que ha mediado del
año 2006 aparece la versión en español.
La versión lanzada en el año 2005 trae consigo muchas mejoras que le dieron
mayor credibilidad y crecimiento al producto, uno de los cambios más radicales
es la compilación para procesadores de 64 y 86 bits.
Microsoft en el año 2005 también lanza una versión exprés para principiantes
y pequeñas empresas que se encontraba totalmente gratuita en la página de
Microsoft incluyendo una edición independiente por cada lenguaje de
desarrollo.
Visual Studio .net 2008.- Se lanza al mercado una nueva versión incorporando también otra versión de .net framework (.NET 3.5), consigo
también viene de la mano una nueva versión de S.O llama Windows Vista y
sus subsistemas Windows Communication Foundation (WCF) y Windows
Presentation Foundation (WPF). El WCF es una herramienta dedicada a los
servicios, mientras que WPF se orienta a los lenguajes tradicionales de las
versiones anteriores, pero con mejoras.
27
a mediado del año 2010. Esta actualización o nueva versión de Visual Studiotrae varias ediciones, según la necesidad las cuales la mencionamos a
continuación:
o Visual Studio 2010 Ultimate.
o Visual Studio 2010 Premium.
o Visual Studio 2010 Professional.
o Visual Studio Team Foundation Server 2010.
o Visual Studio Test Professional 2010.
o Visual Studio Team Explorer Everywhere 2010.
Visual Studio .net 2012.- La nueva versión de Visual Studio fue lanzada en el año 2012, la cual incluye diversas herramientas para el desarrollo de
aplicaciones de varios índoles. También cuenta con una versión gratuita y
versiones trial.
Permitiendo el desarrollo nativo para las plataformas que este soporta.
El procesador de código soporta IntelliSense fue mejorado siendo en esta
versión más rápido que el anterior ayudando de manera directa al
programador.
Visual Studio .net 2013.- Se podría decir que el equipo de Microsoft trabajo casi que de manera paralela entre las versiones 2012 y 2013, es necesario
destacar que la nueva versión 2013 aún mantiene embebida se podría decir
las herramientas de desarrollo de la versión 2012. Aquí hago mención los
principales cambios o los más destacados de la versión 2013 vs versión 2012:
o Selector de tema e IDE conectada
o Mejoras a los temas de color
Visual Studio .net 2015.- esta versión es una de las más estables e utilizadas actualmente en la cual se han incorporado una serie de mejoras de entorno y
de ayuda para el programador, una de las mejoras que en lo personal me
parece muy interesante es que podemos ver los objetos o variables en que
28
Una de las funcionalidades es que no permite medir los recursos consumidospor un proceso en la máquina, así como también medir el rendimiento de la
misma. Sin duda esta versión trae cosas muy interesantes que le ayudan a ser
la vida más fácil al programador. Otros de los cambios notorios en esta versión
que me llama la atención es la auto creación de código como crear plantillas y
hasta realizar procesos de manera automáticos a partir de una entidad.
Figura 6. Plataforma de OneWindows
Fuente www.microsoft.com
Elaborado por: Carlos Cedeño y Carlos Solorzano
Visual Studio .net 2017.- Ya Windows lanzo la versión 2017, la cual tiene iteración con sistemas operativos MAC, de esta manera Microsoft quiere romper
las cadenas que sus herramientas de desarrollo corran en sistemas Windows.
2.2.10. ¿Qué es .NET Framework?
En el libro La biblia de C# encontramos la siguiente definición:
.NET Framework se compone de cuatro partes […]: el entorno común de
ejecución, un conjunto de bibliotecas de clases, un grupo de lenguajes de
29
objetivos en mente. Primero, debía simplificar el desarrollo de aplicaciones yservicios Web que no solo funcionen en plataformas tradicionales, sino también
en dispositivos móviles. Por último. El entorno fue diseñado para proporcionar un
solo grupo de bibliotecas que pudieran trabajar con varios lenguajes. (Fergurson,
Patterson, Beres, Boutquin, & Gupta, 2003)
Net Framework es la plataforma de desarrollo de código administrado de Microsoft
está formada por una serie de herramientas y librerías con la que puede crear todo
tipo de aplicaciones, desde escritorio hasta Android.
Está compuesto por un conjunto de tecnologías que forman parte importante de
la plataforma .net el net Framework constituye una infraestructura de
programación para contribuir distribuir y ejecutar aplicaciones y servicios para la
plataforma .net, el net Framework soporta completamente las características de
.net
El IDE de programación .net Framework ha venido evolucionando conforme ha
venido desarrollándose las versiones de visual studio, este framework es el pilar
fundamental de las plataformas de desarrollo de visual estudios. Ha evolucionado
de manera muy acelerada conforme a los requerimientos de las tecnologías.
La Biblioteca de Clases Base se clasifica, en tres grupos clave:
ASP.NET y Servicios Web XML Windows Forms
ADO.NET
2.2.11 Devexpress
“Devexpress es una de las más completas suites de componentes de UI para el
desarrollo en todas las plataformas de .NET como Windows Forms, ASP.NET,
MVC, Silverlight y Windows 8 XAML.” (Samaniego García, 2017)
Devexpress, es un Framework para ciertos lenguajes de programación de visual
estudio como C#, Asp, Visual Basic etc., es una herramienta versátil, con muchos
componentes dinámicos, como gráficos, reportes, tanto como para herramientas
web como para desktop. Este framework ayuda a los programadores haciendo la
30
Su historia. – Devexpress sale al mercado en el año de 1998 y su origen fue Glendale, California, en su inicio comenzó a diseñar controles para Interfax deusuarios para las siguientes herramientas de programación: Borland Delphi / C ++
Builder y ActiveX Controls para Microsoft Visual Studio.
Ventajas.
Cuenta con controles para la mayoría de las herramientas de Microsoft. Contiene más de 70 controles, la cual nos permite diseñar y desarrollar
potentes herramientas.
En la creación de sus controles es semi – automática, donde la herramienta
se encarga de escribir la mayoría de la codificación, como eventos
funciones etc. Que son fácil de usar y de poca complejidad.
El método para llenar sus controles es sumamente sencillo, así como
recoger la información de sus controles es de fácil acceso.
Sus componentes para el desarrollo web son responsive al 100% Sus componentes cuentan con temas propios.
Desventajas.
Sus controles están enfocados únicamente para plataforma Windows Requiere licencia
2.2.12 Encriptación asimétrica
La encriptación asimétrica se basa en dos claves públicas y privada que se pueden
difundir sin ninguna dificultad a toda información que necesite ser transmitida
encriptada, si se necesita recibir información encriptada debemos darle nuestra
clave pública al receptor que nos enviara la información, así podemos desencriptar
los datos encriptados.
Quizás parezca algo incoherente que al dar nuestra clave publica el emisor pueda
identificar nuestra clave privada, este tipo de criptografía usa algoritmos bastante
31
Figura 7. ENCRIPTACION ASIMETRICAFuente: Datos de la Investigación
Elaborado por: Carlos Cedeño y Carlos Solorzano
2.2.13 Algoritmo Md5
Es un algoritmo de reducción criptográfica de 128 bits, fue inventado por Ronalf
Riverst en la década de los 90, en el año 2004 se le divulgaron algunas
debilidades. Este algoritmo comienza rellenando el mensaje a una longitud en
módulo 448 mod 512. Es la longitud del mensaje.
Figura 8. ALGORITMO MD5.
Fuente: Datos del a investigación
32
Este algoritmo toma el mensaje original y se expande hasta alcanzar una longitudde la cadena de 448 módulos 512 bits la longitud de la cadena, esta es dividida
sobre 512 y arrojara como resultado. Y posteriormente se añade a la cadena 64
bits a la cadena original, ahora tenemos como resultado un múltiplo de 512 bits,
los cuales salen de la suma del 448 + 64 bits.
Ventajas
Su codificación es de dominio público, y no se requiere ninguno pago para
tener adquirir una licencia.
Este algoritmo esta implementado casi en todos los lenguajes de desarrollo Es veloz al momento de codificar y decodificar la cadena
Ventajas
Debido a su popularidad existen muchos foros para su vulnerabilidad Ya se han descubiertos vulnerabilidades
2.2.14 Linq “Language Integrated Query”. –
Es una manera directa de acceder a los datos de una base de datos, este lenguaje
es nativo de .Net, donde se pueden ejecutar sentencias SQL, expresiones lamba,
etc. La diferencia de ADO y Linq, es que ADO actúa como un intermediario entre
el aplicativo y la base de datos, con Linq se omite este paso y se puede acceder
de manera directa a los datos consecuentemente tendremos respuestas más
rápidas en consultas y transacciones de datos.
Linq trabaja de la mano con el IDE de programación de Microsoft, como es de
nuestros conocimientos el .net framework es un protocolo de desarrollo para
herramientas de visual studio.
LINQ en C#
Aplicar Linq en la plataforma de desarrollo de C# es bastante sencillo, si
conocemos o hemos trabajados con sentencias ADO o con base de datos SQL
aprender de esta nueva técnica nos será muy fácil, ya que contiene funciones con