2. MARCO TEÓRICO 2.1. GRAFOS

January 1, 2017 | Author: Cristina Carrasco Álvarez | Category: N/A
Share Embed Donate


Short Description

1 2. MARCO TEÓRICO Este capítulo presenta conceptos relacionados con grafos, técnicas y herramienta...

Description

2. MARCO TEÓRICO

Este capítulo presenta conceptos relacionados con grafos, técnicas y herramientas de visualización de grafos. Además, incluye la definición del modelo de datos GDM (5), los operadores de transformación (4) y describen las herramientas que se usaron para el desarrollo de este trabajo, como lo son la metodología Scrum (6) y la usabilidad en el desarrollo de software. Las técnicas de visualización de grafos proponen diversas formas de mostrar un grafo. Estas técnicas se estudiaron y se hizo una comparación de sus características (Observar sección 3.5) para seleccionar la técnica más adecuada según los requerimientos de la interfaz. Las herramientas de visualización de grafos implementan diferentes técnicas de visualización, y facilitan el despliegue y manipulación de un grafo. Estas herramientas se evaluaron y se hizo una comparación de sus características (Observar sección 3.6) para determinar la herramienta adecuada. Una consulta es una secuencia de operaciones de transformación del grafo. La interfaz gráfica permite la transformación basada en los operadores extracción de subgrafos, filtro de valor, filtro de clase, y contracción de camino. Los operadores están definidos en (7). La metodología ágil Scrum se utilizó en la administración del proceso de análisis, diseño e implementación del proyecto. Esta metodología de ingeniería de software permite el control ágil de las tareas necesarias para cumplir los objetivos del proyecto. Por último, en el proceso final de la implementación se realizaron test de usabilidad con el fin de observar a los usuarios utilizando la interfaz y recopilar sus opiniones sobre la facilidad de uso de la misma. Estos se llevaron a cabo con diferentes tipos de usuarios, como lo son profesionales de medicina, estudiantes de medicina, estudiantes de odontología, estudiantes de ingeniería de sistemas y expertos en usabilidad.

2.1.

GRAFOS

Formalmente, un grafo se define como una pareja ordenada de conjuntos G = (N, A) donde N es un conjunto de nodos, N = {n1,…., nk}, y A es un conjunto de arcos (8) el cual se define más adelante. Los grafos pueden ser dirigidos o no dirigidos. En el grafo dirigido un arco a es una tripleta de la forma (nj, nk, cjk) la cual establece una relación entre los nodos nj y nk de N y una etiqueta cjk (8). Gráficamente un nodo se representa con un círculo y un arco, por una línea dirigida en forma de flecha desde el nodo inicial nj al nodo terminal nk (9). 10

Formalmente, la dirección está dada por un sentido de la relación (nj → nk) y tiene una etiqueta asociada (cjk) (8). Un grafo no dirigido a diferencia de un grafo dirigido no presenta una dirección específica de un nodo a otro. Un camino entre un nodo nj y un nodo nk de un grafo G es una secuencia de nodos el cual se caracteriza por un conjunto de nodos relacionados con arcos entre sí. La longitud del camino está dada por el número de arcos que contiene. Un camino es simple si todos los nodos por los cuales pasa son diferentes entre sí y diferentes del origen y del destino. Un camino simple puede comenzar y terminar en el mismo vértice, pero no pasar dos veces por un mismo nodo. Por otro lado, un camino no dirigido es aquel en que no se toma en cuenta la dirección de los arcos. Un grafo SG es un subgrafo del grafo G, si incluye un subconjunto de sus nodos y de los arcos que los relacionan en G. se define formalmente de la siguiente forma: Dados G = (N, A), SG = (Nsg, Asg), Nsg ⊆ N, ∀ j,k ϵ Nsg, si (j, k, c) ϵ A ⇒ (j, k, c) ϵ Asg (8).

2.2.

GRAPH DATA MODEL (GDM)

En (5) se define un modelo de datos como una colección de herramientas conceptuales para describir los datos, sus relaciones, su semántica y sus restricciones de consistencia. A la descripción de la estructura de una base de datos en particular se le denomina esquema de la base de datos. La colección de datos almacenados en la base de datos en un momento particular se denomina instancia. Los modelos basados en grafos son aquellos en los que el esquema o la instancia se modelan con grafos (20). En este trabajo se usa GDM (Graph Data Model) (21). El modelo GDM define un grafo esquema y un grafo instancia. En el grafo esquema los nodos representan clases y los arcos atributos. El esquema está definido como S = donde es un grafo dirigido y etiquetado, N es el conjunto de nodos, E es el conjunto de las arcos, E ∈ N × A × N. λ es la función que asigna una etiqueta a cada nodo y arco. La función σ asigna el tipo de clase a cada nodo. GDM define tres tipos de clases: objeto (Object), valor compuesto (Composite-value) y valor básico (Basic-value). GDM permite representar relaciones n-arias a través de objetos de valor compuesto. La Figura 2 muestra un esquema de datos clínicos definido usando GDM. Los cuadrados se utilizan para representar los nodos de clase objeto, los círculos pequeños vacíos representan las clases de valor compuesto y los círculos grandes son las clases de valor básico.

11

En el esquema de la Figura 2 se observa las relaciones entre los atributos y los objetos, por ejemplo: patId, parFirstName y patLastName son atributos del objeto Patient y a su vez se relaciona con los atributos demográficos patGender, patBirthDate, patAddr, patTe y patEthnic.

Figura 2. Esquema de datos en un modelo de grafo (21).

En el grafo instancia los nodos representan entidades y los arcos, atributos. Una instancia en GDM se define como I = < N, E, λ, σ, 𝜌 > donde < N, E, λ > es un grafo dirigido y etiquetado. Los nodos están etiquetados con el nombre de la clase a la que pertenecen y los arcos con el nombre del atributo. Al igual que en el esquema, σ asigna el tipo de cada nodo, por lo tanto un nodo puede ser: nodo objeto, nodo de valor compuesto, o nodo de valor básico. La función 𝜌: { 𝑛 ∈ 𝑁 |σ(n) ∈ 𝛽 } → 𝐷, asigna un valor del dominio D a cada nodo de valor básico. Un ejemplo de instancia correspondiente al esquema de la Figura 2 se puede observar en la Figura 3.

12

Figura 3. Ejemplo de instancia (21).

2.3.

TÉCNICAS DE VISUALIZACIÓN DE GRAFOS

Las técnicas de visualización de grafos que se han aplicado a la cibermetría y la minería web permiten el análisis visual de los datos. Con el fin de saber cómo está construida una web y poder tener acceso a información valiosa se usa la teoría de grafos para el desarrollo de técnicas de visualización que facilitan la minería web. Etzioni en (10) definió la minería web como “El uso de técnicas de Minería de Datos para descubrir y extraer información automáticamente desde el World Wide Web”. La minería web analiza y estudia la estructura de la web. En esta se establece la forma como se construyó una página y otros elementos navegables a partir de los hiperenlaces encontrados en la página web (11). Las técnicas de visualización de grafos tienen en cuenta la gran cantidad de información que se puede tener en la web. Lo cual se traduce en una gran cantidad de nodos y relaciones entre ellos. Esto puede dificultar la visualización y navegabilidad del grafo. En (11) se definen las restricciones estéticas básicas para la visualización de un grafo con grandes cantidades de nodos y relaciones. Entre estas restricciones se encuentran: minimizar los cruces de relaciones, minimizar la longitud de las relaciones, minimizar los nudos de relaciones, maximizar las simetrías.

13

Entre algunos tipos de grafo que se incluyen en las técnicas de visualización están (11): disposición radial, dirigidos por fuerza de atracción y repulsión de los nodos, agrupaciones jerárquicas e hiperbólico. Cada tipo de grafo tiene ventajas y desventajas de acuerdo a la necesidad que se tiene. A continuación se presentan las diferentes formas de visualización.

2.3.1. Grafo hiperbólico

Es un grafo especial para jerarquías, presenta una vista de 360 grados colocando su nodo raíz en el centro. Tiene la posibilidad de modificar la disposición del nodo raíz para centrar la visión en cualquier otro nodo. Un ejemplo de este grafo se puede observar en la Figura 4. Se aconseja usar esta forma de visualización cuando se requiere visualizar una gran cantidad de nodos en un espacio reducido (11). Este puede visualizar mucha información sin perder el contexto en el que se encuentra.

Figura 4. Grafos hiperbólicos (11).

2.3.2. Grafos dirigido por fuerza

Los grafos dirigidos por fuerza tratan de evitar el cruce de arcos y el solapamiento de nodos, esto mejora la visualización de cada componente del grafo. Este tipo de grafo simula las fuerzas de la naturaleza como por ejemplo el campo eléctrico, fuerzas gravitatorias, entre otras. Se puede observar el grafo en la Figura 5.

14

Figura 5. Grafo dirigido por fuerzas (11).

Para grafos dirigidos por fuerza con una gran cantidad de nodos, por ejemplo grafos que contengan más de 1000 nodos, puede complementarse con otra técnica de visualización tal como Graph clustering para la agrupación de nodos específicos.

2.3.2.1.

Graph clustering

Graph clustering se encarga de dividir un conjunto de datos y agruparlos en un mismo grupo, con la característica que estos datos presentan similitud o se relacionan de algún modo predefinido. Un ejemplo de este tipo de grafo se puede observar en la Figura 6 (12).

15

Figura 6. Graph clustering (13).

2.3.3. Grafo por agrupación jerárquica

La agrupación jerárquica es una técnica que busca agrupar aquellos nodos que se encuentran altamente relacionados entre sí. Esta permite mejorar la visualización del grafo en las siguientes situaciones: cuando se tiene un alto número de nodos, cuando se obtiene información acerca de su estructura y cuando se tienen relaciones representadas en el grafo. Un ejemplo se puede observar en la Figura 7.

Figura 7. Grafo por agrupación jerárquica (14).

16

2.3.4. Grafo radial

La disposición radial es una técnica que usa un grafo como si fuera un árbol jerárquico, es decir, que el nodo raíz es el nodo de origen de la estructura. Sigue la idea de los árboles en que cada nodo tiene un padre y/o un hijo y vecinos. Un ejemplo de este grafo se puede observar en la Figura 8.

Figura 8. Grafo radial (11).

Los nodos se colocan en círculos concéntricos y cada uno de estos círculos se constituye de nodos que se encuentran a la misma distancia del nodo de origen. Una de las ventajas de este tipo de grafo es que según sea la selección de un nodo padre, reubica el nodo seleccionado en el centro del grafo y así mismo reubica los nodos hijos. 2.4.

HERRAMIENTAS DE VISUALIZACIÓN DE GRAFOS

Para el desarrollo de este trabajo es necesario utilizar herramientas que permitan visualizar y manipular grafos. Por ello, se describen a continuación las herramientas Jung, Igraph, Prefuse, y Gephi las cuales permiten la interacción y manipulación del grafo con el fin de obtener un resultado óptimo en las diferentes transformaciones del mismo. Se escogieron estas cuatro herramientas debido a que son de libre distribución lo cual facilita el acceso a ellas.

17

2.4.1.

Jung (Java Universal Network/Graph Framework)

La herramienta de visualización de grafos JUNG (Java Universal Network/Graph Framework) construida en JAVA es una librería de software de código abierto que proporciona un lenguaje común para el modelado, el análisis y la visualización de datos que se pueden representar en forma de grafo (15). JUNG proporciona un marco de visualización que facilita la construcción de herramientas para la exploración interactiva de datos de la red. (15). Un ejemplo se puede observar en la Figura 9.

Figura 9. Demo en JUNG para la visualización de grafos (15).

Las características más sobresalientes de Jung son (16):    



Soporta una gran variedad de representaciones entre ellos los grafos dirigidos y los grafos no dirigidos. Permite etiquetar nodos y arcos en un grafo. Facilita la creación de herramientas analíticas para conjunto de datos complejos. Permite implementar algoritmos basados en la teoría de grafos, análisis exploratorio de los datos, análisis de redes sociales y aprendizaje automático. Esto incluye también técnicas como clustering, descomposición, optimización, generación aleatoria de grafos, análisis estadístico y cálculos de distancia en un grafo. Tiene un mecanismo de filtrado, el cual extrae un subconjunto de una grafo, y permite que el usuario centre su foco de atención en una porción del grafo.

En general, Jung es un framework de visualización que facilita la construcción de herramientas para la exploración interactiva de datos. Los usuarios pueden elegir una cantidad de diseños y algoritmos, o pueden usarlo para crear sus propios algoritmos.

18

2.4.2. Gephi

Gephi es una herramienta para quienes necesitan explorar y analizar los grafos. El usuario interactúa con la representación manipulando las estructuras, formas y colores para revelar las propiedades ocultas. El objetivo es ayudar a los analistas de datos para hacer hipótesis e intuitivamente descubrir patrones aislando la estructura de singularidades o fallos durante el abastecimiento de datos. Gephi es una herramienta complementaria para el pensamiento visual con interfaces interactivas para facilitar el razonamiento. Es un software de análisis exploratorio de datos. El beneficio en cuanto al motor gráfico de visualización es su rapidez para acelerar la comprensión y el descubrimiento de patrones en gráficos grandes. Funciona sobre un motor OpenGL, Gephi (17). Un ejemplo de este grafo se puede observar en la Figura 10. Las características de Gephi son:     

Soporta redes de hasta 50.000 nodos y 1.000.000 arcos. Permite iterar a través de la visualización mediante el filtrado dinámico. Contiene herramientas dinámicas para la manipulación gráfica. Está basado en algoritmos de fuerza de atracción y de repulsión lo cual permite que un par de nodos conectados entre sí se atraigan o se dispersen. Algoritmo multi-nivel para grafos muy grandes. Distribuye una cantidad mínima de nodos en diferentes niveles.

Figura 10. Demo Gephi para la visualización de grafos (17).

19

2.4.3. Igraph

La herramienta Igraph es un paquete de software de código libre que permite la creación y manipulación de grafos no dirigidos y dirigidos. Esta herramienta contiene funciones para generar grafos regulares para la manipulación de grafos y para asignar atributos a los nodos y arcos. Igraph proporciona rutinas para manipular grafos, agregar y quitar nodos y arcos. Los gráficos en Igraph se pueden visualizar en 2D y en 3D en forma interactiva o no interactiva (18). A continuación se observa un ejemplo de grafo en la Figura 11.

Figura 11. Demo Igraph de visualización de grafos (18).

2.4.4. Prefuse

Prefuse es un conjunto de herramientas basada en java para crear aplicaciones interactivas de visualización de información (19). Esta herramienta proporciona estructuras de datos optimizadas para tablas, gráficas y árboles. Permite técnicas de diseño y codificación visual, animación, consultas dinámicas, búsquedas y conexión a base de datos (19). Utiliza la biblioteca de gráficos 2D de Java y se integra fácilmente en aplicaciones Swing de Java o applets web. Esta herramienta puede ser utilizada libremente para fines tanto comercial o no comercial (19). Un ejemplo de un grafo radial realizado en Prefuse se puede observar en la Figura 12.

20

Figura 12. Grafo radial en Prefuse (19).

2.5.

OPERADORES DE TRANSFORMACIÓN DEL GRAFO

En (4) y (21) se proponen cuatro operadores que permiten realizar consultas sobre un modelo de grafos. Los operadores se basan en la transformación de los grafos esquema e instancia.

21

Figura 14. Esquema de salida, operador extracción de subgrafo (21).

Figura 13. Esquema de entrada (7).

22

Los operadores que se proponen son: extracción de subgrafo, contracción de caminos, filtro de valor y filtro de clase. Cada operador recibe como entrada los grafos esquema e instancia, nodos y arcos del grafo esquema y otros parámetros requeridos. La salida de un operador son a su vez grafos esquema e instancia.

2.5.1. Extracción de subgrafo

“La extracción de subgrafos recibe como entrada un conjunto de arcos. Este conjunto de arcos forma el esquema de respuesta. La instancia de respuesta incluye todos los nodos que pertenecen a las clases del esquema de respuesta, y los arcos entre ellos” (7). Las Figuras 13 y 14 muestran, para una operación de extracción de subgrafos, los esquemas de entrada y resultado respectivamente; el conjunto de arcos es (21): {(Encounter,of,Patient),(Encounter,diagnosis,disCode),(Encounter,familyHistory ,β1),(β1,disease,disCode),(β2,disease,disCode),(Encounter,pastMedicalHistory, β2), (Disease,code,disCode),(Disease,description,disDescription)}. Un ejemplo de instancia de salida de extracción de subgrafo se puede observar en la Figura 15.

Figura 15. Instancia de extracción de subgrafo (7).

La extracción de subgrafo se expresa de la siguiente forma (7): Extract(⟨𝑆, 𝐼⟩, {e1 , e2 , ..., ek }) → ⟨𝑆′ , 𝐼′⟩. Para el ejemplo previo, la operación se especifica así:

23

Extract(⟨𝑆, 𝐼⟩, {(Encounter, of, Patient), (Encounter, diagnosis, disCode), (Disease, code, disCode), (Disease, description, disDescription), (Encounter, familyHistory, β1 ), (β1, disease, disCode), (Encounter, pastMedicalHistory, β2 ), (β2, disease, disCode)}) → ⟨𝑆′ , 𝐼′⟩. 2.5.2. Filtro de valor “El filtro de valor permite seleccionar datos de valor básico que están conectados por un camino con un nodo de valor básico que cumple una condición específica” (7). En el ejemplo de la Figura 16 se puede observar el esquema que resulta de seleccionar los datos de valor básico de interés: patLastName, encDate, disDescription y disCode. En este ejemplo se quiere recuperar la fecha (encDate) y el apellido del paciente (patLastName) que presenta una enfermedad específica (disDescription) y también todos los nodos de los caminos seleccionados. El filtro de valor devuelve el subgrafo más pequeño que incluye las clases de interés, la condición de la clase y los caminos no dirigidos entre ellos.

Figura 16. Esquema de salida, operador de filtro de valor. Teniendo como entrada el esquema de la figura 13 (7).

El filtro de valor se expresa de la siguiente forma (7): ValueFilter(S, I , {m1{p1} , m2{p2} , ..., mk{pk } }, exp)→ ⟨𝑆’, 𝐼′⟩ Para el ejemplo previo, la operación se especifica así: ValueFilter(⟨𝑆,𝐼⟩, {patLastName{p1}, encDate{p2}}, disDescription = “Diabetes”) → ⟨𝑆′, 𝐼′⟩ with {p1} = {patLastName, lastName, Patient, of, Encounter, diagnosis, disCode, code, Disease, description, disDescription}, {p2} = {encDate, encounterDate, Encounter, diagnosis, disCode, code, Disease, description, disDescription}. Un ejemplo de instancia del operador de filtro de valor se puede observar en la Figura 17, en la cual se obtiene la fecha (encDate) y los apellidos de los pacientes (patLastName) que presentan la enfermedad (disDescription) diabetes.

24

Figura 17. Instancia de filtro de valor (7).

2.5.3. Filtro de clase

“El filtro de clase permite seleccionar todos los datos vinculados a las entidades que pertenecen a una clase de interés y que cumplen con una condición específica dada” (7). En el ejemplo de la Figura 18 la clase de interés es Patient. Los datos que devuelve el filtro de clase son todos los datos relacionados con la clase paciente tal como el código (disCode) que cumple con la descripción de la enfermedad (disDescription) que se ingresa como condición. El esquema de salida no cambia con respecto al esquema de entrada.

Figura 18. Esquema de salida, operador de filtro de clase. El esquema de entrada es el mismo.

El filtro de clase se expresa de la siguiente forma (7): ClassFilter(〈𝑆, 𝐼〉, m𝐶, CF exp) → 〈𝑆 ′ , 𝐼′〉. A continuación se muestra un ejemplo de filtro de clase, en la cual recupera todos los datos de los pacientes que han tenido un diagnóstico de diabetes. El esquema de entrada se puede observar en la Figura 13, y el esquema de salida se puede observar en la Figura 18. La clase de interés es Patient y en CF exp se especifica la condición y el camino entre Patient y disDescription. ClassFilter(⟨𝑆, 𝐼⟩, Patient, disDescription{p} = “Diabetes”) → ⟨𝑆′,𝐼′⟩ I with {p} = {Patient, of, Encounter, diagnosis, disCode, code, disease, Description, disDescription}.

25

Un ejemplo de instancia del operador de filtro de clase se puede observar en la Figura 19, en la cual se despliega cada nodo de la clase Patient que cumple con la condición, así mismo, los nodos relacionados a ellos a través de un arco o un camino indirecto que corresponde a un camino del esquema. Por esto, la instancia de respuesta tendrá nodos disDescription con diferentes valores a “Diabetes”.

Figura 19. Instancia de filtro de clase (7).

2.5.4. Contracción de caminos Finalmente, “la contracción de caminos permite reemplazar, en el esquema y la instancia, un camino que se da entre dos nodos por un nodo de valor compuesto que se conecta con los extremos del camino” (7). Las Figuras 20 y 21 presentan los esquemas de entrada y resultado para una operación de contracción de camino; se encuentra un camino entre la clase Patient y el nodo de valor básico disDescription. El camino que el usuario selecciona entre Patient y disDescription es el camino que se contrae. Se adicionan dos nuevos arcos con las etiquetas “to” y “disease”; y un nuevo nodo con la etiqueta “Diagnosed”.

Figura 21. Esquema de salida, contracción de caminos (21).

Figura 20. Esquema de entrada, contracción de caminos (21).

26

La contracción de caminos se expresa de la siguiente forma (7): PathCt(⟨𝑆, 𝐼⟩, {m0, e1, m1,…,e 𝑘, m 𝑘}, c, 𝛼𝑖, 𝛼𝑓, cycles) → ⟨𝑆′,𝐼′⟩. A continuación se muestra un ejemplo de la contracción de caminos (7): PathCt(⟨𝑆, 𝐼⟩, {Patient, of, Encounter, diagnosis, disCode, code, disease, Description, disDescription}, “diagnosed”, “to”, “disease”) → ⟨𝑆′,𝐼′⟩. Un ejemplo de instancia del operador de contracción de camino se puede observar en la Figura 22, en la cual se encuentran todas las descripciones de enfermedades de los pacientes.

Figura 22. Instancia contracción de camino (7).

2.6.

METODOLOGÍA SCRUM

Una metodología de ingeniería de software es un conjunto integrado de técnicas y métodos que tiene como intención concretar con éxito cada una de las actividades del ciclo de vida de un proyecto de desarrollo de software (22). Scrum es una metodología ágil, y como tal (6):   

Es un modo de desarrollo de carácter adaptable más que predictivo. Orientado a las personas más que a los procesos. Emplea la estructura de desarrollo ágil e incremental basada en iteraciones y revisiones.

Para el desarrollo de este proyecto se determinó seguir Scrum como metodología de ingeniería software ya que esta brinda una metodología de desarrollo ágil que permite que un grupo se adapte y se trabaje sobre diferentes tareas paralelamente y además el proceso de desarrollo de la implementación sea visible para todos los integrantes del equipo, teniendo así control de cada tarea que se realiza. Esta metodología permite también asignar 27

tareas a cada integrante del equipo y visualizar el progreso de la misma en porcentaje. Es una forma práctica de trabajar sin necesidad de numerosas cantidades de papel. La metodología inicia con la visión general del producto, especificando con detalle las funcionalidades, definiendo que parte tienen mayor prioridad de desarrollo y cuales se pueden llevar a cabo en un periodo de tiempo breve. Una funcionalidad define una iteración de desarrollo que finaliza con un incremento operativo del producto (6). Estas iteraciones son la base del desarrollo ágil y Scrum verifica su evolución por medio de reuniones diarias, donde se revisa lo realizado el día anterior y lo planeado para el día siguiente. Cada iteración se define como un “sprint” y este es el núcleo central del desarrollo incremental e iterativo como se puede observar en la Figura 23. En esta figura se muestra en general el proceso del ciclo diario de Scrum.

Figura 23. Visión general del proceso (6).

2.6.1. Reuniones

Existen tres tipos de reuniones en la metodología Scrum:  Reuniones de Planificación de sprint: Se realizan antes de iniciar cada sprint. En ellas se define cual va ser el trabajo y el objetivo que se desea conseguir en esa iteración.  Reuniones Diarias: En ellas se revisa lo realizado por el equipo hasta la fecha y lo que se espera para el día siguiente.  Reuniones de Revisión de sprint mensual: Se hacen para revisar el incremento conseguido y llevar un control y seguimiento de los avances del proyecto. 2.6.2. Elementos de trabajo en el Scrum

28

La metodología tiene los siguientes elementos que facilitan el proceso funcional como se observa en la Figura 24 y en los componentes de la Figura 23.  Pila del Producto: Es una lista de requisitos iniciales del producto.  Pila del sprint: Es una lista de las tareas que se deben realizar en el sprint.  Incremento: Es una lista de los resultados obtenidos en cada sprint.

2.6.3. Roles

Las personas que intervienen o tienen algún interés en el proyecto se clasifican en tres grupos:   

Propietario del Producto: Es la persona encargada de obtener del producto el mayor valor para los usuarios, clientes y el resto de personas implicadas. Equipo de Desarrollo: Grupo de personas que desarrolla el producto. Scrum Manager: Responsable de desarrollo de la metodología Scrum.

29

Figura 24. Proceso del método Scrum (6).

30

2.7.

USABILIDAD EN EL DESARROLLO DE SOFTWARE

2.7.1. Qué es usabilidad

El proceso de usabilidad permite estudiar el diseño visual y funcional de una aplicación. Según Jakob Nielsen, la usabilidad es un atributo de calidad que mide lo fácil de usar una interfaz de usuario. La palabra "usabilidad" también se refiere a métodos que se aplican durante el proceso de diseño para mejorar la facilidad de uso de la aplicación (23). La usabilidad se define por cinco componentes de calidad (23): Facilidad de aprendizaje: Con el fin de detectar que tan fácil fue el uso de la aplicación para el usuario se plantea la siguiente pregunta: ¿Es fácil para los usuarios llevar a cabo tareas básicas la primera vez que se encuentran con la aplicación? Eficiencia: Una vez que los usuarios conocen la aplicación, se responde a las siguientes preguntas: ¿Cuál es la rapidez con que pueden realizar las tareas? Memorabilidad: Cuando los usuarios vuelven a la aplicación después de un periodo de no usarlo se plantea la siguiente pregunta: ¿Con qué facilidad pueden restablecer su habilidad? Errores: Con el fin de revisar y tener en cuenta los errores que se pueden presentar se realizan las siguientes preguntas: ¿Cuáles y cuántos errores cometen los usuarios cuando interactúan con la aplicación? ¿Qué tan grave son estos errores? ¿Con qué facilidad el usuario puede recuperarse de los errores? Satisfacción: La pregunta final para detectar el nivel de satisfacción del usuario es la siguiente: ¿Qué tan agradable fue utilizar la aplicación?

2.7.2. Test de Usabilidad

Los test de usabilidad se utilizan para evaluar un producto o sistema. Son un proceso que requiere personas para que participen en ensayos para evaluar el nivel o grado de un producto e identificar si cumple con los criterios específicos de usabilidad (24). El objetivo general de los test de usabilidad es identificar y rectificar las deficiencias de usabilidad existentes en el producto o aplicación antes de ser lanzado u obtener su primera versión usable.

31

La intención es asegurar que el producto final sean útiles y valorados por los usuarios, sean fáciles de aprender, pueda ayudar a las personas para que sean eficaces y eficientes en lo que quieren hacer y que su uso sea satisfactorio (24). Para realizar el diseño de un test de usabilidad se tienen en cuenta los siguientes pasos (24):       

Definir los objetivos del test. Determinar las preguntas de estudio. Especificar las características del grupo de usuarios o participantes. Definir la metodología. Detallar una lista de actividades a desarrollar durante el test. Definir el entorno de test, los equipos a utilizar y la logística. Escribir los resultados y realizar el análisis de los resultados.

32

View more...

Comments

Copyright � 2017 SILO Inc.