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