Theoretical Background to Implement STEM-Driven Approaches

In this chapter, we first motivate the needs of automation, focusing on three dimensions, i.e. the growth of diversity, complexity and software content in designing educational systems. Next, knowing this context, we introduce the theoretical basis to implement the automation in STEM-driven CS education. This basis includes two parts. The first is about feature-based analysis, modelling and feature model transformations typically applied to the problem domain. All these we borrowed from software engineering. The second part includes the basics of heterogeneous meta-programming techniques. We extend those techniques by introducing new types of heterogeneous meta-programs that represent our efforts to move from the component-level meta-programming to the system-level to design such systems as the generative scenario creator for STEM. However, this approach requires a more extensive research, though we implemented and tested the approach practically. A more thorough analysis of the system-level meta-programming is beyond the scope of this book.

[1]  Emir Pasalic,et al.  The role of type equality in meta-programming , 2004 .

[2]  Danny Weyns,et al.  Variability in Software Systems—A Systematic Literature Review , 2014, IEEE Transactions on Software Engineering.

[3]  Rafael Capilla,et al.  Collaborative Context Features for Critical Systems , 2015, VaMoS.

[4]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[5]  Vytautas Štuikys,et al.  Model-driven processes and tools to design robot-based generative learning objects for computer science education , 2016, Sci. Comput. Program..

[6]  Sridhar Chimalakonda,et al.  What makes it hard to apply software product lines to educational technologies? , 2013, 2013 4th International Workshop on Product LinE Approaches in Software Engineering (PLEASE).

[7]  Leon S. Levy,et al.  A metaprogramming method and its economic justification , 1986, IEEE Transactions on Software Engineering.

[8]  Vytautas Stuikys,et al.  Smart Learning Objects for Smart Education in Computer Science , 2015, Springer International Publishing.

[9]  Ralf Hinze,et al.  Generic programming in 3D , 2009, Sci. Comput. Program..

[10]  Robertas Damasevicius,et al.  Meta-Programming and Model-Driven Meta-Program Development , 2012, Advanced Information and Knowledge Processing.

[11]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[12]  Jan Bosch,et al.  Dynamic Variability in Software-Intensive Embedded System Families , 2012, Computer.

[13]  Mathieu Acher,et al.  Modeling Context and Dynamic Adaptations with Feature Models , 2009 .

[14]  Krzysztof Czarnecki,et al.  Feature models are views on ontologies , 2006 .

[15]  Jan Vitek,et al.  Terra: a multi-stage language for high-performance computing , 2013, PLDI.

[16]  Todd L. Veldhuizen,et al.  Tradeoffs in metaprogramming , 2005, PEPM '06.

[17]  Welf Löwe,et al.  Metaprogramming Applied to Web Component Deployment , 2002, Electron. Notes Theor. Comput. Sci..

[18]  Xu Liu,et al.  Combining Dynamic Machining Feature With Function Blocks for Adaptive Machining , 2016, IEEE Transactions on Automation Science and Engineering.

[19]  Andreas Ludwig,et al.  Metaprogramming in the Large , 2000, GCSE.

[20]  Don S. Batory,et al.  Feature Models, Grammars, and Propositional Formulas , 2005, SPLC.

[21]  Paloma Díaz,et al.  The ComBLA method: The application of domain analysis to the development of e-learning systems , 2012 .

[22]  Mathieu Acher,et al.  FAMILIAR: A domain-specific language for large scale management of feature models , 2013, Sci. Comput. Program..

[23]  Vytautas Štuikys,et al.  Context-Aware Generative Learning Objects for Teaching Computer Science* , 2014 .

[24]  Patrick D. Terry,et al.  Compilers and compiler generators : an introduction with C++ , 1997 .

[25]  Pierre-Yves Schobbens,et al.  What ' s in a Feature ? A Requirements Engineering Perspective , 2008 .

[26]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[27]  Juan Manuel Dodero,et al.  Generative Adaptation and Reuse of Competence Development Programmes , 2007 .

[28]  Krzysztof Czarnecki,et al.  Staged configuration through specialization and multilevel configuration of feature models , 2005, Softw. Process. Improv. Pract..

[29]  Philip Wadler,et al.  Everything old is new again: quoted domain-specific languages , 2015, PEPM.

[30]  Walid Taha,et al.  Multi-Stage Programming: Its Theory and Applications , 1999 .

[31]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[32]  Juan Manuel Dodero,et al.  Model-Driven Instructional Engineering to Generate Adaptable Learning Materials , 2006 .

[33]  Jaejoon Lee,et al.  FORM: A feature-;oriented reuse method with domain-;specific reference architectures , 1998, Ann. Softw. Eng..

[34]  Don Batory,et al.  Scaling Step-Wise Refinement , 2004, IEEE Trans. Software Eng..

[35]  N Wang Special issue on , 2017 .

[36]  Daniel Hoffman,et al.  Commonality and Variability in Software Engineering , 1998, IEEE Softw..

[37]  Saul Greenberg,et al.  Context as a Dynamic Construct , 2001, Hum. Comput. Interact..

[38]  P. Heymans,et al.  Separating variability concerns in a product line re-engineering project , 2008, EA@AOSD.

[39]  Pascual Julián Iranzo Partial evaluation of lazy functional logic programs: Thesis , 2003 .

[40]  Pascual Julián Iranzo Thesis: Partial evaluation of lazy functional logic programs , 2003, AI Commun..

[41]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[42]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[43]  Murali Sitaraman,et al.  Foundations of component-based systems , 2000 .

[44]  Ted J. Biggerstaff,et al.  A perspective of generative reuse , 1998, Ann. Softw. Eng..

[45]  Aniruddha S. Gokhale,et al.  Special Issue on the 2015 International Conference on Generative Programming: Concepts & Experiences (GPCE) , 2017, Comput. Lang. Syst. Struct..

[46]  Fernanda Campos,et al.  EasyT: Apoiando a Construção de Objetos de Aprendizagem para uma Linha de Produtos de Software , 2012 .

[47]  Haiyan Zhao,et al.  An approach to constructing feature models based on requirements clustering , 2005, 13th IEEE International Conference on Requirements Engineering (RE'05).

[48]  Robertas Damasevicius,et al.  Development of Generative Learning Objects Using Feature Diagrams and Generative Techniques , 2008, Informatics Educ..

[49]  Ina Schaefer,et al.  Detecting and Explaining Conflicts in Attributed Feature Models , 2015, FMSPLE.

[50]  Vytautas Stuikys,et al.  Refactoring of Heterogeneous Meta-Program into k-stage Meta-Program , 2014, Inf. Technol. Control..

[51]  Gregory D. Abowd,et al.  A Conceptual Framework and a Toolkit for Supporting the Rapid Prototyping of Context-Aware Applications , 2001, Hum. Comput. Interact..

[52]  Daniel von Dincklage Making Patterns Explicit with Metaprogramming , 2003, GPCE.

[53]  Shigeru Chiba,et al.  A metaobject protocol for C++ , 1995, OOPSLA.

[54]  Joseph A. Goguen,et al.  Parameterized programming and software architecture , 1996, Proceedings of Fourth IEEE International Conference on Software Reuse.

[55]  Donald D. Cowan,et al.  S.P.L.O.T.: software product lines online tools , 2009, OOPSLA Companion.

[56]  Thomas Thüm,et al.  Reasoning about edits to feature models , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[57]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[58]  Alberto Pettorossi,et al.  Future directions in program transformation , 1996, CSUR.

[59]  William B. Frakes,et al.  Software reuse research: status and future , 2005, IEEE Transactions on Software Engineering.

[60]  Vytautas Stuikys,et al.  Stage-Based Generative Learning Object Model to Support Automatic Content Generation and Adaptation , 2016, 2016 IEEE 40th Annual Computer Software and Applications Conference (COMPSAC).

[61]  Robertas Damasevicius,et al.  Specification and Generation of Learning Object Sequences for E-learning Using Sequence Feature Diagrams and Metaprogramming Techniques , 2009, 2009 Ninth IEEE International Conference on Advanced Learning Technologies.

[62]  Sven Apel,et al.  An Algebra for Features and Feature Composition , 2008, AMAST.

[63]  Yen-Kuang Chen,et al.  Challenges and opportunities of internet of things , 2012, 17th Asia and South Pacific Design Automation Conference.

[64]  Douglas C. Schmidt,et al.  Meta-programming techniques for distributed real-time and embedded systems , 2002, Proceedings of the Seventh IEEE International Workshop on Object-Oriented Real-Time Dependable Systems. (WORDS 2002).

[65]  Abdelrahman Osman Elfaki,et al.  Towards Representation and Validation of Knowledge in Students' Learning Pathway Using Variability Modeling Technique , 2011, ArXiv.

[66]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[67]  Julia L. Lawall,et al.  Towards bridging the gap between programming languages and partial evaluation , 2002, PEPM '02.

[68]  Vytautas Štuikys,et al.  Exploration of Learning Object Ontologies Using Feature Diagrams , 2008 .

[69]  Sven Apel,et al.  An Overview of Feature-Oriented Software Development , 2009, J. Object Technol..

[70]  Andreas Classen,et al.  A text-based approach to feature modelling: Syntax and semantics of TVL , 2011, Sci. Comput. Program..

[71]  Don Batory,et al.  Achieving Reuse With Software System Generators , 1994 .

[72]  Rossana M. de Castro Andrade,et al.  Requirements Engineering and Variability Management in DSPLs Domain Engineering: A Systematic Literature Review , 2016, ICEIS.

[73]  Sergio Segura,et al.  Automated analysis of feature models 20 years later: A literature review , 2010, Inf. Syst..

[74]  Danny Weyns,et al.  Adding variants on-the-fly: Modeling meta-variability in dynamic software product lines , 2009 .

[75]  Josef Templ Metaprogramming in Oberon , 1994 .

[76]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[77]  Frédérique Laforest,et al.  Service-Oriented Context-Aware Application Design , 2005, MCMP@MDM.

[78]  John K. Ousterhout,et al.  Scripting: Higher-Level Programming for the 21st Century , 1998, Computer.

[79]  Antonio Ruiz Cortés,et al.  Article in Press G Model the Journal of Systems and Software an Overview of Dynamic Software Product Line Architectures and Techniques: Observations from Research and Industry , 2022 .