Unidad 3: 3.1, 3.1.1, 3.1.2, 3.1.3, 3.1.4

3.1.1 DISEÑO ARQUITECTONICO

Definición

El diseño arquitectonico se intereza por entender como debe organizarse un sistema y como debe diseñarse la estructura global de ese sistema.

Ventajas

Comunicación con los participantes: la arquitectura es una presentación de alto nivel del sistema qué puede usarse como un enfoque para la discusión de un amplio número de participantes

Análisis del sistema: en en una etapa temprana el desarrollo del sistema, aclarar la arquitectura del sistema requiere cierto análisis

Reutilización a gran escala: por lo general la arquitectura del sistema es la misma para sistemas con requerimientos similares por lo tanto puede soportar reutilización del software a gran escala

Beneficios

El diseño se representa en un nivel alto de abstracción, en el que se rastrea directamente el objetivo específico del sistema y los requerimientos más detallados de datos, funcionamiento y comportamiento. A medida que tienen lugar las iteraciones del diseño, las mejoras posteriores conducen a niveles menores de abstracción.

Características

1. En el proceso deben tomarse enfoques alternativos.
2. Deberá rastrearse hasta el análisis.
3. Se debe reutilizar.
4. Tratar de imitar el dominio del problema.
5. Uniformidad e integración.
6. Deberá estructurarse para admitir cambios.
7. Debe prever la adaptación a circunstancias inusuales.
8. No codificar.
9. Evaluarse en función de calidad mientras está creciendo.
10. Minimizar errores conceptuales.

Patrones

* Los frameworks nos implementan en ocasiones
distintos patrones y estilos arquitectónicos.
* Por ejemplo, Struts, JSF `y ASP .net
implementan el patrón MVC.
* J2EE nos da soporte para un estilo
arquitectónico con tres capas (presentación,
lógica de aplicación y datos)
* Por tanto, el uso de frameworks va a
determinar en gran medida la arquitectura del
sistema.

Ejemplo:

Un ejemplo es cuando vamos a realizar el programa y debemos de entender lo que vamos a hacer y tener definido como va a hacer el diseño de dicho programa.

3.1.4 Diseño de interfaces de usuario

Principios de diseño

- Definir los modos de interacción de manera que no obligue a que el usuario realice acciones innecesarias o no deseadas.
- Tener en consideración una interacción flexible.
- 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.
- Ocultar los tecnicismos internos al usuario ocasional.
- Diseñar la interacción directa con objetos que aparezcan en la pantalla.

Se deben de cumplir con unas reglas de diseño de la interfaz de usuario:

1. Dejar el control al usuario
La mayor parte de las restricciones y limitaciones impuestas por el diseñador se han pensado para simplificar el modo de interacción.

2. Reducir la necesidad de que el usuario memorice
Cuanto más tenga que recordar un usuario, más propensa a errores será su interacción con el sistema. Esta es la razón por la que una interfaz de usuario bien diseñada no pondrá a prueba la memoria del usuario.

Hacer consistente la interfaz.
La interfaz debe presentar y obtener información en forma consistente. Esto implica: 1) que toda la información se organice de acuerdo con reglas de diseño que se respeten en todas las pantallas desplegadas. 2) que los mecanismos de entrada se limiten a un conjunto pequeño usado en forma consistente en toda la aplicación 3) que los mecanismos para pasar de una tarea a otra se definan e implementen de modo consistente.

Ejemplo:

Depende el programa que pide el cliente un ejemplo si es un programa de juegos se necesita una interfaz bien colorida y animada para que anime al cliente en el momento de interactuar con el programa.

3.1.3 Arquitectura de aplicaciones

Definición

Los sistemas de aplicación tienen la intención de cubrir las necesidades de una empresa u organización la manera en la que es diseñada tanto física como lógicamente una aplicación.

La arquitectura se basa en el modelo cliente-servidor en varias capas:

Capa de balanceo: Se hace la distribución de carga de los diferentes servicios; se diferencia un primer nivel basado en hardware y un segundo proporcionado por las diferentes baterías de servidores web.

Capa de servidores de aplicaciones de los diferentes clústeres: Estructurada para facilitar la redundancia y la escalabilidad de las aplicaciones.

Capa de datos: Basada en diferentes gestores de bases de datos (PostgreSQL, MySQL, Oracle RAC 11g...). Las principales bases de datos dan servicio a los servidores de e-Administración, de e-Información y de servicios.

Ejemplo:

Un ejemplo es un sistema bancario que cumple con las funciones que necesita la empresa tanto para los trabajadores y clientes.

3.1.2 ARQUITECTURA DE SISTEMAS DISTRIBUIDOS

Definición

Un Sistema Distribuido es una colección de computadores independientes que aparecen ante los usuarios como un único sistema coherente.

Ventajas

Ventajas
• Compartir recursos e información.
• Procesadores mas poderosos y menos costosos.
• Escalabilidad. • Tolerancia a fallos.

Desventajas
• Requerimiento de mayores controles de procesamiento.
• Disminución en la velocidad de propagación de la información.
• Múltiples puntos de fallo
• Aspectos de seguridad.

Características

•Soporte para diferentes tipos de Sistemas Operativos, redes, lenguajes de programación, etc. Transparencia
•Visión de los recursos como un único sistema. Escalabilidad
•Capacidad para crecer sin ningún problema Fiabilidad
•Capacidad para realizar las operaciones para las que fue creado Disponibilidad
•El sistema siempre tiene que estar en línea. Tolerancia a Fallos
•Capacidad de seguir disponible pese a un problema. Consistencia
•Asegurar el estado global.

Ejemplo:

Como ejemplo están los juegos en linea de multijugadores masivos ya que se usan una colección de computadoras