{"id":757,"date":"2010-10-12T06:53:16","date_gmt":"2010-10-12T06:53:16","guid":{"rendered":""},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"lidiando-con-requisitos-no-funcionales-en-el-desarrollo-de-software-dirigido-por-modelo","status":"publish","type":"post","link":"https:\/\/modeling-languages.com\/lidiando-con-requisitos-no-funcionales-en-el-desarrollo-de-software-dirigido-por-modelo\/","title":{"rendered":"Lidiando con requisitos no funcionales en el desarrollo de software dirigido por modelos"},"content":{"rendered":"

En un trabajo conjunto con David Ameller <\/a> y Xavier Franch <\/a> (presentado en la conferencia RE’10 <\/a> ) hemos investigado la importancia que se da a los non-functional requirements <\/a> (NFRs) dentro de los procesos de desarrollo de tipo model-driven development <\/a> (MDD). <\/p>\n

\nEl impacto de los NFRs en el desarrollo de sistemas software es importante y bien conocido; sobre todo por lo que respecta a la elecci\u00f3n de la mejor arquitectura software (dos conjuntos diferentes de NFRs deber\u00edan generar dos implementaciones diferentes, por m\u00e1s que los requisitos funcionales sean los mismos). Dada esta importancia, parece l\u00f3gico que tengamos m\u00e9todos de desarrollo de software que permitan integrate este tipo de requisitos como parte del proceso de desarrollo. Por desgracia esto NO es as\u00ed en el caso de los procesos de tipo MDD, con lo que el c\u00f3digo generado (semi)autom\u00e1ticamente al final de estos procesos se debe modificar manualmente para adaptarlo a los NFRs que los clientes han indicado al principio del proceso. NO hace falta decir que \u00e9sta NO es lo que se dice una buena soluci\u00f3n.\n<\/p>\n

\nNuestro trabajo esboza un framework general que integra los NFRs en el “core” del proceso MDD. Discutimos dos posibles variantes, una autom\u00e1tica (basada en la utilizaci\u00f3n de un conjunto de transformaciones M2M predefinidas donde, simplificando, cada transformaci\u00f3n est\u00e1 especializada en transformar el modelo inicial en un modelo refinado que cumpla con un cierto NFR) y una versi\u00f3n iterativa (donde la elecci\u00f3n de la transformaci\u00f3n a aplicar est\u00e1 en manos del dise\u00f1ador que utiliza su conocimiento para saber cu\u00e1l es la transformaci\u00f3n m\u00e1s indicada en cada caso).\n<\/p>\n

En estos momentos, la propuesta todav\u00eda est\u00e1 en un plano te\u00f3rico con lo que cualquier comentario ser\u00e1 muy apreciado. Para ponerla en pr\u00e1ctica falta todav\u00eda resolver una serie de research challenges (por ejemplo, como extraer y guardar el conocimiento arquitect\u00f3nico de los expertos para poder automatizar la selecci\u00f3n de las transformaciones para un conjunto de NFRs concretos) explicitadas tambi\u00e9n en el paper.\n<\/p>\n

Para conocer mejor nuestra propuesta, pod\u00e9IS leer el art\u00edculo entero <\/a> o mirar la siguiente presentaci\u00f3n <\/p>\n

\n

Dealing WITH non-functional requirements IN Model-driven development<\/a><\/strong><\/embed><\/object><\/p>\n
VIEW MORE presentations<\/a> FROM Jordi Cabot<\/a>.<\/div>\n<\/div>\n

\nSi te ha gustado esta entrada, puedes subscribirte a este Software Modeling blog<\/strong><\/a>, a la lista de distribuci\u00f3n del portal <\/a>, seguirme en twitter <\/a> y\/o leer los posts m\u00e1s poopulares <\/a>. Y si realmente <\/em> te ha gustado ay\u00fadame a hacerlo llegar a otros utilizando los bookmarks que tienes a continuaci\u00f3n: <\/p>\n<\/span>","protected":false},"excerpt":{"rendered":"

En un trabajo conjunto con David Ameller <\/a> y Xavier Franch <\/a> (presentado en la conferencia RE’10 <\/a> ) hemos investigado la importancia que se da a los non-functional requirements <\/a> (NFRs) dentro de los procesos de desarrollo de tipo <\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[],"tags":[],"hashtags":[],"_links":{"self":[{"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/posts\/757"}],"collection":[{"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/comments?post=757"}],"version-history":[{"count":0,"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/posts\/757\/revisions"}],"wp:attachment":[{"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/media?parent=757"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/categories?post=757"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/tags?post=757"},{"taxonomy":"hashtags","embeddable":true,"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/hashtags?post=757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}