Está en la página 1de 22

​Politécnico Gran Colombiano – Arquitectura de software

Proyecto Arquitectura de Software

Entrega II

Carlos Eduardo Jaramillo Franco Cod. 1921980465

Katerine Martínez Muñoz Cod. 1810660176

Daniel Ricardo Gómez Riveros Cod. 1520010641

Fernando Tibaduiza Gutiérrez Cod. 192180049

Jeisson Orlando Velásquez Urrego Cod.1310013888

Yeison Andres Gonzalez Perez Cod. 1310014284

Tutor:

Mahecha Nieto Isabel Andrea

Politécnico Gran Colombiano

Ingeniería Diseño e Innovación

Arquitectura de software

2020

1
​Politécnico Gran Colombiano – Arquitectura de software

TABLA DE CONTENIDO

Introducción ……………………………………………………………………………………....3

Descripción del problema……………………....………………………………………………... 4

Objetivo…....……………………………………………………………………………………... 5

Objetivos específicos…………………………………………………………………………….. 6

Justificación.……………………………………………………………………………………... 7

Cronograma de actividades ……………………………………………………………………... 8

Requerimientos funcionales ……………………………………………………………………... 9

Requerimientos no funcionales…………………………………………………………………..10

Documentación respecto al desarrollo……………….…………………………………………..11

Conclusiones y recomendaciones ...……………………………………………………………..21

Glosario…………………………....……………………………………………………………. 22

2
​Politécnico Gran Colombiano – Arquitectura de software

INTRODUCCIÓN

La manera en la que está construida cada cosa que ha inventado el ser humano, está elaborada a

partir de conceptos, científicos, matemáticos, literarios, físicos, arquitectónicos… entre otros, y

en su esencia son arte. Así mismo, la arquitectura de software es el modo en el que está diseñado

un sistema y todo lo que lo comprende, el arte de construir el software, no solo para que cumpla

su propósito, sino también, para que sea visualmente atractivo, que invite al usuario a interactuar

con el.

Esta programación está considerada como arte a pesar de complejo lenguaje, pero a pesar de de

su alto nivel de competición así mismo podemos tener varios lenguajes de programación, se

pueden entender también como planos de arquitectura para una mejor enseñanza de esta misma,

a continuación veremos un aporte grupal donde se ve las mejores de aprendizaje y así mismo el

trabajo en equipo.

3
​Politécnico Gran Colombiano – Arquitectura de software

DESCRIPCIÓN DEL PROBLEMA

Se elige una API, también conocido como front - end basado en la serie animada “rick and
morty”, el principal problema radica en que este no tiene ninguna funcionalidad, solo se cuenta
con la parte gráfica, de diseño más no tiene un backend que le dé el respaldo y alcance deseado.
El desafío es crear un backend que permita el adecuado uso de la página en general, justas “front
- end y back end” otorguen opciones y funcionalidades como la de registro de usuarios para lo
cual se debe hacer uso de bases de datos.

4
​Politécnico Gran Colombiano – Arquitectura de software

OBJETIVO

Realizar un diseño de alto nivel, la creación de una estructura funcional, eficiente, abstracta,

definiendo en primera instancia las necesidades planteadas, analizando los requerimientos

necesarios y llevando a cabo el proceso de elaboración del software.

Por medio del trabajo en equipo y la asignación de roles este proyecto se desarrollará de manera

satisfactoria y eficiente.

Este proceso nos prepara hacia futuros escenarios laborales, nos da herramientas con las que

enfrentaremos retos cotidianos en esta área.

5
​Politécnico Gran Colombiano – Arquitectura de software

OBJETIVOS ESPECÍFICOS

● Comprender el concepto de la arquitectura de software, que concretamente es la forma en

la que está diseñado un sistema, como están organizados sus componentes, cómo se

comunican entre sí y las funciones que cumplen.

● Trabajar de manera colaborativa en el desarrollo del proyecto, implementando la

metodología scrum, de qué forma podemos llevar un control estricto de los avances y

tareas.

● Desarrollar un api, una interfaz, enfocada a la temática del proyecto, con el fin que se

comuniquen aplicaciones o programas, y se compartan información entre las mismas.

6
​Politécnico Gran Colombiano – Arquitectura de software

JUSTIFICACIÓN

Lo que se realizará con este proyecto es crear una solución a base para una empresa y así
demostrar los avances tecnológicos.

El objetivo es mejorar los procesos funcionales de la empresa de la siguiente manera:

● Eficacia y Adaptabilidad: El sistema funcionará de manera rápida y eficaz,


permitiendo la modificación de este mismo según las exigencias y deseos del
cliente.

● Módulos: Permitirá el fácil funcionamiento del aplicativo en las áreas de la


empresa que lo requieran, y mejor distribución de la información almacenada.

● Organización: El usuario del aplicativo podrá observar y navegar de manera


rápida y organizada.

7
​Politécnico Gran Colombiano – Arquitectura de software

CRONOGRAMA DE ACTIVIDADES

Se describen las actividades que se ejecutarán en el desarrollo de todo el proyecto.

8
​Politécnico Gran Colombiano – Arquitectura de software

REQUERIMIENTOS FUNCIONALES

Reglas de negocio, funcionales y de información.

Cód. Requisito funcional

RF1.1 La aplicación permitirá visualizar información de películas, personajes, planetas,


naves

RF1.2 La aplicación permitirá mostrar la información solicitada de cada película

RF1.3 La aplicación permitirá la búsqueda por nombre de película o año.

RF1.4 La aplicación debe usar estándares web donde tengan sentido

RF1.5 La aplicación debe ser amigable para el desarrollador y ser explorable a través de
una barra de direcciones del navegador

RF1.6 La aplicación debe ser simple, intuitivo y consistente para hacer que la adopción
no solo sea fácil sino también agradable

RF1.7 La aplicación debe proporcionar suficiente flexibilidad para impulsar la mayoría


de la interfaz de usuario de encantamiento.

RF1.8 La aplicación debe ser eficiente, manteniendo el equilibrio con los otros requisitos

9
​Politécnico Gran Colombiano – Arquitectura de software

REQUERIMIENTOS NO FUNCIONALES

RNF 001
Software

Servidor soporte NGINX con Git para su correcto versionamiento. Sistema operativo Linux.

RNF 002
Usabilidad

Contar con herramientas y características necesarias para su administración, la realización


de búsquedas y la posibilidad de realizar consultas de índole general

RNF 003
Accesibilidad

El sistema debe ser capaz de dar respuesta al acceso de todos los usuarios.

RNF 004
Conexión

El proyecto estará disponible un 90% de un tiempo total de 7/24, previendo cualquier


imprevisto que pueda tener el sistema por caídas internet o problemas directamente de la
plataforma

RNF 005
Escalabilidad

El sistema tendrá la capacidad de aumentar sus módulos o atributos a medida que la carga
la cual se le realice no sea la necesaria para cumplir las necesidades del cliente.

10
​Politécnico Gran Colombiano – Arquitectura de software

DOCUMENTACIÓN RESPECTO AL DESARROLLO

Dando continuidad a lo propuesto en el proyecto, y concretamente, en esta segunda etapa del


mismo hemos decidido usar la api, Rick y Morty, a continuación está el detalle del mismo, al
igual que en el archivo readme de github.

Diagrama de clases

● Elaboramos diagrama de clases que describe la estructura del sistema, en donde


se pueden ver las clases, atributos y métodos, del mismo.

Problema

● Usando la api pública: [ ​https://rickandmortyapi.com/​ ], debemos crear la siguiente


respuesta de la información de un personaje:

● Para hacer esto, necesitamos hacer dos peticiones. La primera va traer la información del
personaje usando este endpoint: /api/character/{characterId}
11
​Politécnico Gran Colombiano – Arquitectura de software

● Y con el array de episodios “episode” vamos a extraer el primer elemento y hacer la


siguiente petición para obtener más información acerca de este: /api/episode/{episideId}

​" nombre "​ : ​" Rick Sánchez "​ ,

​" estado "​ : ​" Vivo "​ ,

​" especie "​ : ​" Humano "​ ,

​" género "​ : ​" Hombre "​ ,

​"primera aparición "​ : {

​" nombre "​ : ​" Piloto "​ ,

​" código "​ :​" S01E01 "

_______________________________________________________________

​" id "​ : ​1​ ,

​" nombre "​ : ​" Rick Sánchez "​ ,

​" estado "​ : ​" Vivo "​ ,

​" especie "​ : ​" Humano "​ ,

​" tipo "​ : ​" ​"​ ,

12
​Politécnico Gran Colombiano – Arquitectura de software

​" género "​ : ​" Hombre "​ ,

​" origen "​ :

{ ​" nombre "​: ​" Tierra (C-137) "​ ,

​" url "​ : ​" https://rickandmortyapi.com/api/location/1 "

},

​" location "​ : {

​ " name "​ :​ " Earth (Dimensión de reemplazo) "​ ,

​ " url "​ :​ " https://rickandmortyapi.com/api/location/20 "

},

​" imagen "​ :​ " https://rickandmortyapi.com/api/character/avatar/1.jpeg "​ ,

​ " episodio "​ : [

​ " https://rickandmortyapi.com/api/episode/1 "​ ,

​ " https: // rickandmortyapi.com/api/episode/2 "​ ,

​ " https://rickandmortyapi.com/api/episode/3 "​ ,

​ " https://rickandmortyapi.com/api/episode/4 "​ ,

​ " https: // rickandmortyapi. com / api / episode / 5 "​ ,

​ " https://rickandmortyapi.com/api/episode/6 "​,

​" https://rickandmortyapi.com/api/episode/7 "​ ,

​" https://rickandmortyapi.com/api/episode/8 "​ ,

​" https://rickandmortyapi.com/api/episode/9 "​ ,

​" https://rickandmortyapi.com/api/episode/10 "​ ,

​" https://rickandmortyapi.com/api/episode/11 "​ ,

​" https://rickandmortyapi.com/api/episode/12 "​ ,

13
​Politécnico Gran Colombiano – Arquitectura de software

​" https: //rickandmortyapi.com/api/episode/13 "​ ,

​" https: // rickandmortyapi.com / api / episode / 14 "​,

​" https://rickandmortyapi.com/api/episode/15 "​ ,

​" https://rickandmortyapi.com/api/episode/16 "​ ,

​" https://rickandmortyapi.com/api/episode/17 "​ ,

​" https://rickandmortyapi.com/api/episode/18 "​ ,

​" https://rickandmortyapi.com/api/episode/19 "​ ,

​" https://rickandmortyapi.com/api/episode/20 "​ ,

​" https: //rickandmortyapi.com/api/episode/21 "​ ,

​" https: // rickandmortyapi.com / api / episode / 22 "​,

​" https://rickandmortyapi.com/api/episode/23 "​ ,

​" https://rickandmortyapi.com/api/episode/24 "​ ,

​" https://rickandmortyapi.com/api/episode/25 "​ ,

​" https://rickandmortyapi.com/api/episode/26 "​ ,

​" https://rickandmortyapi.com/api/episode/27 "​ ,

​" https://rickandmortyapi.com/api/episode/28 "​ ,

​" https: //rickandmortyapi.com/api/episode/29 "​ ,

​" https: // rickandmortyapi.com / api / episode / 30 "​,

​" https://rickandmortyapi.com/api/episode/31 "

],

​" url "​ :​ " https://rickandmortyapi.com/api/character/1 "​ ,

​ " creado "​ :​ " 2017-11-04T18: 48: 46.250Z "

14
​Politécnico Gran Colombiano – Arquitectura de software

__________________________________________________________

​" id "​ : ​1​ ,

​" name "​ : ​" Pilot "​ ,

​" air_date "​ : ​" 2 de diciembre de 2013 "​ ,

​" episode "​ : ​" S01E01 "​ ,

​" characters "​ : [

​" https://rickandmortyapi.com/api/ personaje / 1 "​ ,

​" https://rickandmortyapi.com/api/character/2 "​ ,

​"https://rickandmortyapi.com/api/character/35 "​ ,

​" https://rickandmortyapi.com/api/character/38 "​ ,

​" https://rickandmortyapi.com/api/character/62 "​ ,

​" https: //rickandmortyapi.com/api/character/92 "​ ,

​" https://rickandmortyapi.com/api/character/127 "​ ,

​" https://rickandmortyapi.com/api/character/144 "​ ,

​" https: // rickandmortyapi.com/api/character/158 "​ ,

​" https: // rickandmortyapi.com / api / character / 175 "​ ,

​" https://rickandmortyapi.com/api/character/179 "​ ,

​ " https://rickandmortyapi.com/api/character/181 "​ ,

​ " https://rickandmortyapi.com/api/character/239 "​ ,

​ " https : //rickandmortyapi.com/api/character/249 "​ ,

​ " https://rickandmortyapi.com/api/character/271 "​ ,

​ " https://rickandmortyapi.com/api/character/338 "​ ,

15
​Politécnico Gran Colombiano – Arquitectura de software

​ " https: / /rickandmortyapi.com/api/character/394 "​ ,

​ " https: // rickandmortyapi.com / api / character / 395 "​,

​" https://rickandmortyapi.com/api/character/435 "

],

​" url "​ :​ " https://rickandmortyapi.com/api/episode/1 "​ ,

​ " creado "​ :​ " 2017-11-10T12: 56: 33.798Z "

Respecto al porqué usar la clean architecture, la razón principal, es que esta va enfocada al
dominio.

Por otro lado no es una arquitectura, difícil de implementar en un equipo de trabajo, gracias a sus
características en común respecto a otras, como lo son:

● Frameworks independientes, sin librerías ligadas o acopladas


● Son fácilmente testeables
● Cuenta con independencia de la base de datos, de tal manera que se puedan cambiar por
una distinta
● El dominio es lo más importante y la capa de la que dependen las demás, sin embargo, al
mismo tiempo, el dominio no depende de ninguna

16
​Politécnico Gran Colombiano – Arquitectura de software

El código fuente de los repositorios:


https://github.com/fetibaduiza/Proyecto-Arquitectura-de-software
https://github.com/jaramillo-carlos/Java-Clean-Architecture

El request y el response desde postman.

17
​Politécnico Gran Colombiano – Arquitectura de software

Implementación del SonarQube en el proyecto.

18
​Politécnico Gran Colombiano – Arquitectura de software

Documentación del código por medio de Swagger.

19
​Politécnico Gran Colombiano – Arquitectura de software

- Esta herramienta nos facilita manejar código abierto de una manera más “fácil”, ya que
nos ayuda a mejorar el diseño, a tener más opciones de creación y una documentación
sencilla. Así mismo se deben ver los ideales de los compañeros acerca del tema y empeño
del mismo acerca del proyecto.Todo paso a paso se ve reflejado en forma de equipo para
ver las falencias y las mejoras de cada uno y en forma grupal.

20
​Politécnico Gran Colombiano – Arquitectura de software

CONCLUSIONES Y RECOMENDACIONES

A través de esta primera fase pudimos concluir que en la arquitectura de software se


requiere varios métodos y tiempo para el desarrollo de una aplicación si queremos cumplir
con los objetivos propuestos.

El trabajo en equipo y una comunicación fluida y asertiva es de vital importancia ya que nos
permite evaluar en todas las etapas del desarrollo nuestro trabajo, el de los demás, con críticas
objetivas y constructivas en conjunto se llega a la elaboración de un producto de gran calidad

1. En el proyecto se plantea un modelo con parámetros generales de diseño los cuales


permiten agilizar la implementación de un software en corto tiempo.

2. Con la innovación de las tecnologías la arquitectura de software tiene patrones simples


los cuales permiten dar soluciones a problemas en el momento que se está implementado
una aplicación.

3. El diseño de la arquitectura es una parte fundamental de la ingeniería de software pues


tiene como función organizar los objetos y clases que se definirían en el desarrollo.

4. Los cronogramas de trabajo nos permiten llevar un orden en la realización de un proyecto


por tal razón es fundamental que en la arquitectura de software contemos con este
mecanismos para llevar un control en la gestión de las actividades y entregas en tiempos
reales.

5. el definir desde el principio los diferentes roles y responsabilidades en un equipo de


trabajo nos permite ser eficientes y enfocados dando escalabilidad al desarrollo del
proyecto.

6. el constante monitoreo del desarrollo en el proyecto acompañado del apoyo del equipo es
de vital importancia ya que permite prever y corregir fallos que al no ser notados en
etapas tempranas podría crear fallos catastróficos respecto al buen funcionamiento del
aplicativo.

7. la socialización de los avances y percances en proceso son de gran ayuda ya que permite
dar apoyo a quien lo necesita, el tener en cuenta la opinión de cada integrante del equipo
nos ayuda a la mejora de este.
8. es importante el compromiso de cada individuo para el avance del proyecto, ya que al ser
un grupo se debe trabajar en coordinación aportando desde la parte individual.

9. El avance se debe ver en forma grupal ya que cada aporte hace que las evoluciones sean
mayores.

21
​Politécnico Gran Colombiano – Arquitectura de software

GLOSARIO

● API: Es un conjunto de recursos expuestos por medio del protocolo http, que
permiten la comunicación entre cliente/servidor.

● Patrones de diseño: Son una serie de pasos que nos permiten resolver problemas
comunes y que han sido estudiados y probados por la comunidad del desarrollo de
software.

● Arquitectura: Es un paso previo a la codificación, comprende el contorno de lo


que se pretende desarrollar

● Ingeniería: La ingeniería de requerimientos es la ciencia que estudia toda la


recolección de información previo a una sistematización.

● Diseño de alto nivel: explica la arquitectura que se utilizaría para desarrollar un


producto de software. El diagrama de arquitectura proporciona una descripción
general de un sistema completo, identificando los componentes principales que se
desarrollarían para el producto y sus interfaces.

● Escalabilidad: La escalabilidad, término tomado en préstamo del idioma inglés, es


la propiedad deseable de un sistema, una red o un proceso, que indica su habilidad
para reaccionar y adaptarse sin perder calidad, o bien manejar el crecimiento
continuo de trabajo de manera fluida, o bien para estar preparado para hacerse
más grande.

● Software : Diseño de programación con varios medios de lenguajes, el cual se


deriva o se acomoda a tu aprendizaje , o a fin de querer aprender.

● Lenguaje de programación : Es un lenguaje formal el cual deriva o se entiende


por varios programas y también se debe tener en cuenta el propósito de querer
complementar algo y querer aprender algo de diseño.

22

También podría gustarte