Generación automática de prototipos funcionales a partir de esquemas preconceptuales (2011)
La Educción de Requisitos es una tarea compleja, dado que es en este proceso donde se establecen los elementos del aplicativo de software a desarrollar. Esta tarea, frecuentemente, presenta problemas de comunicación debido a las diferentes formaciones que tienen los analistas e interesados. Usualmente, la información recolectada en las entrevistas se suele plasmar en esquemas conceptuales, generalmente de UML. Aunque estos diagramas son estándar no permiten una validación del interesado debido a su complejidad, ya que son cercanos al lenguaje técnico del analista. Una vez finalizada la Educción de Requisitos, se procede con la generación del código fuente de la aplicación. Con el fin de mejorar y agilizar este proceso existen varios métodos de desarrollo de software que impulsan la generación automática de código. Para tal fin, se utilizan las herramientas CASE convencionales, pero aún están muy distantes de exhibir un proceso automático y muchas de estas herramientas se complementan con algunos trabajos que se alejan de los estándares de modelado. La mayoría de estas herramientas CASE generan parte del código fuente, pero no generan completamente la aplicación de software funcional. Con el fin de solucionar estos problemas, en esta Tesis, se propone un conjunto de reglas heurísticas para generar, automáticamente, una aplicación de software totalmente funcional a partir de Esquemas Preconceptuales bajo el patrón arquitectónico MVC, utilizando como lenguaje de programación PHP 5.x con XHTML. Además, se propone un conjunto de reglas heurísticas para generar, automáticamente, el diagrama entidad-relación y las sentencias DDL para el gestor de base de datos MySQL. Al utilizar los Esquemas Preconceptuales se mejora la comunicación con el interesado, dada la cercanía con el lenguaje natural que poseen estos esquemas. Adicionalmente, se mejora la calidad de las aplicaciones de software ya que es posible obtener una validación del interesado para dicho diagrama durante todas las fases del desarrollo. Esta Tesis se complementa con la elaboración de una herramienta CASE en la cual se incorporan todas las reglas heurísticas definidas para la generación automática del código. El funcionamiento de esta herramienta se ejemplifica con un caso de laboratorio. /Abstract. Requirements elicitation is a complex task, because in this process the elements of the software to-be-made are established. Frequently, this task is affected by communication problems, due to the fact that both analysts and stakeholders (the main actors of this task) have differences in training. Commonly, the information gathered during interviews is reflected into conceptual schemas, mainly UML diagrams. Even though UML diagrams are standardized, they are barely validated by stakeholders, because the UML diagrams are complex and nearer to the analyst technical language. Once requirements elicitation task is completed, source code of the application can be developed. In order to improve and speed up this process, several software development methods searching for the automated generation of code are proposed. So, well-known CASE tools are employed, but they are far away from automated processes and, sometimes, they are non-standard modeling proposals. Most of these tools partially generated source code, but the resulting application is barely functional. Trying to fix the above problems, in this Thesis I propose a set of heuristic rules for automatically generating a fully-functional software application from pre-conceptual schemas. Both the MVC architectural pattern and the XHTML-based PHP 5.x language are selected for this process. Also, I propose a set of heuristic rules for automatically generating the entity-relationship diagram and the DDL commands for constructing and using the MySQL database management system. The usage of pre-conceptual schemas improves the analyst-stakeholder communication process, because such schemas are closer to the natural language. Also, the stakeholder validation of pre-conceptual schemas we can achieve during all the phases of software development lifecycle improves the quality of the software application. This M. Sc. Thesis is complemented by the elaboration of a CASE tool which includes all the defined heuristic rules for automated code generation. A lab case is used to exemplify the functioning of the above mentioned CASE tool.