Categories: All - sincronización - arquitectura - escalabilidad - administración

by Alma Alvarado 3 years ago

447

UNIDAD 3: Diseño

Diseñar y desarrollar aplicaciones requiere un profundo conocimiento de la arquitectura de aplicaciones y los patrones que facilitan la creación de software bien estructurado. La arquitectura le proporciona un plan detallado y prácticas recomendadas que garantizan la eficiencia y escalabilidad del sistema.

UNIDAD 3:  Diseño

UNIDAD 3: Diseño

Diseño Arquitectónico

Hay tres ventajas al diseñar explícitamente y documentar la arquitectura del software:
3. Reutilización a gran escala
2. Análisis del sistema
1. Comunicación con los usuarios
Los patrones de diseño se agrupan en tres tipos
* Idioms

Soluciones útiles para problemas específicos en algún lenguaje de programación

* Patrones de diseño

Soluciones a problemas detallados de diseño de software

* Estilos arquitectónicos

Soluciones de organización a nivel del sistema

Arquitectura software: Beneficios
Durante el desarrollo del sistema

Proporciona la relación de puntos de diseño a tratar

Facilita el desarrollo simultaneo de componentes

Facilita la reutilización a gran escala ( es la base para construir líneas de productos)

Es una excelente vista general y consistente de múltiples vistas de sistema.

Durante la gestión del sistemas

Aumenta la precisión en la estimación del coste y tiempo

El arquitecto proporciona información útil

Documento sobre el que poder discutir

El proceso de Diseño Arquitectónico esta relacionado con establecer un marco estructural básico para identificar los principales componentes de un sistema y las comunicaciones entre estos componentes.
Es la fase en donde debemos modelar el funcionamiento interno del sistema, describiendo:

* Los detalles procedimentales.

* La estructura del programa.

* Estructuras de datos.

Arquitectura de sistemas distribuidos

Ventajas de los sistemas distribuidos.
Facilita la repartición de la carga de trabajo entre distintas computadoras con base en sus funciones y capacidades.

Estos sistemas por lo general funcionan con microprocesadores que tiene una relación de calidad y precio mas interesante y atractiva que una computadora centralizada.

Pueden hacer uso de aplicaciones e manera remota.

Tiene mayor poder de computo

Los sistemas pueden funcionar en distintos sistemas operativos.

Estas arquitecturas de software establecen como son organizados varios componentes del software y como interactúan entre ellos.
Desventajas de los sistemas distribuidos.

Necesita de esquemas de seguridad muy robustos.

Existen problemas de transmisión de datos muy comunes.

Diseño de Interfaces de Usuarios

Reglas de Diseño
Hacer consistente la interfaz.
Reducir la necesidad de que el usuario memorice

La distribución visual de la interfaz debe basarse en una metáfora del mundo real.

Definir atajos que sean intuitivos.

Reducir la demanda de memoria a corto plazo.

Dejar el control al usuario

Diseñar la interacción directa con objetos que aparezcan en la pantalla.

Facilitar la interacción a medida que aumenta la habilidad y permitir que aquella se personalice.

Permitir que la interacción del usuario sea interrumpible y también reversible.

Definir los modos de interacción de manera que no obligue a que el usuario realice acciones innecesarias o no deseadas

Se centra en 3 área de interés
El diseño de la interfaz entre el hombre (esto es, el usuario) y la computadora
El diseño de las interfaces entre el software, los otros productores y consumidores de información no humanos (esto es, otras entidades externas)
El diseño de la interfaz entre los componentes del Software
Se deben tener en cuenta las capacidades físicas y mentales de las personas que utilizarán el Software
Tener en cuenta las preferencias de interacción; gráficas o textuales
El diseño debe adaptarse a las capacidades de los usuarios.
No presentar demasiada información al mismo tiempo
Controlar la emisión de avisos y alarmas de errores

Arquitectura de aplicaciones

Middleware
Es una herramienta que nos permite conectar 2 aplicaciones de software independiente.

Ejemplos de Middlware - Distributed computing environment - Common object request broker architecture - Open database connectivy - Java database connectivy

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.
Tipos de arquitectura de aplicaciones

Cliente/Servidor

Usado comunmente tiene un procesamiento distribuido. Relativamente facil escalar donde se necesite y permite el uso de hardware y software de distintas marcas y proveedores trabajando juntos.

Pero tiene una mayor complejidad y solo requiere de middleware.

Ejemplo: -Versiones de clientes - ERP - BI - Correo

Basado en clientes

Menor requerimientos de capital. Facil empatar oferta de recursos con demanda.

la desventaja es una administracion centralizada y dificultad para sincronizar datos.

Ejemplos: - Procesadores de texto y hojas de calculo. - Entorno P2P.

Basado en servidor

Tienen como principal ventaja una administracion centralizada, esto quiere decir que si el servidor se se actualiza, los clientes que que tengan acceso al servidor les llegara esa actualizacion.

Aplicaciones disponible desde cualquier cliente con acceso a servidor

Ejemplos: - Mainframes - Aplicaciones Web - SaaS

La arquitectura de aplicacion puede reimplantarse cuando se desarrollen nuevos sistemas.
Algunos no necesitan de reimplementacion como los ERP, eso sucede con Oracle por ejemplo, que tiene aplicaciones que funcionan en diferentes tipos de estilo de negocios.