• No se han encontrado resultados

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

N/A
N/A
Protected

Academic year: 2020

Share "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"

Copied!
149
0
0

Texto completo

(1)

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

(2)

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

(3)

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

(4)

IV

Este presente trabajo se lo dedico a mis

padres, 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

(5)

V

AGRADECIMIENTO

Agradezco 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.

(6)

VI

DEDICATORIA

Este 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.

(7)

VII

AGRADECIMIENTO

Agradezco 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.

(8)

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.

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)
(16)

XVI

Universidad de Guayaquil

Facultad 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.

(17)

XVII

ABSTRACT

THEME: "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.

(18)

1

Capítulo 1

Introducció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

(19)

2

de la compañía. El sistema gestor de comprobantes electrónicos ayudará a la

compañí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

(20)

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

(21)

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 han

sido 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

(22)

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

(23)

6

Muchas de estas empresas cuentan con sistemas heredados, es decir difícil de

escalar, 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

(24)

7

1.4. Justificación

Los 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

(25)

8

1.5. Contexto y marco teórico

1.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

(26)

9

 El sistema gestor y receptor de comprobantes electrónicos será un software

amigable

 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

(27)

10

las entradas y salidas de datos. Y que este está apto para ser pasados a las

pruebas 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

(28)

11

Figura 1. PRUEBAS DE USUARIOS

Fuente: 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

(29)

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 trabajo

de 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

(30)

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

(31)

14

Figura 3. METODOLOGIAS

Fuente: 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:

(32)

15

Fuente: Datos de la Investigación

Elaborado 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

(33)

16

Si estas tres de tantas preguntas que podrían surgir, resulta que una de ellas es

falsa 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

(34)

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,

(35)

18

Figura 4. CICLO DE VIDA DEL SOFTWARE

Fuente: 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

(36)

19

actividades y tareas no pueden ejecutarse por lo general en las etapas sucesora

o 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

(37)

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

(38)

21

esto ocurre el proyecto se presupuestará y el riesgo que el proyecto sea abordado

por 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

(39)

22

con el usuario o con el dueño del proceso desde el inicio de hasta la finalización

del 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

(40)

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

(41)

24

bases de datos que no permiten almacenar grandes cantidades de datos, no

quiere 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

(42)

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

(43)

26

Con la aparición de esta versión se da el indicio del lenguaje c# hoy en día un

potente 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.

(44)

27

a mediado del año 2010. Esta actualización o nueva versión de Visual Studio

trae 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

(45)

28

Una de las funcionalidades es que no permite medir los recursos consumidos

por 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

(46)

29

objetivos en mente. Primero, debía simplificar el desarrollo de aplicaciones y

servicios 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

(47)

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 de

usuarios 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

(48)

31

Figura 7. ENCRIPTACION ASIMETRICA

Fuente: 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

(49)

32

Este algoritmo toma el mensaje original y se expande hasta alcanzar una longitud

de 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

Figure

Figura  2. CASOS DE PRUEBA
Tabla 1. REQUISITOS
Figura  5. METODOLOGIAS AGIL
Figura  6. Plataforma de OneWindows
+7

Referencias

Documento similar

Debido al riesgo de producir malformaciones congénitas graves, en la Unión Europea se han establecido una serie de requisitos para su prescripción y dispensación con un Plan

Como medida de precaución, puesto que talidomida se encuentra en el semen, todos los pacientes varones deben usar preservativos durante el tratamiento, durante la interrupción

Además de aparecer en forma de volumen, las Memorias conocieron una primera difusión, a los tres meses de la muerte del autor, en las páginas de La Presse en forma de folletín,

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

entorno algoritmo.

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la