UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
CEAD POPAYAN
EVALUACION DE SOFTWARE
UNIDAD 1
FASE 1
Reconocimiento
FRANKLIN ALFREDO CAMPO
CÓDIGO: *******
GRUPO: ********
TUTOR
GEOVANNI CATALAN
1- GUI: Interfaz Grafica de Usuario.
Personalmente pienso que se trata de un componente importante dentro del desarrollo de software constituido por efectos visuales como iconos, menús, animaciones o punteros el cual permite la interacción entre un equipo electrónico y el usuario que lo utiliza con un fin determinado.
En muchas ocasiones los desarrolladores de software se enfatizan en la funcionalidad de las aplicaciones, ósea que la aplicación haga lo que solicita el usuario final, restando importancia a la GUI debido a que en muchas casos los mismos ingenieros de desarrollado son los encargados de evaluar las aplicaciones que desarrollan.
Esto es un problema puesto que un ingeniero piensa como ingeniero y lo que para él es obvio en la funcionalidad de una aplicación, para el verdadero usuario final puede ser inmanejable.
Por otro lado las GUI son la parte amigable y visual de una aplicación software, lo que la hace de vital importancia durante el trascurso de toda la etapa del desarrollo.
Ahora bien, durante el desarrollo de software algunas veces no se tienen en cuenta los requerimientos de diseño de interfaz, por que se enfatiza en la funcionalidad, el no tener este componente claro desde un inicio del desarrollo puede ocasionar demoras de tiempo considerable en la entregas del producto final.
Hoy en día dentro del desarrollo de software existe una etapa llamada Diseño, en donde se pueden tener en cuenta las consideraciones de GUI desde su elaboración.
Entrando a la etapa de desarrollo podemos decir que existen tres puntos de vista distintos en una GUI:
El modelo del Usuario: Aquí el usuario final tiene su propia visión del sistema y espera que se comporte de determinada manera, El modelo del usuario se puede conocer estudiándolo a través de un test, entrevistas o retroalimentación.
El modelo de Diseñador: En este Diseño el diseñador de software es quién se encarga de unir las ideas, necesidades y deseos del usuario, con las herramientas que dispone el programador para desarrollar el software. Éste modelo consta de tres partes:
- La Presentación que es lo primero que llama la atención del usuario;
- La Interacción que es donde el usuario constata si el producto satisface sus expectativas.
- Las Relaciones entre objetos aquí es donde se define la relación entre el modelo mental del usuario y los objetos de la Interfaz.
El modelo del Programador: Es el modelo más fácil de visualizar porque se puede especificar formalmente. Este modelo consta de los objetos que manipula el programador, distintos a los que maneja el usuario (el programador maneja una base de datos, el usuario la llama agenda o contactos). El usuario no ve los objetos que maneja el programador. Si bien el programador conoce de plataforma de desarrollo, sistema operativo, lenguajes y herramientas de programación, especificaciones; no significa que tenga la habilidad de proporcionar al usuario modelos más adecuados.
Es por eso que el programador debe realizar una abstracción de la información que el usuario necesite, para hacer más simple la funcionalidad del la aplicación.
Por otro lado algunos de los principios más relevantes para el desarrollo de interfaces y que se deben tener en cuenta en el desarrollo de GUI son:
Familiaridad del usuario:
La interfaz debe utilizar términos e imágenes conocidos por el usuario y los objetos que manipula el sistema deben estar relacionados con el ámbito de trabajo, debe contar con un entorno familiarizado con las actividades y funciones del usuario.
Uniformidad de la Interfaz:
Significa que tanto comandos como menús deben tener el mismo formato. Las Interfaces uniformes reducen el tiempo de aprendizaje, debe conservar los mismos parámetros por toda la aplicación como tonalidad de colores o tipos de letra.
Mínima sorpresa:
El comportamiento del sistema no debe mostrar situaciones inesperadas. Ante éste tipo de situaciones el usuario puede mostrar irritabilidad, por lo tanto perder interés en utilizar la aplicación, se deben evitar tener errores no definidos o no funcionales en sus componentes ya que pueden ocasionar que el usuario no entienda lo que sucede con la aplicación y genere apatía al uso del software.
Recuperación de estados:
Éste es uno de los principios más importantes al diseñar una Interfaz. Es inevitable cometer errores, por lo tanto el sistema le debe proporcionar al usuario la manera de subsanarlos o volver a estados anteriores. Éste principio involucra varias acciones como pedir al usuario que confirme acciones destructivas, que el usuario pueda deshacer, etc.
En el caso que la aplicación genere errores, estos deben estar documentados para el usuario, así mismo debe contar con ayudas para rehacer o deshacer los procesos de error.
Guía de usuarios:
La Interfaz debe proporcionar al usuario asistencia, ayuda. No sólo cuando se cometen errores sino también cuando no se sabe qué hacer o cómo hacer alguna tarea.
Esta ayuda debe estar integrada al sistema (algunas además ofrecen ayuda on line) y debe ser clara cuando el usuario la requiera, sin saturar con información, la GUI debe contar con mensajes de verificación informativo en cada una de sus componentes, ya que por ejemplo al ingresar o eliminar datos, la aplicación lo hace pero el software no da aviso al usuario del resultado de la operación.
Diversidad de usuarios:
Se debe tener en cuenta los diferentes usuarios que pueden utilizar la aplicación. Aquellos casuales, que necesitan que los guíen,y aquellos que podrían usarla constantemente los cuales necesitarán trabajar con métodos abreviados, tan rápido como sea posible. Además se podría incluir recursos para mostrar diferentes tamaños de texto, reemplazar sonido por texto y al revés, modificar tamaño de botones, etc. Esto refleja la noción de Diseño universal, principio de diseño cuyo objetivo es evitar excluir usuarios., en ocasiones se desarrollan aplicaciones para un tipo determinado de usuarios y desvirtuamos las limitaciones de tipo cognitivo o físicas que pueden presentar los usuarios en el momento de utilizar nuestra aplicación.
Adoptar el punto de vista del usuario:
Se debe ver la interfaz desde fuera y en relación con las tareas que va a realizar el usuario. Hay que tener mucho cuidado en no centrarse en los aspectos de implementación que hagan perder la perspectiva, el desarrollo de la GUI debe estar bien definido puesto que si tiene componentes distractores o redundantes el usuario puede perder perspectiva de lo que está realizando, disminuyendo así su productividad.
Realimentación:
La interfaz debe dar inmediatamente alguna respuesta a cualquier acción del usuario. Por ejemplo: movimiento del cursor, resaltar la opción elegida de un menú, comunicar el éxito o fracaso de una operación, reflejar el estado de los objetos, la interacción entre la GUI y el usuario debe estar siempre, ósea que por cada acción realizada por el usuario debe tener una respuesta del sistema o aplicación.
Potenciar la sensación de control del usuario sobre el sistema, especialmente para los usuarios sin experiencia:
Que la interfaz sea intuitiva (utilizar iconos, modelos, métodos, etc. consistentes con otras aplicaciones y con el mundo real), facilitar la exploración (todas las operaciones deben ser accesibles desde el menú principal), permitir cancelar y deshacer operaciones, etc.
Para este caso se debe tener en cuenta aquellos usuarios si experiencia que pueden cometer diferentes tipos de errores como por ejemplo colocar un dato de tipo carácter donde solo van numéricos.
Minimizar la necesidad de memorización:
Usar controles gráficos, limitar la carga de información a corto plazo, procurar que la información necesaria en cada momento esté presente en la pantalla, utilizar nombres y símbolos auto-explicativos y fáciles de recordar, etc.
Evitar el desarrollo de formularios muy cargados de información y tratar de pasar variables de un modulo a otro con el fin que de usuario no deba memorizar datos de una GUI a otra.
Anticipación:
La aplicación debe anticiparse a las necesidades del usuario, y no esperar a que tenga que buscar información.
Implementar un desarrollo con un autocompletado en sus búsquedas y desarrollos mas intuitivos que facilites y agilicen la utilización del software.
Percepción de color y tamaño:
Se debe tener en cuenta a aquellos usuarios con problema de visualización del color, pero es muy útil usar convención de colores. Además al mostrar varios objetos en la pantalla deben estar distribuidos, debe haber distancia entre ellos para que así el usuario pueda percibirlos sin sobrecarga, se debe manejar uniformidad en toda la aplicación seleccionando colores que no desgasten visualmente al usuario final e interfaces no sobrecargadas.
Legibilidad:
No sólo se debe prestar atención a los colores y a los objetos que se ven en pantalla sino también a cómo se verá el texto. El tipo y tamaño de letra debe ser legible, y el color debe contrastar con el fondo (utilizar letras negras en fondo claro).
Este concepto es bastante puntual y corresponde al diseño visual de la interfaz de toda la aplicación.
Valores por defecto:
Lo ideal es utilizar ‘valores estándar’. Se debe tener en cuenta que los valores por defecto deben ser opciones inteligentes, sensatas y fáciles de modificar.
Las modificaciones de valores por defecto tienen gran relevancia al desarrollar un tipo de aplicaciones en la GUI, puesto que esos valores por defecto se deben acordar con el usuario final antes y durante el desarrollo.
Eficiencia:
Se debe considerar la productividad como ideal a lograr. El usuario no debe esperar la respuesta del sistema por tiempo prolongado; los mensajes de ayuda, menús y etiquetas deben ser sencillos y deben utilizar palabras claves para poder transmitir fácilmente a qué hacen referencia.
Finalmente Compañeros
Cada uno de estos principios ayuda a hacer un buen diseño de la GUI. Cabe aclarar que éste es un resumen de los más relevantes, por la extensión de éste trabajo no se pueden ver detalladamente todos los principios.
2- Calidad del Software
Personalmente durante mucho tiempo he pensado y aun pienso que cuando hablamos de la calidad de software, hacemos referencia al concepto de eficiencia basado en el concepto de la eficacia en un producto software ya terminado, el cual tiene un propósito de ser y existir en el tiempo mientras sea utilizado.
Puedo decir que la Eficacia es una propiedad asociada al funcionamiento del software el cual requiere que haga estrictamente lo que el usuario requiere, esto quiere decir que sea eficaz en sus funciones y operaciones sin importar condiciones externas al producto.
Puedo decir con propiedad que si un producto software no es eficaz, no merece ser evaluado en el factor de calidad.
Ahora bien el software además de que deba ser eficaz, debe ser eficiente, ósea que cumpla con requisitos externos como son el tiempo y el consumo adecuado de todos los componentes software y Hardware, es por eso que para determinar la calidad del software debemos tener en cuenta los requerimientos mínimos y máximos de uso e inherentemente su eficiencia.
Posteriormente entro de este concepto de Eficiencia se evalúa el software bajo posibles criterios utilizando métricas para este propósito analizando conceptos como: flexibilidad, corrección, confiabilidad, mantenimiento, portabilidad, usabilidad, seguridad e integridad son producto de la eficacia y eficiencia del software.
Flexibilidad: Que sea adaptable a diferentes organizaciones.
Corrección: Que responda satisfactoriamente a las mejoras de mantenimiento.
Confiabilidad: Que pueda realizar sus funciones requeridas bajo condiciones especificas
en periodos de tiempo determinados.
Mantenimiento: Que permita realizar mejoras y ajustes
Portabilidad: Que funcione en diferentes ambientes operativos hardware y software
Usabilidad: Que permita una usabilidad practica y sencilla.
Seguridad: Que cumpla con los requisitos establecidos conservando los pilares de la seguridad informática.
Integridad: Que contenga todos los módulos correspondientes a las necesidades de los clientes.
3- Nombre del Blog
https://sites.google.com/site/kanorte/gui
Bibliografía
Gómez, Leopoldo Sebastián M. "Diseño de Interfaces de Usuario Principios, Prototipos y Heurísticas para Evaluación."
Sommerville, Ian. Ingeniería del software 7/e. Pearson Educación, 2005.
Galitz, Wilbert O. The essential guide to user interface design: an introduction to GUI design principles and techniques. John Wiley & Sons, 2007.
Preiser, W.F.E. y Ostroff, E. (ed.)(2001). Universal Design Handbook.
Nueva York: McGraw-Hill.
www.escet.urjc.es/~intgraf/documentos/Principios-Disenno-Delphi.pdf