UNIDAD 3: Diseño

Arquitectura de aplicaciones

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.

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

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

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.

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

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

Diseño de Interfaces de Usuarios

Se deben tener en cuenta las capacidades físicas y mentales de las personas que utilizarán el Software

Controlar la emisión de avisos y alarmas de errores

No presentar demasiada información al mismo tiempo

El diseño debe adaptarse a las capacidades de los usuarios.

Tener en cuenta las preferencias de interacción; gráficas o textuales

Se centra en 3 área de interés

El diseño de la interfaz entre los componentes del Software

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 el hombre (esto es, el usuario) y la computadora

Reglas de Diseño

Dejar el control al usuario

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

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

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

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

Reducir la necesidad de que el usuario memorice

Reducir la demanda de memoria a corto plazo.

Definir atajos que sean intuitivos.

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

Hacer consistente la interfaz.

Arquitectura de sistemas distribuidos

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.

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.

Diseño Arquitectónico

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:

* Estructuras de datos.

* La estructura del programa.

* Los detalles procedimentales.

Arquitectura software: Beneficios

Durante la gestión del sistemas

Documento sobre el que poder discutir

El arquitecto proporciona información útil

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

Durante el desarrollo del sistema

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

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

Facilita el desarrollo simultaneo de componentes

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

Los patrones de diseño se agrupan en tres tipos

* Estilos arquitectónicos

Soluciones de organización a nivel del sistema

* Patrones de diseño

Soluciones a problemas detallados de diseño de software

* Idioms

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

Hay tres ventajas al diseñar explícitamente y documentar la arquitectura del software:

1. Comunicación con los usuarios

2. Análisis del sistema

3. Reutilización a gran escala