Rick Salay
University of Toronto
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Rick Salay.
Software and Systems Modeling | 2016
Levi Lúcio; Moussa Amrani; Juergen Dingel; Leen Lambers; Rick Salay; Gehan M. K. Selim; Eugene Syriani; Manuel Wimmer
The notion of model transformation intent is proposed to capture the purpose of a transformation. In this paper, a framework for the description of model transformation intents is defined, which includes, for instance, a description of properties a model transformation has to satisfy to qualify as a suitable realization of an intent. Several common model transformation intents are identified, and the framework is used to describe six of them in detail. A case study from the automotive industry is used to demonstrate the usefulness of the proposed framework for identifying crucial properties of model transformations with different intents and to illustrate the wide variety of model transformation intents that an industrial model-driven software development process typically encompasses.
ieee international conference on requirements engineering | 2012
Rick Salay; Marsha Chechik; Jennifer Horkoff
Models are good at expressing information that is known but do not typically have support for representing what information a modeler does not know at a particular phase in the software development process. Partial models address this by being able to precisely represent uncertainty about model content. In previous work, we developed a general approach for defining partial models and using them to reason about design models containing uncertainty. In this paper, we show how to apply our approach to managing uncertainty in requirements by providing support for uncertainty capture, elaboration, and change. In particular, we address the problem of specifying uncertainty within a requirements model, refining a model as uncertainty reduces, providing meaning to traceability relations between models containing uncertainty, and propagating uncertainty-reducing changes between related models. We describe the implementation of uncertainty management within the Model Management Tool Framework and illustrate our approach using two examples.
conference on advanced information systems engineering | 2009
Rick Salay; John Mylopoulos; Steve M. Easterbrook
The creation and manipulation of multiple related models is common in software development, however there are few tools that help to manage such collections of models. We propose a framework in which different types of model relationships --- such as submodelOfand refinementOf --- can be formally defined and used with a new type of model, called a macromodel , to express the required relationships between models at a high-level of abstraction. Macromodels can be used to support the development, comprehension, consistency management and evolution of sets of related models. We illustrate the framework with a detailed example from the telecommunications industry and describe a prototype implementation.
model driven engineering languages and systems | 2013
Michalis Famelis; Rick Salay; Alessio Di Sandro; Marsha Chechik
Model transformation techniques typically operate under the assumption that models do not contain uncertainty. In the presence of uncertainty, this forces modelers to either postpone working or to artificially remove it, with negative impacts on software cost and quality. Instead, we propose a technique to adapt existing model transformations so that they can be applied to models even if they contain uncertainty, thus enabling the use of transformations earlier. Building on earlier work, we show how to adapt graph rewrite-based model transformations to correctly operate on May uncertainty, a technique that allows explicit uncertainty to be expressed in any modeling language. We evaluate our approach on the classic Object-Relational Mapping use case, experimenting with models of varying levels of uncertainty.
Proceedings of the First Workshop on the Analysis of Model Transformations | 2012
Moussa Amrani; Jürgen Dingel; Leen Lambers; Levi Lúcio; Rick Salay; Gehan M. K. Selim; Eugene Syriani; Manuel Wimmer
We report on our ongoing effort to build a catalog of model transformation intents that describes common uses of model transformations in Model-Driven Engineering (MDE) and the properties they must or may possess. We present a preliminary list of intents and common properties. One intent (transformation for analysis) is described in more detail and the description is used to identify transformations with the same intent in a case study on the use of MDE techniques for the development of control software for a power window.
eclipse technology exchange | 2007
Rick Salay; Marsha Chechik; Steve M. Easterbrook; Zinovy Diskin; Pete McCormick; Shiva Nejati; Mehrdad Sabetzadeh; Petcharat Viriyakattiyaporn
Software development involves the use of many models and Eclipse provides an ideal infrastructure for building tools to support the use of models. While there is a large selection of tools available for working with individual models, there is less support for working with collections of models, as for example, when a collection of models from different sources must be merged. We have identified the problem of working with collections of related models in software development as the Software Model Management (SMM) problem - a close cousin of the Model Management problem in the area of metadata management. In the course of building SMM tools to address particular scenarios, we have observed that they share common foundations both at the theoretical and implementation levels. In this paper, we describe the vision and initial development of a framework that implements these common foundations in order to facilitate and accelerate the development of Eclipse-based SMM tools.
Proceedings of the 2009 ICSE Workshop on Modeling in Software Engineering | 2009
Marsha Chechik; Winnie Lai; Shiva Nejati; Jordi Cabot; Zinovy Diskin; Steve M. Easterbrook; Mehrdad Sabetzadeh; Rick Salay
Software development is an evolutionary process. Requirements of a system are often incomplete or inconsistent, and hence need to be extended or modified over time. Customers may demand new services or goals that often lead to changes in the design and implementation of the system. These changes are typically very expensive. Even if only local modifications are needed, manually applying them is time-consuming and and error-prone. Thus, it is essential to assist users in propagating changes across requirements, design, and implementation artifacts. In this paper, we take a model-based approach and provide an automated algorithm for propagating changes between requirements and design models. The key feature of our work is explicating relationships between models at the requirements and design levels. We provide conditions for checking validity of these relationships both syntactically and semantically. We show how our algorithm utilizes the relationships between models at different levels to localize the regions that should be modified. We use the IBM Trade 6 case study to demonstrate our approach.
fundamental approaches to software engineering | 2013
Rick Salay; Marsha Chechik
Uncertainty is ubiquitous in software engineering; however, it has been typically handled in adhoc and informal ways within software models. Automated change propagation is recognized as a key tool for managing the accidental complexity that comes with multiple interrelated models. In this paper, we address change propagation in the context of model uncertainty and consider the case where changes in the level of uncertainty in a model can be propagated to related models. We define such uncertainty change propagation using our earlier formalization and develop automated propagation algorithms using an SMT solver. A preliminary evaluation shows that the approach is feasible.
international conference on software testing verification and validation | 2012
Rick Salay; Marsha Chechik
Models are good at expressing information that is known but do not typically have support for representing what information a modeler does not know or does not care about at a particular stage in the software development process. Partial models address this by being able to precisely represent uncertainty about model content. In previous work, we have defined a general approach for defining partial model semantics using a first order logic encoding. In this paper, we use this FO encoding to formally define the conditions for partial model refinement in the manner of the refinement of algebraic specifications. We use this approach to verify both manual refinements and automated transformation-based refinements. We illustrate our approach using example models and transformations.
model driven engineering languages and systems | 2016
Sahar Kokaly; Rick Salay; Valentin Cassano; T. S. E. Maibaum; Marsha Chechik
Evolution in software systems is a necessary activity that occurs due to fixing bugs, adding functionality or improving system quality. Systems often need to be shown to comply with regulatory standards. Along with demonstrating compliance, an artifact, called an assurance case, is often produced to show that the system indeed satisfies the property imposed by the standard (e.g., safety, privacy, security, etc.). Since each of the system, the standard, and the assurance case can be presented as a model, we propose the extension and use of traditional model management operators to aid in the reuse of parts of the assurance case when the system undergoes an evolution. Specifically, we present a model management approach that eventually produces a partial evolved assurance case and guidelines to help the assurance engineer in completing it. We demonstrate how our approach works on an automotive subsystem regulated by the ISO 26262 standard.