scholarly journals An Implementation of Deep-Connections for Multi-Level Modeling

2021 ◽  
Author(s):  
◽  
Xicheng Chang

<p>Traditional object-oriented programming languages only support two logical domain classification levels, i.e. classes and objects. However, if the problem involves more than two classification levels, then to model a multi-level scenario within two classification levels, a mapping approach is required which introduces accidental complexity and destroys the desirable property of “direct mapping”. Therefore “Multi-level modeling” was proposed. It supports an unbounded number of classification levels, that can support “direct mapping” without introducing accidental complexity. Many supporting features have been proposed for “multi-level” modeling such as “deep instantiation”, potency, clabjects, etc. To date most of the research effort was focusing on the entities (clabjects), while the relationships between entities were receiving much less attention and remained under-explored.  The “Melanee” tool was developed to support multi-level modeling both for academics and practitioners. “Melanee” supports an unbounded number of classification levels for domain modeling and it treats relationships like clabjects. It mainly supports “constructive modeling” by creating models using a “top-down” approach, whereas “explanatory modeling”, which is creating models using “bottom-up” approach, is not well supported and lacks support to ensure the integrity of the created models. Hence, to further explore relationships in multi-level modeling and to provide a better modeling environment, there are two main focuses in this thesis: First, based on existing, I further explore relationships between entities and extend the LML (Level Agnostic Modeling Language) supported by Melanee accordingly. Second, I extend Melanee’s functionality to support “explanatory modeling”.  Considering that Melanee is an open source tool I first discuss Melanee’s structure and its principles in order contribute to future extensions to Melanee. The knowledge of Melanee is currently known by its principle developer, Ralph Gerbig, with whom I had contacts in the beginning phase of the “deep-connection” development for advices. Next I use the work proposed in the paper “A Unifying Approach to Connections for Multi-Level Modeling” by Atkinson et al. as a foundation and stepping stone, to further explore relationships between entities. I extended Melanee to support the “Deep-connections” feature by adding potency to connections and their monikers, and further allow connections to have “deep-multiplicities”. I developed these features, as well as respective validation functions to ensure the well-formedness of models.  Then I extended LML so that user-specified type names can be used to indicate the names of types for clabjects. Instead of relying on modelers to fully manually define type- of classification relations between different levels, I introduce “connection conformance” and “entity conformance” to introduce classification support to Melanee. Potentially matching types are calculated and ordered per their matching scores. Respective suggestions to modelers including messages for each possible matching type about how to fix the current connection instance so that it matches the potential type whenever applicable. The suggestions are made available as so-called “quick-fixes” and I extended this approach with a second-stage dialog that allows modelers to select amongst many fix alternatives. Finally, I evaluate my design using model sets taken from existing papers and a systematic exploration involving 57 different scenarios.</p>

2021 ◽  
Author(s):  
◽  
Xicheng Chang

<p>Traditional object-oriented programming languages only support two logical domain classification levels, i.e. classes and objects. However, if the problem involves more than two classification levels, then to model a multi-level scenario within two classification levels, a mapping approach is required which introduces accidental complexity and destroys the desirable property of “direct mapping”. Therefore “Multi-level modeling” was proposed. It supports an unbounded number of classification levels, that can support “direct mapping” without introducing accidental complexity. Many supporting features have been proposed for “multi-level” modeling such as “deep instantiation”, potency, clabjects, etc. To date most of the research effort was focusing on the entities (clabjects), while the relationships between entities were receiving much less attention and remained under-explored.  The “Melanee” tool was developed to support multi-level modeling both for academics and practitioners. “Melanee” supports an unbounded number of classification levels for domain modeling and it treats relationships like clabjects. It mainly supports “constructive modeling” by creating models using a “top-down” approach, whereas “explanatory modeling”, which is creating models using “bottom-up” approach, is not well supported and lacks support to ensure the integrity of the created models. Hence, to further explore relationships in multi-level modeling and to provide a better modeling environment, there are two main focuses in this thesis: First, based on existing, I further explore relationships between entities and extend the LML (Level Agnostic Modeling Language) supported by Melanee accordingly. Second, I extend Melanee’s functionality to support “explanatory modeling”.  Considering that Melanee is an open source tool I first discuss Melanee’s structure and its principles in order contribute to future extensions to Melanee. The knowledge of Melanee is currently known by its principle developer, Ralph Gerbig, with whom I had contacts in the beginning phase of the “deep-connection” development for advices. Next I use the work proposed in the paper “A Unifying Approach to Connections for Multi-Level Modeling” by Atkinson et al. as a foundation and stepping stone, to further explore relationships between entities. I extended Melanee to support the “Deep-connections” feature by adding potency to connections and their monikers, and further allow connections to have “deep-multiplicities”. I developed these features, as well as respective validation functions to ensure the well-formedness of models.  Then I extended LML so that user-specified type names can be used to indicate the names of types for clabjects. Instead of relying on modelers to fully manually define type- of classification relations between different levels, I introduce “connection conformance” and “entity conformance” to introduce classification support to Melanee. Potentially matching types are calculated and ordered per their matching scores. Respective suggestions to modelers including messages for each possible matching type about how to fix the current connection instance so that it matches the potential type whenever applicable. The suggestions are made available as so-called “quick-fixes” and I extended this approach with a second-stage dialog that allows modelers to select amongst many fix alternatives. Finally, I evaluate my design using model sets taken from existing papers and a systematic exploration involving 57 different scenarios.</p>


2015 ◽  
Vol 131 ◽  
pp. 333-342 ◽  
Author(s):  
Victor Berdonosov ◽  
Alena Zhivotova ◽  
Tatiana Sycheva

e-xacta ◽  
2019 ◽  
Vol 12 (1) ◽  
pp. 29
Author(s):  
Rodrigo Perlin ◽  
Ricardo Tombesi Macedo ◽  
Sidnei Renato Silveira

Ao analisar os esforços para apoiar os processos de ensino e de aprendizagem de algoritmos e lógica de programação, encontram-se estudos envolvendo a aplicação de diferentes ferramentas, tais como o Scratch e o Algo+. Além disso, existem trabalhos que propõem uma reorganização dos conteúdos e a aplicação de metodologias de ensino inovadoras. Nesse contexto, este artigo propõe uma abordagem para apoiar os processos de ensino e de aprendizagem de algoritmos e lógica de programação baseada na teoria construtivista, utilizando a ferramenta P.e.p.y, a qual implementa o conceito de gamificação. Para validar essa proposta, bem como a ferramenta desenvolvida, foi realizado um estudo de caso. A aplicação dos instrumentos no início e no final do estudo de caso, apontam percentuais elevados de compreensão dos conceitos de lógica de programação e da linguagem de programação Python. Os resultados apontam que a aplicação da ferramenta auxiliou os alunos a desenvolver o pensamento computacional, uma área que vem sendo estimulada pela SBC (Sociedade Brasileira de Computação) e que a abordagem proposta estimula os processos de ensino e de aprendizagem por meio da ferramenta P.e.p.y. AbstractBy analyzing efforts to support learning process applied to logic and programming courses, there are studies involving the employment of different tools, such as Scratch and Algo+. Besides, there are works proposing the content reorganization and the employment of innovative teaching methodologies. In this context, this paper proposes an approach to support algorithms learning process based on constructivist theory through the use P.e.p.y tool, which implements the gamification concept. In order to validate this proposal, as well as the implemented tool, it was performed a case study. The instruments application in the beginning and in the end of the case study indicates elevated perceptual of comprehension of logic and Python programming languages concepts. Results indicate that the tool application supported students to develop the computational thinking, a field highly stimulated by the SBC, the Brazilian Computing Society, and that the proposed approach stimulates the learning processes through the P.e.p.y tool employment. 


1999 ◽  
Vol 9 (3) ◽  
pp. 253-286 ◽  
Author(s):  
G. DELZANNO ◽  
D. GALMICHE ◽  
M. MARTELLI

This paper focuses on the use of linear logic as a specification language for the operational semantics of advanced concepts of programming such as concurrency and object-orientation. Our approach is based on a refinement of linear logic sequent calculi based on the proof-theoretic characterization of logic programming. A well-founded combination of higher-order logic programming and linear logic will be used to give an accurate encoding of the traditional features of concurrent object-oriented programming languages, whose corner-stone is the notion of encapsulation.


This chapter presents the computer implementation of the tree-based genetic programming in C# programming language. Since C# is a common object-oriented programming language, with little modification the source code presented in the chapter can be easily transformed into Java or C++ programming languages. The chapter covers all aspects of the implementation: node, chromosome, population, function set, and terminal set class implementations. The chapter is carefully structured, so at the end of the chapter fully working GP computer program will be implemented which can solve regression and multiclass classification problems. The reader should not worry about specific operating system, or development environment, since all code implementations are based on cross-OS and open source integrated development environment visual studio code which can run on Windows, Mac, or Linux.


Author(s):  
Alberto Simões

Teaching computer programming is an important task in the formation of computer scientists. Being a subject taught in the first years of student degrees, need to properly motivate students, so they try, at home, to learn by themselves, complementing that way their classes. This chapter proposes an approach to computer programming teaching based on the construction of videogames, using state of the art game frameworks. The author will show how the task of writing a game using a common framework deals with the basic programming concepts that are usually taught on a first course on computer programming, namely on object oriented programming languages like C# or Java: algebraic operations with variables, methods declaration, objects definition, objects hierarchy and multidimensional arrays. As it will be shown, even the common order of concepts presentation during the course can be kept, although applying them to computer games instead of the usually requested exercises.


Author(s):  
Gopalakrishnan T.R. Nair ◽  
Selvarani R

As the object oriented programming languages and development methodologies moved forward, a significant research effort was spent in defining specific approaches and building models for quality based on object oriented measurements. Software metrics research and practice have helped in building an empirical basis for software engineering. Software developers require objectives and valid measurement schemes for the evaluation and improvisation of product quality from the initial stages of development. Measuring the structural design properties of a software system such as coupling, inheritance, cohesion, and complexity is a promising approach which can lead to an early quality assessment. The class codes and class diagrams are the key artifacts in the development of object oriented (OO) software and it constitutes the backbone of OO development. It also provides a solid foundation for the design and development of software with a greater influence over the system that is implemented. This chapter presents a survey of existing relevant works on class code / class diagram metrics in an elaborate way. Here, a critical review of the existing work is carried out in order to identify the lessons learnt regarding the way these studies are performed and reported. This work facilitates the development of an empirical body of knowledge. The classical approaches based on statistics alone do not provide managers and developers with a decision support scheme for risk assessment and cost reduction. One of the future challenges is to use software metrics in a way that they creatively address and handle the key objectives of risk assessment and the estimation of external quality factors of the software.


Sign in / Sign up

Export Citation Format

Share Document