martes, 27 de junio de 2017

Ensayo sobre Calidad del Software

Para hablar de calidad de software voy a tomar como referencia 5 puntos que no son solamente importantes sino mas bien pilares, los considero obligatorios a la hora de hablar de este tema ya que en la mayoria de los casos se fracasa a lo hora de hacer un desarrollo o implementarlo por desantender alguno de estos, todos son fundamentales, todos requieren atención pues ningun software que se haga llamar de calidad desatiende alguno de estos.

Primero, la planeación basado en el uso o la gestión que se va a dar al software y es que como dicen por ahí "primero la primaria" y primero en cualquier desarrollo o implementación se planea. Parece obvio pero cuentas veces instalamos software pensando que nos va a servir para algo cuando no es asi, el software como sistema informatico puede ser muy bueno, desarrollado con los mejores lenguajes y estandares pero si no sirve para lo que quiero simplemente no sirve. Por eso debo planear el uso que le voy a dar pues puedo incurrir en grandes costos para darme cuenta que una hoja de excel puede resultar mas sencillo y simple de usar.

Una vez planeado lo que quiero y lo que necesito, diseño la solución y hablo de solución porque aveces lo que necesito ya esta echo "programado, codificado" pero tengo que hacer un diseño de su implementación, su uso en la empresa o la entidad, su "cumstomización" y estudio con las areas involucradas. Si definitivamente tengo que desarrollar de cero o extender un desarrollo debo tener en cuenta el tercer pilar, el ciclo de vida del software, que si en cascada o espiral es lo de menos lo importante es definir bien cada una de las etapas y cualquier sea el modelo, que se cumplan sobre todo si el desarrollo implica un contrato con un tercero o con un proveedor ya que lo que aqui queremos es terminar lo que se empieza en cada uno de los bucles o ciclos.

Nuestro cuarto pilar es uno de lo que menos gustan a los compradores de software (Directivos, Gerentes etc), el soporte. En un mundo ideal en donde nada falla esto no seria necesario, pero lejos de ser idealistas cada solución de software necesita un soporte, alguien que entienda su comportamiento, que pueda modificar y corregir errores.

Por ultimo la gestión de la calidad y seguridad, cada software tiene una función y normalmente esta función esta ligada con la gestion de información o datos, tan importante entonces como la capacidad que tiene el software de procesar estos datos es la capacidad que tiene de proteger los datos y sobre todo de que estos datos se conserven integros para esto un software de calidad debe asegurar que esta libre de vulnerabilidades.

Si como ingenieros tenemos en cuenta estos 5 pilares seguramente estaremos asegurando la calidad en los proyectos de software.

Diseño de Interfaz de Usuario (GUI)

Es el 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. Normalmente es una actividad multidisciplinar que involucra a varias ramas del diseño y el conocimiento como el diseño gráfico, industrial, web, de software y la ergonomía; y está implicado en un amplio rango de proyectos, desde sistemas para computadoras, vehículos hasta aviones comerciales.

Objetivo
Su objetivo es que las aplicaciones sean más atractivos y además, hacer que la interacción con el usuario sea lo más intuitiva posible, conocido como el diseño centrado en el usuario. En este sentido las disciplinas del diseño industrial y diseño gráfico se encargan de que la actividad a desarrollar se comunique y aprenda lo más rápidamente, a través de recursos como la gráfica, los pictogramas, los estereotipos y la simbología, todo sin afectar el funcionamiento técnico eficiente.

Principios para el Diseño de IU
Existen principios relevantes para el diseño e implementación de IU, ya sea para las IU gráficas, como para la Web.
  • 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.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 en la implementación del Diseño de IU 
  • 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, incluyendo la validación del diseño del sistema en términos de requerimientos no funcionales, por ejemplo de performance. 
  • 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. 
El nivel de sofisticación del prototipo debería incrementarse a lo largo del proceso de diseño de interfaces de usuario. La información recolectada durante las tareas de análisis del sistema y la especificación de los requisitos del usuario constituyen los datos clave para el proceso de prototipación.

Interacción del usuario en el Diseño de IU 
Una interfaz coherente debe integrar la interacción del usuario y la presentación de la información. Shneiderman (1998) clasifica la interacción en 5 estilos primarios:
  • Manipulación directa: Interacción directa con los objetos de la pantalla. Rápida e intuitiva. Fácil de aprender. 
  • Selección de menús: El usuario selecciona un comando de una lista de posibilidades. Evita errores del usuario. Se requiere teclear poco. Lenta para usuarios experimentados. 
  • Llenado de formularios: Introducción de datos sencilla en los campos de un formulario. Fácil de aprender. Ocupa mucho espacio en la pantalla. 
  • Lenguaje de comandos: Los usuarios emiten un comando especial y los parámetros asociados para indicar al sistema que hacer. Poderoso y flexible. Difícil de aprender. Administración de errores pobre. 
  • Lenguaje Natural: El usuario emite comandos en lenguaje natural. Accesible a usuarios casuales. Fácil de ampliar. Se requiere teclear más. Los sistemas de comprensión de lenguaje natural no son fiables. 

Color en el Diseño de la IU 
El color ayuda y mejora la presentación de la interfaz , permitiendo al usuario comprender y manejar la complejidad. Shneiderman(1998) establece 14 lineamientos claves para la utilización efectiva del color.
Los mas relevantes:
  • Limitar el número de colores utilizados y ser conservador al momento de utilizarlos . No utilizar mas de 4 ó 5 colores diferentes en una ventana y no más de 7 en la interfaz total del sistema. 
  • Utilizar un cambio de color para mostrar un cambio en el estado del sistema. 
  • Utilizar el código de colores para apoyar la tarea que los usuarios están tratando de llevar a cabo. 
  • Utilizar el código de colores en una forma consciente y consistente. 
  • Ser cuidadoso al utilizar pares de colores 
  • Si se utilizan muchos colores o sin son muy brillantes , el despliegue puede ser confuso. 

Ventajas del Diseño de IU 
  • Fáciles de aprender y utilizar. 
  • Para interactuar con el sistema , los usuarios cuentan con pantallas múltiples. Se puede pasar de una tarea a otra sin perder de vista la información de la anterior. 
  • Interacción rápida y acceso inmediato a cualquier punto de la pantalla. 

Pautas para evaluar un Diseño de IU
  • Visibilidad del estado del sistema 
  • Semejanza del sistema al mundo real 
  • Control y libertad por parte del usuario 
  • Consistencia y estandarización 
  • Prevención de Errores 
  • Reconocimiento de acciones y opciones 
  • Flexibilidad y eficiencia en el uso 
  • Estética y diseño minimalista 
  • Reconocimiento de errores, diagnóstico y recuperación 
  • Ayuda y documentación 
Fuente: https://www.ecured.cu/Dise%C3%B1o_de_Interfaces_de_Usuario