Son Kullanıcı Geliştirme için Otomatik Kod Üretim Aracının Tasarımı ve Gerçeklenmesi

Son kullanıcı geliştirme yaklaşımları; yazılım mühendisi olmayan oluşturabileceği, değiştirebileceği ve uyarlayabileceği teknolojiler ve yöntemlere odaklanmaktadır. Bu amaçla; birleştirme teknolojileri, örnek ile programlama, görsel programlama, model tabanlı yaklaşımlar, servis yönelimli mimariler ve otomatik kod üretimi kullanılabilmektedir. Bu çalışmada, görsel programlama ile birlikte otomatik kod üretimi tercih edilmiş ve bir son kullanıcı geliştirme aracı gerçeklenmiştir. Seçilen uygulama alanı olan rezervasyon sistemleri için otomatik kod üretimi sağlanmıştır. Bu sürecin temel faydası; geliştirme zamanın kısaltılması, son kullanıcıların geliştirmesini yapabilmesi ve sistem tasarımı ile üretilen uygulama arasındaki farklılıkların en aza indirgenerek, tutarlılığın sağlanmasıdır. Farklı rezervasyon sistemleri için kullanılması amaçlanan bu sistem, kullanıcıların iş modellerini görsel ara yüzler ile tanımlamalarına ve bu tasarımdan web tabanlı uygulamanın çalışması için gerekli tüm dosyaların üretilmesine imkan tanımaktadır. Son kullanıcılarda web teknolojilerine ait herhangi bir geliştirme tecrübesi aranmayıp, uygulamanın çalışması için gerekli ara yüzler, stil ve tasarım dosyaları, veritabanının oluşturulması otomatik kod üretimi ile gerçekleştirilmiştir. Bu çalışmada; son kullanıcı geliştirme için görsel programlama ve otomatik kod üretimi tekniklerinin, alana özel uygulanması gerektiği, jenerik yaklaşımların etkin olmayacağı sonucuna varılmıştır

Desing and Implementation of an Automatic Code Generation Tool for End-User Development

End user development (EUD) approaches focus on technologies and methods, which can help end users who are not software engineers, to create, change, and adapt their own software artifacts. For this purpose, compositiontechnologies, instance-based programming, visual programming, model based approaches, service oriented architectures, and automatic code generation techniques can be used. In this study, visual programming in conjunction with automatic code generation was opted and an end-user development tool was implemented. As the case study, automatic code generation was performed for reservation systems. The main aims of this process are to shorten the development time, let the end users develop their own tools, and create theconsistency between system design and generated application. This system, which is aimed to be used in different reservation applications, lets users define their business models with graphical objects, and generate all the necessary files from this design for a web-based application. It is not required by the end-users to know web technologies and in addition to the database, interfaces, style and design files are generated automatically. In this study, it is shown that visual programming in conjunction with automatic code generation must be applied for the specific domain instead of a generic purpose implementation and this is a more efficient approach from end-user development perspective.

___

[1]Paternò, F., (2013). "End user development: Survey of an emerging field for empowering people". ISRN Software Engineering, 2013.

[2]Togay, C., Akkus, V., Dogru, A.H, (2014). "Son Kullanıcı Yönelimli Yazılım Geliştirme Aracı", UYMS 2014, Kuzey Kıbrıs Türk Cunhuriyeti, Eylül 08-10, 2014.

[3]Dogru, A.H., Togay, C., (2012). "Son Kullanıcı Geliştirme Ortamı için Aksiyomatik Tasarım Esinli Mimari", Ulusal Yazılım Mühendisliği Kongresi 2012 (UYMK 2012), İzmir, Turkey, Aralık 7-8, 2012.

[4]Long, H., (2012). "End user development of digital collection mash-ups: A survey to assess the suitability of current infrastructure". OCLC Systems & Services: International digital library perspectives, 28(4), pp.199-207.

[5]Herrington, J. (2003). Code generation in action. Manning Publications Co..

[6]Vavilina, E., & Gaigals, G. (2015, November). Improved LabVIEW code generation. In Information, Electronic and Electrical Engineering (AIEEE), 2015 IEEE 3rd Workshop on Advances in (pp. 1-4). IEEE.

[7]Li, S., Li, D., Li, F., & Zhou, N. (2015). CPSiCGF: A code generation framework for CPS integration modeling. Microprocessors and Microsystems, 39(8), 1234-1244.

[8]Mehmood, A., & Jawawi, D. N. (2013). Aspect-oriented model-driven code generation: A systematic mapping study. Information and Software Technology,55(2), 395-411.

[9]Tolvanen, J. P., Djuki?, V., & Popovic, A. (2015). Metamodeling for Medical Devices: Code Generation, Model-debugging and Run-timeSynchronizationProcedia Computer Science, 63, 539-544.

[10]Solís-Martínez, J., Espada, J. P., García-Menéndez, N., G-Bustelo, B. C. P., & Lovelle, J. M. C. (2015). VGPM: Using business process modeling for videogame modeling and code generation in multiple platforms. Computer Standards & Interfaces, 42, 42-52.

[11]Kim, B., Phan, L. T., Sokolsky, O., & Lee, I. (2013, September). Platform-dependent code generation for embedded real-time software. In Compilers, Architecture and Synthesis for Embedded Systems (CASES), 2013 International Conference on (pp. 1-10). IEEE.

[12]Klöckner, A., Pinto, N., Lee, Y., Catanzaro, B., Ivanov, P., & Fasih, A. (2012). PyCUDA and PyOpenCL: A scripting-based approach to GPU run-time code generation. Parallel Computing, 38(3), 157-174.

[13]Graichen, C., & D'Amato, F. (2011, May). Adding code generation to develop a simulation platform. In Systems, Applications and Technology Conference (LISAT), 2011 IEEE Long Island (pp. 1-6). IEEE.

[14]Wang, Y., Ma, D., Zhao, Y., Zou, L., & Zhao, X. (2012, July). Automatic RT-Java code generation from AADL models for ARINC653-based avionics software. In Computer Software and Applications Conference (COMPSAC), 2012 IEEE 36th Annual (pp. 670-679). IEEE.

[15]Morkoc, C., Onal, Y., & Kesler, M. (2014, September). DSP based embedded code generation for PMSM using sliding mode controller. In Power Electronics and Motion Control Conference and Exposition (PEMC), 2014 16th International (pp. 472-476).

[16]Wang, J., Wang, P., & Li, Y. (2012, August). Research and Implementation of the Code Generation System Based on Production Rules. In Intelligent Human-Machine Systems and Cybernetics (IHMSC), 2012 4th International Conference on (Vol. 1, pp. 224-227).

[17]Lachgar, M., and Abdali, A. (2015). DSL and Code Generator for Accelerating iOS Apps Development. Third World Conference on Complex Systems (WCCS), Marrakech, Morocco, 2015, pp. 1-8.

[18]Bernardi, M. L., Cimitile, M., & Maggi, F. M. (2016, April). Automated development of constraint-driven web applications. In Proceedings of the 31st Annual ACM Symposium on Applied Computing (pp. 1196-1203). ACM.

[19]Umuhoza, E., Ed-douibi, H., Brambilla, M., &Cabot, J. Automatic Code Generation for Cross-platform, Multi-Device Mobile Apps: Some Reflections from an Industrial Experience. Transformation, 2, M2T.

[20]P. Mohagheghi and V. Dehlen, "Where is the proof? --A review of experiences from applying MDE in industry," in MDA Foundations & Applications, 2008.

[21]Malavolta, I., Lago, P., Muccini, H., Pelliccione, P. and Tang, A., (2013). "What industry needs from architectural languages: A survey". IEEE Transactions on Software Engineering, 39(6), pp.869-891.
Dokuz Eylül Üniversitesi Mühendislik Fakültesi Fen ve Mühendislik Dergisi-Cover
  • ISSN: 1302-9304
  • Yayın Aralığı: Yılda 3 Sayı
  • Başlangıç: 1999
  • Yayıncı: Dokuz Eylül Üniversitesi Mühendislik Fakültesi