An analysis of tools for automatic software development and automatic code generation

Viviana Yarel Rosales Morales, Giner Alor Hernández, Jorge Luis García Alcaráz, Ramón Zatarain Cabada, María Lucía Barrón Estrada

Abstract


Software development is an important area in software engineering.  For this reason, a wide range of techniques, approaches, and different tools have emerged to facilitate software development automation. This paper presents an analysis and evaluation of tools for automated software development and automatic code generation in order to determine whether they meet a set of quality metrics. Diverse quality metrics were considered such as effectiveness, productivity, safety, and satisfaction in order to carry out a qualitative and quantitative evaluation. The tools evaluated are CASE tools, frameworks, and Integrated Development Environments (IDEs). The evaluation was conducted to measure not only the tools’ ability to be employed, but also their support for automated software development and automatic source code generation. The aim of this work is to provide a methodology and a brief review of the most important works to identify the main features of these works and present a comparative evaluation in qualitative and quantitative terms of quality metrics. This would provide software developers with the information needed for decision-making to consider the tools that can be useful for them.


Keywords


Software Development; Code Generation; Automatic Code Generation; CASE; IDE;

Full Text:

PDF

References


Sommerville, I., & Sawyer, P. (1997). Requirements engineering: a good practice guide. John Wiley & Sons, Inc.

Sommerville, I. (2004). Software Engineering. International computer science series.

Zapata, C. M., & Chaverra, J. J., “Una mirada conceptual a la generación automática de código”. Rev. EIA. Esc. Ing. Antioq, 2010, 155-169.

Kernighan, B. W., & Plauger, P. J. (1981). Software tools in Pascal. Addison-Wesley Longman Publishing Co., Inc.

Kuhn, D. L. (1989). Selecting and effectively using a computer aided software engineering tool (No. WSRC-RP-89-483; CONF-891192--7). Westinghouse Savannah River Co., Aiken, SC (USA).

Agner, L. T. W., Soares, I. W., Stadzisz, P. C., and Simão, J. M. A Brazilian survey on UML and model-driven practices for embedded software development. Journal of Systems and Software, 86(4), 2013, 997-1005.

Pierucci, S, and Ranzi, E., A review of features in current automatic generation software for hydrocarbon oxidation mechanisms. Computers & Chemical Engineering 32, no. 4 2008: 805-826.

Anand, S., Burke, E., Chen, T., Clark, J., Cohen, M., Grieskamp, W., Harman, M., Harrold, M. J., and McMinn, P., An orchestrated survey of methodologies for automated software test case generation. Journal of Systems and Software 86, no. 8, 2013: 1978-2001.

Novais, Renato Lima, André Torres, Thiago Souto Mendes, Manoel Mendonça, and Nico Zazworka. "Software evolution visualization: A systematic mapping study." Information and Software Technology 55, no. 11, 2013: 1860-1883.

Thomas, Stephen W., Bram Adams, Ahmed E. Hassan, and Dorothea Blostein. "Studying software evolution using topic models." Science of Computer Programming 80, 2014: 457-479.

Kanewala, U., & Bieman, J. M. (2014). Testing Scientific Software: A Systematic Literature Review. Information and Software Technology, 56(10), 1219–1232. doi:10.1016/j.infsof.2014.05.006

Magdaleno, A. M., Werner, C. M. L., & Araujo, R. M. de. (2012). Reconciling software development models: A quasi-systematic review. Journal of Systems and Software, 85(2), 351–369. doi:10.1016/j.jss.2011.08.028

Mehmood, A., & Jawawi, D. N. A. (2013). Aspect-oriented model-driven code generation: A systematic mapping study. Information and Software Technology, 55(2), 395–411. doi:10.1016/j.infsof.2012.09.003

Alonso, D., Pastor, J. Á., Sánchez, P., Álvarez, B., & Vicente-Chicote, C. (2012). Generación Automática de Software para Sistemas de Tiempo Real: Un Enfoque basado en Componentes, Modelos y Frameworks. Revista Iberoamericana de Automática E Informática Industrial RIAI, 9(2), 170–181. doi:10.1016/j.riai.2012.02.010

Yang, C.-H., Vyatkin, V., & Pang, C. (2014). Model-Driven Development of Control Software for Distributed Automation: A Survey and an Approach. Systems, Man, and Cybernetics: Systems, IEEE Transactions on. doi:10.1109/TSMCC.2013.2266914

Liao, H., Jiang, J., & Zhang, Y. (2010). A Study of Automatic Code Generation. In 2010 International Conference on Computational and Information Sciences (pp. 689–691). IEEE. doi:10.1109/ICCIS.2010.171

Jiménez, M., & Piattini, M. (2009). Problems and Solutions in Distributed Software Development: A Systematic Review. In K. Berkling, M. Joseph, B. Meyer, & M. Nordio (Eds.), Software Engineering Approaches for Offshore and Outsourced Development SE - 8 (Vol. 16, pp. 107–125). Springer Berlin Heidelberg. doi:10.1007/978-3-642-01856-5_8

Seo, Y.-J., & Song, Y.-J. (2006). A Study on Automatic Code Generation Tool from Design Patterns Based on the XMI. In M. Gavrilova, O. Gervasi, V. Kumar, C. J. K. Tan, D. Taniar, A. Laganá, … H. Choo (Eds.), Computational Science and Its Applications - ICCSA 2006 SE - 93 (Vol. 3983, pp. 864–872). Springer Berlin Heidelberg. doi:10.1007/11751632_93

Andersson, P., & Höst, M. (2008). UML and SystemC – A Comparison and Mapping Rules for Automatic Code Generation. In E. Villar (Ed.), Embedded Systems Specification and Design Languages SE - 14 (Vol. 10, pp. 199–209). Springer Netherlands. doi:10.1007/978-1-4020-8297-9_14

Urwiler, R., Ramarapu, N. K., Wilkes, R. B., & Frolick, M. N. (1995). Computer-aided software engineering: The determinants of an effective implementation strategy. Information & Management, 29(4), 215–225. doi:10.1016/0378-7206(95)00025-R

Jing, Y. (2000). Research On Computer-Aided Prototyping System And Software Evolution ", 2(4).

Sairaman, V., Ranganathan, N., & Singh, N. S. (2006). An Automatic Code Generation Tool for Partitioned software in Distributed Systems.

Gavilanes, A., Martín, P., & Torres, R. (2009). A Tool for Automatic Code Generation from Schemas. In G. Allen, J. Nabrzyski, E. Seidel, G. van Albada, J. Dongarra, & P. A. Sloot (Eds.), Computational Science – ICCS 2009 SE - 8 (Vol. 5545, pp. 63–73). Springer Berlin Heidelberg. doi:10.1007/978-3-642-01973-9_8

Erdogan, S. S., McFarr, S., & Maglidt, D. (1989). EDEN: an integrated computer-aided software engineering environment. Computers and Communications, 1989. Conference Proceedings., Eighth Annual International Phoenix Conference on. doi:10.1109/PCCC.1989.37413

Visual Paradigm. (2014). Retrieved from http://www.visual-paradigm.com/aboutus/

PowerDesigner. (2014). Retrieved from http://www.news-sap.com/?pressid=13202

Maguire, L. P., Mcginnity, T. M., & Mcdaid, L. J. (1999). Issues in the development of an integrated environment for embedded system design Part B: design and implementation, 23, 199–206.

Childs, A., Greenwald, J., Ranganath, V. P., Deng, X., Dwyer, M., Hatcliff, J., & Jung, G. (2004). Cadena: An Integrated Development Environment for Analysis, Synthesis, and Verification of Component-Based Systems, (Grant 11462), 160–164.

Järvensivu, J., Kosola, M., Kuusipalo, M., Reijula, P., & Mikkonen, T. (2006). Developing an Open Source Integrated Development Environment for a Mobile Device, 00(c).

Viana, W., & Andrade, R. M. C. (2008). XMobile: A MB-UID environment for semi-automatic generation of adaptive applications for mobile devices. Journal of Systems and Software, 81(3), 382–394. doi:10.1016/j.jss.2007.04.045

Kuntsche, S., Barz, T., Kraus, R., Arellano-Garcia, H., & Wozny, G. (2011). MOSAIC a web-based modeling environment for code generation. Computers & Chemical Engineering, 35(11), 2257–2273. doi:http://dx.doi.org/10.1016/j.compchemeng.2011.03.022

IntelliJ IDEA. (2014). Retrieved from https://www.jetbrains.com/idea/

Elwahidi, A. R., & Merlo, E. (1995). Generating user interfaces from specifications produced by a reverse engineering process. Reverse Engineering, 1995., Proceedings of 2nd Working Conference on. doi:10.1109/WCRE.1995.514717

Guyon, J., Moreau, P.-E., & Reilles, A. (2004). An Integrated Development Environment for Pattern Matching Programming. Electronic Notes in Theoretical Computer Science, 107, 33–49. doi:10.1016/j.entcs.2004.02.045

Alonso, D., Vicente-chicote, C., & Pedro, S. (2007). Automatic Ada Code Generation Using a Model-Driven Engineering Approach, 168–179.

Frederick, G., Bond, P., & Tilley, S. (2008). VULCAN: A Tool for Automatically Generating Code from Design Patterns genea dsgpANs Thistproj hassbee given.

Yuri B. Danilchenko. (2012). Automatic Code Generation Using Artificial Intelligence. ProQuest / UMI.

Adobe DreamWeaver. (2014). Retrieved from http://www.adobe.com/mx/products/dreamweaver.html

McCall, J. A., Richards, P. K., & Walters, G. F. (1977). Factors in software quality. volume i. concepts and definitions of software quality. GENERAL ELECTRIC CO SUNNYVALE CA.

Boehm, B. W., Brown, J. R., & Lipow, M. (1976, October). Quantitative evaluation of software quality. In Proceedings of the 2nd international conference on Software engineering (pp. 592-605). IEEE Computer Society Press.

Dromey, R. G. (1996). Concerning the Chimera- software quality. IEEE Software, 13(1), 33-43.

Crosby, P. B., & Free, Q. I. (1979). The art of making quality certain. New York: New American Library, 17.

Deming, W. E. (1988). Out of the crisis: quality, productivity and competitive position. Cambridge Univ. Press

Feigenbaum, A. V. (2005). Total quality control: achieving productivity, market penetration and advantage in the global economy. McGraw-Hill Higher Education.

Iso, I. S. O. (2001). IEC 9126-1: Software Engineering-Product Quality-Part 1: Quality Model. Geneva, Switzerland: International Organization for Standardization.

Kitchenham, B., Linkman, S., & Law, D. (1997). DESMET: a methodology for evaluating software engineering methods and tools. Computing & Control Engineering Journal, 8(3), 120-126.

Likert, R. (1932). A technique for the measurement of attitudes. Archives of psychology.

Sutcliffe, A. G., Maiden, N. A., Minocha, S., & Manuel, D. (1998). Supporting scenario-based requirements engineering. Software Engineering, IEEE Transactions on, 24(12), 1072-1088.

Paredes-Valverde, M. A., Alor-Hernández, G., Rodríguez-González, A., Valencia-García, R., & Jiménez-Domingo, E. (2013). A systematic review of tools, languages, and methodologies for mashup development. Software: Practice and Experience, n/a–n/a. doi:10.1002/spe.2233

Colombo-mendoza, L. O., & Colomo-palacios, R. (2013). Alexandria: a visual tool for generating multi-device rich internet applications 1, 12(3), 317–359.

Galitz, W. O. (2007). The essential guide to user interface design: an introduction to GUI design principles and techniques. John Wiley & Sons.

ISO, W. (1998). 9241-11. Ergonomic requirements for office work with visual display terminals (VDTs). The international organization for standardization.

Schilling, M. A. (2000). Toward a general modular systems theory and its application to interfirm product modularity. Academy of management review,25(2), 312-334.




DOI: https://doi.org/10.17533/udea.redin.n77a10

Esta publicación hace parte del Sistema de Revistas de la Universidad de Antioquia
¿Quieres aprender a usar el Open Journal system? Ingresa al Curso virtual
Este sistema es administrado por el Programa Integración de Tecnologías a la Docencia
Universidad de Antioquia
Powered by Public Knowledge Project