SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE...

78
SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS DE SOFTWARE ALEXANDER ESCAMILLA VILLARRAGA NELLY YURANI MARTÍNEZ ZAMUDIO UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA INGENIERIA TELEMÁTICA BOGOTÁ 2017

Transcript of SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE...

Page 1: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE

PROYECTOS DE SOFTWARE

ALEXANDER ESCAMILLA VILLARRAGA

NELLY YURANI MARTÍNEZ ZAMUDIO

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD TECNOLÓGICA

INGENIERIA TELEMÁTICA

BOGOTÁ

2017

Page 2: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE

PROYECTOS DE SOFTWARE

ALEXANDER ESCAMILLA VILLARRAGA

Código: 20152678122

NELLY YURANI MARTÍNEZ ZAMUDIO

Código: 20152678028

Trabajo de grado para optar el título de

INGENIERO EN TELEMÁTICA

Tutor:

Ing. NORBERTO NOVOA TORRES

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD TECNOLÓGICA

INGENIERIA TELEMÁTICA

BOGOTÁ

2017

Page 3: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

Nota de aceptación

___________________________________

___________________________________

___________________________________

___________________________________

___________________________________

___________________________________

___________________________________

Firma del Jurado

___________________________________

Firma del Tutor

Page 4: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

TABLA DE CONTENIDO

INTRODUCCIÓN 8

RESUMEN 9

ABSTRACT 10

1. FASE DE PLANEACIÓN 11

1.1. Titulo 11

1.2. Tema 11

1.3. Planteamiento del problema 11

1.3.1. Descripción 11

1.3.2. Pregunta de investigación 12

1.4. Objetivos 12

1.4.1. Objetivo general 12

1.4.2. Objetivo especifico 12

1.5. Alcances 13

1.6. Delimitaciones 13

1.6.1. Técnica 13

1.6.2. Espacial 13

1.6.3. Temporal 13

1.7. Recursos 14

1.7.1. Humanos 14

1.7.2. Físicos 14

1.7.3. Tecnológicos (software) 14

1.7.4. Financieros 15

1.8. Marco de referencia 15

1.8.1. Marco teórico 17

1.8.2. Marco metodológico 36

1.9. Cronograma de actividades 40

1.10. Propuesta metodológica 41

2. Análisis, diagnóstico y levantamiento de requerimientos 43

2.1. Descripción 43

2.1.1. Portafolio de servicios 43

2.2. Análisis 43

Page 5: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

2.3. Diagnostico 44

3. Requisitos, elementos y restricciones el sistema 46

3.1. Requisitos 46

3.2. Características operacionales 48

3.3. Elementos del sistema 48

3.4. Restricciones del sistema 49

4. Diseño módulos del sistema telemático 50

4.1. Modelo de procesos 50

4.1.1. Administración de usuarios 50

4.1.2. Crear estimación 52

4.1.3. Consultar estimación 53

4.2. Desarrollo de módulos 54

4.2.1. Módulos aplicación 54

4.2.2. Microservicio 56

4.2.3. PostgreSQL 56

4.2.4. Node.js 56

4.2.5. Arquitectura 57

4.2.5.1. Análisis de protocolos de comunicaciones 57

4.2.5.2. Conclusiones de protocolos 60

4.2.5.3. Diseño general del sistema telemático 60

5. Pruebas 62

5.1. Login 62

5.2. Crear nueva estimación 64

5.3. Evidencias pruebas 68

5.4. Conclusiones pruebas 70

6. Propuesta de nuevo proceso de estimación 71

7. Evaluación de la solución 73

8. CONCLUSIONES 74

9. Referencias Bibliográficas 75

ANEXOS 76

Page 6: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

LISTA DE TABLAS

Tabla 1: Recursos financieros........................................................................... 15

Tabla 2: Clasificación de los actores ................................................................. 32

Tabla 3: Clasificación de los casos de uso ....................................................... 32

Tabla 4: Cálculo de factores técnicos ............................................................... 34

Tabla 5: Peso factores de entorno o ambientales ............................................. 35

Tabla 6: Requisitos iniciales para el sistema telemático ................................... 47

Tabla 7: Set pruebas funcionalidad de login ..................................................... 62

Tabla 8: Set pruebas crear nueva estimación ................................................... 64

Tabla 9: Evidencias Pruebas Login ................................................................... 68

Tabla 10: Evidencias Pruebas Crear Estimación .............................................. 69

Page 7: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

LISTA DE ILUSTRACIONES

Ilustración 1: Sistema Telemático ..................................................................... 19

Ilustración 2: Ejemplo aplicación con arquitectura monolítica ........................... 21

Ilustración 3: Ejemplo aplicación arquitectura de microservicios ...................... 22

Ilustración 4: Imagen alegórica del sistema operativo ...................................... 25

Ilustración 5: Pasos básicos en el método de estimación Puntos Caso de Uso 31

Ilustración 6: Cronograma ................................................................................. 40

Ilustración 7: Diagrama Flujo Creación Usuarios .............................................. 51

Ilustración 8: Diagrama Flujo Creación Nueva Estimación ............................... 52

Ilustración 9: Diagrama Flujo Consultar Estimación .......................................... 53

Ilustración 10: Diagrama de clases sistema telemático .................................... 54

Ilustración 11: Diagrama de componentes del sistema telemático ................... 55

Ilustración 12: Capas Modelo TCP/IP ............................................................... 59

Ilustración 13: Diseño general sistema telemático ............................................ 61

Ilustración 14: Flujo proceso general sistema telemático .................................. 61

Ilustración 15: Diagrama Flujo Propuesta Nuevo Proceso Estimación ............. 71

Page 8: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

8

INTRODUCCIÓN

Todas las organizaciones basan su funcionamiento en el desarrollo de

actividades, que se nutren de procesos que permiten alcanzar un objetivo

específico. Dicha gestión de procesos debe ser optima y apoyada de tecnología,

buscando así alcanzar los mejores resultados, que beneficien a la compañía en

su participación competitiva y comercial, en cada uno de los escenarios que se

presentan en el día a día.

Para las empresas dedicadas al desarrollo de software, es también necesario

ayudar a optimizar todos los procesos de cada uno de los grupos de interés que

la componen, y que benefician la organización tanto interna como externamente.

Dentro de la primera etapa (planificación), una de las principales actividades, es

la estimación del producto a desarrollar, tarea que puede ser compleja puesto

que al principio se conoce muy poco acerca de la solución que necesita

determinado cliente y elaborar una propuesta se convierte en algo intuitivo (juicio

de experto) y riesgoso, a eso debe sumarse que a causa de las presiones de la

competencia y demanda del mercado, es necesario dar una propuesta rápida que

incluya tiempos y costos del proyecto.

Para mitigar el impacto de las malas estimaciones, las empresas han usado el

concepto de Punto de Función para realizar esta actividad, puesto que éste

representa una medida independiente de la tecnología de software (por ejemplo,

de los frameworks o librerías particulares a utilizar) que se utilice en el desarrollo

del software. El Punto de Función (PF) es una unidad de medida base para un

requerimiento de usuario, caracterizada a través de un conjunto de tipos de

componentes, como por ejemplo entradas y salidas de datos, archivos, consultas,

etc.

Para abordar la anterior situación, el presente trabajo tiene como propósito

desarrollar un sistema telemático para la estimación de esfuerzo de proyectos de

software, el cual se integre y comunique con microservicios por medio de una API

rest, para ayudar en el proceso de estimación de la empresa BITS Américas

S.A.S.

Page 9: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

9

RESUMEN

Actualmente la empresa BITS Américas S.A.S, realiza el proceso de estimación

de proyectos de software mediante el juicio de experto, el cual de acuerdo a su

criterio y experiencia diligencia un formato Excel, en el que establece los casos

de uso y la complejidad que va a tener cada uno, y de esta forma lograr dar al

cliente el tiempo y esfuerzo que tendrá el desarrollo de la necesidad.

Dicha actividad no cuenta con un sistema que facilite el cálculo ágil de la

estimación de tiempo y esfuerzo requeridos para el desarrollo de un proyecto de

software, y que a este soportado por una metodología reconocida y fiable que

reduzca el margen de error en las estimaciones de la empresa como lo es el

método de Puntos de Casos de Uso. Es por ello que surge la necesidad de un

sistema telemático basado en arquitectura de micro servicios, que permita un

acceso rápido y eficiente al histórico de todas las estimaciones de la empresa, y

también la creación de nuevas estimaciones, en donde se pueda obtener el

tiempo y el esfuerzo que se necesita para un nuevo proyecto.

El sistema y el documento se basan en lo definido por las fases de la metodología

de mejoramiento continua PHVA, con ella pudo establecerse claramente el

alcance y limitaciones, como también el orden en el que debía trabajarse el

proyecto. Siguiendo lo planteado por la metodología implementada, se realiza un

análisis, diagnóstico de la necesidad de la empresa para el tema de las

estimaciones de nuevos proyectos de software, identificados se evalúan las

características y restricciones que tendrá el sistema telemático y lo que se va a

desarrollar para poder optimizar el proceso de la empresa.

Como posible solución, para mejorar el proceso interno de TI, se crea un prototipo

que permite realizar el cálculo de estimación de esfuerzo y tiempo soportado bajo

lo que define el método de Puntos por casos de uso, cuando ya esté terminado

el sistema, se realizarán pruebas de aceptación para validar la funcionalidad de

todos los módulos y que permitan identificar si la solución satisface las

necesidades del usuario final.

Por último, se dan a conocer las conclusiones del proyecto.

Page 10: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

10

ABSTRACT

Currently the company BITS Americas SAS, carry out the process of estimating

software projects by the evaluation expert, who according to his criteria and

experience diligently an Excel format, which establishes the use cases and the

complexity that will have each one, and in this way achieve the client the time and

effort that have the development of the need.

This activity does not have a system that facilitates the calculation of the

estimation of time and effort necessary for the development of a software project,

and that is supported by a recognized and reliable methodology that reduces the

margin of error in the estimates of the company such as the Use Point Points

method. That is why the need arises for a telematic system based on a micro

services architecture, which allows a fast and efficient access to the history of all

the company's estimates, as well as the creation of new estimates, where you can

get the time and effort that is needed for a new project.

The system and the document are based on the phases of the continuous

improvement methodology. PHVA, with the same meaning as the scope and limit,

also did. Following the proposed methodology, an analysis, the diagnosis of the

need of the company for the state of the new software projects, is carried out, the

characteristics and restrictions that the telematic system will be assessed and

what will be developed to be able to optimize the process of the company.

As a possible solution, to improve the internal IT process, a prototype is created

that allows calculation of the time and effort estimation supported under which the

method of Points of use can be defined, when the system is finished , acceptance

tests will be performed to validate the functionality of all the modules and that

allow to identify if the solution satisfies the needs of the end user.

Finally, the best conclusions of the project are given.

Page 11: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

11

1. FASE DE PLANEACIÓN

1.1. Titulo

Sistema telemático para la estimación de esfuerzo de proyectos de software.

1.2. Tema

Uso de un prototipo de sistema telemático que sirva como apoyo al proceso de

estimación de desarrollo de software para la empresa BITS Américas S.A.S.

1.3. Planteamiento del problema

1.3.1. Descripción

Bits Américas S.A.S, es una empresa que se dedica al desarrollo de software

tanto a nivel nacional como internacional, llevando en el mercado de TI ya más

de 9 años. Actualmente para planificar un proyecto de software, la compañía

realiza las tareas de estimación de tiempos de forma tradicional, es decir,

basados en el juicio o Criterio de Experto, en donde el medidor usa su perspectiva

y experiencia para realizar dicha actividad.

Después de la experiencia propia y de la observación de los procesos de

planificación que usa la empresa para los proyectos de software, se identificó que

la estimación de tiempos resulta ser una labor compleja y generalmente poco

realista, que conduce a pronosticar valoraciones imprecisas, debido a factores

como: no disponer de información detallada del proyecto precisando un tamaño

equivocado, basarse en información histórica de proyectos anteriores (todos los

proyectos no son iguales), determinar una complejidad sin tener en cuenta los

recursos que se van a utilizar, incertidumbre estructural, no contar con un experto

de negocio o un individuo que conozca las plataformas o solución que el cliente

necesita de acuerdo a la función de su negocio, y no tener un método ágil para

la estimación.

A continuación, se listan algunas consecuencias o impactos negativos que tiene

una incorrecta definición de estimación de un proyecto:

● Inconformidad en los clientes pues estos requieren respuestas inmediatas.

Page 12: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

12

● Desfase de los tiempos y costos del proyecto.

● Problemas gerenciales y de administración del proyecto.

● Incumplimiento en fechas de entrega, atrasando el cronograma del

proyecto.

● Impactos negativos en el ciclo de vida de desarrollo del software.

● Baja calidad en el producto final entregado.

● Reputación de la empresa

1.3.2. Pregunta de investigación

¿Cómo mejorar el proceso de estimación de esfuerzo de los proyectos de

software en Bits Américas S.A.S?

1.4. Objetivos

1.4.1. Objetivo general

Crear un sistema telemático que busque estimar el esfuerzo de proyectos de

software aplicando la metodología puntos por casos de uso y arquitectura de

micro servicios que se comuniquen a través de una API basada en el protocolo

HTTP para Bits Américas S.A.S.

1.4.2. Objetivo especifico

● Planear un nuevo proceso para la actividad de estimación que permita

establecer el esfuerzo de un proyecto de software dentro de la compañía

Bits Americas S.A.S.

● Implementar un nuevo proceso que se apoye en un sistema telemático

realizando la integración y comunicación con microservicios por medio de

una API.

● Analizar los resultados obtenidos para verificar que soportan y están

alineados al alcance definido para el nuevo proceso de estimación.

● Evaluar los resultados obtenidos del nuevo proceso de estimación de

esfuerzo para la compañía Bits Américas con el fin de identificar las

posibles mejoras que pueden aplicarse.

Page 13: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

13

1.5. Alcances

El prototipo de software será responsive, además de ser desarrollado con

tecnologías y herramientas libres (open source), por ello no representará en un

gasto económico grande. Por otro lado, la parte lógica estará apuntando

directamente a lo que define la métrica de estimación de software de puntos

función.

Este prototipo contará con las siguientes características:

● Servicio de login.

● Registro de nuevos usuarios.

● Registro de nuevas estimaciones.

● Consulta de histórico de estimaciones y detalle de cada una.

1.6. Delimitaciones

1.6.1. Técnica

● Este proyecto está enfocado hacia el desarrollo de un prototipo de sistema

telemático responsive como herramienta de apoyo para líderes de

proyecto y otros interesados de la empresa Bits Américas S.A.S para

realizar el proceso de estimación de software.

● Las tecnologías usadas para el desarrollo de este prototipo son:

PostgreSQL, JavaScript, frameworks AngularJs y LoopBack.

1.6.2. Espacial

El prototipo que se pretende desarrollar con este proyecto está dirigido a

proporcionar una posible solución para la empresa Bits Américas S.A.S.

1.6.3. Temporal

La duración de los procesos correspondientes al desarrollo integral del proyecto

está contemplada dentro del cronograma (ver página 39) de trabajo que está

previsto para este por 13 semanas.

Page 14: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

14

1.7. Recursos

1.7.1. Humanos

● 2 ingenieros telemáticos. ● 1 tutor.

1.7.2. Físicos

• PC Intel Cpre i5-5200U CPU 2.20 GHz

RAM 12.0 GB

Disco Duro: 600 GB

• Sony Xperia T2

1.7.3. Tecnológicos (software)

● Microsoft Word 2015 ● Microsoft Project 2015

● Node.Js ● Angular 2.0

● Loopback ● Ubuntu 16.04.03 LTS

Page 15: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

15

1.7.4. Financieros

Tabla 1: Recursos financieros

Actividad de costo

Descripción Cantidad Valor unitario en pesos

Valor total en pesos

Papelería Fotocopias 50 $150 $7.500

Resma de papel 2 $13.000 $26.000

Impresiones 450 $150 $67.500

Medios magnéticos de almacenamiento

3 $1.000 $3.000

Tiempo del tutor

Medida en horas

40 $35.000 $1’400.000

Tiempo del estudiante

Medida en meses

3 $500.000 $1’500.000

Transporte Días 30 $4.000 $120.000

Otros Acceso a internet y luz por mes

$225.000

Eventualidades $600.000

VALOR A PAGAR $3’949.000 Fuente: Propia

1.8. Marco de referencia

En el sector del mercado de desarrollo de software, la creciente competitividad

en el mercado hace que las empresas no sean ajenas al hecho de requerir

sistematizar procesos y actividades, esto con el fin de ser más productivos y

eficaces, y a su vez eliminar costos y tiempo en cuanto a las tareas que se ejercen

diariamente en su cadena de producción. Es por ello que implementar una

herramienta de apoyo de estimación (que es una de las bases más importantes

para poder planificar correctamente el proyecto) que sirva a todos los miembros

del equipo de trabajo que se involucra en el desarrollo del proyecto, reduzca la

subjetividad e índices de errores y otorgue un criterio de acierto alto en el proceso

respectivo es de utilidad.

En la actualidad existen varios métodos de estimación de software, como lo son:

por puntos función: IFPUG, NESMA, Mk-II, COSMIC, FiSMA y Karner (puntos por

casos de uso); basados en el conocimiento empírico de los expertos (líderes de

proyectos y/o gerentes); por analogía, que se basa en experiencias

Page 16: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

16

documentadas; COCOMO -(Constructive Cost Model) II- y SLIM (Software

LIfecycle Management)1. Algunos de los criterios para la estimación son:

1. Clasificar cada interacción entre actor y caso de uso según su complejidad

y asignar un peso en función de ésta. La complejidad de los actores puede

corresponderse con una de las tres categorías posibles:

a. Simple, representa a otro sistema con una API definida. Se le asigna

un peso de valor 1.

b. Medio, representa a otro sistema que interactúa a través de un

protocolo de comunicaciones. Por ejemplo, TCP/IP o a través de un

interfaz por línea de comandos. Se le asigna un peso de valor 2.

c. Complejo, la interacción se realiza a través de una interfaz gráfica. Se

le asigna un peso de valor 3.

2. Calcular la complejidad de cada caso de uso según el número de

transacciones (incluyendo caminos alternativos) o pasos del mismo.

3. Calcular los Puntos Casos de Uso No Ajustados (UUCP) del sistema. Se

obtienen sumando los Puntos Casos de Uso de todos y cada uno de los

actores y casos de uso que se han identificado y catalogado en función de

su complejidad.

4. Cálculo de los Factores Técnicos (TCF). A cada uno de los Factores

Técnicos de la tabla siguiente se le asigna un valor de influencia en el

proyecto entre 0 (no tiene influencia) a 5 (esencial), 3 se considera de

influencia media.

5. Cálculo de los Factores de Entorno. A cada uno de los Factores de Entorno

de la tabla siguiente se le asigna un valor de influencia en el proyecto entre

0 (no tiene influencia) a 5 (esencial), 3 se considera de influencia media.

6. Obtención de los Puntos Casos de Uso Ajustados. Una vez calculados los

dos factores calculamos el valor ajustado de Puntos Casos de Uso.

Lo anterior da una visión general de las pautas a tener en cuenta dentro del

sistema de estimación y explícitamente sobre algunos criterios utilizados para

realización de esta tarea. Ahora bien, como se ha expresado anteriormente hacer

un sistema de estimación que ayude y satisfaga las necesidades prioritarias de

BITS Americas S.A.S, cuyas operaciones para este proceso actualmente son

manejados de forma tradicional, es decir, por medio del juicio u opinión de un

experto, presenta inconsistencias, pérdida de tiempo y costos que se ven

reflejados en la puesta en marcha de cada proyecto y que podría ser mejorado

con la implementación de una herramienta que realice un cálculo con base a

ciertos criterios.

Page 17: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

17

Por otro lado, al centrarse en la investigación de antecedentes que hablen sobre

métodos y herramientas de estimación de software a nivel nacional, no se

encuentran sistemas telemáticos que apoyen o sean una base para la solución

propuesta, por lo cual es tal vez el primer acercamiento al problema planteado

identificando los elementos y características que pueden usarse para resolverse

y que se espera sirvan como base para la realización de nuevas investigaciones

para otros autores.

Ya por último, a la hora de implementar cualquier metodología o referencia guía

dentro de la realización del proyecto, es necesario poder comparar

requerimientos y necesidades similares; además de tener en cuenta los posibles

escenarios que se puedan presentar a lo largo de la implementación, uno de los

factores importantes es tener en cuenta las fórmulas o criterios que hacen parte

del cálculo de la estimación, incluyendo un trabajo con calidad y con ayuda de

tecnologías al alcance y sistematización de información que puede disminuir

tiempos dedicados a la actividad y principalmente costos dentro del proceso.

1.8.1. Marco teórico

Telemática

Etimológicamente el término telemática o teleinformática proviene del vocablo

griego “tele” que significa “lejos o distancia” y del vocablo de origen latín “matica”

que significa información (fuente http://conceptodefinicion.de/telematica/). Y hace

referencia a la conjunción de telecomunicaciones e informática se refiere a la

disciplina que trata la comunicación entre equipos de computación distantes. El

nombre Telemática se genera de la palabra telecomunicaciones, y la palabra

Informática.

La Telemática cubre un campo científico y tecnológico de una considerable

amplitud, englobando el estudio, diseño, gestión y aplicación de las redes y

servicios de comunicaciones, para el transporte, almacenamiento y procesado de

cualquier tipo de información (datos, voz, vídeo, etc.), incluyendo el análisis y

diseño de tecnologías y sistemas de conmutación. Es por esto que los sistemas

telemáticos en su mayoría forman parte de sistemas informáticos, es decir, son

subsistemas de los sistemas informáticos o sistemas de información. La

telemática también incluye servicios como el e-learning, comercio electrónico, TV

digital, etc.

La Telemática abarca entre otros conceptos los siguientes planos funcionales:

Page 18: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

18

● El plano de usuario, donde se distribuye y procesa la información de los

servicios y aplicaciones finales;

● El plano de señalización y control, donde se distribuye y procesa la

información de control del propio sistema, y su interacción con los

usuarios;

● El plano de gestión, donde se distribuye y procesa la información de

operación y gestión del sistema y los servicios, y su interacción con los

operadores de la red.

Cada uno de los planos se estructura en subsistemas denominados entidades de

protocolo, que a su vez se ubican por su funcionalidad en varios niveles.

¿Qué es la telemática?

La Telemática es una disciplina científica y tecnológica que surge de la evolución

y fusión de la telecomunicación y de la informática. El término Telemática se

acuñó en Francia (télématique)

Ahora bien, el concepto, como se indica en este informe, también puede ligarse

a un origen estadounidense: compunication, o como se utiliza más habitualmente

Computer and Communications. No obstante, no es casualidad la diferencia entre

los términos: responden a contextos diferentes, en efecto, hay matices claves a

distinguir.

La Telemática cubre un campo científico y tecnológico de una considerable

amplitud, englobando el estudio, diseño, gestión y aplicación de las redes y

servicios de comunicaciones, para el transporte, almacenamiento y procesado de

cualquier tipo de información (datos, voz, vídeo, etc.), incluyendo el análisis y

diseño de tecnologías y sistemas de conmutación. Se la define como "la ciencia

que estudia el conjunto de técnicas que es necesario usar para poder transmitir

datos dentro de un sistema informático o entre puntos de él situados en lugares

remotos o usando redes de telecomunicaciones”1.

_______________________

1 Salazar, Fernando (2013), Dudas informáticas ¿Qué es la telemática? ¿Para qué sirve?, recuperado el 14 de octubre

del 2017, en http://dudasinformaticass.blogspot.com.co/

Page 19: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

19

Sistema telemático

Un sistema telemático se encarga de interconectar ordenadores, terminales,

switch, router…..usando algún medio adecuado como el cable del teléfono,

coaxial, fibra, etc.

Cada vez que conectamos dos equipos informáticos separados por una distancia

y realizamos una transmisión de datos, estaremos hablando de un sistema

telemático.

No solo se compone de un ordenador y un cable o WiFi sino que, detrás de todo

eso, hay una información codificada que hay que convertir y los dispositivos que

realizan esas funciones, también están dentro de la definición2. Consta de los

siguientes elementos: Información, emisor, receptor y un canal; desde otro punto

de vista distinguimos elementos de software y hardware.

Ilustración 1: Sistema Telemático

Fuente: https://juleninforma.wordpress.com/2011/10/19/%C2%BFque-es-un-sistema-telematico/

_______________________

2 Rodriguez, Julen (2011), Que es un sistema telemático, recuperado el 14 de octubre del 2017, en

https://juleninforma.wordpress.com/2011/10/19/%C2%BFque-es-un-sistema-telematico/

Page 20: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

20

Microservicios

Una “arquitectura de microservicios” es un enfoque para desarrollar una

aplicación software como una serie de pequeños servicios, cada uno

ejecutándose de forma autónoma y comunicándose entre sí, por ejemplo, a

través de peticiones HTTP a sus API3.

Normalmente hay un número mínimo de servicios que gestionan cosas comunes

para los demás (como el acceso a base de datos), pero cada microservicio es

pequeño y corresponde a un área de negocio de la aplicación.

Además, cada uno es independiente y su código debe poder ser desplegado sin

afectar a los demás. Incluso cada uno de ellos puede escribirse en un lenguaje

de programación diferente, ya que solo exponen la API (una interfaz común, a la

que le da igual el lenguaje de programación en la que el microservicio esté

programado por debajo) al resto de microservicios.

No hay reglas sobre qué tamaño tiene que tener cada microservicio, ni sobre

cómo dividir la aplicación en microservicios, pero algunos autores como Jon

Eaves caracterizan un microservicio como algo que a nivel de código podría ser

reescrito en dos semanas.

_______________________

3 García Oterino, Ana M. Del Carmen (2015), ¿Qué son los microservicios?, recuperado el 14 de octubre del 2017, en

http://www.javiergarzas.com/2015/06/microservicios.html

Page 21: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

21

Comparativa Enfoque Monolítico vs Enfoque Microservicios

● Visión Monolítica

Ilustración 2: Ejemplo aplicación con arquitectura monolítica

Fuente: http://www.javiergarzas.com/2015/06/microservicios.html

En una arquitectura monolítica, la aplicación se desarrolla como una única unidad

que no necesitará de ningún componente externo para funcionar, todos los “ciclos

de cambio” están vinculados unos a otros, por lo que la más mínima modificación

en una remota sección de la app conllevaría a la creación y despliegue de una

versión completamente nueva. Se puede por ejemplo acceder a la página web

de una tienda, realizar compras, etc., gracias a un servidor, una máquina que

está ejecutando el código de la aplicación, en forma de archivo war, que

eventualmente se conecta a una base de datos para recuperar información.

Cuando un usuario compre un producto vía web, mostremos los productos

disponibles, etc., la aplicación responderá de una forma u otra, según la hayamos

programado, pero el código de las distintas lógicas de negocio (inventario, pagos,

envíos) aunque puede estar separado en distintos módulos del código, finalmente

se empaqueta en un único archivo ejecutable. Por eso la llamo arquitectura

monolítica.

Page 22: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

22

Si hago un cambio en el módulo de pagos, tendré que subir a producción de

nuevo todo el código, incluido los módulos de inventario y envíos, a pesar de no

haberlos cambiado.

Además, para escalar la aplicación (por ejemplo, dar servicio a muchos usuarios)

tendré que ir ejecutando copias de mi aplicación bajo balanceadores de carga,

que vayan redireccionando a los usuarios hacia un sitio u otro, en función de si

el sistema está muy saturado. En este caso, tendré que replicar toda la aplicación,

aunque solo sea el módulo de pagos el que concentre la sobrecarga.

Pero, por otra parte, si mi aplicación no es muy compleja, la subida será sencilla y fácil de gestionar, ya que en este caso hablamos de un único archivo ejecutable.

Visión Microservicios

Ilustración 3: Ejemplo aplicación arquitectura de microservicios

Fuente: http://www.javiergarzas.com/2015/06/microservicios.html

En vez de tener un único ejecutable, cada componente es un ejecutable por sí

mismo, y los servicios se comunican entre sí a través de llamadas.

Page 23: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

23

En este caso también tenemos un microservicio que implementa la interfaz web

con la que interactúan los usuarios y cierta lógica por debajo para llamar al

microservicio de pagos, inventario y envíos cuando sea necesario.

Como beneficios con respecto al anterior enfoque tenemos que:

● Cada microservicio se puede desplegar de forma independiente: un

cambio en el módulo de inventario no afectará a los demás, solo

tendremos que subir ese módulo.

● Es fácil de entender, ya que la lógica de negocio está bien separada.

● Facilita la gestión de equipos multifuncionales y autónomos. Por sí mismo,

cada microservicio es multifuncional: tiene una parte de base de datos, de

backend, etc., además de ser independiente de los demás. Podemos

formar equipos multifuncionales que se encarguen de varios

microservicios, escalando el proceso de desarrollo de forma más sencilla

(recuerda el post de la ley de Conway, tu arquitectura es reflejo de la

organización de tu equipo y al revés, y puede llegar a facilitar o dificultar

la gestión técnica).

● Es más fácil de escalar a nivel de software, ya que en lugar de replicar

toda la aplicación y gestionarlo con balanceadores, replicaremos los

microservicios que tengan más carga.

Ventajas de uso

A continuación, se listan algunas de los pros que tiene el uso de arquitectura de

microservicios4:

● Otorga a los desarrolladores libertad de desarrollar y desplegar servicios

de forma independiente.

● Un microservicio se puede desarrollar con un equipo de trabajo mínimo.

● Se pueden usar diferentes lenguajes de programación en diferentes

módulos.

● Fácil integración y despliegue automático (por ejemplo, con Jenkins).

● Fácil de entender y modificar, por lo que la integración de nuevos

miembros al equipo de desarrollo será muy rápida.

● Los desarrolladores podrán hacer uso de las tecnologías más actuales.

● El uso de contenedores hará el desarrollo y despliegue de la app mucho

más rápido.

_______________________

4 A, Esaú (2016), ¿Qué son los microservicios?, recuperado el 14 de octubre del 2017, en

https://openwebinars.net/blog/microservicios-que-son/

Page 24: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

24

● Funcionalidad modular, con lo que la modificación de un módulo no

afectará al funcionamiento del resto.

● Fácil de escalar e integrar con aplicaciones de terceros.

JavaScript

Es un lenguaje de programación que se utiliza principalmente para crear páginas

web dinámicas.

Una página web dinámica es aquella que incorpora efectos como texto que

aparece y desaparece, animaciones, acciones que se activan al pulsar botones

y ventanas con mensajes de aviso al usuario.

Técnicamente, JavaScript es un lenguaje de programación interpretado, por lo

que no es necesario compilar los programas para ejecutarlos. En otras palabras,

los programas escritos con JavaScript se pueden probar directamente en

cualquier navegador sin necesidad de procesos intermedios.

Se utiliza principalmente en su forma del lado del cliente (client-side),

implementado como parte de un navegador web permitiendo mejoras en la

interfaz de usuario y páginas web dinámicas4 aunque existe una forma de

JavaScript del lado del servidor(Server-side JavaScript o SSJS). Su uso en

aplicaciones externas a la web, por ejemplo en documentos PDF, aplicaciones

de escritorio (mayoritariamente widgets) es también significativo5.

Loopback

Es un framework open-source (licencia MIT) para Node.js que permite crear

aplicaciones de forma sencilla6:

● Creación de APIS REST con un wizard CLI.

● Creación de modelos.

● API Explorer.

_______________________

5 Wikipedia, (2017), JavaScript, recuperado el 14 de octubre del 2017, recuperado en

https://es.wikipedia.org/wiki/JavaScript

6 García, Luis Miguel (2016), Mi primera aplicación con StrongLoop LoopBack, recuperado en

https://unpocodejava.com/2016/04/05/mi-primera-aplicacion-con-strongloop-loopback/

Page 25: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

25

● Configuración de la autenticación y autorización.

● Conexión con diversos Data Stores: MySQL, Oracle, MongoDB,

Postgresql, entre otras.

● SDK para Android, Java, iOS y Javascript.

● Addons, por ejemplo para soportar notificaciones Push, login social,…

● StrongLoop Arc que es una UI para construir, desplegar, gestionar y

monitorizar aplicaciones LoopBack.

GNU/Linux

Es un sistema operativo: un conjunto de programas que le permiten interactuar

con su ordenador y ejecutar otros programas.

Un sistema operativo consiste en varios programas fundamentales que necesita

el ordenador para poder comunicar y recibir instrucciones de los usuarios; tales

como leer y escribir datos en el disco duro, cintas, e impresoras; controlar el uso

de la memoria; y ejecutar otros programas. La parte más importante de un

sistema operativo es el núcleo. En un sistema GNU/Linux, Linux es el núcleo. El

resto del sistema consiste en otros programas, muchos de los cuales fueron

escritos por o para el proyecto GNU. Dado que el núcleo de Linux en sí mismo

no forma un sistema operativo funcional, preferimos utilizar el término

“GNU/Linux” para referirnos a los sistemas que la mayor parte de las personas

llaman de manera informal “Linux”7.

Ilustración 4: Imagen alegórica del sistema operativo

Fuente: https://es.wikipedia.org/wiki/GNU/Linux

Page 26: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

26

Linux está modelado como un sistema operativo tipo Unix. Desde sus comienzos,

Linux se diseñó para que fuera un sistema multi tarea y multi usuario. Estos

hechos son suficientes para diferenciar a Linux de otros sistemas operativos más

conocidos. Sin embargo, Linux es más diferente de lo que pueda imaginar. Nadie

es dueño de Linux, a diferencia de otros sistemas operativos. Gran parte de su

desarrollo lo realizan voluntarios de forma altruista.

En 1984 comenzó el desarrollo de lo que más tarde sería GNU/Linux cuando la

Free Software Foundation (Fundación de software libre, N. del t.) comenzó a

desarrollar un sistema operativo libre de tipo Unix, llamado GNU.

El proyecto GNU ha desarrollado un conjunto de herramientas de software libre

para ser utilizados por Unix™ y sistemas operativos tipo Unix como Linux. Estas

herramientas permiten a los usuarios desarrollar tareas que van desde las

mundanas (como copiar o eliminar ficheros del sistema) a las arcanas (como

escribir y compilar programas o hacer edición sofisticada en una gran variedad

de formatos de documento).

Aunque hay muchos grupos e individuos que han contribuido a Linux, la Free

Software Foundation ha sido quien más ha contribuido. No sólo creó la mayor

parte de las herramientas que se utilizan en Linux sino también la filosofía y

comunidad que hizo que Linux fuera posible.

El núcleo Linux apareció por primera vez en 1991, cuando un estudiante de

informática finlandés llamado Linus Torvalds anunció en el grupo de noticias de

USENET comp.os.minix, una primera versión de un núcleo de reemplazo para

Minix. Para más referencias consulte la página de historia de Linux en Linux

Internacional.

Linus Torvalds sigue coordinando el trabajo de varios cientos de desarrolladores

con la ayuda de cierto número de responsables de subsistemas. Existe una

página oficial del núcleo Linux. Se puede encontrar un excelente resumen

semanal de las discusiones en la lista de correo linux-kernel en Kernel Traffic.

Puede encontrar más información sobre la lista de correo linux-kernel en el

documento PUF de la lista de correo «linux-kernel».

Los usuarios de Linux tienen una gran libertad al elegir sus programas. Por

ejemplo, un usuario de Linux puede elegir entre docenas de distintos intérpretes

de línea de órdenes y entre distintos entornos de escritorio. Tantas opciones

confunden a veces a los usuarios de otros sistemas operativos que no están

_______________________

7 Debian Org (2017), ¿Qué es GNU/Linyx?, recuperado el 14 de octubre del 2017, en ht https://www.debian.org/releases/stable/arm64/ch01s02.html.es

Page 27: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

27

acostumbrados a poder modificar el intérprete de línea de órdenes o el entorno

de escritorio.

Es menos probable que un sistema Linux se colapse, además tiene mejor

capacidad para ejecutar múltiples programas al mismo tiempo y es más seguro

que muchos otros sistemas operativos. Debido a estas ventajas, Linux es el

sistema operativo que ha experimentado mayor crecimiento en el mercado de los

servidores. Últimamente, Linux está empezando a ser popular entre los usuarios

domésticos y en empresas.

AngularJS

Es un framework de JavaScript de código abierto, mantenido por Google, que se

utiliza para crear y mantener aplicaciones web de una sola página. Su objetivo

es aumentar las aplicaciones basadas en navegador con capacidad de Modelo

Vista Controlador (MVC), en un esfuerzo para hacer que el desarrollo y

las pruebas sean más fáciles.

La biblioteca lee el HTML que contiene atributos de las etiquetas personalizadas

adicionales, entonces obedece a las directivas de los atributos personalizados, y

une las piezas de entrada o salida de la página a un modelo representado por las

variables estándar de JavaScript. Los valores de las variables de JavaScript se

pueden configurar manualmente, o recuperados de los recursos JSONestáticos

o dinámicos.

AngularJS está construido en torno a la creencia de que la programación

declarativa es la que debe utilizarse para generar interfaces de usuario y

enlazar componentes de software, mientras que la programación imperativa es

excelente para expresar la lógica de negocio.1 Este framework adapta y amplía

el HTML tradicional para servir mejor contenido dinámico a través de un data

binding bidireccional que permite la sincronización automática de modelos y

vistas. Como resultado, AngularJS pone menos énfasis en la manipulación

del DOM y mejora la testeabilidad y el rendimiento8.

Objetivos de diseño:

● Disociar la manipulación del DOM de la lógica de la aplicación. Esto mejora

la capacidad de prueba del código.

● Considerar a las pruebas de la aplicación como iguales en importancia a la

escritura de la aplicación. La dificultad de las pruebas se ve reducida

drásticamente por la forma en que el código está estructurado.

Page 28: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

28

● Disociar el lado del cliente de una aplicación del lado del servidor. Esto

permite que el trabajo de desarrollo avance en paralelo, y permite la

reutilización de ambos lados.

● Guiar a los desarrolladores a través de todo el proceso del desarrollo de una

aplicación: desde el diseño de la interfaz de usuario, a través de la escritura

de la lógica del negocio, hasta las pruebas.

Angular sigue el patrón MVVM (Model View View-Model) de ingeniería de

software y alienta la articulación flexible entre la presentación, datos y

componentes lógicos. Con el uso de la inyección de dependencias, Angular lleva

servicios tradicionales del lado del servidor, tales como controladores

dependientes de la vista, a las aplicaciones web del lado del cliente. En

consecuencia, gran parte de la carga en el backend se reduce, lo que conlleva a

aplicaciones web mucho más ligeras8.

Postgresql

PostgreSQL es una de las opciones más interesantes en bases de datos

relacionales open-source. Michael Stonebraker inició el proyecto bajo el nombre

Post Ingres a mediados de los 80’s con la idea de solucionar problemas

existentes en las bases de datos en esa época. MySQL fue por mucho tiempo el

motor más popular; pero hoy es propiedad de Oracle y esto limita su evolución.

Es gratuito y libre, además de que hoy nos ofrece una gran cantidad de opciones

avanzadas. De hecho, es considerado el motor de base de datos más avanzado

en la actualidad. (Y Platzi tiene un Curso de PostgreSQL)

Una característica interesante de PostgreSQL es el control de concurrencias

multiversión; o MVCC por sus siglas en inglés. Este método agrega una imagen

del estado de la base de datos a cada transacción. Esto nos permite hacer

transacciones eventualmente consistentes, ofreciéndonos grandes ventajas en el

rendimiento.

En Postgres no se requiere usar bloqueos de lectura al realizar una transacción

lo que nos brinda una mayor escalabilidad. También PostgreSQL tiene Hot-

Standby. Este permite que los clientes hagan búsquedas (sólo de lectura) en los

servidores mientras están en modo de recuperación o espera. Así podemos

hacer tareas de mantenimiento o recuperación sin bloquear completamente el

sistema.

_______________________

8 Wikipedia (2017), Angular Js, recuperado el 14 de octubre del 2017, en https://es.wikipedia.org/wiki/AngularJS

Page 29: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

29

Algunas de sus principales características son, entre otras9:

● Alta concurrencia

Mediante un sistema denominado MVCC (Acceso concurrente multi versión, por

sus siglas en inglés) PostgreSQL permite que mientras un proceso escribe en

una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada

usuario obtiene una visión consuntiva.

● Amplia variedad de tipos nativos

PostgreSQL provee nativamente soporte para:

Números de precisión arbitraria.

Texto de largo ilimitado.

Figuras geométricas (con una variedad de funciones asociadas).

Direcciones IP (IPv4 e IPv6).

Bloques de direcciones estilo CIDR.

● Direcciones MAC.

● Arrays.

Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que

pueden ser por completo indexables gracias a la infraestructura GiST de

PostgreSQL. Algunos ejemplos son los tipos de datos GIS creados por el

proyecto PostGIS.

Node.js

Es un entorno en tiempo de ejecución multiplataforma, de código abierto, para la

capa del servidor (pero no limitándose a ello) basado en el lenguaje de

programación ECMAScript, asíncrono, con I/O de datos en una arquitectura

orientada a eventos y basado en el motor V8 de Google. Fue creado con el

enfoque de ser útil en la creación de programas de red altamente escalables,

como por ejemplo, servidores web. Fue creado por Ryan Dahl en 2009 y su

evolución está apadrinada por la empresa Joyent, que además tiene contratado

a Dahl en plantilla.

Dentro de sus características encontramos:

• Concurrencia: Node.js funciona con un modelo de evaluación de un único

_______________________

9 Wikipedia (2017), Angular Js, recuperado el 14 de octubre del 2017, en https://platzi.com/blog/que-es-postgresql/

Page 30: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

30

hilo de ejecución, usando entradas y salidas asíncronas las cuales pueden

ejecutarse concurrentemente en un número de hasta cientos de miles sin

incurrir en costos asociados al cambio de contexto. Este diseño de

compartir un único hilo de ejecución entre todas las solicitudes atiende a

necesidades de aplicaciones altamente concurrentes, en el que toda

operación que realice entradas y salidas debe tener una función callback.

● V8: es el entorno de ejecución para JavaScript creado para Google

Chrome. Es software libre desde 2008, está escrito en C++ y compila el

código fuente JavaScript en código de máquina en lugar de interpretarlo

en tiempo real.

Node.js contiene libuv para manejar eventos asíncronos. Libuv es una

capa de abstracción de funcionalidades de redes y sistemas de archivo en

sistemas Windows y sistemas basados en POSIX como Linux, Mac OS X

y Unix. El cuerpo de operaciones de base de Node.js está escrito en

JavaScript con métodos de soporte escritos en C++.

● Módulos: Node.js incorpora varios "módulos básicos" compilados en el

propio binario, como por ejemplo el módulo de red, que proporciona una

capa para programación de red asíncrona y otros módulos fundamentales,

como por ejemplo Path, FileSystem, Buffer, Timers y el de propósito más

general Stream. Es posible utilizar módulos desarrollados por terceros, ya

sea como archivos ".node" pre compilados, o como archivos en javascript

plano. Los módulos Javascript se implementan siguiendo la

especificación CommonJS para módulos,8 utilizando una variable de

exportación para dar a estos scripts acceso a funciones y variables

implementadas por los módulos.9

Los módulos de terceros pueden extender node.js o añadir un nivel de

abstracción, implementando varias utilidades middleware para utilizar en

aplicaciones web, como por ejemplo los frameworks connect y express.

Pese a que los módulos pueden instalarse como archivos simples,

normalmente se instalan utilizando el Node Package Manager (npm) que

nos facilitará la compilación, instalación y actualización de módulos así

como la gestión de las dependencias.

● Desarrollo homogéneo entre cliente y servidor: puede ser combinado

con una base de datos documental (por ejemplo, MongoDB o CouchDB)

y JSON lo que permite desarrollar en un entorno de desarrollo JavaScript

Page 31: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

31

unificado. Con la adaptación de los patrones para desarrollo del lado del

servidor tales como MVC y sus variantes MVP, MVVM, etc. Node.js facilita

la reutilización de código del mismo modelo de interfaz entre el lado del

cliente y el lado del servidor.

Puntos de caso de uso

El método de Punto de Caso de Uso (UCP – Use Case Point), está basado en

los tradicionales Puntos Función. Es un método originado de la tesis de master

de Gustav Karner (Karner, 1993), desarrollada mientras trabajaba en Objectory

AB, bajo supervisión de Ivar Jacobson (creador de los casos de uso)10.

Ilustración 5: Pasos básicos en el método de estimación Puntos Caso de Uso

Fuente: http://233gradosdeti.com/articulos/metodo-de-estimacion-de-puntos-de-caso-de-uso/

Cálculo de los Puntos Caso de Uso sin ajustar (UUCP – UNADJUSTED USE

CASE POINTS)

• Clasificar cada interacción entre actor y caso de uso según su

complejidad y asignarle un peso: Para clasificar la complejidad de los

actores se debe determinar la forma en la que cada actor interactúa con

el sistema que se va a desarrollar. En concreto, los actores se clasifican

en 3 categorías diferentes, simple, medio y complejo. Un actor simple

_______________________

10 Garzas, Javier (2016), Método de estimación de Puntos de Caso de Uso, recuperado el 14 de octubre del 2017, en http://233gradosdeti.com/articulos/metodo-de-estimacion-de-puntos-de-caso-de-uso/

Page 32: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

32

representa otro sistema con una API definida, un actor medio es otro

sistema que interactúa a través de un protocolo como por ejemplo TCP/IP

o es una persona interactuando a través de una interfaz por línea de

comandos, y un actor complejo interactúa a través de una interfaz

gráfica.Una vez clasificado cada actor según su tipo de interacción, se le

asigna el peso correspondiente asociado a dicha interacción. En la Tabla

1, se presenta un resumen del procedimiento de clasificación de los

actores.

Tabla 2: Clasificación de los actores

Tipo de interacción Peso

Simple (a través de una API) 1

Medio (a través de un protocolo) 2

Complejo (a través de una interfaz

gráfica)

3

Fuente: http://233gradosdeti.com/articulos/metodo-de-estimacion-de-puntos-de-caso-de-uso/

• Calcular la complejidad de cada caso de uso según el número de

transacciones o pasos del mismo: Para realizar el cálculo de la

complejidad de un caso de uso se debe determinar el número de

transacciones, incluyendo los caminos alternativos. Una transacción es un

conjunto de actividades atómicas, donde se ejecutan todas ellas o

ninguna. En este contexto, cada caso de uso se debe clasificar en una de

las siguientes categorías: “simple”, “medio” o “complejo”. En concreto, un

caso de uso simple tiene 3 o menos transacciones, un caso de uso medio

de 4 a 7 transacciones, y un caso de uno complejo más de 7

transacciones. Una vez clasificado cada caso de uso, según el número de

transacciones, se le asigna el peso asociado a dicho número de

transacciones. En la Tabla 2 se presenta un resumen del procedimiento

de clasificación de los casos de uso.

Tabla 3: Clasificación de los casos de uso

Tipo de caso de uso Número de transacciones Peso

Simple 3 o menos 5

Medio De 4 a 7 10

Complejo 7 o más 15

Fuente: http://233gradosdeti.com/articulos/metodo-de-estimacion-de-puntos-de-caso-de-uso/

Page 33: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

33

• Calcular los Puntos Caso de Uso no ajustados (UUCP – Unadjusted Use Case Points): Los UUCP se calculan sumando la dificultad de las interacciones y la complejidad de los casos de uso, es decir, sumando el total de los pesos de los actores (clasificados en el paso 1) y el total de los pesos para los casos de uso (clasificados en el paso 2).

Ejemplo: 2 interacciones por Web: 2 * 3 = 6 4 UCP complejos: 4 * 3 = 12 UUCP = 6 + 12 = 18

Cálculo de los factores técnicos (TCF)

Para ajustar los UUCP (Puntos Caso de Uso no ajustados) calculados en los

pasos anteriores, se deben tener en cuenta factores de ajuste, tanto factores

técnicos, como factores de entorno.

En el caso de los factores técnicos (TCF), a cada factor definido en la Tabla 3

(Ri) se le asigna un valor entre 0 y 5, dependiendo de su influencia en el proyecto.

En este sentido, asignar un valor 0 significa que el factor es irrelevante para el

proyecto, un valor 3 es promedio y un valor 5 significa que el factor es esencial.

Una vez que todos los factores técnicos tienen asignado el valor de la influencia,

se procede al cálculo de los resultados de cada factor, es decir, se realiza una

multiplicación entre la influencia del factor y su peso asociado, ver en la Tabla 3

la columna “Resultado”.

Cuando se han calculado los resultados de cada uno de los factores técnicos, se

aplica la expresión descrita a continuación, donde el sumatorio se corresponde a

la suma de los resultados de los factores técnicos.

TCF= 0,6 + (0,01 * Sumatorio).

Page 34: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

34

Tabla 4: Cálculo de factores técnicos

Actor Descripción Peso

T1 Sistema distribuido. 2

T2 Objetivos de performance o tiempo de respuesta. 1

T3 Eficiencia del usuario final. 1

T4 Procesamiento interno complejo. 1

T5 El código debe ser reutilizable. 1

T6 Facilidad de instalación. 0.5

T7 Facilidad de uso. 0.5

T8 Portabilidad. 2

T9 Facilidad de cambio. 1

T10 Concurrencia. 1

T11 Incluye objetivos especiales de seguridad. 1

T12 Provee acceso directo a terceras partes. 1

T13 Se requiere facilidades especiales de entrenamiento a usuario. 1

Fuente: https://es.wikipedia.org/wiki/Puntos_de_caso_de_uso

Cálculo de los factores de entorno (EF)

Además de tener en cuenta los factores técnicos para el ajuste de los UUCP

(Puntos Caso de Uso no ajustados), en segundo lugar se deben contabilizar los

factores de entorno. Para ello, a cada factor de entorno definido en la Tabla 4 (Ri)

se le asigna un valor entre 0 y 5 dependiendo de su influencia en el proyecto.

Asignar un valor 0 significa que el factor es irrelevante para el proyecto, un valor

3 es promedio y un valor 5 significa que el factor es esencial.

Una vez que todos los factores de entorno tienen asignado el valor de la

influencia, se procede al cálculo de los resultados de cada factor, es decir, se

realiza una multiplicación entre la influencia del factor y su peso asociado, ver en

la Tabla 4 la columna “Resultado”.

Cuando se han calculado los resultados de cada uno de los factores, se aplica la

expresión descrita a continuación, donde el sumatorio se corresponde a la suma

de los resultados de los factores de entorno.

EF= 1,4 + (- 0,03 * Sumatorio).

Page 35: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

35

Tabla 5: Peso factores de entorno o ambientales

Factor Descripción Peso

E1 Familiaridad con el modelo de proyecto utilizado. 1.5

E2 Experiencia en la aplicación. 0.5

E3 Experiencia en orientación a objetos. 1

E4 Capacidad del analista líder. 0.5

E5 Motivación. 1

E6 Estabilidad de los requerimientos 2

E7 Personal part-time -1

E8 Dificultad del lenguaje de programación -1

Fuente: https://es.wikipedia.org/wiki/Puntos_de_caso_de_uso

Cálculo de los puntos de caso de uso ajustados (UCP)

Finalmente, para obtener los Puntos Caso de Uso fajustados (UCP) se utilizan

los datos obtenidos en los pasos anteriores, Puntos Caso de Uso fno ajustados

(UUCP) y factores de ajuste (TCF y EF), haciendo uso de la expresión que se

presentan a continuación.

UCP = UUCP * TCF * EF

Se debe tener en cuenta que a través del cálculo de esta expresión obtenemos

una estimación del tamaño y no del esfuerzo.

Estimación del esfuerzo

Como ocurre en otros métodos de estimación, una vez obtenido el tamaño, se

puede obtener el esfuerzo. Para ello, se utiliza la siguiente expresión:

Esfuerzo = UCP * Factor de Productividad

El método originario propone usar un factor de ajuste (Factor de Productividad)

similar al que se usa en el método de Puntos Función clásico, si bien Karner

propone concretamente 20 personas – hora por cada Punto Caso de Uso (UCP).

Otras propuestas son las de Barnerjee que propone un rango entre 15 y 30 horas,

o la de Scheider y Winters, que sugiere un refinamiento de los factores de entorno

(EF), en concreto, proponen seguir el procedimiento que se presenta a

continuación:

Contar los factores de entorno entre T1 y T6 cuya influencia es inferior a 3

(influencia promedio) y los factores de entorno entre R7 y R8 que son superiores

Page 36: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

36

a 3. Ver “factores de entorno” en la Tabla 4, pág. 5.

Entonces:

20 horas-hombre por UCP si el valor es =2

28 horas-hombre por UCP si el valor es =4

36 horas-hombre por UCP si el valor es =5, en este caso se debería replantear

el proyecto.

Se debe destacar, que el valor del esfuerzo estimado, calculado mediante la

expresión presentada anteriormente, no cubre todas las fases del ciclo de vida

del proyecto, sino que se refiere únicamente a las horas-hombre invertidas en el

desarrollo de la funcionalidad especificada en los casos de uso (fase de

codificación). La fase de codificación representa generalmente un 40% del

esfuerzo total del proyecto (ISBSG, 2005; Wikipedia, 2009).

En este sentido, para obtener el esfuerzo total del proyecto, se puede realizar un

nuevo ajuste que consiste en sumar a la estimación de esfuerzo obtenida por

UCP, las estimaciones de esfuerzo de las demás actividades relacionadas con el

desarrollo del software, que se pueden distribuir de la siguiente forma: análisis

10%, diseño 20%, codificación 40%, pruebas 15% y sobrecarga 15%.

1.8.2. Marco metodológico

El ciclo de Deming (de Edwards Deming), también conocido como círculo PDCA

(del inglés plan-do-check-act, esto es, planificar-hacer-verificar-actuar), es una

estrategia de mejora continua de la calidad en cuatro pasos, basada en un

concepto ideado por Walter A. Shewhart. Es muy utilizado por los sistemas de

gestión de la calidad (SGC) y los sistemas de gestión de la seguridad de la

información (SGSI)11.

Los resultados de la implementación de este ciclo permiten a las empresas una

mejora integral de la competitividad, de los productos y servicios, mejorando

continuamente la calidad, reduciendo los costos, optimizando la productividad,

reduciendo los precios, incrementando la participación del mercado y

aumentando la rentabilidad de la empresa u organización.

Este ciclo es de fácil aplicación, por lo cual se adapta a la forma en la que se

necesitan trabajar cada una de las actividades en el desarrollo de este proyecto:

planificación, se establecen los objetivos o lo que se pretende hacer en el

proyecto; hacer, consiste en la implementación de las acciones necesarias para

realizar lo que se planeó; verificar, si lo que hacemos corresponde a lo

Page 37: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

37

planificado; actuar, corregir lo que no resulto de acuerdo a lo planeado y tomar

las medidas necesarias.

¿Qué es planificar?

Es donde se establecen objetivos y se identifican los procesos necesarios para

lograr unos determinados resultados de acuerdo a las políticas de la

organización. En esta etapa se determinan también los parámetros de

medición que se van a utilizar para controlar y seguir el proceso. En esta etapa,

es importante plasmarse las 7 preguntas claves, cuyas palabras en inglés

empiezan con W y H (modelo 5W + 2H):

● ¿Qué se debe hacer?

● ¿Por qué se va a hacer? Razones que justifican por qué se va a realizar

lo que se va a hacer.

● ¿Cómo lo voy a hacer? (actividades que permiten alcanzar los objetivos).

● ¿Cuándo se va a realizar? (cronograma de actividades).

● ¿Dónde se va a hacer?

● ¿Quién lo va a hacer?

● ¿Cuánto vale hacerlo? (recursos necesarios para la ejecución de cada

actividad).

Respondiendo las preguntas anteriores, permite planear de forma ordenada y

siempre los elementos necesarios para el desarrollo del plan (objetivos y como

lograrlos). Si se cuenta con una buena planificación, se dará paso a una correcta

ejecución y verificación.

¿Qué es la ejecución?

Consiste en la implementación de los cambios o acciones necesarias para lograr

las mejoras planteadas. Con el objeto de ganar en eficacia y poder corregir

fácilmente posibles errores en la ejecución, normalmente se desarrolla un plan

piloto a modo de prueba o testeo12.

_______________________

11 (2017) Circulo de Deming, recuperado el 14 de octubre del 2017,

https://es.wikipedia.org/wiki/C%C3%ADrculo_de_Deming

12 (2015) ¿En qué consiste el ciclo PHVA de mejora continua?, recuperado el 14 de octubre del 2017,

https://www.isotools.org/2015/02/20/en-que-consiste-el-ciclo-phva-de-mejora-continua/

Page 38: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

38

¿Qué es la verificación?

Una vez se ha puesto en marcha el plan de mejoras, se establece un periodo de

prueba para medir y valorar la efectividad de los cambios. Se trata de una fase

de regulación y ajuste.

En esta etapa se pueden aparecer 3ciclos:

● Ciclo de mantenimiento: Si lo que hacemos, si corresponde a lo planeado,

es el momento de estabilizar el proceso, es importante definir claramente

que hacemos, capacitar a la gente, definir los métodos, los mecanismos

de operación y control y que sean claramente entendidos por la gente.

● Ciclos de corrección: Lo que se hace cuando lo que estaba previsto, no

corresponde a lo planeado. Comprende dos tipos de acciones: la

corrección, es decir, corregir el problema en ese instante; y la acción

correctiva: hacer para que el problema no vuelva a ocurrir.

● Ciclo de mejoramiento: Pasado un cierto tiempo, en mis procesos debo

pensar en qué puedo hacer para mejorar lo planeado. Aquí se pueden

generar ideas, tratar de buscar datos, el ver un análisis de la competencia,

el ver las potenciales tendencias, y determinar oportunidades de mejora.

Esto corresponderá las acciones preventivas, me lleva un análisis de

riesgos, y al mejoramiento continuo. Todo lo que hemos hecho en este

tercer ciclo, debemos incorporar el nuevo ciclo en mi etapa del planear.

Empieza entonces, a girar permanentemente el planear, hacer, verificar,

actuar. ¿Dónde se puede utilizar este ciclo? En todas las operaciones y

actividades diarias, podemos utilizarlo en la gerencia, empezando desde

la parte de planificación estratégica, podemos utilizarlo en cada uno de los

procesos que como organización ejecutamos. Podemos utilizarlo en

nuestra gestión de recursos humanos, podemos hacerlo aún en las

actividades del mejoramiento: qué mejoramiento planteamos, qué es lo

que hemos hecho en las etapas de mejoramiento, verificar si corresponde

a lo planeado para actuar para corregir o actuar para mejorar.

Un ciclo constante de planear, hacer, verificar, actuar, será un ciclo que

produce el mejoramiento en todos los rincones de la organización; a nivel

personal, a nivel empresarial, a nivel aún familiar. Para finalizar debo

preguntarme: ¿Qué hemos planificado el día de hoy, ¿qué hemos

ejecutado, hemos verificado si lo que hicimos corresponde a lo planeado,

¿cómo vamos a actuar para corregir, o cómo vamos a actuar para

mejorar?

Page 39: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

39

¿Qué es actuar?

Realizadas las mediciones, en el caso de que los resultados no se ajusten a las

expectativas y objetivos predefinidos, se realizan las correcciones y

modificaciones necesarias. Por otro lado, se toman las decisiones y acciones

pertinentes para mejorar continuamente el desarrollo de los procesos.

Page 40: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

40

1.9. Cronograma de actividades

Ilustración 6: Cronograma

Fuente: Propia

Page 41: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

41

1.10. Propuesta metodológica

Con la implementación de esta metodología, se buscó dar un mejoramiento al

proceso de estimación de esfuerzo y tiempo que realiza la empresa para los

proyectos de software, de esta forma, se puede optimizar dicha actividad y

generar así una respuesta mucho más rápida a los clientes que tiene la

compañía. Dentro de la propuesta, se busca implementar un sistema telemático

que realice la estimación bajo el método de Puntos de Casos de uso.

Dentro de las características del ciclo de mejoramiento PHVA, se ha encontrado

lo siguiente:

PLANEAR:

● Fijar el alcance del sistema por medio de la recolección de la información

disponible, en torno al método de estimación de esfuerzo por puntos de

caso de uso.

● Determinar los procesos y lineamientos sobre los cuales se desarrollará el

sistema de estimación.

● Análisis de las herramientas y tecnologías a usar para el desarrollo del

sistema telemático.

● Identificar si los procesos satisfacen la necesidad a solucionar.

● Desarrollar el plan para el desarrollo del sistema propuesto.

HACER

• Diseñar el proceso para estimación de esfuerzo y tiempo de software

acorde a las necesidades de la empresa, implementando el método de

estimación Puntos de casos de uso.

• Elaborar un prototipo el cual busca apoyar la actividad de estimación.

VERIFICAR

● Analizar el resultado obtenido en el desarrollo del sistema propuesto, de

acuerdo al alcance y procesos fijados, con ello se podrá identificar si se ha

cumplido con el resultado deseado.

● Identificar posibles desviaciones apoyándose en la verificación que haga

Bits Américas S.A.S.

● Revisar los problemas y errores surgidos en el desarrollo del sistema

telemático e identificar qué se aprendió de ellos.

Page 42: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

42

ACTUAR

• Tomar acciones para mejorar el desempeño del proceso.

Page 43: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

43

2. Análisis, diagnóstico y levantamiento de requerimientos

En esta fase se lleva a cabo la captura y análisis de la necesidad que tiene la

empresa BITS Américas S.A.S en cuanto al problema de estimación de proyectos

de desarrollo de software, para ello se pretende hacer un levantamiento de

requerimientos que ayude a especificar y comprender el propósito esperado para

el sistema.

2.1. Descripción

BITS Américas S.A.S fue fundada en el año 2008 en Colombia, bajo el concepto

de proporcionar Desarrollo de Software a la Medida y soluciones basadas en

sitios Web para las empresas. La empresa, se ha consolidado en tres grandes

líneas de negocio: Desarrollo de software a la medida, IT service y Soporte de

sitios web. A su vez, la compañía ha logrado incursionar en diferentes segmentos

de mercado tanto en Colombia como internacionalmente en países como

Guatemala, Salvador, Costa Rica, Honduras, Bolivia, Paraguay y Uruguay,

Ghana, Tanzania, Chad, Rwanda, Congo y Senegal.

2.1.1. Portafolio de servicios

Dentro de los servicios que ofrece BITS Américas a sus clientes se encuentra:

● Diseño y desarrollo de software basados en páginas web apoyando el

Desarrollo web con Drupal y Desarrollo web con .Net.

● IT services: consultoría y asesoría en TI, pruebas (Testing), monitoreo y

mantenimiento de software web para garantizar la calidad, eficiencia y

funcionalidad de los sistemas de información..

● Soporte a sitios web: soporte a sitios web con el fin de ayudar a mejorar

los procesos TI, con la identificación oportuna.

2.2. Análisis

Al estar en contacto con el área de TI de la empresa, por medio de trabajo directo

con ellos, se observó que el proceso de estimación de software se realiza de las

siguientes formas:

Page 44: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

44

● Estimación por analogía: se realiza una comparación del proyecto que

se va a tratar con proyectos similares finalizados por la empresa en el

pasado, se toman datos históricos y donde la información coincida para

poder estimar (esto generalmente lo realiza una persona del área

comercial).

● Criterio de experto: se consultan a varios expertos por lo general

arquitectos, líderes de desarrollo o líderes de proyectos, los cuales usan

su experiencia y entendimiento del proyecto para lograr realizar la

estimación.

Ambos procesos, se nutren en su gran mayoría, de documentos de alto nivel

realizados por personas que no cuentan con un dominio o conocimiento en la

ingeniería de software, en los que se puede encontrar información no muy

específica. Para realizar la estimación, no se observó un método o herramienta

estándar que facilite la medición del tamaño del software, por ello se hace

dificultoso, tener un valor aproximado al real en donde el desface sea pequeño,

como consecuencias negativas se tienen perdidas económicas y mala relación

con clientes, por este motivo se requiere implementar un método sistematizado

que permita estimar de forma fácil y rápida.

2.3. Diagnostico

El desarrollo del proyecto se emprendió con una vista de la forma en la que se

estima el software por cada una de las áreas implicadas en la empresa para esta

actividad, enfocándose principalmente en Comercial y en TI (arquitectos, líderes

de desarrollo y de proyectos) con el objetivo de tener clara la forma en la que se

realiza el proceso dentro de la compañía.

Las actividades identificadas fueron:

a. Se remite al líder de proyectos un caso interno el cual contiene la

información que se ha obtenido hasta el momento en un documento (por

lo general un documento de alto nivel o blueprint).

b. El caso interno se asigna a alguna persona idónea dentro del área de TI

para que revise el documento de requisitos recibido.

c. La persona quien tiene el caso realiza el análisis del documento que se

encuentra en el caso interno y con base a este identifica el alcance del

proyecto de software.

d. Una vez identificado el alance del proyecto de software se diligencia el

formato de estimación respectivo, dicho formato es un archivo en Excel.

Page 45: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

45

Nota: Si la información del documentó proporcionado es insuficiente, se

debe solicitar más información por medio del gestor del área comercial y

se retorna a “b” una vez se recibe la nueva información.

e. El arquitecto o líder de desarrollo, revisa documento de estimación y si es

necesario ajusta el valor obtenido de acuerdo a su juicio de experto y

asigna caso interno a gestor comercial.

De la observación, algunas de las posibles casusas identificadas que están

afectado el proceso fueron las siguientes:

● Deficiencia en una metodología o lineamientos adecuados para la

estimación.

● En la estimación no siempre participan expertos para dar su opinión

acerca de la complejidad del proyecto a desarrollar, casi siempre la

actividad la hace una persona del área comercial.

● Competencia con otras empresas proveedoras, esto hace que las

propuestas de BITS Américas deban ser rápidas, para ello se conforman

únicamente con el documento de alto de nivel o el planteamiento de los

requisitos que se haga por parte del cliente, que en la mayoría de

ocasiones no sabe lo que necesita con claridad, o ha tomado mal los

requisitos.

● No se tiene en cuenta la curva de aprendizaje del equipo técnico

(analistas, desarrolladores backend, desarrolladores front) tanto en las

tecnologías a usar como en la regla de negocio del proyecto.

● Comparación de proyectos pasados con los nuevos, y todos los proyectos

no son iguales.

● Dificultades en la definición del alcance del proyecto, por lo cual no puede

percibirse claramente el tamaño de este.

Page 46: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

46

3. Requisitos, elementos y restricciones el sistema

En esta etapa, se evalúan los principales requisitos, características y

restricciones del sistema telemático, esto en busca de mejorar el proceso de

estimación de software de la empresa.

3.1. Requisitos

De acuerdo con la observación de la actividad de estimación que se realiza en la

compañía, se identificaron los siguientes requisitos:

Page 47: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

47

Tabla 6: Requisitos iniciales para el sistema telemático

ID Requerimiento Alcance

R1 Registro de usuarios Se deberá contar con un módulo que

permita el registro de usuarios.

R2 Servicio de autenticación Se deberá contar con servicio de

autenticación, que permita inicio de sesión

por usuario y clave.

R3 Crear estimaciones Se deberá permitir crear estimaciones de

proyectos a un usuario autenticado.

R4 Consulta de estimaciones Se deberá permitir consultar las

estimaciones creadas en el sistema a un

usuario autenticado.

R5 Consulta detalle de una

estimación

Se deberá permitir consultar el detalle de

una estimación a un usuario autenticado.

R6 Editar una estimación Se deberá permitir modificar el detalle de

una estimación a un usuario autenticado.

R7 Consulta histórica de

estimaciones

Un usuario autenticado solo podrá ver las

estimaciones que el ha creado, no podrá ver

las de otros.

R8 Eliminar estimaciones Un usuario autenticado podrá eliminar

estimaciones creadas en el sistema.

R9 Microservicio Se requiere un microservicio que se

comunique por medio de un recurso API a

través de protocolos HTTP/REST.

R1

0

Usabilidad El sistema debe contar con una interfaz

intuitiva para el usuario.

Fuente: Propia

En el sistema telemático, solo intervendrá un tipo de rol (usuario autenticado)

quien será el que pueda manejar el CRUD de estimaciones.

Page 48: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

48

3.2. Características operacionales

En esta etapa se explican cada uno de los módulos que va a tener el sistema telemático:

● Login: modulo encargado del ingreso seguro de los usuarios que se

encuentran registrados en el sistema.

● Registro de usuarios: este módulo tiene como finalidad permitir el

registro de usuarios capturando la información básica de estos, como lo

son: username, contraseña, nombres y apellidos, tipo y número de

identificación, y correo personal.

Este módulo, es importante porque brinda seguridad al sistema telemático,

permitiendo el ingreso únicamente de usuarios autenticados.

● Registro de estimaciones por puntos función: este módulo se

encargará de permitir el ingreso y captura del nombre, y variables que

permiten hacer el cálculo de esfuerzo de software para el proyecto por

puntos función.

● Consulta de estimaciones por puntos función: este módulo tiene como

finalidad permitir se encargará de permitir la obtención de la información

obtenida en el detalle de cada una de las estimaciones por puntos por

casos de uso de la empresa, es decir, las que han creado todos los

usuarios del sistema.

3.3. Elementos del sistema

a. Aplicación con diseño responsive

Herramienta desarrollada en Visual Studio Code. Se crea una sola

página web que se adapta al navegador en el cual se está ejecutando,

permitiendo así a un usuario registrado en el sistema registrar nuevas

estimaciones de esfuerzo de software y así mismo consultar y

manipularlas (editar y eliminar).

b. API

Oculta el microservicio que se encuentra en el sistema. Las solicitudes

que llegan a la API, son procesadas y enrutadas, hacia el microservicio

especifico (en este caso, el enrutamiento será a un solo microservicio).

Page 49: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

49

c. Microservicios

Encargado de la parte lógica del sistema telemático, permite

interactuar e intercambiar información entre el cliente (web/mobile) y

la base de datos.

d. PosgreSQL

Sistema donde se almacenan todos los datos de las estimaciones de

esfuerzo de software recolectados al ejecutar cada una de las

funciones básicas en la base de datos.

3.4. Restricciones del sistema

● El sistema estará enfocado a nivel funcional a lo que define el método de

estimación de software por puntos función, que permite medir el esfuerzo

del software entregado al usuario final independiente de la tecnología a

usar en la constricción del mismo.

● Las pantallas de la solución propuesta serán implementadas bajo los

elementos que proporcione el framework y tecnologías a usar, cualquier

{cambio en el look&file deberá ser evaluado el impacto (tiempo y costos)

y la viabilidad del cambio.

● El proceso de registro de usuarios, como de las estimaciones estará sujeto

a la empresa BITS Américas S.A.S.

● El sistema no contará con un módulo de administración de contenidos o

parametrización de las formulas o variables que se necesitan para realizar

el cálculo de estimación de esfuerzo.

Page 50: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

50

4. Diseño módulos del sistema telemático

En este punto, después de realizar la observación de la actividad que se lleva

actualmente en la empresa para realizar las estimaciones de esfuerzo de

software, se diseñaron procesos que permiten optimizar la estimación de

software en la empresa.

4.1. Modelo de procesos

4.1.1. Administración de usuarios

a. Crear usuarios

En este proceso, se muestra como un usuario con rol administrador,

ejecuta el flujo pertinente para ingresar al sitio, y como puede crear un

nuevo usuario en el sistema, los cuales podrán interactuar en el sistema

para poder gestionar estimaciones.

Page 51: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

51

Ilustración 7: Diagrama Flujo Creación Usuarios

Fuente: Propia

Page 52: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

52

4.1.2. Crear estimación

Con este proceso, el usuario final, puede generar nuevas estimaciones en el sistema en

tiempo real.

Ilustración 8: Diagrama Flujo Creación Nueva Estimación

Fuente: Propia

Page 53: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

53

4.1.3. Consultar estimación

Con este proceso, el usuario final, podrá consultar el histórico de estimaciones

que se han creado en el sistema y a su vez, visualizar el detalle de la misma.

Ilustración 9: Diagrama Flujo Consultar Estimación

Fuente: Propia

Page 54: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

54

4.2. Desarrollo de módulos

Comprende los diferentes módulos y la estructura de la aplicación que compone

el sistema telemático.

4.2.1. Módulos aplicación

Ilustración 10: Diagrama de clases sistema telemático

Fuente: Propia

Page 55: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

55

Login: paquete o modulo, encargado de proporcionar la seguridad del sistema,

restringe el ingreso permitiendo acceso únicamente a usuarios registrados y

activos. Está compuesto por:

● UserApp

UseCasePoint: paquete o modulo encargado, de la lógica correspondiente a la

métrica de puntos por casos de uso, permitiendo registrar las nuevas

estimaciones en el sistema y el detalle de cada una para poder calcular así el

estimado respectivo del proyecto. Está compuesto por:

● Actor

● UseCase

● TechnicalComplexityFactor

● EnvironmentalComplexityFactor

● Measurement

A continuación, se presentan los diagramas de componenetes del sistema

telemático

Ilustración 11: Diagrama de componentes del sistema telemático

Fuente: propia

Page 56: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

56

4.2.2. Microservicio

Se implementan diferentes servicios basados en las principales funciones del

sistema telemático, aportando al sistema mayor escalabilidad, fácil

mantenimiento y bajo acoplamiento. Existen cuatro componentes:

• LoginModule: API REST que contiene la lógica de autenticación y acceso

al componente web MeasurementApp.

• UseCasePoint: API REST que contiene toda la lógica necesaria para

realizar una medición de esfuerzo basada en la metodología de puntos por

función por caso de uso.

• MeasurementApp: Componente Web que realiza la tarea de FrontEnd al

usuario e integra las APIs del sistema.

• PostgreSQL (Micro Container): Se utiliza arquitectura de micro contenedor

para tener la base de datos como un componente más y no como un

proceso de sistema operativo.

4.2.3. PostgreSQL

Base de datos que permite llevar funciones para obtener notificaciones en tiempo

real y poder guardar la información en la base de datos. Las peticiones a la base

de datos e realizan por medio del puerto 5432 (que es el que trae por defecto),

con este puerto se permiten las conexiones entrantes o externas al servidor

PostgreSQL. Esta actividad se lleva a cabo específicamente en la capa de

transporte del modelo TCP/IP, haciendo uso del protocolo TCP (abrir conexión,

transmisión de los bytes y cierre de la conexión), lo cual permite la conexión punto

a punto entre los hosts con el fin de enviar y recibir la información.

4.2.4. Node.js

De la parte del servidor se trabajará con Node.js, este escucha las peticiones a

través de los puertos 3000, 3001 y 9000. Recibe las peticiones HTTP que hace

el cliente web, interactuando con la base de datos para guardar la información

resultante de la transacción allí; una vez realizado este proceso, se pasa la

respuesta al cliente web que realiza la petición orientado a documentos de tipo

Json. Las variables de entorno se dejan apuntando a los puertos que trae por

defecto, porque la aplicación corre o se ejecuta correctamente en estos; para

ello se hace uso de la capa de transporte del modelo TCP/IP específicamente

con el protocolo TCP, lo cual garantiza que la entrega de los paquetes de datos

se realice en el mismo orden en que fueron mandados por el servidor.

Page 57: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

57

4.2.5. Arquitectura

4.2.5.1. Análisis de protocolos de comunicaciones

Protocolo HTTP

Este protocolo cliente-servidor articula los intercambios de información entre los

clientes Web y los servidores HTTP. Está soportado sobre los servicios de

conexión TCP/IP, y funciona de la misma forma que el resto de los servicios

comunes de los entornos UNIX: un proceso servidor escucha en un puerto de

comunicaciones TCP, y espera las solicitudes de conexión de los clientes Web.

Una vez que se establece la conexión, el protocolo TCP se encarga de mantener

la comunicación y garantizar un intercambio de datos libre de errores.

HTTP se basa en sencillas operaciones de solicitud/respuesta. Un cliente

establece una conexión con un servidor y envía un mensaje con los datos de la

solicitud. El servidor responde con un mensaje similar, que contiene el estado de

la operación y su posible resultado.

Cada vez que un cliente realiza una petición a un servidor, se ejecutan los siguientes pasos13:

● Un usuario accede a una URL, seleccionando un enlace de un documento HTML o introduciéndola directamente en el campo Location del cliente Web.

● El cliente Web descodifica la URL, separando sus diferentes partes. Así identifica el protocolo de acceso, la dirección DNS o IP del servidor, el posible puerto opcional (el valor por defecto es 80) y el objeto requerido del servidor.

● Se abre una conexión TCP/IP con el servidor, llamando al puerto TCP correspondiente. Se realiza la petición. Para ello, se envía el comando necesario (GET, POST, HEAD,…), la dirección del objeto requerido (el contenido de la URL que sigue a la dirección del servidor), la versión del protocolo HTTP empleada y un conjunto variable de información, que incluye datos sobre las capacidades del browser, datos opcionales para el servidor.

● El servidor devuelve la respuesta al cliente. Consiste en un código de estado y el tipo de dato MIME de la información de retorno, seguido de la propia información.

● Se cierra la conexión TCP.

_______________________

13 (2017) El protocolo HTTP, recuperado el 14 de octubre del 2017,

http://neo.lcc.uma.es/evirtual/cdd/tutorial/aplicacion/http.html

Page 58: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

58

Modelo TCP/IP

Conformado por los protocolos TCP e IP (Transmission Control Protocol/Internet

Protocol). El modelo TCP/IP es usado para comunicaciones en redes y, como

todo protocolo, describe un conjunto de guías generales de operación para

permitir que un equipo pueda comunicarse en una red. TCP/IP provee

conectividad de extremo a extremo especificando cómo los datos deberían ser

formateados, direccionados, transmitidos, enrutados y recibidos por el

destinatario. Este modelo está compuesto por 4 capas, las cuales son explicadas

a continuación:

a. Capa de Aplicación (Application)

Esta capa provee protocolos de servicios para aplicaciones de software en una

computadora, por ejemplo, provee el protocolo HTTP quien es quien define como

los exploradores mandan llamar el contenido de una página web a un servidor.

HTTP cuenta con una serie de códigos para hacer saber al usuario que realmente

el servicio se llevó a cabo correctamente o no, por ejemplo, el código: HTTP 404

“not found”.

b. Capa de Transporte (Transport) Esta capa incluye una pequeña lista de protocolos dentro de ella, los más

comunes son TCP y UDP (User Datagram Protocol). Todas las capas proveen

servicios a su capa superior (ejemplo: la capa de transporte le provee servicios a

la capa de aplicación).

El protocolo TCP provee un servicio a su capa superior (Aplicación) llamado error-

recovery service, siguiendo el ejemplo: si hacemos una petición solicitando una

página web al servidor (HTTP) y de pronto hay una perdida durante el proceso,

pues entonces entra TCP quien provee de mecanismo para garantizar la entrega

de datos al usuario evitando que los datos se pierdan en la red. En esta capa de

transporte lo que TCP hace es colocar SEQ (secuencias de números) a cada

mensaje y este proceso es llamado segmento.

Dentro de la capa de transporte nos encontramos con interacciones de capas

● Same-layer interaction on different computers: Aquí es donde 2

computadoras usan el mismo protocolo para comunicarse con la misma

capa en otra computadora.

● Adjacent-layer interaction on the same computer: En una sola

computadora, una capa provee servicio a la capa superior.

Page 59: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

59

c. Capa de Red (Network)

En esta capa nos encontramos con una pequeña cantidad de protocolos y dentro

de ellos se encuentra el más importante llamado IP (Internet Protocol), si bien

sabemos IP provee de servicios como direccionamiento y proceso de ruteo a la

capa de transporte. IP define que cada computadora debe tener una dirección

para poderse comunicar dentro de una red con otras computadoras. Se encarga

de las direcciones IP destino para ser ubicadas dentro de la red y así poder

compartir información.

d. Capa de Enlace (Data Link Plus Physical)

El termino enlace (Link) se refiere a las conexiones físicas o enlaces entre los

dispositivos y los protocolos usados para controlar dichos enlaces. Esta capa de

enlace de datos incluye una gran lista de protocolos Ethernet y estándares.

Ilustración 12: Capas Modelo TCP/IP

Fuente: http://eltallerdelbit.com/modelo-tcp-ip

Page 60: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

60

4.2.5.2. Conclusiones de protocolos

Los protocolos son importantes para establecer comunicación en los sistemas

telemáticos, ya que fijan reglas que se deben seguir para poder establecer un

canal en el cual pueda enviarse información. HTTP, permite establecer la

comunicación cliente-servidor para poder hacer intercambios de datos entre la

aplicación web cliente y el servidor con sencillas operaciones de

solicitud/respuesta. En el servidor, se implementa el protocolo TCP/IP el cual

abre la conexión llamando al puerto correspondiente, y de esta forma lanzar la

petición para ello se hace uso de los métodos respectivos (POST, FET, PUT,

DELETE), allí el servidor da la respuesta al cliente.

4.2.5.3. Diseño general del sistema telemático

El sistema telemático en su diseño general se compone por una aplicación resposnsive

web y cliente de un microservicio que opera sobre su propio dominio. El cliente se

comunica por medio del protocolo HTTP para hacer llamadas a la API. De la parte del

servidor, se realiza una integración con la base de datos, para guardar allí la información

que se desprenda de acuerdo a la transacción que se realice basados en la petición del

cliente, Una vez realizada la actividad en la base de datos, se retorna a la API un objeto,

allí se transforma en un documento JSON el cual contiene tdoda la información de la

transacción y está es la respuesta que se da al cliente web que

Page 61: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

61

Ilustración 13: Diseño general sistema telemático

Fuente: Propia

Ilustración 14: Flujo proceso general sistema telemático

Fuente: Propia

Page 62: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

62

5. Pruebas

Estas pruebas se realizaron con el fin de verificar la funcionalidad del sistema con

los diferentes tipos de usuarios que van a interactuar en este, y así comprobar

que se cumplen con las especificaciones respectivas.

Los dispositivos y/o navegadores utilizados para realizar este proceso fueron:

• Mobile

- Sony Xperia T2, navegator Chrome.

- Samsung Galaxy J5, navegador Chrome.

• Desktop

Navegadores

- Chrome última versión estable.

- Micrososf Edge última versión estable.

- IE 11 última versión estable.

A continuación, se presenta el set de pruebas para cada una de las

funcionalidades:

5.1. Login

Tabla 7: Set pruebas funcionalidad de login

No Nombre

Prueba

Descripción

prueba

Resultado

esperado

Estado

general

1 Verificar

obligatoriedad

de campos

Usuario y

Contraseña

Se dejarán vacíos

los campos

Usuario y

Contraseña.

Se hará clic sobre

el botón que

permite iniciar

sesión.

Al dejar vacíos los

campos que

permiten ingresar

el usuario y

contraseña, y

hacer clic sobre el

botón de iniciar

sesión, el sistema

no levanta la

Paso

Page 63: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

63

sesión y muestra

mensaje de error.

Se diligenciará el

campo que permite

ingresar el usuario

(el campo

contraseña se

dejará vació).

Se hará clic sobre

el botón que

permite iniciar

sesión

Al dejar vacío

únicamente el

campo

Contraseña, y

hacer clic sobre el

botón de iniciar

sesión, el sistema

muestra un

mensaje de error,

el cual indica que

el campo

Contraseña es

requerido.

Paso

Se diligenciará el

campo que permite

ingresar la

contraseña (el

campo usuario se

dejará vació).

Se hará clic sobre

el botón que

permite iniciar

sesión

Al dejar vacío

únicamente el

campo Usuario, y

hacer clic sobre el

botón de iniciar

sesión, el sistema

muestra un

mensaje de error,

el cual indica que

el campo Usuario

es requerido.

Paso

2 Verificar

correcto inicio

de sesión

Se ingresará el

usuario y

contraseña de un

user con estado

activo

Se hará clic sobre

el botón que

permite iniciar

sesión.

Al ingresar un

usuario y

contraseña de un

usuario con

estado activo del

sitio, y proceder a

hacer clic sobre el

botón que permite

iniciar sesión, el

sistema levanta la

sesión del usuario

re direccionando a

Paso

Page 64: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

64

la interfaz de

home que aplique

de acuerdo a su

rol.

3 Verificar inicio

de sesión

incorrecto

Se ingresará un

usuario o

contraseña

incorrectos.

Se hará clic sobre

el botón que

permite iniciar

sesión

Al intentar

acceder al sitio

con un usuario o

contraseña

incorrectos el

sistema restringe

el acceso y

genera mensaje

de error indicando

al usuario que la

contraseña o el

usuario no son

validos

Paso

Fuente: Propia

5.2. Crear nueva estimación

Tabla 8: Set pruebas crear nueva estimación

No Nombre

Prueba

Descripción

prueba

Resultado

esperado

Estado

general

1 Verificar

acceso a

vista de

creación de

nueva

estimación

Se hará clic sobre

la opción Casos de

uso ubicada en el

menú principal

Se verificará que el

sistema re

direccione a la

pantalla con el

listado de

estimaciones

existentes

Al hacer clic

sobre la opción

Casos de uso

ubicada en el

menú principal el

sistema re

direcciona a la

interfaz con el

listado de

estimaciones

existentes

Paso

Page 65: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

65

2 Verificar

despliegue

formulario

para nueva

estimación

Se hará clic sobre

el botón Nueva

Estimación

Se verificará que el

sistema despliegue

un form con los

siguientes campos:

- Cliente: se

verificará que el

campo sea de

entrada libre,

permitiendo el

ingreso del nombre

del cliente.

- Nombre: se

verificará que el

campo sea de

entrada libre,

permitiendo el

ingreso del nombre

de la estimación.

Al hacer clic

sobre el botón

Nueva

Estimación, el

sistema despliega

formulario con los

siguientes

campos:

Cliente: de

entrada libre,

permite ingresar

el nombre del

cliente asociado a

la estimación.

Nombre: de

entrada libre,

permite ingresar

el nombre de la

estimación a

crear.

Paso

3 Verificar

obligatoriedad

de campos

cliente y

nombre de

estimación

Se dejarán vacíos

los campos cliente

y nombre de

estimación.

Se hará clic sobre

el botón que

permite crear la

nueva estimación.

Al dejar vacíos los

campos que

permiten ingresar

el título y nombre

de la estimación,

y hacer clic sobre

el botón guardar,

el sistema

muestra mensaje

indicando que

obligatoriedad de

campos y no se

registra la

estimación en la

BD.

Paso

Page 66: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

66

4 Verificar

creación de

nueva

estimación

Se diligenciarán los

campos Cliente y

Nombre de la

estimación.

Se hará clic sobre el

botón Crear.

Se verificará que la

nueva estimación

se cree

correctamente en la

BD y se muestre en

el listado de

estimaciones

existentes.

Al diligenciar los

campos Cliente y

Nombre y

proceder a hacer

clic sobre el botón

Crear, el sistema

crea

correctamente la

estimación y esta

se observa en el

listado de

estimaciones del

sitio.

Paso

5 Verificar

acceso

formulario

detalle de

estimación

Se hará clic sobre la

opción de edición

ubicada en la

columna de

operaciones de la

tabla con el listado

de estimaciones

existentes en el

sistema.

Se verificará que el

sistema despliegue

un formulario el cual

permite ingresar el

detalle de la

estimación.

Al hacer clic sobre

el botón guardar, el

sistema permitirá

registrar la

Al hacer clic sobre

la opción de

edición de la

columna con las

operaciones, el

sistema despliega

un formulario para

diligenciar el

detalle de la

estimación y se

permite el registro

exitoso de este.

Paso

Page 67: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

67

estimación en la BD

correctamente.

6 Verificar

cálculo de

puntaje para

estimación

Se registrará el

detalle de una

estimación

correctamente en el

sistema.

Se hará clic sobre el

botón Guardar y se

verificará que el

sistema refresque

la interfaz y se

muestre en la tabla

con los registros de

estimaciones el

puntaje obtenido de

acuerdo a lo

definido por la

metodología.

Al registrar las

variables del

detale de una

estimación, el

sistema muestra

correctamente el

puntaje obtenido

para está de

acuerdo a lo

definido por la

metodología de

puntos por casos

de uso.

Paso

Fuente: Propia

Page 68: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

68

5.3. Evidencias pruebas

Tabla 9: Evidencias Pruebas Login

No Prueba Evidencia Resultado

1

Login

Paso

2

3

Fuente: Propia

Page 69: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

69

Tabla 10: Evidencias Pruebas Crear Estimación

No Prueba Evidencia Resultado

1

Crear

nueva

estimación

Paso

2

3

4

5

Page 70: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

70

6

Paso

7

8

Fuente: Propia

5.4. Conclusiones pruebas

Con el fin de clasificar si la prueba ejecutada en la aplicación cumplía o no el

resultado esperado, se establecieron las siguientes escalas:

• Fallo: el resultado obtenido al finalizar la prueba no fue exitoso.

• Paso: el resultado obtenido al finalizar la prueba fue exitoso.

Al realizar el conteo de los estados encontrados en la columna “Estado general”

de las tablas 7 y 8, no se identificó ningún “Fallido”, con esto puede darse a

entender que el producto cumple con los requisitos especificados para el sistema

telemático de estimación de esfuerzo de proyectos de software por medio de la

metodología puntos función por caso de uso: se crean estimaciones por proyecto,

se asignan los pesos respectivos de acuerdo a lo definido en la metodología y se

realiza el cálculo de esfuerzo en horas que se necesitan para el proyecto

respectivo.

Page 71: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

71

6. Propuesta de nuevo proceso de estimación

Ilustración 15: Diagrama Flujo Propuesta Nuevo Proceso Estimación

Fuente: Propia

El nuevo proceso propuesto para la empresa consiste en:

a. El desarrollador de negocio o gestor de calidad crea el caso en la

herramienta de gestión de la empresa, en la factibilidad del proyecto

en el cial se encuentra la información obtenida por parte del cliente

y le asigna el caso al líder de proyectos.

b. El líder de proyectos identifica a la persona que va a realizar la

revisión de la información, ya sea: analista funcional, arquitecto o

Page 72: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

72

líder de desarrollo, le asigna el caso en la herramienta de gestión

de la empresa.

c. La persona a la cual se le asigno el caso, procede a revisar la

información contenida en el documento dejado en el ticket y

comienza la construcción de los casos de uso. Una vez terminado

el análisis de los casos de uso del proyecto, el analista crea la

estimación en la aplicación que permite calcular el tiempo y

esfuerzo de desarrollo del proyecto de software y asigna el caso al

arquitecto o líder de desarrollo.

Si la información consignada en el caso no es suficiente, se remite

el caso al desarrollador de negocio, para que solicite más

información al cliente.

d. El arquitecto recibe el caso y completa la información de la

estimación respectiva creada en la aplicación de estimación de

proyectos de software, y regresa el caso con el estado

correspondiente al desarrollador de negocios o gestor comercial.

Si la información consignada en el caso no es suficiente, se remite

el caso al desarrollador de negocio, para que solicite más

información al cliente.

Page 73: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

73

7. Evaluación de la solución

Una vez terminado el prototipo para la estimación de tiempo y esfuerzo de

proyectos de software dentro de la empresa, se encontró que el impacto inicial

fue positivo al hacer uso de la herramienta por el Gerente General de la

compañía.

Por otro lado, al realizar la comparativa del proceso actual de estimación y el

nuevo proceso propuesto, se evidencio que la aplicación permitió realizar el

proceso de estimación y respectiva identificación del tamaño funcional del

proyecto de software de acuerdo a las funcionalidades identificadas en los casos

de uso. En caso de necesitarse más información por parte del cliente que

necesita la solución tecnológica, el proceso pudo completarse después de ello de

forma sencilla teniendo acceso a la información que se registró en el pasado sin

necesidad de consultar documentos registrados en el repositorio de la compañía

o sufrir pérdidas de los datos.

Los usuarios de la aplicación tuvieron acceso a todas las estimaciones de los

proyectos de los clientes de la empresa de forma más ordenada y ágil consulta,

de cada estimación se pudo observar el puntaje de estimación y el tiempo y

esfuerzo requerido para el desarrollo de un caso de uso como también el global.

Page 74: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

74

8. CONCLUSIONES

En la actualidad es muy común ver que los procesos internos de una compañía se

realizan todavía de forma manual, y no se cuenta con un apoyo de herramientas que

ayuden a optimizar dichas actividades.

Como solución a la problemática planteada se buscó presentar un prototipo de sistema

telemático el cual ayudará a optimizar el proceso de estimación que realiza la empresa

actualmente, para ello hacer uso de las fases de la metodología PHVA fue muy

conveniente. Al planear lo que se iba a realiza, sirvió para determinar y proponer un

diseño del proceso; por medio de la fase de evaluación, se lograron identificar los

procesos del sistema telemático debían tener un mejoramiento continuo.

En la fase de desarrollo, se logró el objetivo propuesto, construir el sistema de acuerdo

a los requisitos funcionales iniciales, es decir, orientado a lo que define la metodología

de puntos función por casos de uso para realizar el cálculo de la estimación; en cuanto

a la parte técnica se diseño un sistema telemático con arquitectura de micro servicio el

cual se comunica con una API REST haciendo uso del protocolo HTTP.

Page 75: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

75

9. Referencias Bibliográficas

• Fernando Salazar (2013). ¿Qué es la Telemática? ¿Para qué sirve?,

recuperado el 14 de octubre del 2017, en

http://dudasinformaticass.blogspot.com.co/.

• Rodriguez, Julen (2011), Que es un sistema telemático, recuperado el 14

de Octubre de 2017, en

https://juleninforma.wordpress.com/2011/10/19/%C2%BFque-es-un-

sistema-telematico.

• Del Carmen Garcia, Ana Maria (2015), ¿Qué son los microservicios?,

recuperado el 14 de octubre del 2017, en

http://www.javiergarzas.com/2015/06/microservicios.html

• Flanagan, David; Ferguson, Paula (2002), JavaScript, recuperado el 14 de

octubre del 2017, en https://es.wikipedia.org/wiki/JavaScript

• Método de Estimación Puntos Casos de Uso (Use Case Points)

recuperado el 14 de octubre del 2017 en

http://www.laboratorioti.com/2013/02/14/metodo-de-estimacion-puntos-

casos-de-uso-use-case-points

• A, Esaú (2016), ¿Qué son los microservicios?, recuperado el 14 de

octubre del 2017, en https://openwebinars.net/blog/microservicios-que-

son

• García, Luis Miguel (2016), Mi primera aplicación con StrongLoop

LoopBack, recuperado en https://unpocodejava.com/2016/04/05/mi-

primera-aplicacion-con-strongloop-loopback/

• Debian Org (2017), ¿Qué es GNU/Linyx?, recuperado el 14 de octubre del

2017, en ht

https://www.debian.org/releases/stable/arm64/ch01s02.html.es

• (2017) Circulo de Deming, recuperado el 14 de octubre del 2017,

https://es.wikipedia.org/wiki/C%C3%ADrculo_de_Deming

• (2015) ¿En qué consiste el ciclo PHVA de mejora continua?, recuperado

el 14 de octubre del 2017, https://www.isotools.org/2015/02/20/en-que-

consiste-el-ciclo-phva-de-mejora-continua/

• (2017) El protocolo HTTP, recuperado el 14 de octubre del 2017,

http://neo.lcc.uma.es/evirtual/cdd/tutorial/aplicacion/http.html

Page 76: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

76

ANEXOS

Page 77: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

77

ANEXO A

MANUAL ADMINISTRADOR

A continuación, se especifican los pasos que deberá seguir un administrador para

poder realizar la instalación del aplicativo:

Pre requisitos

1. Contar con base de datos PostgreSQL en el puerto por defecto 5432, con

las bases de datos:

a. login_module

b. use_case_point

2. Tener instalado NodeJs.

Nota: en caso de no contar con el programa, visitar el siguiente link de la web oficial de

NodeJs (https://nodejs.org/en/download/). Luego de la descarga continúe con la instalación

siguiendo el manual del siguiente link https://nodejs.org/en/download/package-manager/).

3. Loopback Framework para NodeJs

Nota: En caso de no contar con el paquete Loopback visite el siguiente link

(https://loopback.io/) de la web oficial o ejecute el siguiente comando en una terminal

“Comando: npm install -g loopback-cli”.

Instalación

1. Crear carpeta MeasurementApp que será el home del aplicativo en la

siguiente ruta.

Ruta:

/opt/

2. Asegurar que la carpeta cuente con permisos de lectura y escritura de

usuario.

Nota: En caso de no contar con los permisos ejecute el siguiente comando “sudo chmod -R

777 MeasurementApp/” en la ruta /opt/.

3. Descomprimir los siguientes archivos en la carpeta creada en el paso 1:

a. LoginModule.zip

b. MeasurementApp.tar.gz

Page 78: SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE ...repository.udistrital.edu.co/bitstream/11349/8330/1/Escamilla... · SISTEMA TELEMATICO PARA LA ESTIMACION DE ESFUERZO DE PROYECTOS

78

c. UseCasePoint.zip

4. Definir la variable de entorno MEASUREMENT_APP con la ruta de la carpeta

creada en el paso 1.

5. Ejecutar shell de instalación 'installApp.sh'.

6. Ejecutar shell de inicio de Sistema 'startApp.sh'.