publications: - title: "Seaside --- a Multiple Control Flow Web Application Framework" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Adrian Lienhard" link: "http://www.adrian-lienhard.ch" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" year: "2004" month: "sep" abstract: "Developing web applications is difficult since (1) the client-server relationship is asymmetric: the server cannot update clients but only responds to client requests and (2) the navigation facilities of web browsers lead to a situation where servers cannot control the state of the clients. Page-centric web application frameworks fail to offer adequate solutions to model control flow at a high-level of abstraction. Developers have to work manually around the shortcomings of the HTTP protocol. Some approaches offer better abstractions by composing an application out of components, however they still fail to offer modeling control flow at a high level. Continuation-based approaches solve this problem by providing the facilities to model a control flow over several pages with one piece of code. However combining multiple flows inside the same page is difficult. This article presents Seaside. Seaside is a framework which combines an object-oriented approach with a continuation-based one. A Seaside application is built out of components (i.e., objects) and the logic of the application benefits from the continuation-based program flow infrastructure. Seaside offers a unique way to have multiple control flows on a page, one for each component. This enables the developer to write components that are highly reusable and that can be used to compose complex web applications with higher quality in less time." links: "url": "http://scg.unibe.ch/archive/papers/Duca04eSeaside.pdfhttp://www.iam.unibe.ch/publikationen/techreports/2004/iam-04-008" tags: - "object-oriented programming" - "reusable components" - "rule-based" - "meta programming" - "application framework" - "meta-model" - "modeling" - "protocol" - "reuse" - "data-flow programming" - "data-flow" - "object-role modeling" - "logic programming" - "web applications" - "subject-oriented programming" - "logic" - "abstraction" - "Meta-Environment" - "systematic-approach" - "feature-oriented programming" - "meta-objects" researchr: "https://researchr.org/publication/Duca04e" cites: 0 citedby: 0 booktitle: "Proceedings of 12th International Smalltalk Conference (ISC'04)" kind: "inproceedings" key: "Duca04e" - title: "Logic and Trace-based Object-Oriented Application Testing" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Michael Freidig" link: "https://researchr.org/alias/michael-freidig" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2004" abstract: "Due to the size and the extreme complexity of legacy systems, it is nearly impossible to write from scratch tests before refactoring them. In addition object-oriented legacy systems present specific requirements to test them. Indeed late-binding allow subclasses to change fundamental aspects of the superclass code and in particular call flows. Moreover Object-oriented programming promotes a distribution of the responsibilities to multiple entities leading to complex scenario to be tested. In such a context one of the few trustable source of information is the execution of the application itself. Traditional forward engineering approaches such as unit testing do not really provide adequate solution to this problem. Therefore there is a need for a more expressive way of testing the execution of object-oriented applications. We propose to represent the trace of object-oriented applications as logic facts and express tests over the trace. This way complex sequences of message exchanges, sequence matching, or expression of negative information are expressed in compact form. We validated our approach by implementing TestLog a prototype tool and testing the Moose reengineering environment and a meta-interpreter." links: "url": "http://www.iam.unibe.ch/~scg/Archive/Papers/Duca04bTestLogicWoor04.pdf" tags: - "data validation" - "object-oriented programming" - "rule-based" - "meta programming" - "meta-model" - "interpreter" - "model refactoring" - "refactoring" - "testing" - "extreme programming" - "requirements engineering" - "data-flow programming" - "data-flow" - "source-to-source" - "model-driven engineering" - "logic programming" - "aspect oriented programming" - "rule-based refactoring" - "programming" - "subject-oriented programming" - "context-aware" - "logic" - "Meta-Environment" - "systematic-approach" - "feature-oriented programming" - "open-source" - "meta-objects" researchr: "https://researchr.org/publication/Duca04b" cites: 0 citedby: 0 booktitle: "Fifth International Workshop on Object-Oriented Reengineering (WOOR 2004)" kind: "inproceedings" key: "Duca04b" - title: "Traits: Composable Units of Behaviour" author: - name: "Nathanael Schärli" link: "https://researchr.org/alias/nathanael-sch%C3%A4rli" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Andrew P. Black" link: "https://researchr.org/alias/andrew-p.-black" year: "2003" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=2743&spage=248" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=2743&spage=248" researchr: "https://researchr.org/publication/ScharliDNB03" cites: 0 citedby: 0 pages: "248-274" booktitle: "ECOOP" kind: "inproceedings" key: "ScharliDNB03" - title: "Dynamic Languages and Applications" author: - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "Wolfgang De Meuter" link: "https://researchr.org/alias/wolfgang-de-meuter" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-78195-0_2" links: doi: "http://dx.doi.org/10.1007/978-3-540-78195-0_2" researchr: "https://researchr.org/publication/BergelMDNW07" cites: 0 citedby: 0 pages: "7-12" booktitle: "ECOOPW" kind: "inproceedings" key: "BergelMDNW07" - title: "Report of the 7th ECOOP'06 Workshop on Object-Oriented Reengineering" author: - name: "Roel Wuyts" link: "http://roelwuyts.be" - name: "Serge Demeyer" link: "http://win.ua.ac.be/~sdemey/" - name: "Yann-Gaël Guéhéneuc" link: "http://www.yann-gael.gueheneuc.net/" - name: "Kim Mens" link: "http://www.info.ucl.ac.be/~km/MyResearchPages/research/" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" year: "2007" links: "url": "http://www.info.ucl.ac.be/~km/MyResearchPages/publications/workshop_report/WR_2007_ECOOP2006_WOOR.pdf" researchr: "https://researchr.org/publication/Wuyt07a" cites: 0 citedby: 0 booktitle: "Object-Oriented Technology. ECOOP'06 Workshop Reader" kind: "inproceedings" key: "Wuyt07a" - title: "Inter-language reflection: A conceptual model and its implementation" author: - name: "Kris Gybels" link: "https://researchr.org/alias/kris-gybels" - name: "Roel Wuyts" link: "http://roelwuyts.be" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Maja D'Hondt" link: "http://ssel.vub.ac.be/ssel/about/members/majadhondt" year: "2006" doi: "http://dx.doi.org/10.1016/j.cl.2005.10.003" abstract: "Meta programming is the act of reasoning about a computational system. For example, a program in Prolog can reason about a program written in Smalltalk. Reflection is a more powerful form of meta programming where the same language is used to reason about, and act upon, itself in a causally connected way. Thus on the one hand we have meta programming that allows different languages or paradigms to be used, but without causal connection, while on the other hand we have reflection that offers causal connection but only for a single language. This paper combines both and presents inter-language reflection that allows one language to reason about and change in a causally connected way another language and vice versa. The fundamental aspects of inter-language reflection and the language symbiosis used therein, are discussed. Moreover the implementation of two symbiotic reflective languages is discussed: Agora/Java and SOUL/Smalltalk." links: doi: "http://dx.doi.org/10.1016/j.cl.2005.10.003" tags: - "programming languages" - "Prolog" - "Java" - "meta programming" - "meta-model" - "modeling language" - "computational reflection" - "language modeling" - "programming paradigms" - "programming" - "Meta-Environment" - "reflection" - "meta-objects" researchr: "https://researchr.org/publication/GybelsWDD06" cites: 0 citedby: 1 journal: "Comp. Lang., Syst. \\& Struct." volume: "32" number: "2-3" pages: "109-124" kind: "article" key: "GybelsWDD06" - title: "Finding refactorings via change metrics" author: - name: "Serge Demeyer" link: "https://researchr.org/alias/serge-demeyer" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2000" doi: "http://doi.acm.org/10.1145/353171.353183" links: doi: "http://doi.acm.org/10.1145/353171.353183" tags: - "refactoring" researchr: "https://researchr.org/publication/DemeyerDN00" cites: 0 citedby: 1 pages: "166-177" booktitle: "OOPSLA" kind: "inproceedings" key: "DemeyerDN00" - title: "DR. GEO II: Adding Interactivity Planes in Interactive Dynamic Geometry" author: - name: "Hilaire Fernandes" link: "https://researchr.org/alias/hilaire-fernandes" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Thibault Carron" link: "https://researchr.org/alias/thibault-carron" year: "2007" doi: "http://doi.ieeecomputersociety.org/10.1109/C5.2007.12" links: doi: "http://doi.ieeecomputersociety.org/10.1109/C5.2007.12" researchr: "https://researchr.org/publication/FernandeDC07" cites: 0 citedby: 0 pages: "153-162" booktitle: "c5" kind: "inproceedings" key: "FernandeDC07" - title: "Object-Oriented Reengineering" author: - name: "Serge Demeyer" link: "https://researchr.org/alias/serge-demeyer" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Kim Mens" link: "http://www.info.ucl.ac.be/~km/MyResearchPages/research/" - name: "Adrian Trifu" link: "https://researchr.org/alias/adrian-trifu" - name: "Rajesh Vasa" link: "https://researchr.org/alias/rajesh-vasa" - name: "Filip Van Rysselberghe" link: "https://researchr.org/alias/filip-van-rysselberghe" year: "2003" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3013&spage=72" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3013&spage=72" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/DemeyerDMTVR03" cites: 0 citedby: 0 pages: "72-85" booktitle: "ECOOPW" kind: "inproceedings" key: "DemeyerDMTVR03" - title: "Unanticipated integration of development tools using the classification model" author: - name: "Roel Wuyts" link: "http://roelwuyts.be" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" year: "2004" doi: "http://dx.doi.org/10.1016/j.cl.2003.08.003" links: doi: "http://dx.doi.org/10.1016/j.cl.2003.08.003" tags: - "classification" - "meta-model" - "model-driven development" - "Meta-Environment" researchr: "https://researchr.org/publication/WuytsD04" cites: 0 citedby: 0 journal: "Comp. Lang., Syst. \\& Struct." volume: "30" number: "1-2" pages: "63-77" kind: "article" key: "WuytsD04" - title: "The story of moose: an agile reengineering environment" author: - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Tudor Gîrba" link: "https://researchr.org/alias/tudor-g%C3%AErba" year: "2005" doi: "http://doi.acm.org/10.1145/1081706.1081707" links: doi: "http://doi.acm.org/10.1145/1081706.1081707" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/NierstraszDG05" cites: 0 citedby: 0 pages: "1-10" booktitle: "ESEC/FSE" kind: "inproceedings" key: "NierstraszDG05" - title: "Traits: A Mechanism for fine-grained Reuse" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Nathanael Schärli" link: "http://www.iam.unibe.ch/~schaerli/" - name: "Roel Wuyts" link: "http://roelwuyts.be" - name: "Andrew Black" link: "https://researchr.org/alias/andrew-black" year: "2006" month: "mar" doi: "10.1145/1119479.1119483" abstract: "Inheritance is well-known and accepted as a mechanism for reuse in ob ject-oriented languages. Unfortunately, due to the coarse granularity of inheritance, it may be difficult to decompose an application into an optimal class hierarchy that maximizes software reuse. Existing schemes based on single inheritance, multiple inheritance, or mixins, all pose numerous problems for reuse. To overcome these problems we propose traits, pure units of reuse consisting only of methods. We develop a formal model of traits that establishes how traits can be composed, either to form other traits, or to form classes. We also outline an experimental validation in which we apply traits to refactor a non-trivial application into composable units." links: "url": "http://www.iam.unibe.ch/~scg/Archive/Papers/Duca06bTOPLASTraits.pdf" tags: - "rule-based" - "meta-model" - "modeling language" - "modeling" - "language modeling" - "reuse" - "Meta-Environment" researchr: "https://researchr.org/publication/Duca06b" cites: 0 citedby: 1 journal: "ACM Transactions on Programming Languages and Systems (TOPLAS)" volume: "28" number: "2" kind: "article" key: "Duca06b" - title: "Dynamic Languages and Applications, Report on the Workshop {Dyla}'07 at ECOOP 2007" author: - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "Wolfgang De Meuter" link: "https://researchr.org/alias/wolfgang-de-meuter" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2008" doi: "10.1007/978-3-540-78195-0" abstract: "Following last two years' workshop on dynamic languages at the ECOOP conference, the Dyla 2007 workshop was a successful and popular event. As its name implies, the workshop's focus was on dynamic languages and their applications. Topics and discussions at the workshop included macro expansion mechanisms, extension of the method lookup algorithm, language interpretation, reflexivity and languages for mobile ad hoc networks. The main goal of this workshop was to bring together different dynamic language communities and favouring cross communities interaction. Dyla 2007 was organised as a full day meeting, partly devoted to presentation of submitted position papers and partly devoted to tool demonstration. All accepted papers can be downloaded from the workshop's web site. In this report, we provide an overview of the presentations and a summary of discussions." links: "url": "http://dyla2007.unibe.ch/http://www.iam.unibe.ch/~scg/Archive/Papers/Berg08bDyla07Report.pdfhttp://www.springer.com/computer/programming/book/978-3-540-78194-3" tags: - "macros" - "web applications" - "mobile" researchr: "https://researchr.org/publication/Berg08b" cites: 0 citedby: 0 booktitle: "Object-Oriented Technology. ECOOP 2007 Workshop Reader" kind: "inproceedings" key: "Berg08b" - title: "Object flow analysis: taking an object-centric view on dynamic analysis" author: - name: "Adrian Lienhard" link: "https://researchr.org/alias/adrian-lienhard" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Tudor Gîrba" link: "https://researchr.org/alias/tudor-g%C3%AErba" year: "2007" doi: "http://doi.acm.org/10.1145/1352678.1352686" links: doi: "http://doi.acm.org/10.1145/1352678.1352686" tags: - "analysis" - "data-flow" - "Meta-Environment" - "data-flow analysis" - "meta-objects" researchr: "https://researchr.org/publication/LienhardDG07" cites: 0 citedby: 0 pages: "121-140" booktitle: "smalltalk" kind: "inproceedings" key: "LienhardDG07" - title: "Traits: A mechanism for fine-grained reuse" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Nathanael Schärli" link: "https://researchr.org/alias/nathanael-sch%C3%A4rli" - name: "Roel Wuyts" link: "http://roelwuyts.be" - name: "Andrew P. Black" link: "https://researchr.org/alias/andrew-p.-black" year: "2006" doi: "http://doi.acm.org/10.1145/1119479.1119483" links: doi: "http://doi.acm.org/10.1145/1119479.1119483" tags: - "reuse" researchr: "https://researchr.org/publication/DucasseNSWB06" cites: 0 citedby: 0 journal: "TOPLAS" volume: "28" number: "2" pages: "331-388" kind: "article" key: "DucasseNSWB06" - title: "Classboxes: controlling visibility of class extensions" author: - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2005" doi: "http://dx.doi.org/10.1016/j.cl.2004.11.002" abstract: "A class extension is a method that is defined in a module, but whose class is defined elsewhere. Class extensions offer a convenient way to incrementally modify existing classes when subclassing is inappropriate. Unfortunately existing approaches suffer from various limitations. Either class extensions have a global impact, with possibly negative effects for unexpected clients, or they have a purely local impact, with negative results for collaborating clients. Furthermore, conflicting lass extensions are either disallowed, or resolved by linearization, with consequent negative effects. To solve these problems we present classboxes, a module system for object-oriented nguages that provides for method addition and replacement. Moreover, the changes made by a classbox are only visible to that classbox (or classboxes that import it), a feature we call local ebinding. To validate the model we have implemented it in the Squeak Smalltalk environment, and performed benchmarks." links: doi: "http://dx.doi.org/10.1016/j.cl.2004.11.002" tags: - "control systems" - "meta-model" - "object-role modeling" - "Meta-Environment" - "incremental" - "systematic-approach" - "meta-objects" researchr: "https://researchr.org/publication/BergelDNW05" cites: 0 citedby: 0 journal: "Comp. Lang., Syst. \\& Struct." volume: "31" number: "3-4" pages: "107-126" kind: "article" key: "BergelDNW05" - title: "Seaside -- Advanced Composition and Control Flow for Dynamic Web Applications" author: - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" year: "2008" month: "jan" abstract: "Page-centric Web application frameworks fail to offer adequate solutions to model composition and control flow. Seaside allows Web applications to be developed in the same way as desktop applications. Control flow is modelled as a continuous piece of code, and components may be composed, configured and nested as one would expect from traditional user interface frameworks." links: "url": "http://ercim-news.ercim.org/content/view/325/536/" tags: - "web application development" - "application framework" - "meta-model" - "composition" - "model-driven development" - "data-flow" - "Seaside" - "web applications" - "Meta-Environment" - "user interface composition" researchr: "https://researchr.org/publication/Berg08a" cites: 0 citedby: 0 journal: "ERCIM News" volume: "72" kind: "article" key: "Berg08a" - title: "Understanding Object-Oriented Programs through Declaratice Event Analysis" author: - name: "Tamar Richner" link: "https://researchr.org/alias/tamar-richner" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "1998" tags: - "object-oriented programming" - "program analysis" - "analysis" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/RichnerDW98" cites: 0 citedby: 0 pages: "78-79" booktitle: "ECOOPW" kind: "inproceedings" key: "RichnerDW98" - title: "Analyzing Feature Traces to Incorporate the Semantics of Change in Software Evolution Analysis" author: - name: "Orla Greevy" link: "https://researchr.org/alias/orla-greevy" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Tudor Gîrba" link: "https://researchr.org/alias/tudor-g%C3%AErba" year: "2005" doi: "http://doi.ieeecomputersociety.org/10.1109/ICSM.2005.22" links: doi: "http://doi.ieeecomputersociety.org/10.1109/ICSM.2005.22" tags: - "semantics" - "analysis" - "software evolution" researchr: "https://researchr.org/publication/GreevyDG05" cites: 0 citedby: 0 pages: "347-356" booktitle: "ICSM" kind: "inproceedings" key: "GreevyDG05" - title: "Traits at Work: the design of a new trait-based stream library" author: - name: "Damien Cassou" link: "https://researchr.org/alias/damien-cassou" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2009" doi: "10.1016/j.cl.2008.05.004" abstract: "Recent years saw the development of a composition mechanism called Traits. Traits are pure units of behavior that can be composed to form classes or other traits. The trait composition mechanism is an alternative to multiple or mixin inheritance in which the composer has full control over the trait composition. To evaluate the expressiveness of traits, some hierarchies were refactored, showing code reuse. However, such large refactorings, while valuable, may not exhibit all possible composition problems, since the hierarchies were previously expressed using single inheritance and following certain patterns. This paper presents our work on designing and implementing a new trait-based stream library named Nile. It evaluates how far traits enable reuse, what problems can be encountered when building a library using traits from scratch and compares the traits solution to alternative composition mechanisms. Nile's core allows the definition of compact collection and file streaming libraries as well as the implementation of a backward-compatible new stream library. Nile method size shows a reduction of 40% compared to the Squeak equivalent. The possibility to reuse the same set of traits to implement two distinct libraries is a concrete illustration of trait reuse capability." links: "url": "http://www.iam.unibe.ch/~scg/Archive/Papers/Cass08a-NileNewKernel-ComputerLanguages.pdf" tags: - "rule-based" - "refactoring" - "composition" - "reuse" - "rule-based refactoring" - "design" researchr: "https://researchr.org/publication/Cass09a" cites: 0 citedby: 0 journal: "Journal of Computer Languages, Systems and Structures" volume: "35" number: "1" kind: "article" key: "Cass09a" - title: "OOPAL: integrating array programming in object-oriented programming" author: - name: "Philippe Mougin" link: "https://researchr.org/alias/philippe-mougin" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" year: "2003" doi: "http://doi.acm.org/10.1145/949305.949312" links: doi: "http://doi.acm.org/10.1145/949305.949312" tags: - "object-oriented programming" - "meta programming" - "programming" - "subject-oriented programming" - "Meta-Environment" - "feature-oriented programming" - "meta-objects" researchr: "https://researchr.org/publication/MouginD03" cites: 0 citedby: 0 pages: "65-77" booktitle: "OOPSLA" kind: "inproceedings" key: "MouginD03" - title: "Stateful Traits" author: - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2006" doi: "http://dx.doi.org/10.1007/978-3-540-71836-9_4" links: doi: "http://dx.doi.org/10.1007/978-3-540-71836-9_4" researchr: "https://researchr.org/publication/BergelDNW06" cites: 0 citedby: 0 pages: "66-90" booktitle: "smalltalk" kind: "inproceedings" key: "BergelDNW06" - title: "Lessons Learned in Applying Formal Concept Analysis to Reverse Engineering" author: - name: "Gabriela Arévalo" link: "https://researchr.org/alias/gabriela-ar%C3%A9valo" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2005" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3403&spage=95" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3403&spage=95" tags: - "reverse engineering" - "analysis" researchr: "https://researchr.org/publication/ArevaloDN05%3A0" cites: 0 citedby: 0 pages: "95-112" booktitle: "icfca" kind: "inproceedings" key: "ArevaloDN05:0" - title: "XRay Views: Understanding the Internals of Classes" author: - name: "Gabriela Arévalo" link: "https://researchr.org/alias/gabriela-ar%C3%A9valo" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2003" doi: "http://csdl.computer.org/comp/proceedings/ase/2003/2035/00/20350267abs.htm" links: doi: "http://csdl.computer.org/comp/proceedings/ase/2003/2035/00/20350267abs.htm" researchr: "https://researchr.org/publication/ArevaloDN03" cites: 0 citedby: 0 pages: "267-270" booktitle: "ASE" kind: "inproceedings" key: "ArevaloDN03" - title: "Discovering Unanticipated Dependency Schemas in Class Hierarchies" author: - name: "Gabriela Arévalo" link: "https://researchr.org/alias/gabriela-ar%C3%A9valo" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2005" doi: "http://csdl.computer.org/comp/proceedings/csmr/2005/2304/00/23040062abs.htm" links: doi: "http://csdl.computer.org/comp/proceedings/csmr/2005/2304/00/23040062abs.htm" tags: - "XML" - "XML Schema" researchr: "https://researchr.org/publication/ArevaloDN05" cites: 0 citedby: 0 pages: "62-71" booktitle: "CSMR" kind: "inproceedings" key: "ArevaloDN05" - title: "Experiences in Object-Oriented Re-engineering" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Olivier Ciupke" link: "https://researchr.org/alias/olivier-ciupke" year: "1999" doi: "http://link.springer.de/link/service/series/0558/bibs/1743/17430164.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/1743/17430164.htm" tags: - "meta-model" - "model-driven engineering" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/DucasseC99" cites: 0 citedby: 0 pages: "164-183" booktitle: "ECOOPW" kind: "inproceedings" key: "DucasseC99" - title: "Redesigning with traits: the Nile stream trait-based library" author: - name: "Damien Cassou" link: "https://researchr.org/alias/damien-cassou" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2007" doi: "http://doi.acm.org/10.1145/1352678.1352682" links: doi: "http://doi.acm.org/10.1145/1352678.1352682" tags: - "rule-based" researchr: "https://researchr.org/publication/CassouDW07" cites: 0 citedby: 0 pages: "50-75" booktitle: "smalltalk" kind: "inproceedings" key: "CassouDW07" - title: "Classboxes: A Minimal Module Model Supporting Local Rebinding" author: - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2003" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=2789&spage=122" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=2789&spage=122" researchr: "https://researchr.org/publication/BergelDW03" cites: 0 citedby: 1 pages: "122-131" booktitle: "jmlc" kind: "inproceedings" key: "BergelDW03" - title: "On the effectiveness of clone detection by string matching" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Matthias Rieger" link: "https://researchr.org/alias/matthias-rieger" year: "2006" doi: "http://dx.doi.org/10.1002/smr.317" links: doi: "http://dx.doi.org/10.1002/smr.317" researchr: "https://researchr.org/publication/DucasseNR06" cites: 0 citedby: 0 journal: "SMR" volume: "18" number: "1" pages: "37-58" kind: "article" key: "DucasseNR06" - title: "A Reflective Model for First Class Dependencies" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Mireille Blay-Fornarino" link: "https://researchr.org/alias/mireille-blay-fornarino" - name: "Anne-Marie Pinna-Dery" link: "https://researchr.org/alias/anne-marie-pinna-dery" year: "1995" tags: - "meta-model" - "Meta-Environment" researchr: "https://researchr.org/publication/DucasseBP95" cites: 0 citedby: 0 pages: "265-280" booktitle: "OOPSLA" kind: "inproceedings" key: "DucasseBP95" - title: "SmallWiki --- A Meta-Described Collaborative Content Management System" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2005" doi: "10.1145/1104973.1104981" abstract: "Wikis are often implemented using string-based approaches to parse and generate their pages. While such approaches work well for simple wikis, they hamper the customization and adaptability of wikis to the variety of end-users when more sophisticated needs are required (i.e., different output formats, user-interfaces, wiki managment, security policies, ...). In this paper we present SmallWiki, the second version of a fully object-oriented implementation of a wiki. SmallWiki is implemented with objects from the top to the bottom and it can be customized easily to accommodate new needs. In addition, SmallWiki is based on a powerful meta-description called Magritte that allows one to create user-interface elements declaratively." links: "url": "http://www.iam.unibe.ch/~scg/Archive/Papers/Duca05hSmallwikiWikiSymp05.pdf" tags: - "rule-based" - "meta-model" - "wiki" - "security" - "Meta-Environment" - "parsing" - "systematic-approach" - "meta-objects" researchr: "https://researchr.org/publication/Duca05h" cites: 0 citedby: 0 booktitle: "Proceedings ACM International Symposium on Wikis (WikiSym'05)" kind: "inproceedings" key: "Duca05h" - title: "CodeCrawler: an information visualization tool for program comprehension" author: - name: "Michele Lanza" link: "https://researchr.org/alias/michele-lanza" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Harald Gall" link: "https://researchr.org/alias/harald-gall" - name: "Martin Pinzger" link: "http://swerl.tudelft.nl/bin/view/MartinPinzger" year: "2005" doi: "http://doi.acm.org/10.1145/1062455.1062602" links: doi: "http://doi.acm.org/10.1145/1062455.1062602" tags: - "program comprehension" researchr: "https://researchr.org/publication/LanzaDGP05" cites: 0 citedby: 0 pages: "672-673" booktitle: "ICSE" kind: "inproceedings" key: "LanzaDGP05" - title: "Characterizing the Evolution of Class Hierarchies" author: - name: "Tudor Gîrba" link: "https://researchr.org/alias/tudor-g%C3%AErba" - name: "Michele Lanza" link: "https://researchr.org/alias/michele-lanza" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" year: "2005" doi: "http://csdl.computer.org/comp/proceedings/csmr/2005/2304/00/23040002abs.htm" links: doi: "http://csdl.computer.org/comp/proceedings/csmr/2005/2304/00/23040002abs.htm" researchr: "https://researchr.org/publication/GirbaLD05" cites: 0 citedby: 0 pages: "2-11" booktitle: "CSMR" kind: "inproceedings" key: "GirbaLD05" - title: "Components for embedded software: the PECOS approach" author: - name: "Thomas Genssler" link: "https://researchr.org/alias/thomas-genssler" - name: "Alexander Christoph" link: "https://researchr.org/alias/alexander-christoph" - name: "Michael Winter" link: "https://researchr.org/alias/michael-winter" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Roel Wuyts" link: "http://roelwuyts.be" - name: "Gabriela Arévalo" link: "https://researchr.org/alias/gabriela-ar%C3%A9valo" - name: "Bastiaan Schönhage" link: "https://researchr.org/alias/bastiaan-sch%C3%B6nhage" - name: "Peter O. Müller" link: "https://researchr.org/alias/peter-o.-m%C3%BCller" - name: "Christian Stich" link: "https://researchr.org/alias/christian-stich" year: "2002" doi: "http://doi.acm.org/10.1145/581630.581634" links: doi: "http://doi.acm.org/10.1145/581630.581634" tags: - "software components" - "embedded software" - "software component" - "systematic-approach" researchr: "https://researchr.org/publication/GensslerCWNDWASMS02" cites: 0 citedby: 0 pages: "19-26" booktitle: "cases" kind: "inproceedings" key: "GensslerCWNDWASMS02" - title: "OpenSpaces: An Object-Oriented Framework for Reconfigurable Coordination Spaces" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Thomas Hofmann" link: "https://researchr.org/alias/thomas-hofmann" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2000" doi: "http://link.springer.de/link/service/series/0558/bibs/1906/19060001.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/1906/19060001.htm" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/DucasseHN00" cites: 0 citedby: 0 pages: "1-18" booktitle: "coordination" kind: "inproceedings" key: "DucasseHN00" - title: "Runtime bytecode transformation for Smalltalk" author: - name: "Marcus Denker" link: "https://researchr.org/alias/marcus-denker" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Éric Tanter" link: "http://pleiad.dcc.uchile.cl/people/etanter" year: "2006" doi: "http://dx.doi.org/10.1016/j.cl.2005.10.002" links: doi: "http://dx.doi.org/10.1016/j.cl.2005.10.002" tags: - "transformation" researchr: "https://researchr.org/publication/DenkerDT06" cites: 0 citedby: 0 journal: "Comp. Lang., Syst. \\& Struct." volume: "32" number: "2-3" pages: "125-139" kind: "article" key: "DenkerDT06" - title: "Analyzing Module Diversity" author: - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2005" doi: "http://www.jucs.org/jucs_11_10/analyzing_module_diversity" links: doi: "http://www.jucs.org/jucs_11_10/analyzing_module_diversity" researchr: "https://researchr.org/publication/BergelDN05%3A0" cites: 0 citedby: 0 journal: "jucs" volume: "11" number: "10" pages: "1613-1644" kind: "article" key: "BergelDN05:0" - title: "FAMOOSr 2008: Workshop on FAMIX and Moose in Software Reengineering" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Tudor Gîrba" link: "https://researchr.org/alias/tudor-g%C3%AErba" - name: "Orla Greevy" link: "https://researchr.org/alias/orla-greevy" - name: "Michele Lanza" link: "https://researchr.org/alias/michele-lanza" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2008" doi: "http://dx.doi.org/10.1109/WCRE.2008.51" links: doi: "http://dx.doi.org/10.1109/WCRE.2008.51" researchr: "https://researchr.org/publication/DucasseGGLN08" cites: 0 citedby: 0 pages: "343-344" booktitle: "WCRE" kind: "inproceedings" key: "DucasseGGLN08" - title: "Do Metrics Support Framework Development?" author: - name: "Serge Demeyer" link: "https://researchr.org/alias/serge-demeyer" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" year: "1998" researchr: "https://researchr.org/publication/DemeyerD98" cites: 0 citedby: 0 pages: "247-249" booktitle: "ECOOPW" kind: "inproceedings" key: "DemeyerD98" - title: "Design and Implementation of a Backward-In-Time Debugger" author: - name: "Christoph Hofer" link: "https://researchr.org/alias/christoph-hofer" - name: "Marcus Denker" link: "https://researchr.org/alias/marcus-denker" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" year: "2006" tags: - "debugging" - "design" researchr: "https://researchr.org/publication/HoferDD06" cites: 0 citedby: 0 pages: "17-32" booktitle: "gsem" kind: "inproceedings" key: "HoferDD06" - title: "A Component Model for Field Devices" author: - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Gabriela Arévalo" link: "https://researchr.org/alias/gabriela-ar%C3%A9valo" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Roel Wuyts" link: "http://roelwuyts.be" - name: "Andrew P. Black" link: "https://researchr.org/alias/andrew-p.-black" - name: "Peter O. Müller" link: "https://researchr.org/alias/peter-o.-m%C3%BCller" - name: "Christian Zeidler" link: "https://researchr.org/alias/christian-zeidler" - name: "Thomas Genssler" link: "https://researchr.org/alias/thomas-genssler" - name: "Reinier van den Born" link: "https://researchr.org/alias/reinier-van-den-born" year: "2002" doi: "http://link.springer.de/link/service/series/0558/bibs/2370/23700200.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2370/23700200.htm" tags: - "meta-model" - "Meta-Environment" researchr: "https://researchr.org/publication/NierstraszADWBMZGB02" cites: 0 citedby: 0 pages: "200-209" booktitle: "cd" kind: "inproceedings" key: "NierstraszADWBMZGB02" - title: "Practical Dynamic Grammars for Dynamic Languages" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Tudor Gîrba" link: "http://www.tudorgirba.com" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2010" month: "jun" abstract: "Grammars for programming languages are traditionally specified statically. They are hard to compose and reuse due to ambiguities that inevitably arise. PetitParser combines ideas from scannerless parsing, parser combinators, parsing expression grammars and packrat parsers to model grammars and parsers as objects that can be reconfigured dynamically. Through examples and benchmarks we demonstrate that dynamic grammars are not only flexible but highly practical." links: "url": "http://scg.unibe.ch/archive/papers/Reng10cDynamicGrammars.pdf" tags: - "programming languages" - "object-oriented programming" - "meta programming" - "meta-model" - "modeling language" - "language modeling" - "helvetia" - "reuse" - "object-role modeling" - "programming" - "subject-oriented programming" - "Meta-Environment" - "parsing" - "scannerless parsing" - "feature-oriented programming" - "meta-objects" - "grammar" researchr: "https://researchr.org/publication/Reng10c" cites: 18 citedby: 0 booktitle: "4th Workshop on Dynamic Languages and Applications (DYLA 2010)" kind: "inproceedings" key: "Reng10c" - title: "Dynamic Type Inference to Support Object-Oriented Reenginerring in Smalltalk" author: - name: "Pascal Rapicault" link: "https://researchr.org/alias/pascal-rapicault" - name: "Mireille Blay-Fornarino" link: "https://researchr.org/alias/mireille-blay-fornarino" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Anne-Marie Dery" link: "https://researchr.org/alias/anne-marie-dery" year: "1998" tags: - "type inference" - "Pascal" researchr: "https://researchr.org/publication/RapicaultBDD98" cites: 0 citedby: 0 pages: "76-77" booktitle: "ECOOPW" kind: "inproceedings" key: "RapicaultBDD98" - title: "Challenges in Software Evolution" author: - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" - name: "Michel Wermelinger" link: "http://michel.wermelinger.ws/" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Serge Demeyer" link: "http://win.ua.ac.be/~sdemey/" - name: "Robert Hirschfeld" link: "http://www.hpi.uni-potsdam.de/personen/professoren/hirschfeld.html" - name: "Mehdi Jazayeri" link: "https://researchr.org/alias/mehdi-jazayeri" year: "2005" doi: "http://doi.ieeecomputersociety.org/10.1109/IWPSE.2005.7" links: doi: "http://doi.ieeecomputersociety.org/10.1109/IWPSE.2005.7" tags: - "software evolution" researchr: "https://researchr.org/publication/MensWDDHJ05" cites: 0 citedby: 0 pages: "13-22" booktitle: "iwpse" kind: "inproceedings" key: "MensWDDHJ05" - title: "Adding Dynamic Interfaces to Smalltalk" author: - name: "Benny Sadeh" link: "https://researchr.org/alias/benny-sadeh" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" year: "2002" doi: "http://www.jot.fm/issues/issue_2002_05/article1" links: doi: "http://www.jot.fm/issues/issue_2002_05/article1" researchr: "https://researchr.org/publication/SadehD02" cites: 0 citedby: 0 journal: "jot" volume: "1" number: "1" pages: "63-79" kind: "article" key: "SadehD02" - title: "Scoped and Dynamic Aspects with Classboxes" author: - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" year: "2005" doi: "http://objet.revuesonline.com/article.jsp?articleId=7095" links: doi: "http://objet.revuesonline.com/article.jsp?articleId=7095" researchr: "https://researchr.org/publication/BergelD05%3A0" cites: 0 citedby: 0 journal: "Lobjet" volume: "11" number: "3" pages: "53-68" kind: "article" key: "BergelD05:0" - title: "Experiences in Object-Oriented Re-Engineering" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Joachim Weisbrod" link: "https://researchr.org/alias/joachim-weisbrod" year: "1998" doi: "http://link.springer.de/link/service/series/0558/bibs/1543/15430072.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/1543/15430072.htm" tags: - "meta-model" - "model-driven engineering" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/DucasseW98" cites: 0 citedby: 0 pages: "72-73" booktitle: "ECOOPW" kind: "inproceedings" key: "DucasseW98" - title: "Composable Encapsulation Policies" author: - name: "Nathanael Schärli" link: "https://researchr.org/alias/nathanael-sch%C3%A4rli" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2004" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3086&spage=26" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3086&spage=26" researchr: "https://researchr.org/publication/ScharliDNW04" cites: 0 citedby: 0 pages: "26-50" booktitle: "ECOOP" kind: "inproceedings" key: "ScharliDNW04" - title: "Recovering High-Level Views of Object-Oriented Applications from Static and Dynamic Information" author: - name: "Tamar Richner" link: "https://researchr.org/alias/tamar-richner" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" year: "1999" doi: "http://computer.org/proceedings/icsm/0016/00160013abs.htm" links: doi: "http://computer.org/proceedings/icsm/0016/00160013abs.htm" researchr: "https://researchr.org/publication/RichnerD99" cites: 0 citedby: 0 pages: "13-22" booktitle: "ICSM" kind: "inproceedings" key: "RichnerD99" - title: "A Hybrid Reverse Engineering Approach Combining Metrics and Program Visualization" author: - name: "Serge Demeyer" link: "https://researchr.org/alias/serge-demeyer" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Michele Lanza" link: "https://researchr.org/alias/michele-lanza" year: "1999" doi: "http://computer.org/proceedings/wcre/0303/03030175abs.htm" links: doi: "http://computer.org/proceedings/wcre/0303/03030175abs.htm" tags: - "reverse engineering" - "systematic-approach" researchr: "https://researchr.org/publication/DemeyerDL99" cites: 0 citedby: 0 pages: "175-186" booktitle: "WCRE" kind: "inproceedings" key: "DemeyerDL99" - title: "Classbox/J: controlling the scope of change in Java" author: - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2005" doi: "http://doi.acm.org/10.1145/1094811.1094826" links: doi: "http://doi.acm.org/10.1145/1094811.1094826" tags: - "Java" researchr: "https://researchr.org/publication/BergelDN05" cites: 0 citedby: 0 pages: "177-189" booktitle: "OOPSLA" kind: "inproceedings" key: "BergelDN05" - title: "Package Reference Fingerprint: a Rich and Compact Visualization to Understand Package Relationships" author: - name: "Hani Abdeen" link: "https://researchr.org/alias/hani-abdeen" - name: "Ilham Alloui" link: "https://researchr.org/alias/ilham-alloui" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Damien Pollet" link: "https://researchr.org/alias/damien-pollet" - name: "Mathieu Suen" link: "https://researchr.org/alias/mathieu-suen" year: "2008" doi: "http://dx.doi.org/10.1109/CSMR.2008.4493316" links: doi: "http://dx.doi.org/10.1109/CSMR.2008.4493316" researchr: "https://researchr.org/publication/AbdeenADPS08" cites: 0 citedby: 0 pages: "213-222" booktitle: "CSMR" kind: "inproceedings" key: "AbdeenADPS08" - title: "How Developers Develop Features" author: - name: "Orla Greevy" link: "https://researchr.org/alias/orla-greevy" - name: "Tudor Gîrba" link: "https://researchr.org/alias/tudor-g%C3%AErba" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" year: "2007" doi: "http://doi.ieeecomputersociety.org/10.1109/CSMR.2007.27" links: doi: "http://doi.ieeecomputersociety.org/10.1109/CSMR.2007.27" researchr: "https://researchr.org/publication/GreevyGD07" cites: 0 citedby: 0 pages: "265-274" booktitle: "CSMR" kind: "inproceedings" key: "GreevyGD07" - title: "Modeling Software Evolution by Treating History as a First Class Entity" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Tudor Gîrba" link: "https://researchr.org/alias/tudor-g%C3%AErba" - name: "Jean-Marie Favre" link: "http://megaplanet.org/jean-marie-favre/" year: "2005" doi: "http://dx.doi.org/10.1016/j.entcs.2004.08.035" links: doi: "http://dx.doi.org/10.1016/j.entcs.2004.08.035" tags: - "modeling" - "software evolution" - "history" researchr: "https://researchr.org/publication/DucasseGF05" cites: 0 citedby: 0 journal: "ENTCS" volume: "127" number: "3" pages: "75-86" kind: "article" key: "DucasseGF05" - title: "Seaside: A Flexible Environment for Building Dynamic Web Applications" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Adrian Lienhard" link: "http://www.adrian-lienhard.ch" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" year: "2007" doi: "http://doi.ieeecomputersociety.org/10.1109/MS.2007.144" abstract: "Nowadays, many complex applications are built with a web browser as their main user interface. However, despite the increasing popularity of the web as an application platform, implementing and maintaining web applications still remains difficult and lags behind conventional desktop application development. The underlying technologies such as HTTP for the interaction and XHTML/CSS for the presentation were originally built to display and link static documents. Unfortunately, most mainstream frameworks provide only little abstraction over the page-oriented structure imposed by those technologies. Inevitably, the goto-like manner of how pages are linked leads to spaghetti code and hampers reuse. In this article we present Seaside, a web application framework that provides an uniform and pure object-oriented view on web applications. In this way, Seaside avoids the unwieldily goto-like style. Exploiting the reflective features of Smalltalk, Seaside reintroduces procedure call abstraction in the client-server context. Seaside's key concepts are: (i) a component architecture supporting multiple, simultaneously active control flows, (ii) a programmatic XHTML generation, and (iii) fully supported on-the-fly debugging, code-editing, and recompilation. In this article we discuss these key features of Seaside and explain how they are made possible by the dynamic nature and the reflective capabilities of Smalltalk." links: doi: "http://doi.ieeecomputersociety.org/10.1109/MS.2007.144" tags: - "CSS" - "reusable components" - "application framework" - "architecture" - "reuse" - "data-flow" - "Seaside" - "code generation" - "debugging" - "web applications" - "context-aware" - "abstraction" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/DucasseLR07" cites: 0 citedby: 0 journal: "IEEE Software" volume: "24" number: "5" pages: "56-63" kind: "article" key: "DucasseLR07" - title: "Dynamic Web Development with Seaside" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "C. David Shaffer" link: "https://researchr.org/alias/c.-david-shaffer" - name: "Rick Zaccone" link: "https://researchr.org/alias/rick-zaccone" - name: "Michael Davies" link: "https://researchr.org/alias/michael-davies" year: "2010" abstract: "Seaside is the open source framework of choice for developing sophisticated and dynamic web applications. Seaside uses the power of objects to master the web. With Seaside web applications is as simple as building desktop applications. Seaside lets you build highly dynamic and interactive web applications. Seaside supports agile development through interactive debugging and unit testing. Seaside is based on Smalltalk, a proven and robust language implemented by different vendors. Seaside is now available for all the major Smalltalk including Pharo, Squeak, GNU Smalltalk, Cincom Smalltalk, GemStone Smalltalk, and VA Smalltalk." links: "url": "http://book.seaside.st/book" tags: - "JavaScript" - "rule-based" - "application framework" - "smalltalk" - "testing" - "Seaside" - "source-to-source" - "C++" - "debugging" - "web applications" - "web application" - "Meta-Environment" - "open-source" - "meta-objects" researchr: "https://researchr.org/publication/Duca10a" cites: 0 citedby: 0 publisher: "Square Bracket Associates" kind: "book" key: "Duca10a" - title: "Creating sophisticated development tools with OmniBrowser" author: - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Colin Putney" link: "https://researchr.org/alias/colin-putney" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2008" doi: "http://dx.doi.org/10.1016/j.cl.2007.05.005" links: doi: "http://dx.doi.org/10.1016/j.cl.2007.05.005" researchr: "https://researchr.org/publication/BergelDPW08" cites: 0 citedby: 0 journal: "Comp. Lang., Syst. \\& Struct." volume: "34" number: "2-3" pages: "109-129" kind: "article" key: "BergelDPW08" - title: "Editorial: Smalltalk Language" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2004" doi: "http://dx.doi.org/10.1016/j.cl.2003.08.001" links: doi: "http://dx.doi.org/10.1016/j.cl.2003.08.001" researchr: "https://researchr.org/publication/DucasseW04" cites: 0 citedby: 0 journal: "Comp. Lang., Syst. \\& Struct." volume: "30" number: "1-2" pages: "1-3" kind: "article" key: "DucasseW04" - title: "Using History Information to Improve Design Flaws Detection" author: - name: "Daniel Ratiu" link: "https://researchr.org/alias/daniel-ratiu" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Tudor Gîrba" link: "https://researchr.org/alias/tudor-g%C3%AErba" - name: "Radu Marinescu" link: "https://researchr.org/alias/radu-marinescu" year: "2004" doi: "http://csdl.computer.org/comp/proceedings/csmr/2004/2107/00/21070223abs.htm" links: doi: "http://csdl.computer.org/comp/proceedings/csmr/2004/2107/00/21070223abs.htm" tags: - "history" - "design" researchr: "https://researchr.org/publication/RatiuDGM04" cites: 0 citedby: 0 pages: "223-232" booktitle: "CSMR" kind: "inproceedings" key: "RatiuDGM04" - title: "Object-Oriented Reengineering Patterns" author: - name: "Serge Demeyer" link: "https://researchr.org/alias/serge-demeyer" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2002" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/DemeyerDN02" cites: 0 citedby: 0 publisher: "dpunkt" isbn: "3-89864-197-X" kind: "book" key: "DemeyerDN02" - title: "Coordination of Active Objects by Means of Explicit Connectors" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Manuel Günter" link: "https://researchr.org/alias/manuel-g%C3%BCnter" year: "1998" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/DucasseG98" cites: 0 citedby: 0 pages: "572-577" booktitle: "dexaw" kind: "inproceedings" key: "DucasseG98" - title: "Object-Oriented Reengineering: Patterns and Techniques" author: - name: "Serge Demeyer" link: "https://researchr.org/alias/serge-demeyer" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2005" doi: "http://doi.ieeecomputersociety.org/10.1109/ICSM.2005.67" links: doi: "http://doi.ieeecomputersociety.org/10.1109/ICSM.2005.67" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/DemeyerDN05" cites: 0 citedby: 0 pages: "723-724" booktitle: "ICSM" kind: "inproceedings" key: "DemeyerDN05" - title: "Package Surface Blueprints: Visually Supporting the Understanding of Package Relationships" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Damien Pollet" link: "https://researchr.org/alias/damien-pollet" - name: "Mathieu Suen" link: "https://researchr.org/alias/mathieu-suen" - name: "Hani Abdeen" link: "https://researchr.org/alias/hani-abdeen" - name: "Ilham Alloui" link: "https://researchr.org/alias/ilham-alloui" year: "2007" doi: "http://dx.doi.org/10.1109/ICSM.2007.4362622" links: doi: "http://dx.doi.org/10.1109/ICSM.2007.4362622" researchr: "https://researchr.org/publication/DucassePSAA07" cites: 0 citedby: 0 pages: "94-103" booktitle: "ICSM" kind: "inproceedings" key: "DucassePSAA07" - title: "User-changeable visibility: resolving unanticipated name clashes in traits" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Roel Wuyts" link: "http://roelwuyts.be" - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2007" doi: "http://doi.acm.org/10.1145/1297027.1297040" links: doi: "http://doi.acm.org/10.1145/1297027.1297040" researchr: "https://researchr.org/publication/DucasseWBN07" cites: 0 citedby: 0 pages: "171-190" booktitle: "OOPSLA" kind: "inproceedings" key: "DucasseWBN07" - title: "Supporting Unanticipated Changes with Traits and Classboxes" author: - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" year: "2005" researchr: "https://researchr.org/publication/BergelD05" cites: 0 citedby: 0 pages: "61-75" booktitle: "jit" kind: "inproceedings" key: "BergelD05" - title: "Dimensions of reengineering environment infrastructures" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Sander Tichelaar" link: "https://researchr.org/alias/sander-tichelaar" year: "2003" doi: "http://dx.doi.org/10.1002/smr.279" links: doi: "http://dx.doi.org/10.1002/smr.279" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/DucasseT03" cites: 0 citedby: 0 journal: "SMR" volume: "15" number: "5" pages: "345-373" kind: "article" key: "DucasseT03" - title: "Stateful traits and their formalization" author: - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2008" doi: "http://dx.doi.org/10.1016/j.cl.2007.05.003" links: doi: "http://dx.doi.org/10.1016/j.cl.2007.05.003" researchr: "https://researchr.org/publication/BergelDNW08" cites: 0 citedby: 0 journal: "Comp. Lang., Syst. \\& Struct." volume: "34" number: "2-3" pages: "83-108" kind: "article" key: "BergelDNW08" - title: "Object-oriented encapsulation for dynamically typed languages" author: - name: "Nathanael Schärli" link: "https://researchr.org/alias/nathanael-sch%C3%A4rli" - name: "Andrew P. Black" link: "https://researchr.org/alias/andrew-p.-black" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" year: "2004" doi: "http://doi.acm.org/10.1145/1028976.1028988" links: doi: "http://doi.acm.org/10.1145/1028976.1028988" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/ScharliBD04" cites: 0 citedby: 0 pages: "130-149" booktitle: "OOPSLA" kind: "inproceedings" key: "ScharliBD04" - title: "Polymetric Views - A Lightweight Visual Approach to Reverse Engineering" author: - name: "Michele Lanza" link: "https://researchr.org/alias/michele-lanza" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" year: "2003" doi: "http://csdl.computer.org/comp/trans/ts/2003/09/e0782abs.htm" links: doi: "http://csdl.computer.org/comp/trans/ts/2003/09/e0782abs.htm" tags: - "reverse engineering" - "systematic-approach" researchr: "https://researchr.org/publication/LanzaD03" cites: 0 citedby: 0 journal: "TSE" volume: "29" number: "9" pages: "782-795" kind: "article" key: "LanzaD03" - title: "Flattening Traits" author: - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Nathanael Schärli" link: "https://researchr.org/alias/nathanael-sch%C3%A4rli" year: "2006" doi: "http://www.jot.fm/issues/issue_2006_05/article4" links: doi: "http://www.jot.fm/issues/issue_2006_05/article4" researchr: "https://researchr.org/publication/NierstraszDS06" cites: 0 citedby: 0 journal: "jot" volume: "5" number: "4" pages: "129-148" kind: "article" key: "NierstraszDS06" - title: "Uniform and Safe Metaclass Composition" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Nathanael Schärli" link: "http://www.iam.unibe.ch/~schaerli/" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2005" month: "dec" doi: "10.1016/j.cl.2004.11.003" abstract: "In pure object-oriented languages, classes are objects, instances of other classes called metaclasses. In the same way as classes define the properties of their instances, metaclasses define the properties of classes. It is therefore very natural to wish to reuse class properties, utilizing them amongst several classes. However this introduced metaclass composition problems, i.e., code fragments applied to one class may break when used on another class due to the inheritance relationship between their respective metaclasses. Numerous approaches have tried to solve metaclass composition problems, but they always resort to an ad-hoc manner of handling conflicting properties, alienating the meta-programmer. We propose a uniform approach that represents class properties as traits, groups of methods that act as a unit of reuse from which classes are composed. Like all the other classes in the system, metaclasses are composed out of traits. This solution supports the reuse of class properties, and their safe and automatic composition based on explicit conflict resolution. The paper discusses traits and our solution, shows concrete examples implemented in the Smalltalk environment Squeak, and compares our approach with existing models for composing class properties." links: "url": "http://www.iam.unibe.ch/~scg/Archive/Papers/Duca05ySafeMetaclassTrait.pdf" tags: - "rule-based" - "meta-model" - "modeling language" - "language modeling" - "composition" - "reuse" - "object-role modeling" - "Meta-Environment" - "safe composition" - "systematic-approach" - "meta-objects" researchr: "https://researchr.org/publication/Duca05g" cites: 0 citedby: 0 journal: "Journal of Computer Languages, Systems and Structures" volume: "31" number: "3-4" kind: "article" key: "Duca05g" - title: "Symbiotic Reflection between an Object-Oriented and a Logic Programming Language" author: - name: "Roel Wuyts" link: "http://roelwuyts.be" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" year: "2001" abstract: "Meta-programming is the act of using one system or language to reason about another one. Reflection describes systems that have access to and change a causally connected representation of themselves, hence leading to self-extensible systems . Up to now, most of the reflective languages have been implemented in the same paradigm. In this paper, we propose \\emph{symbiotic reflection} as a way to integrate a meta programming language with the object-oriented language it reasons about and is implemented in. New to this approach is that any element of the implementation language can be reasoned about and acted upon (not only the self representation), and that both languages are of different paradigms. Moreover, every language implementer that is faced with the problem of allowing the base language to access the underlying meta-language has to solve the problem of enabling entity transfer between both worlds. We propose a uniform schema, called upping/downing, to this problem that avoid explicit wrapping or typechecking. We illustrate this with SOUL (the Smalltalk Open Unification Language), a logic programming language in symbiotic reflection with the object-oriented language Smalltalk. We show how SOUL does logic reasoning directly on Smalltalk objects, and how to use this to implement type snooping" links: "url": "http://www.iam.unibe.ch/~scg/Archive/Papers/Wuyt01a.pdf" tags: - "programming languages" - "object-oriented programming" - "rule-based" - "meta programming" - "meta-model" - "XML" - "XML Schema" - "type system" - "source-to-source" - "programming paradigms" - "logic programming" - "programming" - "subject-oriented programming" - "logic" - "Meta-Environment" - "reflection" - "extensible language" - "systematic-approach" - "feature-oriented programming" - "open-source" - "meta-objects" researchr: "https://researchr.org/publication/Wuyt01a" cites: 0 citedby: 0 booktitle: "ECOOP 2001 International Workshop on MultiParadigm Programming with Object-Oriented Languages" kind: "inproceedings" key: "Wuyt01a" - title: "On the Revival of Dynamic Languages" author: - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Alexandre Bergel" link: "https://researchr.org/alias/alexandre-bergel" - name: "Marcus Denker" link: "https://researchr.org/alias/marcus-denker" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Markus Gälli" link: "https://researchr.org/alias/markus-g%C3%A4lli" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2005" doi: "http://dx.doi.org/10.1007/11550679_1" links: doi: "http://dx.doi.org/10.1007/11550679_1" researchr: "https://researchr.org/publication/NierstraszBDDGW05" cites: 0 citedby: 0 pages: "1-13" booktitle: "SC" kind: "inproceedings" key: "NierstraszBDDGW05" - title: "A data-centric approach to composing embedded, real-time software components" author: - name: "Roel Wuyts" link: "http://roelwuyts.be" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2005" doi: "http://dx.doi.org/10.1016/j.jss.2003.05.004" links: doi: "http://dx.doi.org/10.1016/j.jss.2003.05.004" tags: - "software components" - "embedded software" - "software component" - "data-flow" - "systematic-approach" researchr: "https://researchr.org/publication/WuytsDN05" cites: 0 citedby: 0 journal: "jss" volume: "74" number: "1" pages: "25-34" kind: "article" key: "WuytsDN05" - title: "Rule-based Assessment of Test Quality" author: - name: "Stefan Reichhart" link: "https://researchr.org/alias/stefan-reichhart" - name: "Tudor Gîrba" link: "https://researchr.org/alias/tudor-g%C3%AErba" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" year: "2007" doi: "http://www.jot.fm/issues/issue_2007_10/paper12/index.html" links: doi: "http://www.jot.fm/issues/issue_2007_10/paper12/index.html" tags: - "rule-based" - "testing" - "rules" researchr: "https://researchr.org/publication/ReichhartGD07" cites: 0 citedby: 0 journal: "jot" volume: "6" number: "9" pages: "231-251" kind: "article" key: "ReichhartGD07" - title: "Object-Oriented Legacy System Trace-based Logic Testing" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Tudor Gîrba" link: "https://researchr.org/alias/tudor-g%C3%AErba" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2006" doi: "http://doi.ieeecomputersociety.org/10.1109/CSMR.2006.37" links: doi: "http://doi.ieeecomputersociety.org/10.1109/CSMR.2006.37" tags: - "rule-based" - "testing" - "logic" researchr: "https://researchr.org/publication/DucasseGW06" cites: 0 citedby: 0 pages: "37-46" booktitle: "CSMR" kind: "inproceedings" key: "DucasseGW06" - title: "Composing Embedded Real-Time Software Components: the PECOS Data-Centric Approach" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2003" month: "jan" abstract: "Although component-based software development (CBSD) has become mainstream for conventional applications, it has remained elusive for embedded applications due to non-functional constraints. The PECOS project has demonstrated that CBSD can also be applied to severely constrained embedded devices, with timing and memory requirements being taken into account." links: "url": "http://www.ercim.org/publication/Ercim_News/enw52/nierstrasz.html" tags: - "rule-based" - "software components" - "embedded software" - "software component" - "constraints" - "data-flow" - "systematic-approach" researchr: "https://researchr.org/publication/Duca03a" cites: 0 citedby: 0 journal: "ERCIM News" volume: "52" kind: "article" key: "Duca03a" - title: "SmallWiki: a meta-described collaborative content management system" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Roel Wuyts" link: "http://roelwuyts.be" year: "2005" doi: "http://doi.acm.org/10.1145/1104981" abstract: "Wikis are often implemented using string-based approaches to parse and generate their pages. While such approaches work well for simple wikis, they hamper the customization and adaptability of wikis to the variety of end-users when more sophisticated needs are required (i.e., different output formats, user-interfaces, wiki managment, security policies, ...). In this paper we present SmallWiki, the second version of a fully object-oriented implementation of a wiki. SmallWiki is implemented with objects from the top to the bottom and it can be customized easily to accommodate new needs. In addition, SmallWiki is based on a powerful meta-description called Magritte that allows one to create user-interface elements declaratively." links: doi: "http://doi.acm.org/10.1145/1104981" tags: - "rule-based" - "meta-model" - "wiki" - "security" - "Meta-Environment" - "parsing" - "systematic-approach" - "meta-objects" researchr: "https://researchr.org/publication/DucasseRW05" cites: 0 citedby: 0 pages: "75-82" booktitle: "wikis" kind: "inproceedings" key: "DucasseRW05" - title: "Introduction to the Smalltalk special issue" author: - name: "Serge Stinckwich" link: "https://researchr.org/alias/serge-stinckwich" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" year: "2006" doi: "http://dx.doi.org/10.1016/j.cl.2005.11.001" links: doi: "http://dx.doi.org/10.1016/j.cl.2005.11.001" researchr: "https://researchr.org/publication/StinckwichD06" cites: 0 citedby: 0 journal: "Comp. Lang., Syst. \\& Struct." volume: "32" number: "2-3" pages: "85-86" kind: "article" key: "StinckwichD06" - title: "Identifying traits with formal concept analysis" author: - name: "Adrian Lienhard" link: "https://researchr.org/alias/adrian-lienhard" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Gabriela Arévalo" link: "https://researchr.org/alias/gabriela-ar%C3%A9valo" year: "2005" doi: "http://doi.acm.org/10.1145/1101908.1101921" links: doi: "http://doi.acm.org/10.1145/1101908.1101921" tags: - "analysis" researchr: "https://researchr.org/publication/LienhardDA05" cites: 0 citedby: 0 pages: "66-75" booktitle: "ASE" kind: "inproceedings" key: "LienhardDA05" - title: "Analyzing software evolution through feature views" author: - name: "Orla Greevy" link: "https://researchr.org/alias/orla-greevy" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Tudor Gîrba" link: "https://researchr.org/alias/tudor-g%C3%AErba" year: "2006" doi: "http://dx.doi.org/10.1002/smr.340" links: doi: "http://dx.doi.org/10.1002/smr.340" tags: - "software evolution" researchr: "https://researchr.org/publication/GreevyDG06" cites: 0 citedby: 0 journal: "SMR" volume: "18" number: "6" pages: "425-456" kind: "article" key: "GreevyDG06" - title: "Moose: an agile reengineering environment" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Tudor Gîrba" link: "https://researchr.org/alias/tudor-g%C3%AErba" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2005" doi: "http://doi.acm.org/10.1145/1081706.1081723" links: doi: "http://doi.acm.org/10.1145/1081706.1081723" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/DucasseGN05" cites: 0 citedby: 0 pages: "99-102" booktitle: "ESEC/FSE" kind: "inproceedings" key: "DucasseGN05" - title: "Magritte - A Meta-driven Approach to Empower Developers and End Users" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Adrian Kuhn" link: "http://scg.unibe.ch/akuhn" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-75209-7_8" abstract: "Developing applications that end users can customize is a challenge, since end users are domain experts but still have concrete requirements. In this master thesis we present how we used a meta-driven approach to support the end user customization of Web applications. We present Magritte, a recursive meta-data meta-model integrated into the Smalltalk reflective meta-model. The adaptive model of Magritte enables to not only describe existing classes but also let end users build their own meta-models on the fly. Further on we describe how meta-interpreters automatically build views, reports, validating editors and persistency mechanisms. As a complete example of how we applied a meta-model to a Web application we present Pier, the second version of a fully object-oriented implementation of a content management system and Wiki engine. Pier is implemented with objects from the top to the bottom and is designed to be customizable to accommodate new needs. The integration of a powerful meta-description layer makes it a breeze to extend the running system with new functionality without having to patch the core engine. We describe the lessons learned from using the Magritte meta-model to build applications. Both projects described in this thesis are open source and can be downloaded from the Web site of the author." links: doi: "http://dx.doi.org/10.1007/978-3-540-75209-7_8" tags: - "Magritte" - "data validation" - "completeness" - "model editor" - "persistent" - "meta-model" - "interpreter" - "persistent object" - "data-flow" - "source-to-source" - "object-role modeling" - "wiki" - "web applications" - "Meta-Environment" - "systematic-approach" - "open-source" - "meta-objects" researchr: "https://researchr.org/publication/RenggliDK07" cites: 0 citedby: 0 pages: "106-120" booktitle: "MoDELS" kind: "inproceedings" key: "RenggliDK07" - title: "2nd Workshop on Object-Oriented Language Engineering for the Post-Java Era: Back to Dynamicity" author: - name: "Sebastián González" link: "https://researchr.org/alias/sebasti%C3%A1n-gonz%C3%A1lez" - name: "Wolfgang De Meuter" link: "https://researchr.org/alias/wolfgang-de-meuter" - name: "Pascal Costanza" link: "http://p-cos.net/" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Richard P. Gabriel" link: "http://www.dreamsongs.com/RPG.html" - name: "Theo D'Hondt" link: "http://soft.vub.ac.be/~tjdhondt/HTM.dir/homepage.htm" year: "2004" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3344&spage=49" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3344&spage=49" tags: - "Java" - "language engineering" - "Pascal" researchr: "https://researchr.org/publication/GonzalezMCDGD04" cites: 0 citedby: 0 pages: "49-61" booktitle: "ECOOPW" kind: "inproceedings" key: "GonzalezMCDGD04" - title: "Réification des schémas de conception : une expérience" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" year: "1997" researchr: "https://researchr.org/publication/Ducasse97%3A0" cites: 0 citedby: 0 pages: "95-110" booktitle: "lmo" kind: "inproceedings" key: "Ducasse97:0" - title: "Domain-Specific Program Checking" author: - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Tudor Gîrba" link: "http://www.tudorgirba.com" - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" year: "2010" doi: "10.1007/978-3-642-13953-6_12" abstract: "Lint-like program checkers are popular tools that ensure code quality by verifying compliance with best practices for a particular programming language. The proliferation of internal domain-specific languages and models, however, poses new challenges for such tools. Traditional program checkers produce many false positives and fail to accurately check constraints, best practices, common errors, possible optimizations and portability issues particular to domain-specific languages. We advocate the use of dedicated rules to check domain-specific practices. We demonstrate the implementation of domain-specific rules, the automatic fixing of violations, and their application to two case-studies: (1) Seaside defines several internal DSLs through a creative use of the syntax of the host language; and (2) Magritte adds meta-descriptions to existing code by means of special methods. Our empirical validation demonstrates that domain-specific program checking significantly improves code quality when compared with general purpose program checking." links: "url": "http://scg.unibe.ch/archive/papers/Reng10bDomainSpecificProgramChecking.pdf" tags: - "empirical" - "programming languages" - "optimization" - "rule-based" - "meta programming" - "case study" - "model checking" - "program verification" - "meta-model" - "modeling language" - "language modeling" - "helvetia" - "constraints" - "rules" - "DSL" - "programming" - "program checking" - "program optimization" - "Meta-Environment" - "meta-objects" - "domain-specific language" researchr: "https://researchr.org/publication/Reng10b" cites: 21 citedby: 0 booktitle: "Proceedings of the 48th International Conference on Objects, Models, Components and Patterns (TOOLS'10)" kind: "inproceedings" key: "Reng10b" - title: "Using Meta-Model Transformation to Model Software Evolution" author: - name: "Tudor Gîrba" link: "https://researchr.org/alias/tudor-g%C3%AErba" - name: "Jean-Marie Favre" link: "http://megaplanet.org/jean-marie-favre/" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" year: "2005" doi: "http://dx.doi.org/10.1016/j.entcs.2005.07.005" links: doi: "http://dx.doi.org/10.1016/j.entcs.2005.07.005" tags: - "model-to-model transformation" - "meta-model" - "software evolution" - "source-to-source" - "model transformation" - "Meta-Environment" - "meta-objects" - "transformation" researchr: "https://researchr.org/publication/GirbaFD05" cites: 0 citedby: 0 journal: "ENTCS" volume: "137" number: "3" pages: "57-64" kind: "article" key: "GirbaFD05" - title: "Object-Oriented Reengineering Patterns - An Overview" author: - name: "Oscar Nierstrasz" link: "http://scg.unibe.ch/staff/oscar" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Serge Demeyer" link: "https://researchr.org/alias/serge-demeyer" year: "2005" doi: "http://dx.doi.org/10.1007/11561347_1" links: doi: "http://dx.doi.org/10.1007/11561347_1" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/NierstraszDD05" cites: 0 citedby: 0 pages: "1-9" booktitle: "GPCE" kind: "inproceedings" key: "NierstraszDD05" - title: "Meta-Environment and Executable Meta-Language using Smalltalk: an Experience Report" author: - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Tudor Gîrba" link: "http://www.tudorgirba.com" - name: "Adrian Kuhn" link: "http://scg.unibe.ch/akuhn" - name: "Lukas Renggli" link: "http://www.lukas-renggli.ch/" year: "2009" month: "feb" doi: "10.1007/s10270-008-0081-4" links: "url": "http://scg.unibe.ch/archive/drafts/Duca08a-Sosym-ExecutableMetaLanguage.pdf" tags: - "meta-model" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/Duca08a" cites: 0 citedby: 0 journal: "Journal of Software and Systems Modeling (SOSYM)" volume: "8" number: "1" kind: "article" key: "Duca08a" - title: "RAM-SE 07-ECOOP 07 Workshop on Reflection, AOP, and Meta-Data for Software Evolution, Proceedings, Berlin, Germany, July 31, 2007" year: "2007" tags: - "meta-model" - "software evolution" - "Meta-Environment" - "reflection" - "meta-objects" researchr: "https://researchr.org/publication/ecoop%3A2007ramse" cites: 0 citedby: 0 booktitle: "RAM-SE 07-ECOOP 07 Workshop on Reflection, AOP, and Meta-Data for Software Evolution, Proceedings, Berlin, Germany, July 31, 2007" conference: "ECOOPW" editor: - name: "Walter Cazzola" link: "https://researchr.org/alias/walter-cazzola" - name: "Shigeru Chiba" link: "http://www.csg.is.titech.ac.jp/~chiba/" - name: "Yvonne Coady" link: "https://researchr.org/alias/yvonne-coady" - name: "Stéphane Ducasse" link: "http://stephane.ducasse.free.fr/" - name: "Günter Kniesel" link: "http://www.cs.uni-bonn.de/~gk/" - name: "Manuel Oriol" link: "https://researchr.org/alias/manuel-oriol" - name: "Gunter Saake" link: "https://researchr.org/alias/gunter-saake" publisher: "Fakultät für Informatik, Universität Magdeburg" kind: "proceedings" key: "ecoop:2007ramse"