Pregunta

Dentro de un proyecto de investigación en el que estoy trabajando actualmente, estamos tratando de definir la noción de modelo de aplicación, y estamos investigando metodologías/formalismos para representar modelos de aplicación, con un enfoque en aplicaciones web.

Después de haber investigado en la web, no he encontrado información específica sobre modelos de aplicaciones integrales. Así que pensé que valía la pena hacer la pregunta a los entusiastas programadores, que pueden darme una perspectiva concreta y práctica sobre este tema. No estoy seguro de si esta pregunta encaja mejor en Programadores stackexchange: Si es así, siéntase libre de migrarlo. Lo que me interesa es obtener comentarios/ideas sobre mi noción de modelo de aplicación y sobre metodologías/formalismos posiblemente relacionados.

Actualmente no tengo una definición precisa de modelo de aplicación, pero creo que al menos tres aspectos son importantes para definir esta noción:

  • Opciones de diseño de interacción por computadora humana: una aplicación que interactúa con los usuarios debe definir cuidadosamente sus patrones de interacción para mejorar y simplificar la usabilidad; Esta área debe tener en cuenta las preferencias y características del usuario (modelos de usuarios) y (posiblemente) características del dispositivo (modelos de dispositivos);

  • Opciones de diseño de arquitectura: cualquier aplicación compleja debe basarse en un modelo arquitectónico que sea compartido y entendido por sus diseñadores y desarrolladores;

  • Opciones de diseño de implementación: al implementar una aplicación, es una buena práctica identificar un problema conocido y recurrente, y resolverlas reutilizando soluciones de diseño apropiadas.

¿Me estoy perdiendo algún aspecto importante?

Creo que la siguiente es una lista no exhaustiva de metodologías/formalismos relevantes:

  • Concurtasktrees: útil para el diseño de aplicaciones interactivas y para modelar su interacción humana-computadora;

  • Uml: Lenguaje de modelado ampliamente conocido y utilizado para el diseño de software; Puede abordar varios aspectos de la arquitectura y el diseño de implementación;

  • Patrones de diseño: un conjunto de solución conocida y reutilizable para el diseño de software; A menudo se usan durante la fase de implementación.

¿Alguna otra sugerencia?

A resumir: Estoy interesado en cuáles son los aspectos relevantes para definir el modelo de una aplicación (ver la primera lista anterior), y cuáles son los formalismos útiles en esta área (ver la segunda lista anterior).

¿Fue útil?

Solución

Puede parecer muy extraño (y anticuado) teniendo en cuenta que estamos en 2011 ahora, pero creo que puede estar interesado en Análisis estructurado - Tal vez usando el sabor más "reciente" (Iem).

Si bien los conceptos son "viejos", creo que siguen siendo valiosos, y no necesariamente peores que los intentos más modernos de proporcionar una metodología de encuesta.

O tal vez solo estoy mostrando mi edad - Ahora, por favor, bájate de mi césped...

Otros consejos

Si está buscando las mejores prácticas sobre cómo modelar realmente una aplicación, sugeriría investigar el "diseño impulsado por el dominio" (también conocido como "DDD").

DDD es básicamente las mejores prácticas voladas de la idea de "hablar el mismo lenguaje" entre los expertos en dominio (aquellos que conocen el área del problema) y los desarrolladores, y de modelar el dominio del problema en sí (generalmente usando UML), en lugar de pensar en modelar Una aplicación. La experiencia dice que al final esto también le dará el mejor modelo para una aplicación, ya que representa las realidades del dominio del problema, lo más complejo posible, y esto es típicamente lo que la aplicación debe tratar de todos modos.

La principal fuente de DDD es Libro de Eric Evans con el mismo nombre. Además, no debe perderse las dos charlas del Sr. Evans "Poniendo el modelo a trabajar" y "diseño estratégico"En InfoQ. El Artículo de Wikipedia tiene algunos enlaces también (aunque no parece ser la mejor introducción al tema).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top