Diseño de software
Permite producir varios modelos del sistema o producto de que se va a construir el mismo que forman una especie de plan de la solución de la aplicación
Diseño de Software de Arquitectura Distribuida
¿Qüe es?
Los sistemas distribuidos son sistemas de información en los cuales las funciones se reparten por áreas de trabajo diferentes que trabajan de forma coordinada para asumir los objetivos que la organización asigna a ese sistema de información
Caracteristicas
Concurrencia:
Esta característica de los sistemas distribuidos permite que los recursos disponibles en la red puedan ser utilizados simultáneamente por los usuarios o los agentes que interactúan en la red
Transparencia:
El objetivo esencial de un sistema distribuido es proporcionar al usuario y a las aplicaciones una visión de los recursos del sistema como gestionados por una sola máquina virtual.
Fallos independientes de los componentes:
Cada componente del sistema pudierad fallar de manera independientemente, y los demás continuar ejecutando sus acciones. Esto permite el logro de las tareas con mayor efectividad, pues el sistema en su conjunto continua trabajando.
Apertura (opennesss):
Un sistema informático es abierto si el sistema puede ser extendido de diversas maneras
Carencia de reloj global:
Las coordinaciones para la transferencia de mensajes entre los diferentes componentes para la realización de una tarea, no tienen una temporización general, está más bien distribuida a los componentes.
Arquitecturas de aplicaciones
Definición
Son patrones y las técnicas que se utilizan para diseñar y desarrollar aplicaciones.
Tipos
La arquitectura en capas y N-tier
En esta arquitectura, hay varias capas o niveles (a menudo tres, pero puede haber más) que componen la aplicación, y cada una tiene su propia responsabilidad.
Las capas ayudan a gestionar las dependencias y a ejecutar funciones lógicas. En una arquitectura en capas, estas se organizan de forma horizontal, así que solo pueden utilizar las funciones de las capas inferiores.
Arquitectura monolítica
Los monolitos son otro tipo de arquitectura asociado con los sistemas heredados; 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.
Arquitectura de microservicios
Los microservicios se encuentran distribuidos y tienen un nivel bajo de acoplamiento, para no influir en los demás. Esta arquitectura aporta beneficios tanto de escalabilidad dinámica como de tolerancia a fallos: los servicios individuales se pueden ampliar según sea necesario
El objetivo de usar una arquitectura de microservicios es distribuir un software de calidad con mayor rapidez.
Arquitectura basada en eventos
La arquitectura basada en eventos permite un acoplamiento mínimo, lo cual la convierte en una buena opción para las arquitecturas de aplicaciones distribuidas y modernas.
Arquitectura orientada al servicio
La arquitectura orientada al servicio (SOA) es un estilo consolidado de diseño de software que se asemeja al estilo de la arquitectura de microservicios.
La SOA estructura las aplicaciones en servicios independientes y reutilizables que se comunican a través de un bus de servicios empresariales (ESB).
Se define como el proceso de definición de la arquitectura, componentes, interfaces y otras características de un sistema o componente que resulta de este proceso.
Procesos del Diseño de Software
Diseño Arquitectónico
Corresponde al proceso de diseño que identifica los subsistemas que conforman un sistema y la infraestructura de control y comunicación
Diseño Detallado
Describe cada componente y su comportamiento específico, de forma que puede procederse a su construcción
Diseño Arquitectónico
Ventajas
*Etapa temprana del proceso de diseño del sistema
* Representa el puente entre el proceso de especificación y diseño
* A menudo se ejecuta en paralelo con algunas actividades de especificación
* Involucra la identificación de los componentes principales del sistema y su comunicación Comunicación entre los
* La arquitectura puede ser usada como un foco de discusión por los stakeholders del sistema
* Análisis de sistemas ayuda a establecer si el sistema puede cumplir los requerimientos no funcionales.
* Reutilización a gran escala
* La arquitectura puede ser reutilizada a través de un rango de sistemas
Desventajas
* Al requerir, las empresas de arquitectura, personal temporal
para supervisar los proyectos * Se incrementan los costos de capacitación y motivación por la alta rotación de personal. También, si el grupo de
especialistas con que se trabajan los diseños cambian por cada proyecto.
* Incrementan los costos de implantación del SGC.
Objetivos
* Introducir el diseño arquitectónico y discutir su
importancia
* Explicar por qué se requieren múltiples modelos para documentar una arquitectura de software
* Describir diferentes tipos de modelos de arquitectura que puede ser usados
* Discutir cómo modelos de referencia específicos del dominio pueden ser usado como una base para líneas de productos y para comparar arquitecturas de software.
Diseño de interfaces de usuario.
Definición
Se basa en diseño de computadoras, aplicaciones, máquinas, dispositivos de comunicación móvil, aplicaciones de software y sitios web enfocado en la experiencia de usuario y la interacción.
El objetivo de la Interfaz de Usuario es mantener la interacción con ellos de una forma más atractiva, centrando el diseño en ellos. Es por ellos que ramas como el Diseño Gráfico y Diseño Industrial basan sus conocimientos a que aprendan lo más rápido posible el funcionamiento de los desarrollos
PRINCIPIOS PARA EL DISEÑO DE LA INTERFAZ DE USUARIO.
Familiaridad del usuario
Utilizar términos y conceptos que se toman de la experiencia de las personas que más utilizan el sistema
Consistencia:
Siempre que sea posible , la interfaz debe ser consistente en el sentido de que las operaciones comparables se activan de la misma forma.
Mínima sorpresa:
El comportamiento del sistema no debe provocar sorpresa a los usuarios.
Recuperabilidad:
La interfaz debe incluir mecanismos para permitir a los usuarios recuperarse de los errores. Esto puede ser de dos formas: Confirmación de acciones destructivas y proveer de un recurso para deshacer.
Guía al usuario:
Cuando los errores ocurren, la interfaz debe proveer retroalimentación significativa y características de ayuda sensible al contexto.
Diversidad de usuarios
La interfaz debe proveer características de interacción apropiada para los diferentes tipos de usuarios.
PROTOTIPOS PARA EL DISEÑO DE LA INTERFAZ DE USUARIO.
Prototipos Estáticos:
son aquellos que no permiten la alteración de sus componentes, pero sirven para identificar y resolver problemas de diseño. En esta categoría se incluyen las presentaciones sobre reproductores, papel u otro medio de visualización.
Prototipos Dinámicos:
Permiten la evaluación de un modelo del sistema sobre una estación de trabajo o una terminal. Estos prototipos involucran aspectos de diseño mas detallados que los prototipos estáticos
Prototipos Robustos:
Deben ser relativamente completos en la simulación de las características dinámicas de la interfaz (presentación de mensajes de error, entrada y edición de datos, etc.). Esta categoría puede ser utilizada para validar los objetivos de diseño