You are on page 1of 34

UNIVERSIDAD AUTÓNOMA GABRIEL RENÉ MORENO

FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACIÓN,


REDES Y TELECOMUNICACIONES
CARRERA DE INGENIERIA EN SISTEMAS

WEBCASE
Aplicación para la colaboración en tiempo real en el modelado de
software

POR:
Yimmy Quispe Yujra
214021191
MATERIA:
Ingeniería de Software I
DOCENTE:
Ing. Rolando Martinez Canedo

7 de mayo de 2018
Santa Cruz de la Sierra — Bolivia
WebCASE
Aplicación para la colaboración en tiempo real en
el modelado de software

Yimmy Quispe Yujra

Universidad Autónoma Gabriel René Moreno


Facultad de Ingeniería en Ciencias de la Computación y
Telecomunicaciones
Carrera de Ingeniería en Sistemas

Santa Cruz de la Sierra - Bolivia

Copyright © 2018 por Yimmy Quispe Yujra. Todos los derechos


reservados.

i
Dedicatoria

A:
Dios, por darme la oportunidad de vivir y estar conmigo en cada paso que doy.
Mi madre Elena, por darme la vida, creer en mí y darme aliento para seguir
adelante incontables veces. Madre gracias por darme tu apoyo para poder
estudiar y ser mejor en el futuro, todo esto te lo debo a ti.
Mi padre Máximo, por enseñarme que en la vida hay que valorar lo poco o
mucho que se tiene.
A mis hermanos, Max, David, Noemí y Abigail por estar conmigo y apoyarme
siempre, los quiero mucho.
Todo este trabajo ha sido posible gracias a ellos.

ii
Contenido.

iii
Tablas.

iv
Figuras.

v
Prefacio

Este proyecto surgió a raíz de la necesidad de herramientas para el modelado


de software de tal manera que se aprovechen las últimas tecnologías
disponibles, como la comunicación, e intercambio de datos en tiempo real.
En este proyecto se busca dar una posible solución a esta problemática, para
ser más específico, solo se abarca el modelado UML de los diagramas de
secuencia, los cuales ayudaran a modelar el comportamiento de software.
Se ha incluido toda la información relevante en cuanto a las herramientas y
tecnologías empleadas para llevar a cabo este proyecto, entre dichas
tecnologías se encuentra el uso de lenguajes de programación modernos
como es el caso de JavaScript, que se utilizan tanto desde el lado del cliente
(Front end), como del lado del servidor (Back end) que para ser más específico
se denomina Node.js, sin olvidarnos el uso de componentes gráficos para
permitir el modelado de los diagramas de secuencia. Por otro lado, también
se gestiona los usuarios que tendrán acceso a la aplicación, así como también
se gestiona los privilegios y proyectos a los que un usuario tendrá acceso para
poder colaborar en tiempo real.
Por último, si bien el software en si es importante, también lo es el hecho que
este esté en correcto funcionamiento, esto implica que el software este
correctamente desplegado en una plataforma online como lo es AWS
(Amazon Web Services), tomando en cuenta factores de configuración como
lo es la elección del sistema operativo del servidor, y la configuración correcta
de la red sin olvidar la apertura y cierre de los puertos adecuados para prevenir
vulnerabilidades en el servidor entre muchos otros aspectos que se verán en
detalle dentro de esta obra.
Más de 4 años de aprendizaje universitario en el desarrollo de software me
han brindado la oportunidad de trabajar y conocer un gran conjunto de
tecnologías de desarrollo web los cuales han sido una gran recompensa para
mí, y que de formas diferentes pero congruentes han contribuido al contenido
de este proyecto.

vi
Introducción

En la actualidad las tecnologías web has revolucionado la manera en la que


realizamos nuestras actividades, pues las redes sociales, YouTube, Facebook
y tantas otras plataformas web transformaron el modo en el que nos
relacionamos e intercambiamos información, y esto no solo en el ámbito
social, sino también empresarial y educativo.
Por tanto, el uso de estas tecnologías para crear y brindar soluciones es
indispensable para crear productos software de calidad y vanguardia. En
nuestro caso, el desarrollo de software implica muchas etapas, una de ellas
es el diseño, el cual incluye aspectos teóricos que se toman en cuenta para
desarrollar un buen producto, pero son los diagramas o modelos, en los que
se plasman dichos aspectos teóricos, particularmente para este proyecto se
tratará de cubrir en su totalidad los diagramas de secuencia los cuales son un
tipo de diagrama para representar flujos de información entre entidades de un
software, que forman parte del UML (Lenguaje Unificado de Modelado) en su
versión 2.0.
Como esta será una herramienta para facilitar el modelado de software tiene
que tomarse en cuenta que los ingenieros de software podrían no estar en el
mismo establecimiento o lugar, lo cual implica la existencia de un medio para
realizar esta tarea de manera remota y colaborativa en tiempo real.

vii
Acerca del Autor

Yimmy Quispe Yujra es un estudiante de la carrera Ing. En Sistemas de la


Facultad de Ciencias de la Computación, redes y Telecomunicaciones en la
Universidad Autónoma Gabriel René Moreno de la Ciudad de Santa Cruz de
la Sierra – Bolivia.
Hasta la fecha cursa su último año en la universidad, además de tener
experiencia en desarrollo web Full Stack, es una persona apasionada que ama
la música, una deliciosa comida y desarrollar software.

viii
PARTE I
Marco teórico, objetivos, desarrollo basado en componentes, CASE,
Arquitectura, UML 2.0, interacción XMI o XML, Factores de calidad en el
software
Capítulo 1: Perfil de Proyecto
Perfil de Proyecto

Desde los inicios de las ciencias de la computación la demanda de software


complejo y de calidad fue creciendo a ritmo exponencial, pues a medida que
el hardware iba evolucionando con mejores prestaciones, también el software
tuvo que hacerlo pues la potencia del hardware hacia posible sacarles más el
jugo a las aplicaciones informáticas, con esto la complejidad del software
incremento considerablemente haciendo cada vez más complicado el diseño
de software de calidad.
Además, dicha complejidad afecto directamente el desarrollo del software
pues la cantidad de ingenieros de software involucrados en un equipo de
desarrollo creció hasta el punto de tener equipos con miembros dispersos, por
nombrar un ejemplo, un equipo conformado por 50 desarrolladores, no
necesariamente debían estar en el mismo lugar o ciudad o incluso país.
El uso de herramientas CASE facilitó esta tarea, pero, faltaba algo en la
ecuación, y ese ingrediente es el uso de las tecnologías web, las cuales
facilitan la comunicación en tiempo real sin importar cuan alejados estén las
personas que se estén comunicando. Con ello los desarrolladores pueden
diseñar una aplicación de manera colaborativa sin importar cuan disperso
estén en una determinada área geográfica.

1.1 Antecedentes
Las herramientas colaborativas son estructuras sociales compuestas por
grupos de personas, las cuales están conectadas por varios tipos de
relaciones, tales como intereses comunes, educación, trabajo o que
comparten conocimientos y objetivos en común.

2
En su forma más simple, una herramienta colaborativa es un conjunto de
herramientas que permiten la comunicación y colaboración entre un conjunto
de personas o usuarios de manera sistemática. Historia

1.1.1 ANÁLISIS DE LAS HERRAMIENTAS COLABORATIVAS


Son las herramientas utilizadas en la comunicación entre personas, aunque
ésta sólo sea de forma virtual. Actualmente existen diversas herramientas de
este tipo tales como las redes sociales, wikis, blogs, chats y otros recursos
específicos. Estas nuevas herramientas de la comunicación nos han permitido
de forma eficaz y rápida el traspaso de información y han acortado de una
forma u otra las distancias. En el ámbito académico, en particular en
educación superior, las herramientas de trabajo colaborativo son un potente
recurso que fácilmente se adapta a diversas necesidades y objetivos.

1.1.2 HISTORIA DE LAS HERRAMIENTAS COLABORATIVAS


La World Wide Web, como se conoce en el presente, nació a principios de la
década de 1990 y en sus inicios sólo ofreció contenido textual agrupado en
los famosos hipervínculos o links.
En esta época se habló mucho del nacimiento del hipertexto como concepto
y de la navegación por la Web.
No obstante, en la actualidad, estamos lejos de aquella época; basta con
visitar cualquiera de nuestros sitios Web favoritos para darnos cuenta.
Los sitios Web ya no son sólo texto e hipervínculos.
Son imágenes, animaciones Flash, publicidad que tapa la lectura, ventanas
desplegables, videos, juegos y aplicaciones completas.
La información ya no tiene la exclusividad en el mundo de Internet; en el
presente la usamos también para comprar, mantener nuestra vida social,
administrar nuestras hojas de cálculo o publicar nuestros videos.
Es por eso que la Web como la conocíamos ha cambiado. Apareció una nueva
Web, la Web 2.0.
El término Web 2.0 tiene un origen claro: fue utilizado por primera vez por
O'Reilly Media (empresa conocida por su editorial de libros de tecnología) en
una conferencia en octubre de 2004.
Meses después fue Tim O'Reilly, fundador de la empresa, quien definió el
concepto y lo hizo conocido en la comunidad.

3
Incluso antes de que el término se hiciera de uso común, O'Reilly lo había
registrado como marca, lo que luego dio algunos dolores de cabeza a otras
empresas que intentaron usarlo.
La Web 2.0 es una segunda generación de servicios basados en la Web, que
enfatiza en la colaboración online, la conectividad y la posibilidad de compartir
contenidos entre los usuarios.
La Web 2.0 implica la evolución de las aplicaciones digitales hacía
aplicaciones dirigidas al usuario final, que incluyen servicios como redes
sociales, blogs wikis y las folcsonomías.

1.1.3 HERRAMIENTAS COLABORATIVAS EN INTERNET


En contraste con la Web tradicional, Web 2.0 ofrece más que interacción
básica y participación de usuarios. En estas aplicaciones los participantes de
las comunidades desarrollan una reputación en base a la cantidad y calidad
de sus contribuciones, se comparten documentos en los que varias personas
pueden trabajar al mismo tiempo, se utilizan interfaces dinámicas y atractivas
que se acercan a las aplicaciones de escritorio, se comparte información, en
ocasiones en tiempo real, por medio de interfaces de programación y
comunicación que permite el desarrollo rápido de nuevas aplicaciones y
permiten la participación de la comunidad en el etiquetamiento, clasificación y
toma de decisiones.
Las herramientas colaborativas de la web son herramientas utilizadas en la
comunicación entre personas, aunque ésta sólo sea de forma virtual.
Actualmente existen diversas herramientas de este tipo tales como las redes
sociales, wikis, blogs e incluso los chats. Estas nuevas herramientas de la
comunicación nos han permitido de forma eficaz y rápida el traspaso de
información y ha acortado de una forma u otra las distancias entre personas.

1.1.4 TIPOS DE HERRAMIENTAS COLABORATIVAS


Las herramientas colaborativas se encuentran en nuestro medio actual de
muchas formas, están las pensadas para el ocio, o las hay también pensadas
en la educación, sin olvidar las que tienen mero carácter comunicativo.
Pero a pesar de las muchas formas que estas herramientas han adquirido a
lo largo de los años, se considerarán a las siguientes como los tipos más
habituales disponibles en la internet.

4
Redes Sociales
Las redes sociales han tomado de una forma abrumadora el mercado virtual
y han sido muy bien aceptadas por la comunidad mundial.
Este tipo de herramientas son usadas tanto de forma personal, como lo es la
comunicación con familiares, amigos o conocidos; como de forma corporativa
en la cual intervienen diferentes elementos como son la publicidad: con la
promoción de productos y servicios, la incorporación de usuarios o
consumidores e incluso la compra-venta, todos a través del uso de ésta
herramienta.
Muchas son las redes sociales que circulan en la web, de diferentes estilos y
con diferentes herramientas para transmitir la información y comunicar a un
grupo de personas que es la finalidad de una red social. Entre este tipo de
herramientas colaborativas encontramos el famoso Facebook, creado por
Mark Zuckerberg un entorno colaborativo para intercambiar y compartir.
Facebook ha tenido una acogida tan grande que incluso su historia ha sido
llevada a la pantalla grande con el título The social network, cinta que fue
acreedora de varias nominaciones a los premios de la Academia. También
encontramos a Twitter, creado por Jack Dorsey, Evan Williams y Biz Stone,
que junto a un vistoso pájaro azul ha creado una interfaz agradable y una gran
capacidad de transmitir información de manera eficaz, además de poner a las
personas que usan medios móviles como usuarios estables de la web.
YouTube es una red social líder en el interactuar, de la mano con Google ha
establecido una manera fácil y sencilla para compartir, ver y comentar vídeos,
broadcast y música en un espacio neutro, pero gustoso a la vista.
Otras redes sociales que han marcado y que engrandecen sus usuarios
conforme actualizamos el sitio son Yahoo! Respuestas, MySpace, Hi5 y
Metroflog.

Blogs
Los blogs son sencillamente diarios en línea o llamados también bitácoras, las
cuales permiten a una persona escribir sobre un tema en específico e ir
actualizando a través de entradas o instrucciones con nueva información que
permita que los usuarios o visitantes se mantengan en contacto con el sitio
web. Es un tipo de Herramienta de trabajo colaborativo con poca interactividad
puesto que el dueño del sitio implanta información, en forma de texto,
imágenes, videos o hipervínculos que lleven a otras páginas con temas
relacionados, el usuario (no en todos los blogs) tiene sólo la posibilidad de
comentar acerca de lo que piensa, pero generalmente esto no es algo
trascendental en el blog como tal.

5
Wikis
Los wikis son sitios web que promueven la libre expresión y el compartir de la
información. Se trata de una página donde un usuario redacta un texto o da a
conocer una información actual o de interés general, ésta es publicada y los
usuarios que acceden a este wiki pueden modificarla con la autorización del
autor (solo en algunos wikis, en otros cualquiera puede modificarlo. Todo
depende de la privacidad escogida o la privacidad que ofrece el sitio) y
corregirlo o incluso añadirle información faltante que es relevante o también
para eliminar información errónea o desactualizada la cual da una mejor
credibilidad al escrito y da muestra de la cooperactividad en internet.

Chats
El chat es una herramienta de trabajo colaborativo que ha ganado gran
acogida entre los visitantes de la web e incluso es una herramienta que tiene
la capacidad de ser insertada en otras herramientas de trabajo igualmente. Se
trata de un componente por medio del cual dos usuarios o un grupo de
usuarios puede hablar en conjunto por esto el término chat puede ser
reemplazado por términos como ciberdialogo, ciberhabla o cibercharla.
Permite de una manera rápida y eficaz el contacto con otras personas.
Algunos chats como el Windows Live Messenger o Skype, para los cuales su
fin en realidad es el chat, comprenden muchos más componentes que hacen
del chat algo más interactivo tales como las videoconferencias o video
llamadas, llamadas pc a pc o pc a teléfono, juegos compartidos y otros
componentes que crean un entorno divertido y atractivo.

1.1.5 ¿CÓMO FUNCIONAN?


Las herramientas Colaborativas cuentan con una estructura de
funcionamiento en común, para empezar, hacen el uso de la web 2.0, utilizan
algún mecanismo de comunicación entre sus usuarios, como podrían ser
correo electrónico, mensajería instantánea en tiempo real, lienzos interactivos,
etc.
Las herramientas colaborativas1, básicamente son los sistemas que permiten
acceder a ciertos servicios que facilitan a los usuarios comunicarse y trabajar
conjuntamente sin importar que estén reunidos en un mismo lugar físico. En
general con ellos se puede compartir información en determinados formatos
(audio, texto, video, etc.), y en algunos casos producir conjuntamente nuevos
materiales productos de la colaboración. Muchos de ellos proveen de

1. https://patob2000.wordpress.com/patricio-bustamante-miranda/

6
avanzadas funcionalidades que facilitan tareas como publicación de
información, búsquedas, filtros, accesos, privilegios, etc.
Por lo general las herramientas colaborativas tienen un funcionamiento
similar, trabajan bajo el concepto de cliente servidor, donde los clientes son
los usuarios que hacen uso de un servicio y el servidor se encarga de ofrecer
este servicio. Generalmente se utilizan programas clientes para acceder a
estos servicios, tal es el caso de un browser que hace las veces de cliente
para acceder a un servicio que puede ser por ejemplo un servidor web que
“sirve” 2 una página web.

Rol del Cliente, rol del Servidor


Las herramientas colaborativas requieren dos tipos de programas o software
para poder establecer una “conversación” entre los usuarios que hacen uso
de un servicio.
 Servidor: Primero tenemos los programas servidores, está de más decir
que son aquellos que permiten ofrecer un servicio, generalmente este se
ejecutara en un servidor web, accesible desde Internet, una intranet o una
red privada o algunas de sus variaciones. Su función es coordinar el flujo
de información y alojar en muchos casos dicha información.
 Cliente: En segundo lugar, tenemos los programas clientes, que son el
software que posee cada usuario en su computador y que le permite
acceder a los servicios, y que son entonces capaces de ver información
publicadas por otros usuarios o publicar la propia.

Ejemplo de Cliente y Servidor


El caso más cercano, es el del correo electrónico, y es aquí donde se hace
bastante claro la función del software cliente y el software servidor. Los
servidores de correo alojan, conducen y entregan mensajes que son abiertos,
leídos y respondidos utilizando clientes de mail.
Un software de servidor de correo puede ser por ejemplo Sendmail, este es
un software que se instala en el servidor y permite ofrecer el servicio de correo.
Este servicio de correo se llama generalmente SMTP (Simple Mail Transfer
Protocol) es decir un protocolo de transferencia de correo.
Un software cliente de correo, puede ser por ejemplo Outlook, que es quien
se comunica con el servidor. En este caso hay que configurar Outlook para
que se identifique y comunique con el servidor de correo, para así poder tener
acceso a este servicio.

2. Aquí se refiere a la acción de servir, ejemplo, el mesero sirve la comida.

7
1.2 Justificación
Esta Web App está pensada para el uso colaborativo en el modelado de
diagramas de actividad UML, con el objetivo de agilizar y facilitar el proceso
de diseño de software en una empresa de desarrollo.
Entre los beneficios generados gracias a esta Web App se mencionan los
siguientes:
 Mejora en el flujo de trabajo del desarrollo.
 Mejora en la coordinación mediante chat.
 Acorta la distancia entre los miembros del grupo de trabajo.
 Propicia la generación de conocimiento.
 Favorece la adquisición de destrezas sociales.
 Estimulo del uso del lenguaje.
Además, no se puede dejar de lado el beneficio a largo plazo de este tipo de
herramientas, pues sirven como base para futuras Apps, o como prototipos
para desarrollar nuevas tecnologías de software.

1.3 Descripción del Problema


El uso de herramientas CASE se ha vuelto muy popular con el paso del
tiempo, pues gracias a ellas se puede agilizar el proceso de desarrollo de
software de manera significativa, esto debido a funciones como la generación
de código a partir de los modelos realizados en dichas herramientas, así como
también la ingeniería inversa que estas permiten.
Sin embargo, aún no es tan popular el uso de herramientas CASE
colaborativas, debido principalmente al problema de conlleva el uso de las
plataformas web, ya que estas no están del todo estandarizadas para poder
ser extendidas y popularizadas como herramienta de facto.
Por ello es necesaria la implementación de software colaborativo en tiempo
real con el uso de tecnologías web 2.0, no solo para facilitar el trabajo de los
ingenieros de software, sino también para poder hacer más sistemático el
proceso de desarrollo de software, con lo cual se conseguiría una mejor
gestión y estimación de recursos empleados para el desarrollo de un producto
software.

8
1.4 Objetivos
Los objetivos para llevar a cabo este proyecto se describen a continuación.

1.4.1 GENERAL
Desarrollar una Web App para facilitar el proceso de modelado de un sistema
software.

1.4.2 ESPECÍFICOS
Para poder realizar el objetivo general se realizarán las siguientes actividades
y/o tareas.
 Realizar la captura de requisitos para poder determinar los posibles
requerimientos para este proyecto.
 Analizar los requerimientos obtenidos para definir los requisitos del
software.
 Realizar el diseño de cada uno de los módulos y componentes que
formarán parte del software.
 Realizar la configuración de la arquitectura física para el despliegue del
software.
 Probar todos y cada uno de los módulos y componentes del software.
 Finalizar el despliegue con la puesta en producción del software
terminado.

1.5 Alcance
La aplicación que se pretende desarrollar está enfocada en el área de
herramientas colaborativas, en el que se destacan las operaciones en
interacciones web en tiempo real, tales como el envío y recibo de mensajes,
así como también el registro de usuarios, la gestión y asignación de roles y
privilegios, sin dejar de lado la gestión de archivos para el guardado de los
modelos.
Esta Web App cuenta con un módulo de usuarios, un módulo de comunicación
entre usuarios y un módulo de generación de código a partir de los modelos
realizados.

9
1.5.1 MÓDULO DE USUARIOS
En este módulo se agrupa toda la funcionalidad que implica directamente al
usuario.
 Registro de Usuarios: este se encarga de la creación de nuevos usuarios
en WebCASE, esto permite al usuario acceder al resto de funciones de la
aplicación
 Asignación de Roles y Privilegios: se encarga de la gestión de los
permisos que se podrán asignar a los usuarios de la aplicación.

1.5.2 MÓDULO DE COMUNICACIÓN


El módulo de comunicación agrupa la funcionalidad referente al intercambio
de datos en tiempo real.
 Envío y recibo de mensajes: se encarga del envío y recibo de mensajes
en tiempo real entre un usuario y un receptor o entre un usuario y un grupo
de receptores.
 Envío y recibo de metadatos de modelo: se encarga del envío y recibo
de metadatos del modelo para la visualización del modelo en tiempo real,
esto entre el conjunto de usuarios que estén en un proyecto determinado.

1.5.3 MÓDULO DE GENERACIÓN


Este módulo engloba las funciones de exportación y mapeo lógico para
generar código a partir del modelo.
 Generación de código: se encarga de generar código fuente Java y C#
en base a un modelo realizado en la aplicación.
 Exportación del modelo: se encarga de posibilitar la exportación del
modelo a un formato legible para otras herramientas CASE como ser MS
Vicio o Enterprise Architect.

1.6 Elementos del Sistema Basado en


Computadoras
Todo sistema software requiere de un conjunto de elementos que interactúen
entre sí para que pueda demostrarse el funcionamiento y utilidad que aportará
a los beneficiarios finales, por tanto, dichos elementos se describen a
continuación.

10
1.6.1 HARDWARE
El hardware es uno de los elementos esenciales en un sistema software, pues
es en él donde el software puede cobrar vida y realizar sus funciones.
Todo el hardware necesario para que el sistema software funcione
adecuadamente en cuanto a almacenamiento y rendimiento, está descrito a
continuación.

Tabla 1.1 Hardware requerido para el Servidor.

Elemento Versión Característica


Procesador Intel Xeon E5-2673 v4 2 x Dual Core 2.3 GHz
Memoria RAM Kingston valueram DDR3 4 GB o más
Disco Kingston SSD DC400 1 TB o más
Placa madre Asus Z9PA-D8 Dual CPU LGA, ATX, USB 3.0
Fuente de alimentación Corsair VS450 12 voltios – 450 watts
Caja de servidor Fractal design node 304 6 discos duros, RAID
Monitor VGA análogo 17 pulgadas
UPS APC SMART-UPS 5000VA Duración 14.3 Horas

Tabla 1.2 Hardware requerido para el Cliente.

Elemento Versión Característica


Procesador Intel Core i5-4200H 4thG 3MB Cache - 2.3 GHz
Memoria RAM Kingston valueram DDR3 4 GB
Disco duro Western digital 500 GB
Placa madre AsRock x77 extreme4-m Compatible con Windows 8
Estabilizador Atomlux modelo r1000 1000va – 2 equipos
Caja Delux Combo case
Monitor Samsung 21 pulgadas
Impresora HP multifuncional Web HP Office Jet 4630

Tabla 1.3 Medios de comunicación.

Elemento Versión Característica


Switch Cisco X9901 Multipuerto
Wi-Fi Cualquiera 5 Mbps o más

11
1.6.2 SOFTWARE
El software es el que la vida al hardware, por lo tanto, la elección del sistema
operativo y las herramientas de utilidad es un factor clave para el correcto
funcionamiento de la aplicación.
La diversidad de software necesario para el funcionamiento óptimo del
sistema en desarrollo está descrita a continuación.

Tabla 1.4 Software requerido para el Servidor.

Software Versión
Sistema operativo Windows Server 2016 Datacenter
Servidor Web Node.js v8.11.1
SGBD MariaDB v10.1.29
Antivirus Windows Defender
Framework Sails.js v1.0.1

Tabla 1.5 Software requerido para el Cliente.

Software Versión
Sistema operativo Windows 7 Professional o superior
Navegador Web Chrome, Opera, Firefox en su última versión
Antivirus Windows Defender

Tabla 1.6 Software adicional.

Software Versión
Lector de documentos PDF Adobe Reader DC
Paquete Ofimático Microsoft Office 2013 o superior

12
1.6.3 DATOS
Los datos son fragmentos de información, es decir caracteres, cadenas,
números, etc. Para ello se describirá los datos que WebCASE requerirá en la
siguiente tabla.

Tabla 1.7 Datos requeridos por WebCASE.

Entidad Descripción
Por cada usuario se requerirá lo siguiente:
 Nombres.
 Apellidos.
 Usuario
 Correo.
 Contraseña.
 Cargo.
Por cada mensaje se requerirá lo siguiente:
 Texto.
 Mensaje
 Fecha.
 Estado.

1.6.4 PROCESOS
Los procesos son las transformaciones que se le realizan a los datos
obtenidos. Por tanto, los procesos que se realizarán gracias a WebCASE se
describen en la siguiente tabla.

Tabla 1.8 Procesos llevados a cabo por WebCASE.

Entidad Descripción
El usuario puede registrarse para poder utilizar
WebCASE, debe ingresar a la página de registro,
 Registro de usuarios
rellenar el formulario de registro con los datos
requeridos y clicar el botón de registrar.
Se lleva a cabo con las cuentas de usuario
activas, se crearan los roles y en función de
 Roles y privilegios de usuario
dichos roles se podrán asignar limitaciones a los
usuarios de WebCASE.
Los usuarios activos podrán enviar y recibir
 Envío de mensajes mensajes en el grupo, escribiendo el mensaje
deseado y luego clicando en el botón enviar.
Se puede generar código fuente a partir del
modelo realizado, esto seleccionando la opción
 Generación de código
generar código y dando ciertos parámetros para
que WebCASE se encargue del resto.
Además, el modelo realizado durante el
proyecto, se podrá exportar para poder editarlo
más adelante en otra herramienta CASE.
 Exportación del modelo
Para ello el usuario deberá clicar la opción
exportar modelo, darle los parámetros para que
WebCASE realice el resto.

13
1.6.5 PERSONAS
Las personas son las entidades que interactuaran directamente con el sistema
software.

Desarrollador
Es la persona que interactuará con la aplicación, esto es registrarse, enviar y
recibir mensajes, así como también la exportación y generación de código a
partir del modelo realizado.

Jefe de proyecto
Es la persona podrá hacer las mismas tareas que un desarrollador, pero
además también podrá administrar roles y permisos de usuarios, por otro lado,
es el usuario que dará inicio y fin a la edición del proyecto del que esta
encargado.

1.6.6 DOCUMENTACIÓN
La documentación es la información que respalda el sistema en cuanto a
funcionalidad, procesos seguidos e incluso el modo de uso del mismo.
Por ello, además del presente documento se incluye la siguiente información.
 Guía de configuración e instalación: en el apéndice (A) se describe de
forma detallada la tarea de configuración e instalación de WebCASE para
empezar a utilizarla sin problemas.
 Manual de usuario: el manual explicativo del uso correcto que se le debe
dar a WebCASE se describe en el apéndice (B). Se explica el uso de
WebCASE desde el registro de usuario pasando por la asignación y
gestión de los roles y privilegios, hasta llegar a la exportación del modelo
y la generación de código fuente a partir de dicho modelo.

1.7 Costos Asociados al Proyecto


Para poner en marcha este proyecto se requiere una serie de elementos que
incluyen hardware, software, recursos humanos, servicios básicos entre otros.

14
15
Tabla 1.9 Costos incurridos en Hardware. (Especificaciones y detalles en el Anexo A).

Fecha P.U. Dep. P.U. Neto P.U. Total


Tipo Recurso Cantidad
Desde Hasta ($us) (%) ($us) ($us)
Pc 05/04/2018 02/05/2018 1 650 25 162.5 162.5

Impresora 05/04/2018 02/05/2018 1 250 25 62.5 62.5


Hardware
Servidor 05/04/2018 02/05/2018 1 1200 25 300 300

Router 05/04/2018 02/05/2018 1 1080 25 270 270

Windows 10 - - 1 309 30 92.7 92.7

PHPStorm - - 1 199 30 59.7 59.7


Software
Enterprise Architect - - 1 599 30 179.7 179.7

MariaDB - - 1 0 0 0 0

Gestor de proyecto 05/04/2018 02/05/2018 1 1500 0 1500 1500

Personal Analista y Diseñador 05/04/2018 02/05/2018 1 900 0 900 900

Programador 05/04/2018 02/05/2018 1 350 0 350 350

Material de escritorio 05/04/2018 02/05/2018 - 25 25 6.25 6.25

Muebles y Enceres 05/04/2018 02/05/2018 - 500 20 100 100


Logística
Material de limpieza 05/04/2018 02/05/2018 - 15 0 15 15

Refrigerio 05/04/2018 02/05/2018 - 200 0 200 200

Local 05/04/2018 02/05/2018 1 580 0 580 580

Energía Eléctrica 05/04/2018 02/05/2018 - 45 0 45 45


Infraestructura
Agua 05/04/2018 02/05/2018 - 40 0 40 40

Internet 05/04/2018 02/05/2018 - 80 0 80 80

16
Capítulo 2: Marco Teórico
Marco Teórico

En este capítulo se describirán todos los aspectos teóricos abordados para


llevar a cabo este proyecto, desde la fundamentación de la ingeniería de
software basada en componentes, hasta la teoría detrás de los modelos de
secuencia en UML 2.0 y el lenguaje de intercambio de metadatos (XMI).

2.1 Desarrollo de Software Basado en


Componentes
El modelo de desarrollo basado en componentes es de naturaleza evolutiva y
demanda un enfoque iterativo para la creación de software. Además,
construye aplicaciones a partir de fragmentos de software prefabricados.
Las actividades de modelado y construcción comienzan con la identificación
de candidatos de componentes. Éstos pueden diseñarse como módulos de
software convencional o clases orientadas a objetos o paquetes de clases. Sin
importar la tecnología usada para crear los componentes, el modelo de
desarrollo basado en componentes incorpora las etapas siguientes (se
implementan con el uso de un enfoque evolutivo):
1. Se investigan y evalúan, para el tipo de aplicación de que se trate,
productos disponibles basados en componentes.
2. Se consideran los aspectos de integración de los componentes.
3. Se diseña una arquitectura del software para que reciba los
componentes.
4. Se integran los componentes en la arquitectura.
5. Se efectúan pruebas exhaustivas para asegurar la funcionalidad
apropiada.

17
El modelo del desarrollo basado en componentes lleva a la reutilización del
software, y eso da a los ingenieros de software varios beneficios en cuanto a
la mensurabilidad. Si la reutilización de componentes se vuelve parte de la
cultura, el equipo de ingeniería de software tiene la posibilidad tanto de reducir
el ciclo de tiempo del desarrollo como el costo del proyecto.
.

2.2 Arquitectura de Software

2.3 Factores de Calidad en el Software

2.4 UML 2.0

2.5 Ingeniería de Software Asistida por


Computadora – CASE

2.6 XML de Intercambio de Metadatos


Fdsf
jkjk

2.6.2 F

18
PARTE II
Metodologías, conjunto de modelos de software.

19
Contenido parte II.

Capítulo 3

20
PARTE III
Mecanismo de ayuda, manual, video, etc.

21
Contenido parte III.

22
PARTE IV
Reflexión, experiencia, antes y después, recomendaciones, etc.

23
Contenido parte IV.

24
25

You might also like