DISEÑOS

ARQUITECTURA DE APLICACIONES

DEFINICION

Una arquitectura de aplicaciones describe los patrones y las técnicas que se utilizan para diseñar y desarrollar aplicaciones.

La arquitectura le proporciona un plan y las prácticas recomendadas que debe seguir al momento de diseñar una aplicación, de modo que obtenga una aplicación bien estructurada.

CARACTERISTICAS

En una arquitectura de aplicaciones habrá servicios de frontend y de backend.

El desarrollo de frontend se refiere a la experiencia del usuario con la aplicación

El desarrollo de backend implica proporcionar acceso a los datos, los servicios y otros sistemas actuales que permiten el funcionamiento de la aplicación.

Hay muchos lenguajes de programación que se utilizan para desarrollar los sistemas de software.

Algunos de ellos se pueden utilizar para diseñar ciertos tipos de aplicaciones, como Swift para las aplicaciones móviles o JavaScript para el desarrollo del frontend.

JavaScript, combinado con HTML y CSS, es uno de los más populares para el desarrollo de aplicaciones web en la actualidad

Otros lenguajes de programación conocidos son Ruby, Python, Swift, TypeScript, Java, PHP y SQL, entre otros. El lenguaje que se utilice para diseñar una aplicación dependerá del tipo de aplicación, los recursos de desarrollo disponibles y los requisitos.

PATRONES

Los patrones de diseño de software pueden ayudarlo a diseñar una aplicación. Un patrón es la solución replicable a cierto problema.

Puede vincularse con otros para crear arquitecturas de aplicaciones más generales. En lugar de volver a crear toda la infraestructura completa, puede usar los patrones de diseño actuales, lo cual además garantiza que todo funcione como es debido.

VENTAJAS

Las arquitecturas modernas de aplicaciones suelen tener un bajo acoplamiento y utilizan microservicios e interfaces de programación de aplicaciones (API) para conectar los servicios, los cuales proporcionan la base para las aplicaciones nativas de la nube.

El desarrollo nativo de la nube es una forma de acelerar el diseño de aplicaciones nuevas, optimizar las actuales y proporcionar un desarrollo uniforme y una experiencia de gestión automatizada en las nubes privadas, públicas e híbridas.

En la actualidad, las principales arquitecturas de aplicaciones, basadas en las relaciones entre los servicios, son la arquitectura monolítica y N-tier (con conexión directa), los microservicios (sin acoplamiento) y las arquitecturas basadas en eventos y orientadas al servicio (de bajo acoplamiento).

MONOLITICA

son pilas de aplicaciones únicas que contienen todas las funciones dentro de cada aplicación. Tienen conexión directa, tanto en la interacción entre los servicios como en la manera en que se desarrollan y distribuyen.

MICROSERVIDORES

no son solo un tipo de arquitectura, sino también un modo de abordar la escritura del software. Con ellos, las aplicaciones se dividen en sus elementos más pequeños, que son independientes entre sí. Cada uno de dichos elementos o procesos es un microservicio.

BASADA EN EVENTOS

En un sistema como este, la captura, la comunicación, el procesamiento y la permanencia de los eventos son la estructura central de la solución. Esto difiere del modelo tradicional basado en solicitudes.

DESVENTAJAS

Necesitan alojarse en una web optimizada y responsive para que los usuarios puedan utilizar la aplicación a la perfección.

Las apps nativas deben descargarse por lo que, una vez se ha dado este paso, es más probable que se usen de nuevo, fomentando la fidelización.

El rendimiento está limitado por la respuesta del navegador desde el que se ejecuta la aplicación.

DISEÑO DE INTERFACES DE USUARIO

DEFINICION

Es el medio que a través del cual el usuario interactúa con un dispositivo tecnológico

TIPOS DE INTERFACES

Software

Es aquella que brinda información sobre los procesos y herramientas de control, la cual puede ser observada fácilmente por el usuario en la pantalla de su dispositivo

Hardware

Engloba todos aquellos elementos que permiten ingresar, procesar y entregar datos, como los famosos teclados y “ratones”, así como las pantallas.

Software-Hardware

Dentro de la interfaz del usuario, esta es la que sirve de puente entre la máquina y las personas.

CARACTERISTICAS

Claridad

Una buena interfaz transmite la información de manera precisa para evitar que el usuario cometa errores durante la interacción

Concisión

Se trata de darle al usuario solo la información que necesita y pide.

Coherencia

Esta característica es la que hace intuitiva una interfaz, permitiéndole a la persona crear patrones de uso de manera sencilla y práctica

Flexibilidad

Una buena interfaz también se caracteriza por permitir que el usuario restaure elementos y deshaga acciones.

Atractivo Visual

Cuando se trata de experiencia del usuario, nunca puede subestimarse la importancia del atractivo visual. Además de tener grandes funcionalidades, una buena interfaz es agradable a la vista.

VENTAJAS

Facilita el manejo de los procedimientos

Cada comando puede ser visualizado en pantalla mediante una imagen que lo representa

DESVENTAJAS

Utiliza más recursos del sistema

Es más complejo realizar un sistema de este tipo

Son más costosos

ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

DEFINICION

Es la arquitectura más citado cuando se discuten lo sistemas distribuidos. Es el modelo mas importante y sigue siendo el mas utilizado

VENTAJAS

La confiabilidad que facilita la repartición de la carga de trabajo entre las distintas computadoras con bases y sus ffunciones y capacidades

Tienen mayor poder de computo

En la economía, estos sistemad por lo general funcionan con miroprocesadores que tienen una relación de calidad/precio mas interesante y atractiva que una computadora centraizada

Una Distribución interesante que puedo hacer uso de aplcaciones de manera reomata

DESVENTAJAS

SEGURIDAD

Se necesita de esquemas de seguridad muy robustos

REDES

Existen problemas de transmision de datos muy comunes

TOLERANCIA A FALLOS

Puede existir fallas operativas y de componentes

CARACTERISTICAS

ARQUITECTURA BASADA EN OBJETOS: En esencia, cada objeto corresponde y estos componentes estan conectados

ARQUITECTURA EN CAPAS: Un componente en una determinada capa que puede llamar a componentes en la capa inmediata interior

ARQUITECTURA CENTRADA EN DATOS: Los procesos se comunican a través de un repositorio o medio común

DISEÑO ARQUITECTONICO

DEFINICION

Es la primera etapa en el proceso de software, es un enlace entre la ingeniería, el diseño y la ingeniería de requerimientos.

Se interesa por entender cómo debe organizarse un sistema y cómo tiene que diseñarse la estructura global de ese sistema.

PATRON ARQUITECTONICO

Se puede considerar como una descripción abstracta estilizada de buena práctica, que se ensayó y puso a prueba en diferentes sistemas y entornos.

Ayudan a validar nuestro sistema.

Establecen un lenguaje común.

Ahorran tiempo.

CARACTERISTICAS

Arquitectura en pequeño: se interesa por la arquitectura de programas individuales.

Arquitectura en grande: se ocupa de sistemas empresariales complejos.

VENTAJAS

Comunicación entre participantes: puede usarse como enfoque para discusiones.

Análisis del sistema: tienen un efecto profundo sobre si el sistema puede o no cubrir requerimientos críticos.

Reutilización a gran escala: la arquitectura del sistema es la misma para sistemas con requerimientos similares.

DESVENTAJAS

Al requerir, las empresas de arquitectura, personal temporal para la supervisión de proyectos se incrementan los costos de capacitación
y motivación por la alta rotación de personal.

Los costos de certificación que son bastante altos pueden
incrementarse si se deben realizar auditorías en oficinas ubicadas físicamente en diferentes lugares