software guidelines experience examples user-interface usability

user interface - guidelines - ¿Por qué la programación de UI requiere tanto tiempo y qué puede hacer para mitigar esto?



user interface design pdf (10)

En mi experiencia, la programación de la interfaz de usuario consume mucho tiempo, es costosa (diseñadores, gráficos, etc.) y es propensa a errores, y, por definición, los errores o fallos de la interfaz de usuario son muy visibles.

¿Qué haces para mitigar este problema?

¿Conoce una solución que pueda convertir automáticamente una API en una interfaz de usuario (preferiblemente una interfaz de usuario web)?

Probablemente algo como una consola JMX

  • con buenos valores por defecto
  • puede ser ajustado con css
  • donde los campos se pueden configurar para que sean botones de radio o listas desplegables, campos de texto o áreas de texto, etc.
  • localizable
  • etc

¡Es difícil porque la mayoría de los usuarios / clientes son tontos y no pueden pensar con claridad! :) ¡Lleva mucho tiempo porque los desarrolladores / diseñadores de UI son tan obsesivo-compulsivos! :)


¡Usted es absolutamente correcto cuando dice que la IU requiere mucho tiempo, es costosa y es propensa a errores!

Un gran compromiso que he encontrado es el siguiente ...

Me di cuenta de que una gran cantidad de datos (si no la mayoría) se pueden presentar utilizando una tabla simple (como un JTable), en lugar de tratar continuamente de crear paneles personalizados y GUI de lujo. No parece obvio al principio, pero es bastante decente, utilizable y visualmente atractivo.

¿Por qué es tan rápido? Porque pude crear un marco reutilizable que puede aceptar una colección de modelos concretos y, con poco o ningún esfuerzo, puede representar todos estos modelos dentro de la tabla. Tanta reutilización de código, es increíble.

Al agregar una barra de herramientas sobre la ventana, mi marco puede agregar, eliminar o editar entradas en la tabla. Usando todo el poder de JTables, puedo ocultar (filtrando) y ordenar según sea necesario extendiendo varias clases (pero solo si / cuando esto es necesario).

Me encuentro reutilizando una gran cantidad de código cada vez que quiero mostrar y administrar nuevos modelos. Hago un uso extensivo de los iconos (por columna, filas o celdas, etc.) para embellecer las pantallas. Uso iconos grandes como encabezado de ventana para hacer que cada pantalla se vea diferente y atractiva y siempre se ve como pantallas nuevas y diferentes, pero siempre tiene el mismo código detrás de ellas.

Se requirió mucho trabajo y esfuerzo al principio para hacer el marco, pero ahora está dando buenos resultados.

Puedo escribir la GUI para una aplicación completamente nueva con un máximo de 30 a 50 modelos diferentes, que consiste en tantas pantallas en una fracción del tiempo que me llevaría usar el "método de IU personalizado".

¡Te recomendaría evaluar y explorar este enfoque!


El desarrollo de la interfaz de usuario requiere mucho tiempo y es propenso a errores, ya que implica el design . No solo diseño visual o sonoro, sino más importante diseño de interacción. Una buena API es siempre un modelo de interacción neutral, lo que significa que pone restricciones mínimas en el flujo de trabajo real, la localización y la representación de la información. El principal impulsor de esto es la encapsulación y la reutilización del código.

Como resultado, es imposible extraer suficiente información solo de API para construir una buena interfaz de usuario adaptada a un caso específico de uso de API.

Sin embargo, hay generadores de IU que normalmente producen pantallas CRUD basadas en una API determinada. No hace falta decir que tales UI generadas no son muy adecuadas para usuarios frecuentes con demandas de mayor eficiencia de UI, ni son particularmente fáciles de aprender en caso de un sistema más grande, ya que realmente no comunican bien la imagen del sistema o la secuencia de interacción.

Se necesita mucho esfuerzo para crear una buena interfaz de usuario, ya que debe diseñarse de acuerdo con las necesidades específicas de los usuarios y no debido a una tarea de conversión de la interfaz de usuario que puede ser completamente automatizada.

Para acelerar el proceso de creación de UI y mitigar los riesgos, es posible sugerir que se involucre a profesionales de UI o que aprenda más sobre el trabajo. Desafortunadamente, no hay un atajo ni una varita mágica, por así decirlo, que producirá una IU de calidad basada completamente y solo en una API sin mucha información y análisis adicionales.

Consulte también una excelente pregunta: " ¿Por qué es tan difícil para los desarrolladores el buen diseño de la interfaz de usuario ?" Eso tiene algunas respuestas muy perspicaces y valiosas, específicamente:


La generación automática de interfaces de usuario puede ser posible hasta cierto punto, ya que puede generar controles para la entrada y salida requerida de datos. Pero el diseño de la interfaz de usuario es mucho más complicado que simplemente poner los controles necesarios en una pantalla. Para crear una interfaz de usuario fácil de usar y fácil de usar, el conocimiento de disciplinas como el diseño gráfico, la ergonomía, la psicología, etc. debe combinarse. Hay una razón por la que la interacción hombre-computadora se está convirtiendo en una disciplina propia: no es trivial crear una interfaz de usuario decente.

Así que no creo que haya una solución real para tu problema. El diseño de la interfaz de usuario es una tarea compleja que simplemente lleva tiempo hacerlo correctamente. La única área donde es relativamente fácil ganar algo de tiempo es con las herramientas: si tiene herramientas poderosas para implementar el diseño de la interfaz de usuario, no tiene que codificar manualmente cada píxel de la interfaz de usuario.


No creo que la programación de UI consuma más tiempo que cualquier otro tipo de programación, ni es más propensa a errores. Sin embargo, los errores en la interfaz de usuario son a menudo más obvios. Detectar un error en un compilador suele ser mucho más complicado.

Una clara diferencia entre la programación de la interfaz de usuario es que tiene una persona en el otro extremo, en lugar de otro programa, lo cual es muy frecuente cuando se escriben compiladores, analizadores de protocolos, depuradores y otros códigos que hablan con otros programas y computadoras. . Esto significa que la entidad con la que se está comunicando no está bien especificada y puede comportarse de manera muy errática.

EDITAR: "impredecible" es probablemente un término más apropiado. / Jesper

Su pregunta de convertir una API a una interfaz de usuario simplemente no tiene sentido para mí. ¿De qué estás hablando?


No estoy proporcionando una solución, pero intentaré responder el porqué.

Así que no hablo por todos, pero al menos para mí, creo que una razón es porque los programadores tienden a concentrarse más en la funcionalidad que en la facilidad de uso y no suelen ser demasiado artísticos. Creo que solo tienden a tener un tipo diferente de creatividad. Creo que me lleva mucho tiempo crear los gráficos correctos, en comparación con el tiempo que me toma escribir el código (aunque, en su mayor parte, no he hecho ningún proyecto con demasiados requisitos gráficos).




Una razón es que no tenemos un patrón bien desarrollado para UTDD - User Test Driven Development. Tampoco he visto muchos buenos ejemplos de mapeo de Historias de Usuario a Pruebas Unitarias. ¿Por qué, por ejemplo, hacen tan pocos tutoriales sobre historias de usuarios?


ASP.NET Dynamic Data es algo que debes investigar. Cumple la mayoría, si no todas sus necesidades.