João Araújo, Nelly Condori-Fernández, N. Bencomo, T. Oliveira, J. Vara, I. Brito, M. Goulão, S. Matalonga
{"title":"Special Section on the 18th Ibero-American Conference on Software Engineering (CIBSE'15)","authors":"João Araújo, Nelly Condori-Fernández, N. Bencomo, T. Oliveira, J. Vara, I. Brito, M. Goulão, S. Matalonga","doi":"10.5381/jot.2016.15.3.e1","DOIUrl":"https://doi.org/10.5381/jot.2016.15.3.e1","url":null,"abstract":"","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"44 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129356571","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A Collaborative Approach to Describe the Domain Language through the Language Extended Lexicon","authors":"L. Antonelli, G. Rossi, Alejandro Oliveros","doi":"10.5381/jot.2016.15.3.a3","DOIUrl":"https://doi.org/10.5381/jot.2016.15.3.a3","url":null,"abstract":"Articulo publicado en: Journal of Object Technology, 15(3) June 2016. DOI: 10.5381/jot.2016.15.3.a3","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130092047","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Clément Béra, E. Miranda, M. Denker, Stéphane Ducasse
{"title":"Practical Validation of Bytecode to Bytecode JIT Compiler Dynamic Deoptimization","authors":"Clément Béra, E. Miranda, M. Denker, Stéphane Ducasse","doi":"10.5381/JOT.2016.15.2.A1","DOIUrl":"https://doi.org/10.5381/JOT.2016.15.2.A1","url":null,"abstract":"Speculative inlining in just-in-time compilers enables many performance optimizations. However, it also introduces significant complexity. The compiler optimizations themselves, as well as the deoptimization mechanism are complex and error prone. To stabilize our bytecode to bytecode just-in-time compiler, we designed a new approach to validate the correctness of dynamic deoptimization. The approach consists of the symbolic execution of an optimized and an unop-timized bytecode compiled method side by side, deoptimizing the abstract stack at each deoptimization point (where dynamic deoptimization is possible) and comparing the deoptimized and unoptimized abstract stack to detect bugs. The implementation of our approach generated tests for several hundred thousands of methods, which are now available to be run automatically after each commit.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"78 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-04-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134083433","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Dependency Injection with Static Analysis and Context-Aware Policy","authors":"Michael D. Ekstrand, Michael Ludwig","doi":"10.5381/jot.2016.15.5.a1","DOIUrl":"https://doi.org/10.5381/jot.2016.15.5.a1","url":null,"abstract":"The dependency injection design pattern improves the configurability, testability, and maintainability of object-oriented applications by decoupling components from both the concrete implementations of their dependencies and the strategy employed to select those implementations. In recent years, a number of libraries have emerged that provide automated support for constructing and connecting dependency-injected objects. Our experience developing systems with these tools has led us to identify two shortcomings of existing dependency injection solutions: the mechanisms for specifying component implementations often make it difficult to write and configure systems of arbitrarily-composable components, and the toolkit implementations often provide limited capabilities for inspection and static analysis of the object graphs of dependency-injected systems. We present Grapht, an new dependency injection container for Java that addresses these issues by providing context-aware policy, allowing component implementation decisions to depend on where in the object graph a component is required, and using a design that allows for static analysis of configured object graphs. To achieve its objectives, Grapht is built on a mathematical representation of dependency injection and object graphs that facilitates static analysis and straightforward implementation, and forms a basis for further consideration of the capabilities of dependency injection. The mathematical representation includes context-aware policy that we show to be strictly more expressive than the qualified dependencies used in many current toolkits. We demonstrate the utility of our approach with a case study showing how Grapht has aided in the development of the LensKit recommender systems toolkit.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122138326","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Nick Papoulias, N. Bouraqadi, L. Fabresse, Stéphane Ducasse, M. Denker
{"title":"Mercury: Properties and Design of a Remote Debugging Solution using Reflection","authors":"Nick Papoulias, N. Bouraqadi, L. Fabresse, Stéphane Ducasse, M. Denker","doi":"10.5381/jot.2015.14.2.a1","DOIUrl":"https://doi.org/10.5381/jot.2015.14.2.a1","url":null,"abstract":"Remote debugging facilities are a technical necessity for devices that lack appropriate input/output interfaces (display, keyboard, mouse) for program- ming (e.g., smartphones, mobile robots) or are simply unreachable for local development (e.g., cloud-servers). Yet remote debugging solutions can prove awkward to use due to re-deployments. Empirical studies show us that on aver- age 10.5 minutes per coding hour (over five 40-hour work weeks per year) are spent for re-deploying applications (including re-deployments during debugging). Moreover current solutions lack facilities that would otherwise be available in a local setting because it is difficult to reproduce them remotely. Our work identifies three desirable properties that a remote debugging solution should exhibit, namely: run-time evolution, semantic instrumentation and adaptable distribution. Given these properties we propose and validate Mercury, a remote debugging model based on reflection. Mercury supports run-time evolution through a causally connected remote meta-level, semantic instrumentation through the reification of the underlying execution environment and adaptable distribution through a modular architecture of the debugging middleware.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"218 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-09-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127842703","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Moussa Amrani, B. Combemale, L. Lucio, Gehan M. K. Selim, J. Dingel, Yves Le Traon, H. Vangheluwe, J. Cordy
{"title":"Formal Verification Techniques for Model Transformations: A Tridimensional Classification","authors":"Moussa Amrani, B. Combemale, L. Lucio, Gehan M. K. Selim, J. Dingel, Yves Le Traon, H. Vangheluwe, J. Cordy","doi":"10.5381/jot.2015.14.3.a1","DOIUrl":"https://doi.org/10.5381/jot.2015.14.3.a1","url":null,"abstract":"In Model Driven Engineering (MDE), models are first-class citizens, and model transformation is MDE's \"heart and soul\". Since model transformations are executed for a family of (conforming) models, their validity becomes a crucial issue. This paper proposes to explore the question of the formal verification of model transformation properties through a tridimensional approach: the transformation involved, the properties of interest addressed, and the formal verification techniques used to establish the properties. This work is intended for a double audience. For newcomers, it provides a tutorial introduction to the field of formal verification of model transformations. For readers more familiar with formal methods and model transformations, it proposes a literature review (although not systematic) of the contributions of the field. Overall, this work allows to better understand the evolution, trends and current practice in the domain of model transformation verification. This work opens an interesting research line for building an engineering of model transformation verification guided by the notion of model transformation intent.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126454151","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"BPMN Profile for Operational Requirements","authors":"C. Bock, Raphael Barbau, A. Narayanan","doi":"10.5381/jot.2014.13.2.a1","DOIUrl":"https://doi.org/10.5381/jot.2014.13.2.a1","url":null,"abstract":"An important aspect of systems and products is how they interact with their environment, including how they are operated. Behaviors external to systems usually involve people not trained in the details of how systems are designed and built, but who need to specify or at least understand the procedures they will be performing. People involved in external behaviors prefer dierent languages for specifying and learning about procedures than languages used by engineers designing the systems themselves. Significant ineciency arises when these languages are not integrated. An emerging trend is for external behaviors to be defined in the Business Process Model and Notation, especially operational requirements, while system designs are specified in the Unified Modeling Language, or extensions to it, such as the Systems Modeling Language. This paper describes an integration of BPMN and UML as standardized by the Object Management Group, providing a detailed comparison of what the languages imply for physical systems and individual people involved in operation, maintenance, and other activities.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-06-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127435083","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Mariano Martinez Peck, N. Bouraqadi, M. Denker, Stéphane Ducasse, L. Fabresse
{"title":"Marea: An Efficient Application-Level Object Graph Swapper","authors":"Mariano Martinez Peck, N. Bouraqadi, M. Denker, Stéphane Ducasse, L. Fabresse","doi":"10.5381/jot.2013.12.1.a2","DOIUrl":"https://doi.org/10.5381/jot.2013.12.1.a2","url":null,"abstract":"During the execution of object-oriented applications, several millions of objects are created, used and then collected if they are not referenced. Prob- lems appear when objects are unused but cannot be garbage-collected because they are still referenced from other objects. This is an issue because those ob- jects waste primary memory and applications use more primary memory than they actually need. We claim that relying on the operating system's (OS) virtual memory is not always enough since it cannot take into account the domain and structure of applications. At the same time, applications have no easy way to parametrize nor cooperate with memory management. In this paper, we present Marea, an efficient application-level object graph swapper for object-oriented programming languages. Its main goal is to offer the programmer a novel so- lution to handle application-level memory. Developers can instruct our system to release primary memory by swapping out unused yet referenced objects to secondary memory. Our approach has been qualitatively and quantitatively val- idated. Our experiments and benchmarks on real-world applications show that Marea can reduce the memory footprint between 23% and 36%.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-01-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129535829","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}