CLASE 5:
UML
UML (Unified Modeling Language) es un lenguaje para especificar, construir, visualizar y
documentar los elementos que componen un sistema de software.
Su objetivo principal es optimizar la comunicación entre los responsables del proceso de
construcción del sistema (cliente, usuario, analista funcional, diseñadores,
programadores, etc.), estandarizando la notación del lenguaje utilizado para tal fin.
Fue fundado a mediados de los 90's y la versión actual es la 2.5.1 (2017).
¿Es lo único?
UML es uno de varios lenguajes y notaciones de modelado, otros pueden ser BPMN,
CORBA, CWM, DDS, MDA, MOF, SysML.
Algunas de las herramientas de diagramación pueden ser Smartdraw, Miro, Lucidchart,
Diagramming AI, [Link], ClickUp, Gleek, Visio, Astah.
UML Diagram Type:
• Diagramas estructurales:
o Diagrama de clases:
Describe los tipos de clases que existen en un sistema, sus atributos, métodos y
las relaciones que se presentan entre ellas.
Se identifican tres tipos de relaciones: Asociación, Agregación y Herencia.
o Diagrama de objetos:
Es una instancia del diagrama de clases, que muestra el estado del sistema en un
momento particular. Es un diagrama limitado, utilizado para ilustrar ejemplos de
las estructuras de datos del sistema.
o Diagrama de paquetes:
Muestra los distintos paquetes lógicos del sistema y las dependencias que existen
entre ellos. Un paquete es un conjunto de objetos, clases, casos de uso,
componentes u otros paquetes. Permite entender las distintas capas del
sistema.
o Diagrama de componentes:
Muestra como distintos componentes se juntan para formar un sistema superior,
ilustrando los distintos elementos del software y las dependencias entre ellos.
o Diagrama de despliegue:
Describe la implementación física de la información generada por el programa de
software en los componentes de hardware. Contiene 2 elementos: nodos y
conexiones.
• Diagramas de comportamiento:
o Diagrama de actividad:
Son representación gráfica de los distintos workflows del sistema y buscan
representar tanto procesos computacionales como organizacionales.
o Diagrama de estado-máquina:
Muestra los distintos estados permitidos del sistema y las transiciones posibles, así
como los eventos que pueden afectar estas transiciones.
o Diagrama de casos de uso:
Describe los requerimientos funcionales de un sistema en términos de casos de
uso, es un modelo de la funcionalidad deseada del sistema (casos de uso) con
relación a su entorno (actores).
Un caso de uso es una clasificación de comportamiento que especifica una
unidad de funcionalidad completa y que es realizada por uno o más sujetos que se
relacionan con el caso de uso colaborando para ello con uno o más actores y que
produce un resultado que tiene alguna utilidad para cualquier de esos actores.
Los objetivos de los diagramas de casos de uso son:
▪ Representar requerimientos funcionales mediante los casos de uso
▪ Representar actores que interactúan con el sistema
▪ Representar relaciones del sistema
▪ Guiar el desarrollo del sistema
▪ Facilitar la comunicación entre clientes y desarrolladores
o Diagrama de secuencia:
Muestra la interacción de los objetos del sistema a lo largo del tiempo para un
caso de uso en particular, se utiliza normalmente en conjunto con el diagrama de
casos de uso.
El diagrama de secuencia está construido a partir de dos dimensiones:
Horizontal: Representa los objetos que participan en la secuencia.
Vertical: Representa la línea de tiempo sobre la que los elementos
actúan.
El diagrama de secuencia incluye elementos como actores, objetos, lifelines,
mensajes, marcos alternativos y cajas de activación.
o Diagrama de comunicación:
Representa la dinámica de comportamiento de un caso de uso, pero más
enfocado en la colaboración entre objetos que en la secuencia de tiempo en que
colaboran.
o Diagrama global de interacciones:
Muestra una vista general de los flujos de control que existen en el sistema, es una
variante del Diagrama de actividad donde cada nodo es representado en detalle
mediante un Diagrama de secuencia.
o Diagrama de timing:
Es una variación del Diagrama de Secuencia, con la principal diferencia de que los
ejes se invierten.
UX:
¿Qué es UX (User Experience)?
Según la norma ISO 9241-210:2010, UX (User Experience) es el conjunto de percepciones
y respuestas de una persona como resultado del uso y/o uso anticipado de un producto,
sistema o servicio.
Es una descripción de todas las interacciones que el usuario tiene con el negocio, tanto
online como offline, a lo largo de su "customer journey" con los productos y servicios.
¿Y UI (User Interface)?
Descripción de cómo los usuarios interactúan con el negocio a través de una interfaz,
como una pantalla de una aplicación o producto.
Diseño de UX:
UX también es conocido como "User-Centered Design" (UCD), que es un proceso de
diseño iterativo que involucra a los usuarios y sus necesidades en todas las etapas a fin
de crear productos usables y accesibles.
Los tres pilares del UCD:
o Research: Investigación para conocer a los usuarios, sus objetivos y
contextos.
o Empathy: Empatía para ponerse en el lugar de los usuarios.
o Iteration: Uso de un proceso iterativo que permite la evaluación y mejora
constante.
¿Que hace a la buena usabilidad de un producto?:
Capas del Diseño de Experiencia del Usuario:
Estrategia: Necesidades del usuario y objetivos del sitio.
Alcance: Especificaciones funcionales y requerimientos de contenido.
Estructura: Diseño de la interacción y arquitectura de la información.
Esqueleto: Diseño de la interfaz, diseño de la navegación y diseño de la información.
Superficie: Diseño visual.
Etapas del proceso de UX:
a. Discover Phase: El objetivo de esta fase es entender quiénes son los usuarios y
cuáles son sus necesidades y el "output" de esta fase es una idea general de lo
que el producto o servicio resolvería. Algunos metodos de investigación de
usuarios incluyen fuentes primarias como entrevistas, focus groups, encuestas y
fuentes secundarias como analizar cómo los usuarios usan un producto similar,
investigación de mercado.
b. Describe Phase: En esta fase, se busca obtener un entendimiento de los usuarios
y una idea general del producto, y se define claramente el problema a resolver y el
producto que lo resolverá. Se utilizan técnicas como "Brainstorming" y "Mind
mapping" para generar ideas.
Se propone priorizar las ideas generadas utilizando técnicas como la matriz
"Value-Effort" y el método MOSCOW.
c. Design Phase: En esta fase, se obtiene una idea clara sobre el producto y cómo
los usuarios interactuarán con él. Los pasos que realiza el usuario para interactuar
con el producto conforman el "user journey". En esta etapa deberá definirse el
diseño visual, funcional y técnico del producto.
d. Develop: Los prototipos elaborados en etapas anteriores les sirven a los
desarrolladores para construir y testear el producto final y lanzarlo al público. La
"Pirámide del testing" muestra los diferentes niveles de pruebas de software.
e. Release: Esta etapa implica disponibilizar el producto al mercado y analizar la
reacción y comportamiento de los usuarios para retroalimentar el proceso de UX.
Roles en UX:
Un equipo de UX es interdisciplinario, incluyendo profesionales de psicología, diseño
gráfico, marketing y programación.