SCT (Specification-Configuration-Templates) model defines application building using automated process of generation. There three basic model elements:
S (Specification) is hierarchically organized set of attributes and their values. Attribute values define features that make specific difference among different generated applications.
Specification can be represented graphically by Specification diagram.
C (Configuration) defines connections between Specification and Templates. There are three elements that have to be defined for each connection:
Similar to Specification, Configuration is organized hierarchically, which can be represented graphically, by a Configuration Diagram.
T (Templates) is set of code fragments that contain connections.
SCT frame is a structure (e.g. XML structure) consisting from all three basic model elements.
Generator is an engine that produces application (one or more files) by connecting Specification and Templates using rules defined in Configuration.
History of SCT
Ideas in the beginning:
– if web applications in scripting languages (like Perl, PHP etc.) produce html documents, why don’t we produce application scripts too?
– different program scripts that make web applications often do the same work, but using different data structures (e.g. from data entry forms). Why don’t we make a variation mechanism to produce scripts that work with different data structures?
– usage of scripting languages in generative programming (insted of object-oriented languages) because of their flexibility in different data types manipulations
First generators were written in Perl because of its character string manipulation possibilities to produce different web applications in Perl and ASP. These applications were used mostly in remote database content management, on-line questionnaires and student’s tests.
GSM (Generator Scripting Model) was established. GSM introduces graphic diagrams to represent generators. Specification diagram represent the hierarchic structure of application specification, while specification itself consist from attribute-value pairs. Metascript diagram (later Configuration diagram) defines assembling program files by connecting specification data and code templates (metascripts).
Except generating of web applications in scripting languages, GSM was used in generating Java and C++ applications. Some generators were written in Java.
GSM basic model was extended to support late binding of code templates, similar to concept of dynamic polymorphism in OOP. This enables more precise specification and skalability of generators, because new code templates can be added without changing generator configuration.
The C++ library for building generators was made. These generators (written in C++) are based on generative objects, that support polymorpih features.
SCT (Specification-Configuration-Templates) model was established. It inherits the basic concept and graphic diagrams from GSM, but enables fully configurable code generators. There is no more need to program generators, because all of its functions are defined in configuration, which could be easily changed. We use Python in implementation of SCT generators because of powerful object-oriented features of that language, keeping the type manipulation flexibility of scripting languages. SCT generator uses mechanism for dynamic instantiation of SCT frames which makes generator maintenance much easier (only top-level frames should be modified).
SCT enables rapid generator development and easy generator modifications. Different output types (and output files) could be achieved using same program specification. Domain of generator model usage was extened to building student’s examinations which include program code in target programming language (e.g. C++) together with different student’s tasks and generation of solutions.
Autogenerator generates and executes the programming code on demand. In fact, Autogenerator uses the possibility of scripting languages to evaluate the programming code from variables.
SCT (Specification-Configuration-Templates) model defines generative application development as a process of several basic steps:
1. Application prototype (starting point). Application prototype is particular application from generator’s problem domain that is syntactically and semantically correct.
2. Defining output types to be generated. An output type depends on top-level code template that is used in generation (e.g. templates could be defined for HTML forms, program files, XML files etc.).
3. Separation of concerns. This is the key step that include several operations:
Defining application properties that vary among different generated applications.
Modification of prototype code into code templates.
Connecting Specification features with code templates in Configuration.
4. Testing. Model itself does not guarrantee the correctness (sintactic and semantic) of generated application. But, some issues could be tested automatically:
Syntactic correctness of generated code.
Phases 3 and 4 are circular, because building generators and target applications are parralel processes.
Variation mechanism. SCT is, similar to Jarzabek’s XVCL, a variation mechanism that enables making of Software product Lines (SPL). It uses fully configurable generator for automatic assembling of source code by modifying of code templates.
Typeless model. SCT is aspect oriented. Join points in SCT are typeless which makes Configuration clear and easy.
Object-oriented features. Main concepts of OOP, like Encapsulation, inheritance and dynamic polymorphism are achieved in SCT. That enables nesting of generators, similar to the nesting of program structures in OOP.
Graphic modelling. Graphic model of SCT based generator consist of two diagrams: Specification diagram and Configuration diagram, which are inherited from GSM.
XML representation. The XML format of the SCT frame is also given by the XML schema.
References related to SCT
34. Radošević, D.; Bernik, A.; Mrvac, N.:”Web Sites Internationalization using Domain Translator”, Tehnički vjesnik : znanstveno-stručni časopis tehničkih fakulteta Sveučilišta u Osijeku, 26 (2019), 3; 668-673 doi:10.17559/TV-20180702105206
33. Radošević, D.; Bernik, A.; Dobša, J.; Kaniški, M.; Mrvac, N.:”Dynamic Machine Translation of Croatian Academic Web Sites”, Proceedings of 42nd International Convention – Mipro 2019 / Skala, Karolj (ur.).
32. Strmečki, D., Magdalenić, I., Radošević, D.:”A Systematic Literature Review on the Application of Ontologies in Automatic Programming”, International journal of software engineering and knowledge engineering (IJSEKE), ISSN 0218-1940, str. 559-591., 2018.
31. Dobša, J.; Mladenić, D.; Rupnik, J.; Radošević, D.; Magdalenić, I.”Cross-language information retrieval by reduced k- means”, International Journal of Computer Information Systems and Industrial Managerment Applications, 10 (2018), 1; 314-322
30. Radošević, D., Magdalenić, I., Andročec, D., Bernik, A., Kaniški, M.:”A machine translation model inspired by code generation”, Proceedings of the 28th Central European Conference on Information and Intelligent Systems (Ceciis 2017), , ISSN 1847-2001, Varaždin, 27-29.09.2017., str. 187-192., 2017.
29. Novak, M., Magdalenić, I., Radošević, D.:”Common Metamodel of Component Diagram and Feature Diagram in Generative Programming”, Journal of Computer Science, ISSN:1549-3636, 12 (10), 517-526, 2016.
28. Mlakar, J., Radošević, D., Magdalenić, I.:”Generating Web Applications Using CodeWorker”, Proceedings of the 26th Central European Conference on Information and Intelligent Systems (Ceciis 2015), ISSN 1847-2001, Varaždin, 23.-25.09.2015. ,pp. 233-238, 2015.
27. Strmečki, D., Radošević, D., Magdalenić, I.:”Web form generators design model”, Proceedings of the 26th Central European Conference on Information and Intelligent Systems (Ceciis 2015), ISSN 1847-2001, Varaždin, 23.-25.09.2015. ,pp. 255-260, 2015.
26. Bernik, A., Bubaš, G., Radošević, D.:”A Pilot Study of the Influence of Gamification on the Effectiveness of an e-Learning Course”, Proceedings of the 26th Central European Conference on Information and Intelligent Systems (Ceciis 2015), ISSN 1847-2001, Varaždin, 23.-25.09.2015. ,pp. 73-79, 2015.
25. Kvesić, A., Radošević, D., Orehovački, T.:”Dynamic Frames Based Generation of 3D Scenes and Applications”, Acta Graphica, ISSN: 0353-4707, 26(1-2), 11-19., 2015.
24. Orehovački, T., Magdalenić, I., Radošević, D.:”Dynamic Frames-Based Generation of Web 2.0 Applications”, Proceedings of the 7th International Conference on Information Technology (ICIT), str. 90-95, ISSN 2306-6105, Amman, Jordan, 12-15.05.2015.
23. Kvesić, A., Radošević, D., Orehovački, T.:”Using SCT Generator and Unity in Automatic Generation of 3D Scenes and Applications”, Proceedings of the 25rd Central European Conference on Information and Intelligent Systems (Ceciis 2014), Varaždin, 17.-19.09.2014., 2014.
22. Fabac, R., Radošević, D., Magdalenić, I.:”Autogenerator-Based Modelling Framework for Development of Strategic Games Simulations: Rational Pigs Game Extended”, The Scientific World Journal, Hindawi, ISSN: 2356-6140 (Print) 1537-744X (Online), Volume 2014, Article ID 158679, 31 August 2014.
21. Kozina, M., Radošević, D., Magdalenić, I.:”Customizing of the Software Organization Maturity Level Assessments Using SCT Based Generator”, Proceedings of the 24rd Central European Conference on Information and Intelligent Systems (Ceciis 2013), Varaždin, 18.-20.09.2013., 2013.
20. Radošević, D., Magdalenić, I., Orehovački, T.:”Building Process of SCT Generators”, Proceedings of Mipro 2013, Opatija, May 20-24 2013.
19. Magdalenić, I., Radošević, D., Orehovački, T.:”Autogenerator: Generation and Execution of Programming Code on Demand”, Expert Systems with Applications (ESWA), Elsevier, ISSN: 0957-4174, Volume 40, Issue 8, 15 June 2013, Pages 2845-2857.
18. Ivković, N., Radošević, D., Magdalenić, I.:”Towards Automatic Generation of Parallel Programs”, Central European Conference on Information and Intelligent Systems (Ceciis 2012), Varaždin, 19.-21. September 2012.
17. Radošević, D., Orehovački, D.,Magdalenić, I.:”Towards the Software Autogeneration”, Proceedings of Mipro 2012, Opatija, May 21-25 2012.
16. Radošević, D., Bračun, D.,Magdalenić:”Generating Graphic User Interface of Web Applications Using Source Code Generator Based on Dynamic Frames”, Computer Technology and Application (CTA), ISSN 1934-7332, volume 2, number 11, pp. 843-848., 2011.
15. Radošević, D., Magdalenić, I., Orehovački, T.:”Error Messaging in Generative Programming”, Central European Conference on Information and Intelligent Systems, CECIIS 2010, Varaždin, 21-23, September 2011.
14. Radošević, D., Magdalenić, I.:”Source Code Generator Based on Dynamic Frames”, Journal of Information and Organizational Sciences (JIOS), ISSN 1846-3312, 35 (2011), 1, 2011.
13. Radošević, D., Magdalenić, I.:”Python Implementation of Source Code Generator Based on Dynamic Frames”, Proceedings of “Mipro 2011”, Opatija, 23.05.-27.05.2011.
12. Magdalenić, I., Radošević, D., Kermek, D.:”Implementation Model of Source Code Generator”, Journal of Communications Software and Systems (JCOMSS), 7 (2011), 2; 1-9, ISSN: 1845-6421, 2011.
11. Radošević, D., Magdalenić, I.:”Introducing Polymorphic Features into a Scripting Model of Generator”, Journal of computing and information technology (CIT), ISSN 1330-1136, 19 (2011), 1; str. 57-67, 2011.
10. Radošević, D., Orehovački, T., Stapić, Z:”Automatic On-line Generation of Student´s Exercises in Teaching Programming”, Central European Conference on Information and Intelligent Systems, CECIIS 2010, Varaždin, 22-24 September 2010.
9. Magdalenić, I., Radošević, D., Skočir, Z.:”Dynamic Generation of Web Services for Data Retrieval Using Ontology”, INFORMATICA, 2009, Vol. 20, No. 3, pg. 397–416, ISSN 0868-4952, Institute of Mathematics and Informatics, Vilnius, Lithuania, 2009.
8. Radošević, D., Kliček, B., Kozina, M.:”Upgrading Generator Scripting Model by Object Model Properties”, The IPSI BgD Transactions on Internet Research, Volume 5 Number 1 (ISSN 1820-4503), IPSI Bgd Internet Research Society, Belgrade, January 2009.
7. Radošević, D., Konecki, M., Orehovački, T.:”Java Applications Development Based on Component and Metacomponent Approach”, Journal of Information and Organizational Sciences (JIOS), Faculty of Organization and Informatics, Varaždin, 2008.
6. Radošević, D., Orehovački, T., Konecki, M.:”WEB oriented applications generator development through reingineering process”, DAAAM International Scientific Book 2007, DAAAM International, Vienna, Austria 2007.
5. Radošević, D., Orehovački, T., Konecki, M.:”PHP Scripts Generator for Remote Database Administration based on C++ Generative Objects”, Proceedings of “Mipro 2007” conference, Opatija, 21.05.-25.05.2007.
4. Radošević, D., Kliček, B., Kozina, M.:”Conceptual Similarities and Differences Between Object Model and Generator Application Scripting Model”, DAAAM International Scientific Book 2006, DAAAM International, Vienna, Austria 2006.
3. Radošević, D., Kliček, B., Dobša, J.:”Generative Development Using Scripting Model of Application Generator”, DAAAM International Scientific Book 2006, DAAAM International, Vienna, Austria 2006.
2. Radošević, D.: “Integration of Generative Programming and Scripting Languages” Doctorate thesis, Faculty of Organization and Informatics, Varaždin, 2005. (abstract)
1. Dumičić K, Sajko M, Radošević D.: “Designing a Web-Survey Questionnaire Using Automatic Process and a Script Language”, Journal of Information and Organizational Sciences (JIOS),Vol. 26, NO. 1-2, Faculty of Organization and Informatics, Varaždin, 2002.