Jeff Gray | University of Alabama - Tuscaloosa (original) (raw)
Papers by Jeff Gray
Lecture Notes in Computer Science, 2010
Abstract: and Generic Data Types Week 3-4Key example: Sets5. Stacks: Design, Specification, and I... more Abstract: and Generic Data Types Week 3-4Key example: Sets5. Stacks: Design, Specification, and Implementation Week 4-6Specification of unbounded stacksAn introduction to design issues in specificationDefensive and non-defensive specificationsPrimary and secondary stack operationsGuidelinesProblem solving using stacksSpecification of bounded stacksAn implementation of bounded stacks6. An introduction to certification of correctness of implementations Week 7Key example:...
Developing software from models is a growing practice and there exist many model-based tools (e.g... more Developing software from models is a growing practice and there exist many model-based tools (e.g., model editors, model interpreters) for supporting model-driven engineering. Even though these tools facilitate the automation of software engineering tasks and activities, such tools are typically engineered manually. In this paper, a simple technique is described that enables automatic generation of model traversals. Semantic rules can be inserted into a traversal algorithm to provide meaning to the modeling language. The combination of automated traversal generation with attached semantic rules can generate a model interpreter that can translate a model into some other representation.
Abstract. Software development has improved greatly over the past decades with the introduction o... more Abstract. Software development has improved greatly over the past decades with the introduction of new programming languages and tools. However, software development in the context of industrial robotics is dominated by practices that require attention to low-level accidental complexities related to the solution space of a particular domain. Most vendor-specific robotics platforms force the developer to be concerned with many low-level implementation details, which presents a maintenance challenge in the context of making engineering changes to the robotics solution. Additionally, satisfying the timing requirements across the platforms of multiple robot vendors represents an additional challenge. We introduce our work using Domain-Specific Modeling to support the control of industrial robots using models that are at a higher level of abstraction than traditional robot programming languages. Our modeling approach assists robotics developers to plan the schedule, validate timing requi...
Model transformations (MTs) are central artifacts in model-driven engineering (MDE) that define c... more Model transformations (MTs) are central artifacts in model-driven engineering (MDE) that define core operations on models. Like other software artifacts, MTs may possess de-fects (bugs). Some MDE tools provide support for debug-ging. In this paper, we describe an omniscient debugging technique. Our technique enhances stepwise execution sup-port for MTs by providing the ability to traverse, in either direction, the execution history of a live debugging session. We also introduce a proof of concept prototype applying the described technique and a preliminary study of the scalabil-ity, in terms of memory consumption, and performance, in terms of time to execute.
Synthesis of source code from models typically proceeds as a direct mapping from each modeling el... more Synthesis of source code from models typically proceeds as a direct mapping from each modeling element to the generation of a set of intentionally equivalent source code statements. When a library of components is available, the model interpreter can leverage a larger granularity of reuse by generating configurations of the available components. However, it is difficult to synthesize certain properties described in a model (e.g., those related to Quality of Service) due to the closed nature of the components, as available during generation-time. An aspect-oriented solution can provide the ability to instrument components with features that are specified in the model. This paper presents an idea, and example, for generating AspectJ code from domain-specific models.
Abstract. At the end of the 2014 MODELS Educators Symposium, a panel discussed the topic of the u... more Abstract. At the end of the 2014 MODELS Educators Symposium, a panel discussed the topic of the use of MOOCs (Massive Open Online Courses) in model-driven engineering education with the audience. Currently, there are no MOOCs that target software modeling. The panel argued if it would be worthwhile to investigate the idea of using MOOCs for modeling courses. Participants had different positions about the advantages and disadvantages of MOOC use in software engineering and modeling. This paper summarizes our positions on the current use of MOOCs in the teaching of software modeling and on its future use. We identified the need for a MOOC targeted at modeling to evaluate its benefits in the future. We agree about the challenges we face, such as time and costs, when developing qualitative MOOCs. We see possibilities to integrate MOOCs into existing lectures or into flipped-classroom settings. A key focus should be on intensive interaction between students and lecturers.
This paper presents three contributions to the challenges of applying the OMG Model Driven Archit... more This paper presents three contributions to the challenges of applying the OMG Model Driven Architecture (MDA) to develop and deploy distributed real-time and embedded (DRE) applications. First, we motivate our MDA tool called CoSMIC, which is based on the Model Integrated Computing (MIC) paradigm that provides the intellectual foundation for MDA. Second, we describe how CoSMIC’s generative abilities can be used to configure and assemble DRE component middleware required to deploy DRE applications. Third, we delineate the challenges involved in developing CoSMIC. Based on our collective experience developing MIC tools and DRE middleware, we are confident that combining these two paradigms will yield significant advantages in developing model based DRE applications.
Software and Systems Modeling
Software and Systems Modeling
The software reuse practices of many organizations could be described as “ad hoc,” at best. Some ... more The software reuse practices of many organizations could be described as “ad hoc,” at best. Some reuse efforts do not consider even basic concepts such as completely specifying or correctly verifying reusable code. Those organizations that do attempt to specify formally their reusable assets often do so at the expense of neglecting issues concerned with performance. The area of Software Performance Engineering (SPE) provides various measures for determining the responsiveness of the software aspects of a computing system. Applying SPE methods to reusable software would aid future clients in assuring that performance objectives are met. This paper presents some of the basic issues associated with the need for characterizing the performance of reusable components. ____________________________________________________
Software and Systems Modeling
When writing the "2019 State of the Journal Report" at this same time last year, we could not hav... more When writing the "2019 State of the Journal Report" at this same time last year, we could not have predicted the global changes that would beset us with so many challenges from the emergence of the COVID-19 pandemic. Some of us lost loved ones, friends, and colleagues, while the entire world adapted to working from home, participating in remote classrooms, and adopting safety precautions as a new means of daily life. The research community was also affected, with the cessation of travel leading to virtual conferences. Thanks to the heroic efforts of many conference chairs 1 adapting to the quick pace of change, scientific discussions continued, but sometimes in a less personable form. Journals also experienced changes with submissions on the rise, but fewer reviewers available to assist with the evaluation because of personal challenges faced by many. Yet, in the presence of a global pandemic, scientific contributions continued in the software and systems modeling community. The number of SoSyM submissions over the past year saw an increase, while the general health of the journal remains strong. Measures put in place recently, such as the second year of moving to six issues per year, have helped to reduce the time to publication significantly. The Open Access movement is also progressing, with Springer announcing new initiatives to make SoSyM publications more accessible to a broader community of researchers. The rest of this editorial summarizes the progress made by the journal during this unprecedented situation. Our hope is that you remain safe and have a productive 2021!
Model-Driven Engineering has emerged as a software development paradigm that can assist in separa... more Model-Driven Engineering has emerged as a software development paradigm that can assist in separating the issues of the problem space of a software system from the complexities of implementation in the solution space. As software systems have become more complex, a need for multiple abstractions to describe a single system has emerged. The development teams of these massive systems are also often geographically distributed. These emerging concerns for MDE systems have led to a need for a heterogeneous, and potentially globally distributed, modeling environment. As these modeling environments are being explored, new challenges are being uncovered. In this paper, we discuss the need for debugging support in heterogeneous, globally distributed modeling systems and identify a number of challenges related to debugging that must be overcome to support this evolving paradigm for software development.
J. Res. Pract. Inf. Technol., 2006
A common task that is often needed in many software development tools is the capability to search... more A common task that is often needed in many software development tools is the capability to search the artifact that is being created in a flexible and efficient manner. However, this capability is typically absent in meta-programmable modeling tools, which can be a serious disadvantage as the size of a model increases. As a remedy, we introduce a method to search domain models using XPath – a World Wide Web Consortium (W3C) standard that uses logical predicates to search an XML document. In this paper, an XPath search engine is described that traverses the internal representation of a modeling tool (rather than an XML document) and returns those model entities that match the XPath predicate expression. A set of search queries are demonstrated on a case study.
Synthesis of source code from models typically proceeds as a direct mapping from each modeling el... more Synthesis of source code from models typically proceeds as a direct mapping from each modeling element to the generation of a set of intentionally equivalent source code statements. When a library of components is available, the model interpreter can leverage a larger granularity of reuse by generating configurations of the available components. However, it is difficult to synthesize certain properties described in a model (e.g., those related to Quality of Service) due to the closed nature of the components, as available during generation-time. An aspect-oriented solution can provide the ability to instrument components with features that are specified in the model. This paper presents an idea, and example, for generating AspectJ code from domain-specific models.
General-purpose computing on GPUs (graphics processing units) has received much attention lately ... more General-purpose computing on GPUs (graphics processing units) has received much attention lately due to the benefits of stream processing to exploit limitations of parallel processing. However, programming GPUs has several challenges with respect to the amount of effort spent in combining the kernel functional code of an application with the parallel concerns offered by APIs from various GPUs. This paper introduces our approach for raising the level of abstaction for programming GPUs. We have implemented an abstract API that can be used with the Compute Unified Device Architecture (CUDA) and the Open Compute Language (OpenCL) frameworks, so that the mechanical steps involved in writing the GPU code are abstracted in separate modules. The approach involves static code analysis and generative programming techniques for automatically generating the host code required for CUDA and OpenCL frameworks from minimal specifications provided by the programmers. The generated code resembles the...
The problems addressed by Model-Driven Engineering (MDE) approaches are increasingly complex, hen... more The problems addressed by Model-Driven Engineering (MDE) approaches are increasingly complex, hence performance and scalability of model transformations are gaining importance. In previous work, we introduced LinTra, which is a platform for executing out-place model transformations in parallel. The parallel execution of LinTra is based on the Linda coordination language, where high-level model transformation languages (MTLs) are compiled to LinTra and eventually executed through Linda. In order to dene the compilation modularly, this paper presents a minimal, yet sucient, collection of primitive operators that can be composed to (re)construct any out-place, unidirectional MTL.
Many software evolution and maintenance problems can be addressed through techniques of program t... more Many software evolution and maintenance problems can be addressed through techniques of program transformation. To facilitate development of language tools assisting software evolution and maintenance, we created a Domain-Specific Language (DSL), named SPOT (Specifying PrOgram Transformation), which can be used to raise the abstraction level of code modification. The design goal is to automate source-tosource program transformations through techniques of code generation, so that developers only need to specify desired transformations using constructs provided by the DSL while being oblivious to the details about how the transformations are performed. The paper provides a general motivation for using program transformation techniques and explains the design details of SPOT. In addition, we present a case study to illustrate how SPOT can be used to build a code coverage tool for applications implemented in different programming languages.
1. “In fact, modeling is at the heart of almost any engineering discipline. Thus, it is not surpr... more 1. “In fact, modeling is at the heart of almost any engineering discipline. Thus, it is not surprising that our engineering colleagues have developed a detailed portfolio of modeling techniques to describe their systems in various perspectives, viewpoints, and abstractions.” 2. “However, the state-of-the-art in systems modeling has several challenges, where each modeling aspect and view is often assisted by an individual modeling and analysis tool. Data exchange between the tools is complicated, even though mostly automated, but suffers from concerns about robustness, completeness of the mappings between the models, as well as regular version upgrades of tools. A second problem is that these mappings between models are not easy to standardize, because different projects use the same modeling languages in different forms (semantics), which enforces configurable mappings or individually developed translations per project.” 3. “Traditional engineers use system models to design and unde...
When writing the “2019 State of the Journal Report” at this same time last year, we could not hav... more When writing the “2019 State of the Journal Report” at this same time last year, we could not have predicted the global changes that would beset us with so many challenges from the emergence of the COVID-19 pandemic. Some of us lost loved ones, friends, and colleagues, while the entire world adapted to working from home, participating in remote classrooms, and adopting safety precautions as a new means of daily life. The research community was also affected, with the cessation of travel leading to virtual conferences. Thanks to the heroic efforts of many conference chairs1 adapting to the quick pace of change, scientific discussions continued, but sometimes in a less personable form. Journals also experienced changes with submissions on the rise, but fewer reviewers available to assist with the evaluation because of personal challenges faced by many. Yet, in the presence of a global pandemic, scientific contributions continued in the software and systems modeling community. The numb...
Lecture Notes in Computer Science, 2010
Abstract: and Generic Data Types Week 3-4Key example: Sets5. Stacks: Design, Specification, and I... more Abstract: and Generic Data Types Week 3-4Key example: Sets5. Stacks: Design, Specification, and Implementation Week 4-6Specification of unbounded stacksAn introduction to design issues in specificationDefensive and non-defensive specificationsPrimary and secondary stack operationsGuidelinesProblem solving using stacksSpecification of bounded stacksAn implementation of bounded stacks6. An introduction to certification of correctness of implementations Week 7Key example:...
Developing software from models is a growing practice and there exist many model-based tools (e.g... more Developing software from models is a growing practice and there exist many model-based tools (e.g., model editors, model interpreters) for supporting model-driven engineering. Even though these tools facilitate the automation of software engineering tasks and activities, such tools are typically engineered manually. In this paper, a simple technique is described that enables automatic generation of model traversals. Semantic rules can be inserted into a traversal algorithm to provide meaning to the modeling language. The combination of automated traversal generation with attached semantic rules can generate a model interpreter that can translate a model into some other representation.
Abstract. Software development has improved greatly over the past decades with the introduction o... more Abstract. Software development has improved greatly over the past decades with the introduction of new programming languages and tools. However, software development in the context of industrial robotics is dominated by practices that require attention to low-level accidental complexities related to the solution space of a particular domain. Most vendor-specific robotics platforms force the developer to be concerned with many low-level implementation details, which presents a maintenance challenge in the context of making engineering changes to the robotics solution. Additionally, satisfying the timing requirements across the platforms of multiple robot vendors represents an additional challenge. We introduce our work using Domain-Specific Modeling to support the control of industrial robots using models that are at a higher level of abstraction than traditional robot programming languages. Our modeling approach assists robotics developers to plan the schedule, validate timing requi...
Model transformations (MTs) are central artifacts in model-driven engineering (MDE) that define c... more Model transformations (MTs) are central artifacts in model-driven engineering (MDE) that define core operations on models. Like other software artifacts, MTs may possess de-fects (bugs). Some MDE tools provide support for debug-ging. In this paper, we describe an omniscient debugging technique. Our technique enhances stepwise execution sup-port for MTs by providing the ability to traverse, in either direction, the execution history of a live debugging session. We also introduce a proof of concept prototype applying the described technique and a preliminary study of the scalabil-ity, in terms of memory consumption, and performance, in terms of time to execute.
Synthesis of source code from models typically proceeds as a direct mapping from each modeling el... more Synthesis of source code from models typically proceeds as a direct mapping from each modeling element to the generation of a set of intentionally equivalent source code statements. When a library of components is available, the model interpreter can leverage a larger granularity of reuse by generating configurations of the available components. However, it is difficult to synthesize certain properties described in a model (e.g., those related to Quality of Service) due to the closed nature of the components, as available during generation-time. An aspect-oriented solution can provide the ability to instrument components with features that are specified in the model. This paper presents an idea, and example, for generating AspectJ code from domain-specific models.
Abstract. At the end of the 2014 MODELS Educators Symposium, a panel discussed the topic of the u... more Abstract. At the end of the 2014 MODELS Educators Symposium, a panel discussed the topic of the use of MOOCs (Massive Open Online Courses) in model-driven engineering education with the audience. Currently, there are no MOOCs that target software modeling. The panel argued if it would be worthwhile to investigate the idea of using MOOCs for modeling courses. Participants had different positions about the advantages and disadvantages of MOOC use in software engineering and modeling. This paper summarizes our positions on the current use of MOOCs in the teaching of software modeling and on its future use. We identified the need for a MOOC targeted at modeling to evaluate its benefits in the future. We agree about the challenges we face, such as time and costs, when developing qualitative MOOCs. We see possibilities to integrate MOOCs into existing lectures or into flipped-classroom settings. A key focus should be on intensive interaction between students and lecturers.
This paper presents three contributions to the challenges of applying the OMG Model Driven Archit... more This paper presents three contributions to the challenges of applying the OMG Model Driven Architecture (MDA) to develop and deploy distributed real-time and embedded (DRE) applications. First, we motivate our MDA tool called CoSMIC, which is based on the Model Integrated Computing (MIC) paradigm that provides the intellectual foundation for MDA. Second, we describe how CoSMIC’s generative abilities can be used to configure and assemble DRE component middleware required to deploy DRE applications. Third, we delineate the challenges involved in developing CoSMIC. Based on our collective experience developing MIC tools and DRE middleware, we are confident that combining these two paradigms will yield significant advantages in developing model based DRE applications.
Software and Systems Modeling
Software and Systems Modeling
The software reuse practices of many organizations could be described as “ad hoc,” at best. Some ... more The software reuse practices of many organizations could be described as “ad hoc,” at best. Some reuse efforts do not consider even basic concepts such as completely specifying or correctly verifying reusable code. Those organizations that do attempt to specify formally their reusable assets often do so at the expense of neglecting issues concerned with performance. The area of Software Performance Engineering (SPE) provides various measures for determining the responsiveness of the software aspects of a computing system. Applying SPE methods to reusable software would aid future clients in assuring that performance objectives are met. This paper presents some of the basic issues associated with the need for characterizing the performance of reusable components. ____________________________________________________
Software and Systems Modeling
When writing the "2019 State of the Journal Report" at this same time last year, we could not hav... more When writing the "2019 State of the Journal Report" at this same time last year, we could not have predicted the global changes that would beset us with so many challenges from the emergence of the COVID-19 pandemic. Some of us lost loved ones, friends, and colleagues, while the entire world adapted to working from home, participating in remote classrooms, and adopting safety precautions as a new means of daily life. The research community was also affected, with the cessation of travel leading to virtual conferences. Thanks to the heroic efforts of many conference chairs 1 adapting to the quick pace of change, scientific discussions continued, but sometimes in a less personable form. Journals also experienced changes with submissions on the rise, but fewer reviewers available to assist with the evaluation because of personal challenges faced by many. Yet, in the presence of a global pandemic, scientific contributions continued in the software and systems modeling community. The number of SoSyM submissions over the past year saw an increase, while the general health of the journal remains strong. Measures put in place recently, such as the second year of moving to six issues per year, have helped to reduce the time to publication significantly. The Open Access movement is also progressing, with Springer announcing new initiatives to make SoSyM publications more accessible to a broader community of researchers. The rest of this editorial summarizes the progress made by the journal during this unprecedented situation. Our hope is that you remain safe and have a productive 2021!
Model-Driven Engineering has emerged as a software development paradigm that can assist in separa... more Model-Driven Engineering has emerged as a software development paradigm that can assist in separating the issues of the problem space of a software system from the complexities of implementation in the solution space. As software systems have become more complex, a need for multiple abstractions to describe a single system has emerged. The development teams of these massive systems are also often geographically distributed. These emerging concerns for MDE systems have led to a need for a heterogeneous, and potentially globally distributed, modeling environment. As these modeling environments are being explored, new challenges are being uncovered. In this paper, we discuss the need for debugging support in heterogeneous, globally distributed modeling systems and identify a number of challenges related to debugging that must be overcome to support this evolving paradigm for software development.
J. Res. Pract. Inf. Technol., 2006
A common task that is often needed in many software development tools is the capability to search... more A common task that is often needed in many software development tools is the capability to search the artifact that is being created in a flexible and efficient manner. However, this capability is typically absent in meta-programmable modeling tools, which can be a serious disadvantage as the size of a model increases. As a remedy, we introduce a method to search domain models using XPath – a World Wide Web Consortium (W3C) standard that uses logical predicates to search an XML document. In this paper, an XPath search engine is described that traverses the internal representation of a modeling tool (rather than an XML document) and returns those model entities that match the XPath predicate expression. A set of search queries are demonstrated on a case study.
Synthesis of source code from models typically proceeds as a direct mapping from each modeling el... more Synthesis of source code from models typically proceeds as a direct mapping from each modeling element to the generation of a set of intentionally equivalent source code statements. When a library of components is available, the model interpreter can leverage a larger granularity of reuse by generating configurations of the available components. However, it is difficult to synthesize certain properties described in a model (e.g., those related to Quality of Service) due to the closed nature of the components, as available during generation-time. An aspect-oriented solution can provide the ability to instrument components with features that are specified in the model. This paper presents an idea, and example, for generating AspectJ code from domain-specific models.
General-purpose computing on GPUs (graphics processing units) has received much attention lately ... more General-purpose computing on GPUs (graphics processing units) has received much attention lately due to the benefits of stream processing to exploit limitations of parallel processing. However, programming GPUs has several challenges with respect to the amount of effort spent in combining the kernel functional code of an application with the parallel concerns offered by APIs from various GPUs. This paper introduces our approach for raising the level of abstaction for programming GPUs. We have implemented an abstract API that can be used with the Compute Unified Device Architecture (CUDA) and the Open Compute Language (OpenCL) frameworks, so that the mechanical steps involved in writing the GPU code are abstracted in separate modules. The approach involves static code analysis and generative programming techniques for automatically generating the host code required for CUDA and OpenCL frameworks from minimal specifications provided by the programmers. The generated code resembles the...
The problems addressed by Model-Driven Engineering (MDE) approaches are increasingly complex, hen... more The problems addressed by Model-Driven Engineering (MDE) approaches are increasingly complex, hence performance and scalability of model transformations are gaining importance. In previous work, we introduced LinTra, which is a platform for executing out-place model transformations in parallel. The parallel execution of LinTra is based on the Linda coordination language, where high-level model transformation languages (MTLs) are compiled to LinTra and eventually executed through Linda. In order to dene the compilation modularly, this paper presents a minimal, yet sucient, collection of primitive operators that can be composed to (re)construct any out-place, unidirectional MTL.
Many software evolution and maintenance problems can be addressed through techniques of program t... more Many software evolution and maintenance problems can be addressed through techniques of program transformation. To facilitate development of language tools assisting software evolution and maintenance, we created a Domain-Specific Language (DSL), named SPOT (Specifying PrOgram Transformation), which can be used to raise the abstraction level of code modification. The design goal is to automate source-tosource program transformations through techniques of code generation, so that developers only need to specify desired transformations using constructs provided by the DSL while being oblivious to the details about how the transformations are performed. The paper provides a general motivation for using program transformation techniques and explains the design details of SPOT. In addition, we present a case study to illustrate how SPOT can be used to build a code coverage tool for applications implemented in different programming languages.
1. “In fact, modeling is at the heart of almost any engineering discipline. Thus, it is not surpr... more 1. “In fact, modeling is at the heart of almost any engineering discipline. Thus, it is not surprising that our engineering colleagues have developed a detailed portfolio of modeling techniques to describe their systems in various perspectives, viewpoints, and abstractions.” 2. “However, the state-of-the-art in systems modeling has several challenges, where each modeling aspect and view is often assisted by an individual modeling and analysis tool. Data exchange between the tools is complicated, even though mostly automated, but suffers from concerns about robustness, completeness of the mappings between the models, as well as regular version upgrades of tools. A second problem is that these mappings between models are not easy to standardize, because different projects use the same modeling languages in different forms (semantics), which enforces configurable mappings or individually developed translations per project.” 3. “Traditional engineers use system models to design and unde...
When writing the “2019 State of the Journal Report” at this same time last year, we could not hav... more When writing the “2019 State of the Journal Report” at this same time last year, we could not have predicted the global changes that would beset us with so many challenges from the emergence of the COVID-19 pandemic. Some of us lost loved ones, friends, and colleagues, while the entire world adapted to working from home, participating in remote classrooms, and adopting safety precautions as a new means of daily life. The research community was also affected, with the cessation of travel leading to virtual conferences. Thanks to the heroic efforts of many conference chairs1 adapting to the quick pace of change, scientific discussions continued, but sometimes in a less personable form. Journals also experienced changes with submissions on the rise, but fewer reviewers available to assist with the evaluation because of personal challenges faced by many. Yet, in the presence of a global pandemic, scientific contributions continued in the software and systems modeling community. The numb...