Beruflich Dokumente
Kultur Dokumente
PROJECT
MANAGEMENT
PLAN
V4.0 Versión final del documento con los numerales completados según las Octubre 29 de 2016
necesidades del equipo de desarrollo
2 Prefacio
“Cuando uno trabaja en Ingeniería de Sistemas, también llamada Computación o Informática, a
menudo es difícil explicar su trabajo a una persona que no sabe del tema. Muchos se imaginan que
nuestra principal tarea es abrir computadores, cambiarle piezas, sacarle virus (cual médico de
cabecera) y otras tareas similares.” (Pavlich-Mariscal, 2013) El rol del ingeniero de sistemas no
se limita únicamente a las labores de programación y tareas que solo involucren aspectos de lógica
matemática o algoritmos. Por medio de este documento se puede mostrar como actividades de
carácter administrativo, gerencial y de planeación entran a jugar en el contexto de la ingeniería de
sistemas.
La finalidad del documento principalmente es una guía para el equipo de desarrollo, además de ser
uno de los entregables donde se constata de una manera más profunda y explícita de los procesos,
tareas y actividades realizadas durante el desarrollo del proyecto hasta llegar al resultado final
como lo es el prototipo de Simuscope, también teniendo en cuenta elementos de planeación,
calendarización, estimación, gestión de riesgos, aseguramiento de calidad y control de versiones,
entre otros procesos relevantes y necesarios para cualquier desarrollo en el contexto de la
ingeniería de sistemas y aún más en la de software.
3 Tabla de Contenidos
Gráfico 1. Esquema de Ciclo de Vida en Espiral, Tomado de (Hashmi & Baik) ....................................... 10
Gráfico 2. Proceso de Aceptación de Riesgo y Resolución ......................................................................... 43
Gráfico 3. Proceso de control de calidad, tomado de (Sommervile, 2005)................................................. 49
Gráfico 4. Etapas de control de calidad, Adaptado de (Sommervile, 2005) ............................................... 51
5 Lista de Tablas e Ilustraciones
Desde su concepción, las cirugías mínimamente invasivas (MIS por sus siglas en inglés) se han
convertido en una completa revolución en lo que a aspectos quirúrgicos se refiere (Park & Lee,
2011). Desde su introducción práctica en las últimas dos décadas, ha representado un avance
sustancial en la forma como se realizan procedimientos médicos en pro de reducir el impacto que
tienen en el paciente al realizar incisiones más pequeñas y menos dolorosas (Mi, Hou, Yang, Xie,
& Bian, 2014). Esto ha hecho que este paradigma se haya ido convirtiendo en un procedimiento
predilecto para diversos tratamientos e intervenciones del tipo cardiovascular, intestinal o renal,
entre otras (Grantcharov et al., 2004).
Las técnicas de entrenamiento en los hospitales se limitaban al uso de muñecos o maniquíes que
simulan de manera parcial el cuerpo humano (Cooper & Taqueti, 2008) o bien, utilizar animales e
inclusive cadáveres para obtener las habilidades requeridas para efectuar de manera correcta un
procedimiento quirúrgico determinado (Mi et al., 2014), implicando costos elevados y dilemas
éticos que dificultan en gran medida a los centros de salud y universitarios en formar cirujanos
eficientes en sus labores. Cabe resaltar que el paradigma de aprendizaje tradicional de habilidades
quirúrgicas de la forma “ver, hacer y enseñar” (Gallagher et al., 2005) resulta sumamente costoso
en términos de tiempo al requerir de un cirujano entrenado para entrenar a los residentes.
Adicionalmente, para asegurar la efectividad de los procedimientos quirúrgicos, se necesita de un
proceso de formación para los cirujanos con el fin de explotar al máximo las ventajas y beneficios
que traen las cirugías mínimamente invasivas sobre las cirugías abiertas (Grantcharov et al., 2004),
evitando en lo posible limitantes físicas, económicas, legales y sociales que puedan llegar a
producirse, terminando en serias dificultades para un proceso de entrenamiento médico.
Debido a esto, se busca combinar tanto software como hardware para desarrollar un sistema
completo que brinde el apoyo necesario para la adquisición de habilidades, conocimientos y toma
de decisiones como preparación para el momento que se haga la operación correspondiente.
También, se enfocan estos esfuerzos con el fin de desarrollar sistemas que reduzcan los costos
financieros asociados, los tiempos de entrenamiento y formación, percepción de la dificultad y
optimización de otros parámetros y métricas que definan el nivel de experticia que adquiere el
estudiante (Gallagher et al., 2005).
Tomando en cuenta que la presente y las futuras generaciones de estudiantes de medicina poseen
ciertas habilidades gracias a la influencia de la informática y las aplicaciones digitales, añadiendo
el cómo estas tienen incidencia en las destrezas necesarias para realizar estas operaciones, se
vuelve fundamental el desarrollo de sistemas que tengan en cuenta analogías e interacciones que
resulten naturales para estas personas, por lo que entra a jugar la utilización de técnicas de
Ludificación (Kapp, 2012), las cuales ayudan a mejorar la experiencia del usuario en el uso de un
sistema, otorgando incentivos para el uso de los servicios que se ofrecen mientras se obtiene el
conocimiento y las habilidades durante este proceso. A medida que se abstrae el contenido en
forma de juego, adicionalmente, se obtiene una retroalimentación tanto del progreso en una
actividad como de los resultados finales de las actividades realizadas, evaluando las diferentes
métricas a tener en cuenta durante el entrenamiento, imitando los contenidos presentados en un
videojuego.
6.2.1 Propósito
A nivel de Prototipo
A nivel de Proyecto
El propósito del proyecto de Simuscope es el de gestionar todas las actividades y prácticas como
un proceso formal de ingeniería de software, definiendo y siguiendo una serie de planes para
asegurar la generación de un producto de software de calidad como el resultado final del proceso
investigativo y formativo correspondiente a un trabajo de grado de ingeniería de sistemas.
6.2.2 Alcance
Como se ha establecido tanto en el contexto de la propuesta de trabajo de grado como desde la
modalidad escogida para el mismo (investigación) se busca desarrollar un prototipo del simulador
virtual que contenga los requerimientos más prioritarios asociados a los puntos clave y factores
diferenciadores que definen al mismo, enfocándose en aspectos de ludificación, integración con
dispositivos hápticos y retroalimentación tanto sensorial como visual. Si bien se definen otros
requerimientos que no están directamente asociados a estos aspectos, se determina que son
necesidades que se pueden desarrollar más adelante al no ser prioridad para los objetivos trazados
en el trabajo de grado.
Como parte del componente investigativo del trabajo de grado, se determina las razones de estos
elementos clave y son parte del propósito final a evaluar en la fase de pruebas si realmente estos
elementos resultan relevantes frente a las otras soluciones existentes, interpretando los resultados
y llegando a una serie de conclusiones finales correspondientes a la investigación realizada.
6.2.3 Objetivos
Teniendo en cuenta los lineamientos que enmarcan el trabajo de grado, se tiene un primer objetivo
general que se alinea a la pregunta generadora desde la propuesta de trabajo de grado, en este caso:
¿Cómo utilizar la tecnología de la realidad virtual para desarrollar un sistema de entrenamiento
médico en laparoscopia, haciendo uso de técnicas de ludificación?, así como una serie de objetivos
específicos que se definen metas específicas que se deben cumplir para alcanzar el objetivo
general, además de definir los resultados esperados y procesos acordes a un proceso de ingeniería
de software formal.
6.2.3.1 Objetivo General
Desarrollar un prototipo de realidad virtual para dar una alternativa de aprendizaje
para los practicantes médicos que se entrenan en laparoscopia, buscando que sea un
sistema de bajo costo y que haga uso de técnicas de ludificación.
Los supuestos que se manejarán para Simuscope se relacionan con aquellos detalles y hechos que
se dan por sentado, hechos que deben darse para que el desarrollo del proyecto no se vea afectado.
Estos son los supuestos que se deben tener en cuenta para lograr este propósito:
Las restricciones son limitantes en alguno de los aspectos relevantes para el desarrollo del
proyecto, además de limitantes para los usuarios potenciales:
El prototipo debe contar con motores gráficos, simulación virtual, soporte para dispositivos
externos hápticos para integrar una solución de simulación virtual para entrenamiento
médico.
El sistema debe manejar un paradigma orientado a objetos en C/C++.
El sistema debe hacer uso de los órganos provistos por el trabajo de grado del Ingeniero
Pablo Quiñones, en formato VTK.
Solo se cuenta con un dispositivo háptico en la universidad, así como un único equipo de
cómputo asignado capaz de hacer uso de este dispositivo. Adicionalmente, los equipos de
cómputo tienen recursos de memoria dinámica y procesadores gráficos sumamente
limitados para la mayoría de motores gráficos y físicos.
6.4 Entregables
Se definen entregables como aquellos documentos y archivos complementarios a la memoria de
trabajo de grado y que complementan y muestran el proceso de desarrollo llevado a cabo para
alcanzar los objetivos trazados en el mismo (ver Administración de Configuraciones). Cabe
resaltar que estos documentos se irán desarrollando a medida que se avancen en las iteraciones,
por lo cual no se establece una fecha objetivo de los mismos exceptuando la fecha final de entrega
del proyecto de grado (15 de noviembre), aunque si se busca que en cada iteración se vaya
evolucionando o cambiando elementos del mismo.
Software Project Management Plan (SPMP línea base): Siguiendo los estándares IEEE
[Std. 1058-1998] (IEEE Standards Board, 1998) para la elaboración de este. Dado que el
objetivo del proyecto no está enfocado tanto en los procesos del desarrollo formal del
software como si lo haría una modalidad de Aplicación Práctica, la profundidad sobre los
procesos y los componentes de este son más acotados.
User Stories: A través de la recopilación de un conjunto de User Stories se busca hacer una
definición rápida y simple sobre los objetivos de los diferentes involucrados en el proyecto
y las tareas que se busca cumplir con el prototipo final. Este documento en particular sirve
como primera aproximación a las necesidades y restricciones que posee Simuscope.
Software Requirement Specification (SRS línea base): Según el estándar IEEE [Std. IEEE
830] (IEEE Standards Board, 1998) que especifica el SRS, se tendrá en cuenta para la
realización de dicho documento, enfocándose principalmente en la clasificación,
especificación y seguimiento de los requerimientos hasta su cumplimiento parcial o total.
Software Design Document (SDD línea base): Basados en el estándar IEEE [Std. 1016-
2009] (IEEE Standards Board, 2009), se realizará entrega de este documento siguiendo con
los siguientes criterios principales de evaluación.
Memoria de Trabajo de Grado: Documento final donde se condensan y se explican todos
los elementos que componen el proyecto orientados a la investigación y a los procesos de
generación de conocimiento, así como detallando más la justificación del sistema y sus
componentes desde la teoría y como son llevados a la práctica, evaluando su impacto final.
Esta estimación se realizará a lo largo de 24 semanas lo cual daría un total de 1680 horas para la
realización del trabajo de grado. Para cada una de las fases metodológicas se definió una cantidad
de actividades las cuales se les asigna una cantidad de horas para su realización y cumplimiento
para el simulador a desarrollar. La distribución de las horas de cada una de las fases se puede
observar a continuación:
Se recuerda que, dado que se está utilizando un ciclo de vida basado en Entrega Ágil Disciplinada,
las actividades de la fase de desarrollo del proyecto se realizarán de manera iterativa e incremental,
por lo que se planean iteraciones de 3 semanas durante 15 semanas que se presupuestan para esta
fase. En el siguiente diagrama Gantt se pueden ver la asignación en fechas de las actividades
definidas anteriormente, resaltando nuevamente que las actividades de la fase de desarrollo se
repetirán mientras se realice esta etapa del proyecto, por lo que en el diagrama aparecen como si
se desarrollaran durante toda la fase.
Ilustración 5. Diagrama Gantt del Cronograma
El presupuesto por su parte se definirá con equipos con los que contamos y cómo se deprecia
el equipo a través del tiempo. También la valoración de horas-hombre en términos salariales
de cada uno de los miembros del equipo de trabajo.
El presupuesto para este trabajo de grado, se divide en 3 secciones las cuales son: Recursos
Humanos, Gastos de Hardware y Gastos generales. Cabe resaltar que dentro de los costos no
se incluyen el software libre que se utilizara en el proyecto ya que es gratuito al igual que los
dispositivos hápticos que serán proporcionados por la Pontificia Universidad Javeriana.
Equipo de Desarrollo: Corresponde a los integrantes del grupo del trabajo de grado: Esteban
Hernández y Emmanuel Neiza.
Documento: Unidad de información identificada de manera única para uso humano, como
reporte, especificación, manual o libro, ya esté en forma física o digital. (IEEE Standards
Board, 2010) Esta clasificación incluye los principales entregables (ver Entregables).
Cirugía: Operación médica que puede: buscar reducir o prevenir el dolor de un paciente;
reducir los efectos de un síntoma de una enfermedad; mejorar las funciones de alguna parte
del cuerpo del paciente; o bien, realizar la búsqueda de un problema en particular que pueda
tener este (U.S. National Library of Medicine, 2014).
Cirugía Mínimamente Invasiva: Tipo de cirugía orientada a evitar los mayores efectos
secundarios de la operación, buscando realizar incisiones y cortes menos pronunciados para
aportar en el tiempo de recuperación del paciente, así como en aspectos estéticos.
Realidad Virtual: Espacio definido a través de una máquina o una interfaz programa que
genera o sintetiza entornos que poseen comportamientos, objetos y relaciones que definen un
mundo con reglas establecidas programáticamente. Por lo general, en la realidad virtual se
busca simular el mundo real, objetos y procesos del mismo para que la persona inmersa en
la virtualidad interactúe en este espacio, con estos objetos sujeto a los comportamientos
definidos, teniendo en cuenta que aspectos como físicas, formas, tamaños, deformaciones y
colores se pueden alterar en esta realidad para algún propósito en particular.
Simulador Virtual: Herramienta de software y hardware que simula una realidad virtual en
particular, generalmente orientado a recrear actividades del mundo real para que el usuario
sienta la experiencia de realizarla como si fuera en el mundo real.
Cauterización: Acción en la cirugía que consiste en quemar tejido, generalmente para cerrar
cortes o heridas.
Manipulación: Acción en la cirugía que consiste en tomar un órgano o tejido, o al menos una
parte de este, para moverlo en el espacio.
8 Contexto del proyecto
Dado que plantea un ciclo de vida de manera iterativa e incremental, las actividades de la
fase metodológica se volverán a hacer, agregando contenidos y complejidad en cada uno de
los entregables, efectuando correcciones y modificaciones donde haga falta, buscando
cumplir progresivamente cada uno de los objetivos y los requerimientos definidos.
Para efectos de este proyecto se definen tres fases metodológicas que se ajustan a la
metodología de D.A.D, teniendo una serie de objetivos definidos para cada caso:
Ilustración 7. Proceso de Entrega Ágil Disciplinada. Tomado de (Amber, Scott W., 2013).
Las actividades que se llevarán a cabo para cumplir esta fase metodológica son:
Teniendo en cuenta los diversos modelos de ciclo de vida existentes, se decide utilizar
parcialmente aspectos de 3 que se consideran que se acoplan a las necesidades y habilidades
del grupo de desarrollo del producto de software.
Modelo en Espiral
Si bien la división de trabajo mediante ciclos podría ajustarse a las fases metodológicas
definidas anteriormente, la metodología de Entrega Ágil Disciplinada resulta más viable para
un proyecto de carácter investigativo al manejar una etapa de concepción o inicio donde se
pueden definir de manera general las necesidades y problemáticas a tratar para luego
enfocarse en los mecanismos para solucionarla e ir actualizando elementos como
requerimientos, historias de usuario, arquitectura, diseño, entre otros. Varios de los aspectos
más importantes del modelo en espiral están inmersos ya en el ciclo de vida de D.A.D.
El Rational Unified Process (RUP) es un modelo que tiene una forma disciplinada de asignar
tareas y responsabilidades en una empresa de desarrollo en donde describe una clase de los
procesos que son iterativos e incrementales. Los procesos de RUP se centran en estimar tareas
y horarios del plan midiendo la velocidad de las iteraciones. La principal ventaja de RUP es
que se basa en las mejores prácticas que han sido probadas con anterioridad.
Dentro de las actividades más características del ciclo de vida de RUP se encuentran las
siguientes (Larman, Iterative, Evolutionary and Agile Models, 2004) (Rational - The
Software Development Company, 1998):
Si bien en este caso se dividen el ciclo de vida en cuatro fases muy similares a las de D.A.D.
(Rational - The Software Development Company, 1998), en D.A.D. la fase de Desarrollo
evita cierta confusión que se presenta entre las fases de RUP de elaboración y construcción,
enfocando las actividades una vez se ha iniciado el proyecto en la elaboración de cada
solución consumible, aspecto que RUP no trata al menos de manera explícita. El hecho de
hacer una aproximación de soluciones consumibles que van creciendo iteración a iteración
permite entre otras mitigar riesgos de manera temprana, tener respaldos de versiones que
guardan funcionalidades que otras podrían no tener y al estar orientado más al cliente permite
recibir rápidamente retroalimentaciones tempranas de los resultados, teniendo en cuenta que
al ser un proyecto de un área del conocimiento ajena al equipo de desarrollo implica un riesgo
adicional.
El esquema de cascada obliga que no se pueda avanzar de una etapa sin que se haya
completado en su totalidad la etapa previa, pues se considera como una secuencia estricta de
análisis de requerimientos, diseño y fases de desarrollo (Larman & Basili, Iterative and
Incremental Development: A Brief Story, 2003). Esto implica que una vez finalizada una
etapa, no se puede retroceder y es poco flexible en el momento de tratar con cambios o errores
inesperados que no fueron tenidos en cuenta en etapas anteriores.
Modelo en V
El Modelo en V es una variante del modelo en cascada que “hace explícita la dependencia
entre actividades de desarrollo y las de verificación [...] hace explícita la noción de nivel de
abstracción”. (Bruegge & Dutoit , 2002)
Pese a tener varias etapas de validación, posee la misma falencia del esquema en cascada de
no poder retroceder en el proceso, pues “asumen que después de que una actividad se termina
y se revisa, el producto de trabajo asociado puede tomarse como línea base” (Bruegge &
Dutoit , 2002), asunciones que sólo servirán si hay completa certeza que los requerimientos
no se van a ver modificados ni corregidos durante el resto de etapas.
“El modelo de diente de sierra muestra las percepciones del sistema por parte del usuario y
el desarrollador de software en diferentes niveles de abstracción a lo largo del tiempo”.
(Bruegge & Dutoit , 2002)
El principal problema que se pretende atacar con este ciclo de vida es que los requerimientos
de software son normalmente dinámicos y podrían cambiar en forma drástica durante todo el
desarrollo del proyecto y si se siguen otros ciclos de vida como cascada o modelo en V donde
la primera vez que el usuario interactúa con el sistema es solo hasta el final del proyecto se
corre el gran riesgo de que lo que se le entrega al usuario no es lo que él esperaba (no se
satisfacen los requerimientos) ya que los usuarios y los implementadores tienen diferentes
maneras de comprender los sistemas de software.
Para lograr esto el modelo dientes de sierra incluye una serie de actividades que usualmente
están enfocadas a presentar prototipos del estado actual del sistema al usuario con el fin de
que este último pueda evaluar cada prototipo, informar a los desarrolladores que se podría
cambiar, agregar o que definitivamente se debe eliminar del prototipo ya que no es lo que se
quiere del sistema final. Esto con el fin de corregir a tiempo problemas de requerimientos
que cambian con el tiempo, logrando así una retroalimentación por parte del usuario en las
distintas etapas del desarrollo del proyecto y haciendo que el cliente se involucre en su nivel
de abstracción obteniendo un nivel de confianza mayor en cuanto a que el sistema final se
parezca a lo que el usuario quiere. De aquí obtiene este ciclo de vida su nombre ya que cada
demostración de prototipo al cliente da como resultado un “diente”. En el Gráfico 7. Se puede
ver este esquema de dientes y la división del nivel de abstracción del desarrollador y el
cliente.
Durante el desarrollo del sistema el usuario permanece en el nivel de los requerimientos, qué
quiere del sistema y cómo lo quiere, mientras que los desarrolladores se enfocan en la
factibilidad, si es posible lograr lo que el usuario quiere y como sería posible lograrlo.
Entonces al inicio del proyecto los desarrolladores y el usuario están en el mismo nivel de
abstracción, es decir, se acuerdan los requerimientos iniciales del sistema; luego los
desarrolladores basándose en estos requerimientos elaboran un diseño tentativo del sistema
el cual implementan en un prototipo, muy sencillo si se quiere, que podrían ser simples
secuencia de las pantallas desde el punto de vista de los casos de uso, se muestra este
prototipo al usuario quien evaluará si satisface los requerimientos inicialmente acordados.
Ilustración 10. Esquema de Diente de Sierra, tomado de (Bruegge & Dutoit , 2002)
De este modelo no se tomará ninguna característica para Simuscope, puesto que aunque tiene
una buena comunicación con el cliente en cuanto a sus requerimientos, mostrándole los
prototipos cada vez que estén para que este pueda evaluar, se encuentra que el desarrollo de
prototipos incrementales y en un esquema iterativo resulta mucho mejor para el control de
riesgos y calidad.
“El modelo de diente de tiburón es un refinamiento del modelo de diente de sierra. Además
de las demostraciones al cliente también se introducen revisiones y demostraciones para la
gerencia.” (Bruegge & Dutoit , 2002)
Este modelo no solo se centra en los comentarios y revisiones por parte del cliente sino que
también tiene en cuenta los comentarios y observaciones por parte de la gerencia o quien
dirija el proyecto. Aquí existen dos tipos de dientes lo “grandes” enfocados hacia el usuario
y los “pequeños” enfocados al director del proyecto (gerencia). En el Gráfico 8, se puede ver
como se ven el nivel de gerencia y el nivel de cliente donde el primero genera unos dientes
más pequeños a comparación de los que hay cuando se interactúa con el cliente.
Ilustración 11. . Esquema de Modelo de Diente de Tiburón, tomado de (Bruegge & Dutoit , 2002)
Dado que es una variante más elaborada del diente de sierra, se descarta para Simuscope
Social. Primero, ya que se opta por usar un esquema soluciones consumibles en las que se
pueda ir evaluando avances reales del prototipo final. Segundo, dado que no hay roles de
carácter gerencial al no ser un producto final que se lleve al mercado sino un prototipo
orientado a resultados de investigación para evaluar la viabilidad de un sistema en un
contexto determinado, este modelo no se ajustaría a las necesidades del proyecto..
Desarrollo Evolutivo
El desarrollo evolutivo tiene una gran ventaja la cual es que la especificación se desarrolla
de forma creciente. Sin embargo, posee dos grandes problemas:
Los cambios corrompen la estructura del software, es decir cada vez que se le quiera
introducir un cambio será con el tiempo una tarea más difícil y costosa. El desarrollo
evolutivo para sistemas de tamaño medio y pequeño es el mejor. Pero, entre más grande sea
el tamaño del sistema y además, entre mayor sea el periodo de vida, surgirán problemas con
este modelo de desarrollo.
Para el contexto de Simuscope, se decide no utilizar este modelo de ciclo de vida, pues ya
habiendo entendido claramente el objetivo del prototipo y siendo aprobado desde la
Propuesta de Trabajo de grado, se ve poco útil desarrollar un modelo a base de fallos como
el de prototipos desechables, cuando se tiene el desarrollo de soluciones consumibles que
aseguran que se cumplan una serie de requerimientos y comportamientos requeridos por parte
de los usuarios e interesados finales.
Planeación:
Historias de usuario
Plan de entregas
Plan de iteraciones
Reuniones diarias cara a cara
Diseño:
Simplicidad
Soluciones “Spike” (pequeños programas de prueba)
Recodificación y reutilización de código.
Metáforas
Desarrollo de código
Pruebas
Pruebas unitarias
Detección y corrección de errores
Pruebas de aceptación
XP por ser una metodología ágil, utiliza como sustenta el Manifiesto de los métodos ágiles
(Agile Alliance, 2015), donde las actividades se enfocan más en la producción de
funcionalidades y código, entregando software funcional constantemente a los clientes.
Adicionalmente, la comunicación será cara a cara diariamente para trabajar desde los
requerimientos hasta el código (Wells, 2013).
Estas prácticas donde requieren iteraciones muy rápidas y con una interacción constante con
el cliente hacen que esta metodología ágil no pueda ser practicada, teniendo en cuenta que la
complejidad técnica y los componentes investigativos del proyecto requieren de la búsqueda
de información en el campo de la medicina así como en el desarrollo de simulación médica,
aspectos que requieren un desarrollo más detallado.
SCRUM
SCRUM hace parte de los modelos de ciclo de vida de desarrollo ágil, el cual pone en énfasis
el desarrollo y construcción del software funcional, más allá de centrarse en las robustas
especificaciones como se podría ver en un modelo como el de cascada.
A través de Google Forms: Encuestas y formularios fáciles de crear para todo el mundo
(Google Inc., s.f.), esta aplicación vinculada con la cuenta de correo en Gmail (Google Inc.,
s.f.), se busca recopilar encuestas y datos relevantes en la fase de pruebas finales de quienes
hagan uso de la aplicación final, a través de una heurística de evaluación.
Para la organización de tareas, el grupo de trabajo hará uso de Asana (Asana, s.f.) , donde
estarán consignadas tareas para los miembros del equipo y podrán ser revisados por
cualquiera de los miembros de manera general. Junto con Asana, se va a utilizar Instagantt
para los esquemas de planeación de procesos, tareas y actividades del proyecto, la cual se
integra con las actividades asignadas dentro de Asana, permitiendo una completa integración
entre ambas herramientas para tener una mejor visión del calendario y duración de las
actividades. (Asana, 2015). Junto con Asana se usa Trello como complemento para asignar
tareas mucho más puntuales dentro de cada iteración, determinando el flujo y avance de las
mismas, facilitando el seguimiento de los avances por cada iteración.
Todos los documentos, tanto presentaciones como plantillas pertinentes para el grupo, serán
realizados en Microsoft Office (Versión 2010 en adelante) (Microsoft, s.f.) o Google Docs
(editor online) (Google Inc., s.f.) , herramientas que nos permite desarrollar de manera
estética y uniforme, cumpliendo con las configuraciones determinadas, además de un manejo
concurrente en el caso de la última.
Bizagi process modeler (versión 2.9) (Bizagi, 2015): Es un software gratuito que sirve como
modelador de procesos de negocio, fue desarrollado y ha sido distribuido por la compañía
Bizagi Limited. Entre las características de esta herramienta están el poder realizar diagramas
de procesos de tipo BPMN, además de poder documentarlos y simular su funcionalidad,
además de permitir generar esquemas de procesos y actividades de una manera más
entendible para el equipo de desarrollo. Esta herramienta fue elegida ya que cuenta con
elementos útiles para ajustarse a las necesidades del proyecto y del producto que estamos
desarrollando.
Además, el equipo de análisis y diseño ya tiene experiencia con este programa desde cursos
anteriores, ya que anteriormente se vio involucrado en el modelado de procesos; visto en el
curso Sistemas de Información, donde se aprendió sobre la importancia de la buena
definición de los procesos de impacto en un proyecto y/o negocio, todo esto modelado a
través de prácticas funcionalidades que son brindadas por esta herramienta.
Unreal Engine 4 (Versión 4.12.5): Suite completa de desarrollo de juegos, hecha por
desarrolladores de juegos para desarrolladores de juegos, permitiendo crear juegos desde 2D,
pasando por videojuegos en 3D para consolas hasta sistemas de realidad virtual. Programable
en C++ y con ayudas visuales para el flujo de comportamientos e información mediante
Blueprints. Liberado como software libre a mediados de 2016, resulta una solución para el
desarrollo de sistemas de realidad virtual a bajo costo al ser gratuito, mientras se cree una
cuenta en Epic Games y se cuente con una cuenta de GitHub.
Amazon Drive: Dado que Github tiene limitantes importantes en cuando al máximo de
memoria soportada por archivo, se determina que para guardar los archivos más pesados y
que no puedan ser almacenados aquí, sean puestos en este repositorio en la nube. También
se consideró que cada solución consumible fuera subida aquí como soporte de
versionamiento adicional a Github.
Obtención de requerimientos
Análisis
Diseño del Sistema
Diseño de objetos
Implementación
Adicionalmente, teniendo en cuenta los parámetros del Proyecto de Grado, los aspectos de
aceptación requieren la elaboración del documento final de la memoria de trabajo de grado,
así como el prototipo funcional del sistema desarrollado, en este caso, Simuscope. Los
detalles del desarrollo después de la aprobación de la propuesta de grado también son
necesarios para constatar el desarrollo formal del ciclo de vida y las actividades contenidas
en la propuesta como resultado final de un proceso forma de desarrollo de software propio
de la ingeniería de sistemas.
La aprobación del prototipo y lo que representa en primer lugar dependerá en gran medida
de las experiencias, comentarios y resultados obtenidos por parte de quienes prueben el
prototipo final, pues son el insumo principal que define el impacto que tiene el sistema,
además de ser los datos con los cuales se realiza la interpretación de las conclusiones sobre
el mismo. Las respuestas obtenidas mediante una heurística de evaluación a manera de
encuesta determinaran el grado de éxito en cada uno de los componentes macro que definen
la solución (Retroalimentación Sensorial, Simulación Virtual, Simulación de
Colecistectomía, Retroalimentación Visual, Ludificación e Interfaces naturales).
La aprobación del producto también dependerá tanto del Tutor de Trabajo de Grado asi como
los jurados del mismo, pues son quienes otorgan la calificación final del proyecto,
determinando el grado de aprobación o no del sistema y los resultados que el proyecto y la
investigación han arrojado y cómo estos se han interpretado.
El asesor de este trabajo de grado es el profesor Leonardo Florez Valencia, profesor del
departamento de Ingeniería de Sistemas de la Pontificia Universidad Javeriana. Como Tutor
del proyecto de grado nos brinda la retroalimentación necesaria semanalmente de las
actividades realizadas durante el desarrollo del prototipo, así como dar recomendaciones o
sugerencias sobre el proceso. Adicionalmente es el encargado de dar la calificación
correspondiente al 60% del trabajo de grado, por lo cual también cumple un rol similar a la
de un cliente final de todo el proyecto, incluyendo el prototipo de Simuscope y sus resultados.
Los jurados del trabajo de grado son los encargados de evaluar desde una perspectiva más
externa todo el proyecto de grado, teniendo en cuenta que algunos no necesariamente son
expertos en el área de evaluación del sistema, por lo cual todas las ideas y conceptos
expuestos a ellos deben ser lo más entendibles posibles sin entrar en tecnicismos mayores.
Ellos por su parte otorgan la calificación del 40% restante del trabajo de grado
Usuarios Potenciales
Personal de la universidad
Para avanzar en las actividades del proyecto, concertar reuniones y realizar pruebas en los
equipos de la Universidad Javeriana, es necesaria la intermediación de los encargados de las
bibliotecas y las salas de cómputo dentro de la Pontificia Universidad Javeriana.
8.5.2 Organigrama
Para el contexto de este proyecto que se compone de dos personas, resulta un tanto excesivo
hacer una asignación de roles teniendo en cuenta que las habilidades y conocimiento de
ambos se encuentra a la par, el contexto del proyecto implica aspectos de investigación en
un área del conocimiento que es ajena a ambos como es la parte médica o el desarrollo de
entornos virtuales. En ese orden de ideas, ambos miembros del equipo de trabajo están al
mismo nivel en términos de jerarquía, desarrollando ambos a la par actividades tanto de
requerimientos, documentación, diseño, programación y pruebas, haciendo revisiones
cruzadas cuando haga falta.
Aunque haya una asignación clara de actividades, no significa que cada persona estará
haciendo lo suyo de manera aislada. Teniendo en cuenta el modelo de trabajo de Bazar
desarrollada por Torvalds y luego descrita por Raymond (Raymond, 2010), donde el grupo
está “colmado de individuos con propósitos y enfoques dispares” (Raymond, 2010), por lo
cual se busca un desarrollo orientado más a la colaboración y revisiones cruzadas donde
ambos miembros del equipo estarán desarrollando actividades similares y solucionando
dudas entre sí.
9. Administración del Proyecto
Se hace un compromiso a través de este documento en cuanto a la capacitarse con el fin para
implementar el prototipo. Esto incluye herramientas de capacitación como cursos, tutoriales,
lecturas y videos que permitan entender los lenguajes de programación, herramientas en las
que se desarrollan y ejercicios que permitan poner en práctica los conocimientos adquiridos,
enfocándose en las utilidades que le puedan aportar valor al producto final, enfocándose en
la consecución de objetivos a través del proceso de desarrollo de software.
9.1.2 Infraestructura
En cuanto a la infraestructura, cabe aclarar que a nivel de equipos se tiene la siguiente
estructura de la ilustración 13:
Pontificia
Hogar de cada Universidad
Integrante Simuscope Javeriana
Sala Takina
Hogar de cada Integrante: dado que la uno de los canales de comunicación se realiza
mediante un chat, que los archivos se gestionan mediante repositorios remotos y se
puede trabajar en paralelo con aplicaciones como Google Docs, se considera entonces
la casa de cada miembro como parte de la infraestructura.
Pontificia Universidad Javeriana: teniendo en cuenta que gran parte del trabajo,
control, gestión y planeación se realiza en las reuniones semanales, se considera la
Universidad como parte de la infraestructura del equipo al ser parte de los espacios
donde se encuentran los equipos para el desarrollo del proyecto, además de ser el
espacio donde se encuentran tanto los miembros del equipo como las interfaces
externas del proyecto.
9.2 Planes de Trabajo del Proyecto
Encargados
1. Planeación.
2. Levantamiento de requerimientos.
3. Especificación de requerimientos.
4. Validación y Verificación de requerimientos.
Frecuencia
Puesta en Marcha
1. Planeación: La planeación tiene como objetivo determinar cuáles son las actividades
a realizar para realizar un proceso de ingeniería de requerimientos.
2. Levantamiento: Tiene como objetivo determinar la manera de cómo se construirán
los requerimientos del proyecto.
3. Especificación: Tiene como objetivo dejar explícita todas las características del
requerimiento para que pueda ser utilizado y comprendido por todo el equipo de
desarrollo, facilitar su ubicación y su impacto en el proyecto y artefactos
desarrollados dentro de este, además de llevar un control y seguimiento de su avance.
4. Validación: Tiene como objetivo asegurarse de que se posee el requerimiento
correcto ajustándose al mundo real, con su proceso definido.
5. Verificación: El objetivo es entender si está solucionando de manera correcta el
problema y se hace de manera secuencial e iterativa.
Finalmente es válido aclarar que para que un requerimiento se haya levantado y especificado
debió cumplir con ciertas características como las siguientes mencionadas:
Atómico Verificable
Correctos Modificable
No Ambiguos Trazable
Completos Asociados a Versión
Consistente No Redundante
Importancia Precisos
En cada una de las iteraciones se realizará un monitoreo y control en los aspectos importantes
del proyecto:
o Monitoreo del tiempo utilizado para completar cualquier tarea asignada. Cada
una de las tareas serán evaluadas por ambos miembros del equipo de trabajo,
determinando en qué momento se han presentado atrasos y las razones de los mismos.
Al ser solo dos personas las que trabajan en el desarrollo del prototipo resulta un tanto
excesivo hacer peticiones para modificaciones ya que se considera que por medio de
la gestión del control de versiones y el manejo de comunicación entre los integrantes
y las interfaces externas (cuando se requiera) es suficiente para monitorizar el tiempo
que toma realizar tareas, así como la toma de decisiones al momento de presentarse
cualquier inconveniente ajustado además con los riesgos.
Proceso de transición
Como un proyecto de trabajo de grado orientado a que se pueda reutilizar a futuro en nuevos
procesos de investigación y desarrollo de herramientas de entrenamiento médico en cirugías
mínimamente invasivas, el proceso de transición consistirá más en dejar disponible la
herramienta de prototipo en conjunto con toda su documentación y manuales asociados para
poder ir aprovechando las nuevas versiones que vayan saliendo de cada uno de los programas
que componen el sistema, con el fin de mantener todos los elementos que lo componen
vigentes en el tiempo. Entra en consideración de por ser el proyecto que bien es la carta de
presentación de los integrantes, también se prestará un soporte si es requerido, así como el
soporte existente de las interfaces externas sobre la continuidad del proyecto.
12 Procesos de Soporte
Como se detalló en el encargado del plan hay un continuo monitoreo y control de riesgos.
Por lo tanto, en cada sesión de trabajo presencial, así como las reuniones con el tutor del
proyecto de grado, se comentan los problemas e incidentes que se han presentado,
determinando el grado de inconveniencia que representa para el proyecto y determinando
finalmente si representa o no un riesgo para el desarrollo del proyecto. De esta manera, habrá
un control continuo sobre riesgos nuevos que puedan surgir.
Puesta en Marcha
Si bien se puede controlar parcialmente cada uno de los riesgos que se conozcan de entrada
en el desarrollo de un proyecto, hay otros que son inevitables y que se debe decidir si hay se
puede mitigar el impacto que poseen o si simplemente se debe aceptar que sucedan. Ante la
ocurrencia de amenazas que afecten el normal desarrollo del proyecto, estar en capacidad de
saber cómo lidiar con el riesgo es necesario para que en un futuro no se convierta en un
problema mayor que requiera un sobreesfuerzo para poder solucionar sus efectos.
(Wallmüler) Los puntos a tener en cuenta en el proceso de la administración del riesgo es:
Inicialmente, como se relata en la frecuencia del plan, cada reunión presencial se comentan
los problemas que van surgiendo durante el desarrollo, esto con el fin de saber que
inconvenientes se presentaron o incluso se pueden presentar en un futuro. (Wallmüler) Dado
el caso en el que se presentó algún inconveniente se discutirá entre todos como mitigar el
inconveniente presentado, en caso de que no se haya presentado ningún inconveniente se
analiza si hay algún inconveniente que se pueda presentar en el futuro, esto con el fin de
poder adelantarnos a los problemas antes de que surjan.
En caso de que se haya presentado algún inconveniente, en la reunión grupal se realizarán
las siguientes preguntas para analizar el riesgo del inconveniente presentado en el grupo de
trabajo:
MA
A
Probabilidad
M
Muy Bajo Muy Alto B
MB X
MB B M A MA
Impacto
Tabla 1. Segmento de la Lista de riesgos. (ver Anexo: Lista de Riesgos)
o Se definen 4 posibles estrategias de resolución:
Aceptar que es asumir el impacto del riesgo y no hacer nada para evitarlo.
Generalmente esto ocurre cuando el impacto es inevitable por razones de
fuerza mayor y no hay mecanismos para evitarlo.
Mitigar que es reducir el impacto del riesgo en el proyecto. El riesgo no
se puede evitar, pero se busca que el grado de afectación sea reducido.
Transferir que es pasar el problema causado por el riesgo a un tercero para
que lo solucione. Esta se considera que será poco frecuente de ocurrir pero
se tiene en consideración.
Prevenir que es reducir la probabilidad de ocurrencia del riesgo.
Puesta en Marcha
Teniendo en cuenta que el grupo de desarrollo del proyecto son solo dos personas, se opta
por una estrategia de revisiones cruzadas, esto con el fin de realizar revisiones de los
entregables de una manera más objetiva, teniendo en cuenta que las habilidades y la
percepción que tienen los miembros pueden hacer que se encuentren errores que el otro no
haya detectado, además de facilitar una retroalimentación de los avances obtenidos.
Política de Versionamiento
Para la gestión de documentos distintos al código fuente se utilizará Google Drive como
repositorio de estos documentos, con el fin de facilitar el trabajo concurrente y revisar de
manera visual los cambios efectuados en cada documento tratado. Estos documentos también
se irán almacenando en el repositorio en Github, de tal manera de guardar un respaldo de los
documentos en sus versiones anteriores
También será usado el etiquetado que proveen herramientas de Git para el repositorio de
GitHub, actualizando los códigos fuente de la implementación de prototipos y permitiendo a
los desarrolladores visualizar los cambios hechos en cualquier código, guardando respaldo
de versiones anteriores para evitar posibles errores que afecten el desarrollo del sistema. Sin
embargo, se encuentra que GitHub posee una serie de limitantes en el tamaño del espacio
Estructura de documentos
Cualquier documento o plantilla realizada dentro debe cumplir las siguientes condiciones:
Adicional a esto, todos los documentos y plantillas deberán estar guardados con el prefijo
“(Simuscope) – NombreDocumento”, para poder identificar claramente que son documentos
realizados por el grupo de desarrollo de Simuscope.
Ítems de Configuración
Los ítems de configuración, a los cuales se les aplicará las anteriores políticas de
versionamiento, son aquellos que sean entregables, pues permite hacer trazabilidad de los
cambios que han sufrido los documentos, así como cuantas veces han sido entregados al
cliente:
En caso de requerir hacer modificaciones de los ítems, se debe informar al otro miembro del
equipo, con el fin de hacer la revisión cruzada y evaluar la validez de los cambios efectuados,
esto para asegurar la calidad de los entregables, además de dejar documentada cualquier
anomalía encontrada.
Documentos Entregables distintos a la solución consumible
Para controlar los cambios que puedan sufrir algunos de estos documentos durante esta etapa
de desarrollo, se decide utilizar una rama de desarrollo para generar adelantos y cambios del
documento, evitando llegar a modificar o sobrescribir la línea base del documento a entregar.
Una vez han sido aprobados, se realiza su integración, se aplican las políticas de
versionamiento reflejadas en el historial de cambios y posteriormente en la etiqueta del
documento una vez sea actualizado en el repositorio.
Para controlar los cambios que puedan sufrir los documentos en cuanto a códigos fuente, se
decide utilizar una rama de desarrollo, donde se generará los cambios de estos. Estas se irán
desarrollando por escenarios y requerimientos, donde se generan progresivamente y luego se
integran una vez hayan pasado todas las pruebas definidas para tales requerimientos.
Los miembros del equipo de desarrollo y pruebas deberán aplicar las mismas políticas de
versionamiento que se venían haciendo con documentos. El código fuente posee su propia
plantilla de control para aprobar su integración al sistema total y dependiendo si deben hacer
correcciones, si fue aprobado o si es una entrega para el cliente, su versión se modificará
según las políticas previamente definidas
12.3 Plan de Control de Calidad
Validación: “La validación es un proceso más general. Se debe asegurar que el software
cumple las expectativas del cliente. Va más allá de comprobar si el sistema está acorde con
su especificación, para probar que el software hace lo que el usuario espera a diferencia de
lo que se ha especificado.” (University of Cantabria (Spain), 2011)
A partir de esto, el equipo de desarrollo se pondrá en los zapatos del cliente, (“take off your
engenineering hat and put on your mangament hat” (Fledderman)) y realizarán pruebas de
casos que se le podrían presentar al cliente al momento de usar el producto, y estas serán
demostradas al gerente.
Para evitar toda clase de problemas, se decide utilizar el ejemplo de producción mostrado por
Sommerville, por medio del Gráfico 3, donde se muestran las etapas que se llevan a cabo
para realizar el control de calidad.
Para cada uno de los entregables generados simplemente seguirá un esquema de revisión
cruzada entre los miembros del equipo del proyecto de Simuscope para la revisión
del mismo, favoreciendo así el tiempo de trabajo (limitado por cierto) para la solución
consumible sin dejar de lado la calidad del desarrollo, documentación y procesos de
soporte asociados.
15. Referencias
About Tech. (s.f.). Recuperado el 2015 de Marzo de 4, de A List of Social Networks for Pet Lovers:
http://webtrends.about.com/od/socialnetworks/tp/pet-social-networks.htm
Adobe Systems. (s.f.). Obtenido de Brackets: An open source text editor that understands web design:
http://brackets.io/
Agile Alliance. (Enero de 2015). The Twelve Principles of Agile Software. Obtenido de The Agile Manifesto:
http://www.agilealliance.org/the-alliance/the-agile-manifesto/the-twelve-principles-of-agile-
software/
Asana. (Marzo de 2015). Obtenido de Instagantt - Gantt Charts for Asana : http://www.instagantt.com/
Banerjee, G. (2001). Use Case Points - An estimation Approach. Obtenido de Use Case Point - A estimation
approach: http://www2.fiit.stuba.sk/~bielik/courses/msi-slov/reporty/use_case_points.pdf
Bogue, R. (25 de Abril de 2005). TechRepublic. Recuperado el 2015 de Marzo de 4, de Use S.M.A.R.T. goals
to launch management by objectives plan: http://www.techrepublic.com/article/use-smart-
goals-to-launch-management-by-objectives-plan/
Bruegge, B., & Dutoit , A. H. (2002). Ingeniería de Software orientado a objetos. En Ingenieria de Software
Orientado a Objetos (págs. 458-490). Prentice Hall.
Ceria, S. (s.f.). Universidad de Buenos Aires. Obtenido de Casos de Uso - Un método práctico para explorar
requerimientos: http://www-2.dc.uba.ar/materias/isoft1/2001_2/apuntes/CasosDeUso.pdf
Cockburn, A. (2008, Mayo). Using Both Incremental and Iterative Development. In Using Both Incremental
and Iterative Development (pp. 28-30). The Journal of Defense Software Engineering.
Deemer, P., Benefield, G., & Larman, C. (s.f.). Información Básica de SCRUM (The SCRUM Primer). En
Información Básica de SCRUM (The SCRUM Primer) (págs. 3-6). Scrum Training Institute.
Git. (2014). Obtenido de About Git - Distributed is the new Centralized: http://git-
scm.com/about/distributed
Google Inc. (s.f.). Apps for Work - Formularios y Encuestas. Recuperado el 28 de Febrero de 2015, de
http://goo.gl/aKzJaZ
Graphics Springs. (s.f.). Recuperado el 21 de Febrero de 2015, de Create your own logo for free:
https://www.graphicsprings.com/
Hashmi, S. I., & Baik, J. (s.f.). Software Quality Assurance in XP and Spiral - A Comparative Study. Fifth
International Conference on Computational Science and Applications, (págs. 3-5). Daejeon.
Huffington Post. (Agosto de 2014). Obtenido de 3 Reasons Why Social Media Age Restrictions Matter:
http://www.huffingtonpost.com/diana-graber/3-reasons-why-social-media-age-restrictions-
matter_b_5935924.html
IEEE Standards Board. (1998). IEEE Guide to Software Configuration Management. IEEE Standards Board.
IEEE Standards Board. (1998). Recommended practice for Software Requirements Specifications. IEEE
Standards Board.
IEEE Standards Board. (1998). Standard for Software Project Management Plan.
IEEE Standards Board. (2009). Software Design Description. IEEE Standars Boards.
IEEE Standards Board. (2009). Systems and software engineering — Life cycle processes — Project
management. IEEE Standards Board.
IEEE Standards Board. (2010). Systems and software engineering — Vocabulary. IEEE Standards Board.
International Standards Organization.
IEEE Standards Board. (2011). Standadr for Software Life Cycle Processes - Risk Management. IEEE
Standards Board.
Kusumoto, S., Matukawa, F., & Inoue, K. (s.f.). Estimating Effort by Use Case Points: Method, Tool and
Case Study. 10th International Symposium on Software Metrics, (págs. 1-8). Osaka.
Larman, C. (2004). Iterative, Evolutionary and Agile Models. En UML and Patterns (págs. 13-21).
Larman, C., & Basili, V. (2003). Iterative and Incremental Development: A Brief Story. IEEE Computer
Society, 1-10.
Navaro Castaño, D. (2011). Evaluación de Proyectos. Obtenido de Evaluación de Proyectos - Valor Presente
Neto.
Oracle. (s.f.). Recuperado el 9 de Marzo de 2015, de Top Reasons for Using MySQL:
http://www.mysql.com/why-mysql/topreasons.html
Pavlich, J., & Torres, M. (Enero de 2015). Obtenido de Página de Miguel Torres -Ingenieria de Software -
Programa del Curso: http://sophia.javeriana.edu.co/~metorres/
Pavlich, J., & Torres, M. (s.f.). Rúbrica de Calificación de Ingeniería de Software. Obtenido de Rúbrica de
Calificación .
Project Management Docs. (s.f.). Recuperado el 6 de Marzo de 2015, de Work Breakdown Structure:
http://www.projectmanagementdocs.com/project-planning-templates/work-breakdown-
structure-wbs.html
Project Management Institute. (s.f.). Obtenido de Roles, Responsibilities, And Skills In Program
Management: http://www.pmi.org/learning/roles-responsibilities-skills-program-management-
6799
Rails Core Team. (s.f.). Recuperado el 20 de Febrero de 2015, de Ruby on Rails: El desarrollo web que no
molesta: http://www.rubyonrails.org.es/
Rails Core Team. (2015). Recuperado el 20 de Febrero de 2015, de Ruby on Rails - Show, don't tell: Seeing
is believing: http://rubyonrails.org/screencasts/
Rational - The Software Development Company. (1998). Rational Unified Process - Best Practices for
Software Development Teams. Obtenido de Rational Unified Process: Best Practices for Software
Development Teams:
https://www.ibm.com/developerworks/rational/library/content/03July/1000/1251/1251_bestp
ractices_TP026B.pdf
Rumbaugh, J., Booch, G., & Jacobson, I. (2000). Lenguaje Unificado de Modelado: Manual de Referencia.
(Segunda ed.). Addison Wesley. Obtenido de Lenguaj.
Skinner, J. (Julio de 2013). Obtenido de Sublime: The Text Editor you'll fall in love with:
http://www.sublimetext.com/
Star UML. (s.f.). Recuperado el 11 de Marzo de 2015, de Star UML download: http://staruml.io/
Udemy Blog. (11 de Marzo de 2015). Obtenido de Una comparación entre los Sistemas Gestores de Bases
de Datos Relacionales más Populares: https://blog.udemy.com/es/oracle-vs-mysql-vs-sql-server-
una-comparacion-entre-los-sistemas-gestores-de-bases-de-datos-relacionales-mas-populares/
Universidad Union Bolivariana. (s.f.). Recuperado el 2015 de Marzo de 5, de XP- Extreme Programming:
http://ingenieriadesoftware.mex.tl/52753_XP---Extreme-Programing.html
University of Cantabria (Spain). (2011). Obtenido de Ingeniería de Software - Verificación y Validación:
http://www.ctr.unican.es/asignaturas/Ingenieria_Software_4_F/Doc/M7_09_VerificacionValida
cion-2011.pdf
University of Houston. (s.f.). Recuperado el 4 de Marzo de 2015, de RUP - Vision Artifact (Small Projects):
http://sce.uhcl.edu/helm/rationalunifiedprocess/webtmpl/templates/req/rup_vision_sp.htm
Vaquiro C., J. D. (29 de Marzo de 2013). PYMES FUTURO, Asesoría y Consultoría para PYMES. Recuperado
el 08 de Marzo de 2015, de http://www.pymesfuturo.com/vpneto.htm
Wallmüler, D. (s.f.). Recuperado el 11 de Marzo de 2015, de Risk Management for IT and Software
Projects: http://www.itq.ch/pdf/RM__ITProjekteV211.pdf
World Wide Web Consortium . (Octubre de 2014). Obtenido de HTML5 - W3C Recommendation 28
October 2014: http://www.w3.org/TR/html/