Está en la página 1de 15

ENTREGABLE 2

KEVIN ALEJANDRO FRANCO GOMEZ


JULIAN CAMILO URIBE ESCOBAR
GUSTAVO ADOLFO LONDOÑO CORREA

ORALIA CORTÉS GRAJALES

FUNDACIÓN UNIVERSITARIA CATÓLICA DEL NORTE


INGENIERÍA DE SOFTWARE II
MEDELLÍN
2021
Tabla de contenido
Tabla de figuras ............................................................................................................. 3
INTRODUCCIÓN .............................................................................................................. 4
OBJETIVOS...................................................................................................................... 5
Objetivo General: ................................................................................................................................................ 5

Objetivos Específicos:.......................................................................................................................................... 5

1. ¿Cuál de los modelos de ciclo de vida que están en los contenidos u otros que
investigue sería el adecuado para afrontar esta situación, ¿Por qué? ............................. 6
2. ¿Qué procedimiento utilizaría para integrarlo al módulo de gestión de la FUCN ya
construido? ¿Por qué? .................................................................................................... 7
3. ¿Qué ambientes de desarrollo y configuración utilizaría, ¿Por qué? .......................... 11
4. Realice un esquema que represente el despliegue del sistema solicitado. ................. 13
CONCLUSIONES ............................................................................................................ 14
REFERENCIAS ................................................................................................................ 15
Tabla de figuras
Figura 1 | Diagrama de modelo iterativo Información: Ingeniería del Software: Un enfoque
Práctico, Pressman Roger S. 2005.Diseñado por Marlady Ortiz ........................................... 7
Figura 2 | Diagrama de despliegue ..................................................................................... 13
INTRODUCCIÓN
En el presente entregable, queremos enseñar la aplicación de los principios y de las
técnicas construcivas dentro del ciclo de vida del desarrollo de software, agregando un
módulo al CVG (Centro Virutal del Graduado) que permita controlar la oferta de empleo
para los graduados.

Justificando además, la importancia del aseguramiento de la calidad del software por


intermedio de una buenas prácticas, principios y herramientas para ser integradas al
entorno de la construcción de software en todas sus etapas.
OBJETIVOS

Objetivo General:
Agregar al CVG un módulo que permita administrar las ofertas de empleo para los
gruaduados, cumpliendo a satisfacción con los requisitos específicos, y asegurando la
calidad del mismo, implementando las buenas práciticas, principios y herramientas en su
construcción.

Objetivos Específicos:
• Definir el modelo de cliclo de vida adecuado para la solución
• Levantar requisitos para la solución al modelo de gestión de empleo para los
graduados
• Analizar el CVG para garantizar una correcta integración del nuevo módulo para
gestión de empleo para los graduados
• Estratificar los ambientes y configuración necesaria que soporten la solución
• Construir un esquema de despliegue para la solución
1. ¿Cuál de los modelos de ciclo de vida que
están en los contenidos u otros que
investigue sería el adecuado para afrontar
esta situación, ¿Por qué?

El modelo de ciclo de vida del software que se implementará es el Modelo

iterativo e incremental ya que combina perfectamente con la metodología ágil

con que se trabajara qué es scrum. Es un modelo derivado del ciclo de vida en

cascada. Este modelo busca reducir el riesgo que surge entre las necesidades

del usuario y el producto final por malos entendidos durante la etapa de

recogida de requisitos. Consiste en la iteración de varios ciclos de vida en

cascada. Al final de cada iteración se le entrega al cliente una versión mejorada

o con mayores funcionalidades del software, además incluyendo pruebas y

documentación. El cliente es quien después de cada iteración evalúa el producto

y lo corrige o propone mejoras. Estas iteraciones se repetirán hasta obtener un

producto que satisfaga las necesidades del cliente.

Una de las principales ventajas que ofrece este modelo es que ofrece la

posibilidad de que en cada iteración los requisitos que no estaban totalmente

definidos se puedan ir tomando forma con las continuas entregas y mejoras que

sean sugeridas por el cliente.


Figura 1 | Diagrama de modelo iterativo Información: Ingeniería del Software: Un enfoque Práctico, Pressman Roger S.
2005.Diseñado por Marlady Ortiz

De esta manera se puede corregir desde temprano cualquier cambio en


los requisitos contemplando el mínimo impacto en el proyecto.

2. ¿Qué procedimiento utilizaría para


integrarlo al módulo de gestión de la FUCN
ya construido? ¿Por qué?
El procedimiento escogido es PMC (Proceso de mejora continua) el cual está basado

en el círculo de Deming:
Planificar. primera etapa del proceso y donde se establecen las actividades

necesarias para la mejora.

Hacer: etapa donde se inicia la implementación de las mejoras propuestas en

la fase previa.

Comprobar: verificación del correcto funcionamiento de las mejoras

implementadas.

Actuar: estudio de los resultados y análisis de cumplimiento de los objetivos

iniciales planteados.

Lo fundamental de este proceso es realizar estas etapas de forma cíclica,

aprendiendo y mejorando en cada una de las fases, con la finalidad de hacerlo mejor

en el siguiente ciclo. Se mejores día a día analizando los resultados de los errores

realizados anteriormente. Basado en los 7 pasos según ITIL:

1. Identificar la estrategia de mejora: El objetivo principal del desarrollo será

implementar un módulo de empleo en la plataforma CVG de la FUCN, con

esto se busca agregar funcionalidades que puedan realizar los Egresados

desde la plataforma, se centrará en el seguimiento laboral de los egresados y

colaborar con la ubicación de empleo. La implementación de este nuevo

módulo estará a cargo del departamento de TI, el cual cuenta con un pool de

desarrolladores y utilizaran como framework de trabajo SCRUM.


2. Definir Mediciones: Por medio de un proceso de BI (Business Intelligence) se

implementarán reportes y análisis para publicar las ofertas y los egresados

apliquen a las mismas.

3. Recolección de información: El analista analizará el funcionamiento actual de

la aplicación de la FUCN y entenderá su funcionamiento, a su vez, deberá

conocer el código fuente de la aplicación, con esto, comprenderá el lenguaje

a utilizar y evitará hacer algún daño en el software ya construido. La idea, es

implementar un nuevo módulo añadiendo el código fuente de este, sin tocar

el desarrollo ya publicado.

4. Procesar la información: Un analista tomará el rol de tester y entenderá el

funcionamiento del nuevo módulo a implementar, con esto se asegurará de

realizar las pruebas. Estas pruebas se dividirán en dos:

a) Pruebas Unitarias: El desarrollador realizará pruebas unitarias

mientras vaya avanzando con su implementación, así evitará tener los

menos errores posibles.

b) Pruebas de caja negra: El tester no tocará el código fuente, sino que

realizará unas pruebas de caja negra según la toma de requisitos

iniciales, se basará en los requerimientos funcionales y no funcionales

para asegurar su funcionamiento

5. Analizar la información y los datos: Se utilizarán una nueva base de datos, así

mismo se creará un modelo entidad/relación, el diagrama de clases y

componentes y todo lo que abarcó la fase de diseño.


6. Presentación y uso de la información: El diseño de la solución es presentado

previamente al/la Product Owner, previo a esto, se pasa por una aprobación

del director de TIC quien será la cabeza de la implementación, en este caso el

SCRUM Master. Así mismo, se explicará el proceso de implementación a los

estudiantes y administradores del software y se procederá con la misma.

7. Implementación del desarrollo: El desarrollo estará a cargo de un Devops,

quien ya tiene toda la información a la mano para comenzar el despliegue.

Este nuevo módulo contará con una máquina virtual y base de datos

independiente en la nube AWS de la FUNC. Ademas se utilizará el patrón de

desarrollo MVC y se basará en CRUD’s.

La razón fundamental del por que se escogió PMC para la integración del nuevo módulo,
es que perfectamente es aplicable al ámbito del software y se acopla perfectamente al
ciclo de vida escogido. Son elevadísimos los beneficios que aporta la implementación de
mejora continua en los procesos de desarrollo de software:

• Mejora de la calidad de los procesos


• Mejora de la calidad del producto
• Mejora de la calidad del equipo

Basándonos en uno de los principios básicos de esta metodología, seremos capaces de


medir no solo la calidad de nuestros procesos y productos, sino que podremos analizar
nuestra velocidad de desarrollo y la satisfacción de nuestros clientes.
3. ¿Qué ambientes de desarrollo y
configuración utilizaría, ¿Por qué?

Ambiente de desarrollo. Este ambiente se contará con las siguientes herramientas


de desarrollo:

• IDE que se utilizara es Visual Studio Code, ya que es open source y es muy

rápido para el desarrollo de javascript.

• Control de versiones se usará Gitlab, plataforma donde se gestionará el

código fuente de la aplicación y todo bajo el sistema de control de versiones

Git.

• La comunicación del equipo de desarrollo se hará con Slack, herramienta

permite mantener una comunicación activa entre los diferentes grupos de

trabajo de manera eficiente y organizada.

• Virtualizador del servidor con Docker, virtualizador de instancia virtuales para

entornos de desarrollo.

• Jira para la gestión de proyecto, ya tiene integrada la metodología ágil scrum.

Ambiente de pruebas. En este ambiente se ejecutarán pruebas con las siguientes


herramientas:

• Instancia de Base Datos independiente para test.

• Instancia independiente en AWS para realizar los test.

• MochaJs y ChaiJs, librerías para test unitarios nodejs backend.


• Enzyme, para hacer pruebas del frontend UI.

• Jenkins es el servidor de automatización de código abierto, en concreto, un

servidor de integración continua.

Ambiente de producción.

• Instancia de Base Datos de producción.

• Instancia independiente en AWS para producción.

• Jenkins integración continua y despliegue continuo, para hacer los deploy de

forma automatizada.

En producción se integrará el nuevo módulo a travez de la url

https://cvg.ucn.edu.co/empleo el cual el servidor web servira como proxy inverso

hacia la instancia en AWS que tiene el despliegue del módulo empleo, que funcionara

como un componente independiente al desarrollo actual con el fin de facilitar la

mantenibilidad, usabilidad y agregar funcionalidad, sin afectar la aplicación principal

de CVG.
4. Realice un esquema que represente el
despliegue del sistema solicitado.

Figura 2 | Diagrama de despliegue


CONCLUSIONES
• El modelo PMC es una gran elección, puesto que permite fallar temprano para
identificar y construir el mejor producto en el menor tiempo posible.

• Como se pudo apreciar, construir un módulo independiente para la gestión de los


empleos de los graduados ha permitido integrar con fácilidad y autonomía una
mejora escencial en el CVG, dando solución a una necesidad tanto de la Universidad
así como de sus alumnos en general.

• Se puede ver la importancia que tiene el diagrama de despliegue a la hora de


proporcionar una herramienta fácil de entender para todos los stakeholders, la cual
ahorrará tiempo y trabajo en los diferentes ambientes, bien sean productivos,
desarrollo o para hacer pruebas de funcionalidades nuevas o mejoras de las que
existen.
REFERENCIAS

• Mundo Testing. (Enero 6 de 2020). ¿Qué metodologías existen para el control de

calidad del software?. https://mundotesting.com/que-metodologias-existen-para-

el-control-de-calidad-del-software/

• Ortiz M. (Septiembre de 2012). Modelo Iterativo. https://isw-

udistrital.blogspot.com/2012/09/ingenieria-de-software-continuacion.html

• Proyectos agiles. (2018). Desarrollo iterativo e incremental.

https://proyectosagiles.org/desarrollo-iterativo-incremental/

• AWS. Explicación de una entrega continua.

https://aws.amazon.com/es/devops/continuous-delivery/

• Mencia Carlos. (Noviembre 26 de 2015). JustDigital. Mejora continua en desarrollo

de software. https://justdigital.agency/blog/mejora-continua-en-desarrollo-de-

software/

• Giraldo, J. (2015, 22 septiembre). ITIL®: 7 pasos para alcanzar la Mejora


Continua del Servicio. Eserv. https://eserv-latam.com/blog/306/mejora-
continua-servicio-itil

También podría gustarte