publications: - title: "Transformation of structure-shy programs with application to XPath queries and strategic functions" author: - name: "Alcino Cunha" link: "http://www.di.uminho.pt/~mac" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2010" doi: "DOI: 10.1016/j.scico.2010.01.003" abstract: "Various programming languages allow the construction of structure-shy programs. Such programs are defined generically for many different datatypes and only specify specific behavior for a few relevant subtypes. Typical examples are XML query languages that allow selection of subdocuments without exhaustively specifying intermediate element tags. Other examples are languages and libraries for polytypic or strategic functional programming and for adaptive object-oriented programming. In this paper, we present an algebraic approach to transformation of declarative structure-shy programs, in particular for strategic functions and XML queries. We formulate a rich set of algebraic laws, not just for transformation of structure-shy programs, but also for their conversion into structure-sensitive programs and vice versa. We show how subsets of these laws can be used to construct effective rewrite systems for specialization, generalization, and optimization of structure-shy programs. We present a type-safe encoding of these rewrite systems in Haskell which itself uses strategic functional programming techniques. We discuss the application of these rewrite systems for XPath query optimization and for query migration in the context of schema evolution." links: "url": "http://www.sciencedirect.com/science/article/B6V17-4Y5GXTK-1/2/7b68ff063fea2fd01336b7c360ebf859" tags: - "programming languages" - "structure-shy programming" - "optimization" - "object-oriented programming" - "meta programming" - "generic programming" - "graph transformation" - "XML" - "XML Schema" - "tagging" - "graph query" - "transformation language" - "functional programming" - "polytypic programming" - "XPath" - "Haskell" - "type system" - "graph-rewriting" - "migration" - "subtyping" - "strategic programming" - "transformation system" - " algebra" - "programming" - "subject-oriented programming" - "context-aware" - "program optimization" - "Meta-Environment" - "rewriting" - "polytypic" - "systematic-approach" - "feature-oriented programming" - "meta-objects" - "transformation" - "query language" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/Cunha2010" cites: 0 citedby: 0 journal: "Science of Computer Programming" volume: "In Press, Corrected Proof" kind: "article" key: "Cunha2010" - title: "The maven repository dataset of metrics, changes, and dependencies" author: - name: "Steven Raemaekers" link: "https://researchr.org/alias/steven-raemaekers" - name: "Arie van Deursen" link: "https://researchr.org/alias/arie-van-deursen" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2013" doi: "http://dl.acm.org/citation.cfm?id=2487129" links: doi: "http://dl.acm.org/citation.cfm?id=2487129" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/msr/RaemaekersDV13" researchr: "https://researchr.org/publication/RaemaekersDV13" cites: 0 citedby: 0 pages: "221-224" booktitle: "Proceedings of the 10th Working Conference on Mining Software Repositories, MSR '13, San Francisco, CA, USA, May 18-19, 2013" editor: - name: "Thomas Zimmermann" link: "https://researchr.org/alias/thomas-zimmermann" - name: "Massimiliano Di Penta" link: "https://researchr.org/alias/massimiliano-di-penta" - name: "Sunghun Kim" link: "https://researchr.org/alias/sunghun-kim" publisher: "IEEE / ACM" isbn: "978-1-4673-2936-1" kind: "inproceedings" key: "RaemaekersDV13" - title: "A Tool-based Methodology for Software Portfolio Monitoring" author: - name: "Tobias Kuipers" link: "http://www.sig.eu" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2004" abstract: "We present a tool-based methodology for monitoring the development and maintenance performed on the software portfolio of a large company. The toolkit on which the methodology is based includes an extendable framework for software analysis and visualization that meets strong demands with respect to scalability and usability. The methodology consists of 3 nested iterations and is carried out by software engineers with very strong consultancy skills. The shortest iteration consists in applying the toolkit to the software portfolio to obtain and register basic facts such as metrics and dependencies. In the middle iteration, the engineers interpret and evaluate the newly registered facts. The findings are reported to IT management together with recommendations about how to react to the findings. In particular, one kind of recommendation is to carry out a Software Risk Assessment on a selected system or project. Finally, the longest iteration is the publication of an annual software report, which summarizes the monitoring results of the previous year." tags: - "rule-based" - "software product quality" - "analysis" - "maintenance" - "iterative development" researchr: "https://researchr.org/publication/KuipersV04" cites: 0 citedby: 0 pages: "118-128" booktitle: "Software Audit and Metrics, Proceedings of the 1st International Workshop on Software Audit and Metrics, SAM 2004, In conjunction with ICEIS 2004, Porto, Portugal, April 2004" editor: - name: "Mario Piattini" link: "https://researchr.org/alias/mario-piattini" - name: "Manuel A. Serrano" link: "https://researchr.org/alias/manuel-a.-serrano" publisher: "INSTICC Press" isbn: "972-8865-04-X" kind: "inproceedings" key: "KuipersV04" - title: "Towards high performance software teamwork" author: - name: "Emily Weimar" link: "https://researchr.org/alias/emily-weimar" - name: "Ariadi Nugroho" link: "https://researchr.org/alias/ariadi-nugroho" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "Aske Plaat" link: "https://researchr.org/alias/aske-plaat" year: "2013" doi: "http://doi.acm.org/10.1145/2460999.2461030" links: doi: "http://doi.acm.org/10.1145/2460999.2461030" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/ease/WeimarNVP13" researchr: "https://researchr.org/publication/WeimarNVP13" cites: 0 citedby: 0 pages: "212-215" booktitle: "17th International Conference on Evaluation and Assessment in Software Engineering, EASE '13, Porto de Galinhas, Brazil, April 14-16, 2013" editor: - name: "Fabio Q. B. da Silva" link: "https://researchr.org/alias/fabio-q.-b.-da-silva" - name: "Natalia Juristo Juzgado" link: "https://researchr.org/alias/natalia-juristo-juzgado" - name: "Guilherme Horta Travassos" link: "https://researchr.org/alias/guilherme-horta-travassos" publisher: "ACM" isbn: "978-1-4503-1848-8" kind: "inproceedings" key: "WeimarNVP13" - title: "Automatic Event Detection for Software Product Quality Monitoring" author: - name: "Dennis Bijlsma" link: "https://researchr.org/alias/dennis-bijlsma" - name: "José Pedro Correia" link: "https://researchr.org/alias/jos%C3%A9-pedro-correia" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2012" doi: "http://dx.doi.org/10.1109/QUATIC.2012.22" links: doi: "http://dx.doi.org/10.1109/QUATIC.2012.22" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/quatic/BijlsmaCV12" researchr: "https://researchr.org/publication/BijlsmaCV12" cites: 0 citedby: 0 pages: "30-37" booktitle: "8th International Conference on the Quality of Information and Communications Technology, QUATIC 2012, Lisbon, Portugal, 2-6 September 2012, Proceedings" editor: - name: "João Pascoal Faria" link: "https://researchr.org/alias/jo%C3%A3o-pascoal-faria" - name: "Alberto Rodrigues da Silva" link: "https://researchr.org/alias/alberto-rodrigues-da-silva" - name: "Ricardo Jorge Machado" link: "https://researchr.org/alias/ricardo-jorge-machado" publisher: "IEEE Computer Society" isbn: "978-0-7695-4777-0" kind: "inproceedings" key: "BijlsmaCV12" - title: "Visitor Combination and Traversal Control" author: - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2001" doi: "http://doi.acm.org/10.1145/504282.504302" abstract: "The Visitor design pattern allows the encapsulation of polymorphic behavior outside the class hierarchy on which it operates. A common application of Visitor is the encapsulation of tree traversals. A clean separation can be made between the generic parts of the combinator set and the parts that are specific to a particular class hierarchy. The generic parts form a reusable framework. The specific parts can be generated from a (tree) grammar. Due to this separation, programming with visitor combinators becomes a form of generic programming with significant reuse of (visitor) code." links: doi: "http://doi.acm.org/10.1145/504282.504302" tags: - "application framework" - "generic programming" - "traversal" - "visitor" - "reuse" - "strategic programming" - "programming" - "design" - "grammar" researchr: "https://researchr.org/publication/Visser01-OOPSLA" cites: 0 citedby: 1 pages: "270-282" booktitle: "OOPSLA" kind: "inproceedings" key: "Visser01-OOPSLA" - title: "Typed Combinators for Generic Traversal" author: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2002" doi: "http://link.springer.de/link/service/series/0558/bibs/2257/22570137.htm" abstract: "Lacking support for generic traversal, functional programming languages suffer from a scalability problem when applied to large-scale program transformation problems. As a solution, we introduce functional strategies: typeful generic functions that not only can be applied to terms of any type, but which also allow generic traversal into subterms. We show how strategies are modelled inside a functional language, and we present a combinator library including generic traversal combinators. We illustrate our technique of programming with functional strategies by an implementation of the extract method refactoring for Java." links: doi: "http://link.springer.de/link/service/series/0558/bibs/2257/22570137.htm" tags: - "programming languages" - "model-to-model transformation" - "Java" - "meta programming" - "generic programming" - "meta-model" - "modeling language" - "traversal" - "model refactoring" - "refactoring" - "transformation language" - "language modeling" - "functional programming" - "Haskell" - "source-to-source" - "strategic programming" - "model transformation" - "programming" - "Meta-Environment" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/LammelV02" cites: 0 citedby: 0 pages: "137-154" booktitle: "Practical Aspects of Declarative Languages, 4th International Symposium, PADL 2002, Portland, OR, USA, January 19-20, 2002, Proceedings" editor: - name: "Shriram Krishnamurthi" link: "http://www.cs.brown.edu/~sk/" - name: "C. R. Ramakrishnan" link: "https://researchr.org/alias/c.-r.-ramakrishnan" volume: "2257" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-43092-X" kind: "inproceedings" key: "LammelV02" - title: "Generic Traversal over Typed Source Code Representations" author: - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2003" abstract: "Many areas of software engineering essentially involve analysis and transformation of source code representations. Generally, such representations are highly heterogenous data structures. Examples are parse trees, abstract syntax trees, dependency graphs, and call graphs. Preferably, the well-formedness of such data structures is guarded by strong static type systems. Unfortunately, when using traditional approaches, typeful programming is at odds with conciseness, reusability, and robustness. Access to and traversal over subelements of typed representations involves dealing with many specific types in specific ways. As a consequence, type-safety comes at the cost of lengthy traversal code, which can not be reused in different parts of the representation or for differently typed representations, and which breaks with any change in the representation type. In this thesis we present techniques to remedy the dilemma between type-safety on the one hand, and conciseness, reusability, and robustness on the other. For representative typed languages from the functional and object-oriented programming paradigms, viz Haskell and Java, we developed programming idioms that allow program construction from combinators which support typeful generic traversal. Using these combinators, program abstractions can be composed that capture e.g. reusable traversal strategies or analysis and transformation schemas. Though typeful, these abstractions need make little or no commitment to the specific type structure of the representations to which they are applied. We have developed tool support to enable the application of our generic traversal techniques to source code representations that involve large numbers of different subelement types. These tools generate combinator support from SDF grammars. Parsers and pretty-printers can be generated from the same grammars, as well as the necessary code for representing and exchanging syntax trees between parsers, traversal components, and pretty-printers. In fact, SDF grammars are employed as contracts that govern all tree exchange, representation, and processing in a general multi-lingual architecture for source code analysis and transformation. The practical applicability of all these techniques has been put to the test in several case studies, ranging from procedure reconstruction for Cobol programs, through static analysis of Toolbus scripts, to automated Java refactoring." tags: - "programming languages" - "model-to-model transformation" - "source code analysis" - "object-oriented programming" - "reusable components" - "transformation engineering" - "Java" - "program analysis" - "software architecture" - "data-flow language" - "generic programming" - "case study" - "software components" - "SDF" - "graph transformation" - "contracts" - "XML" - "abstract syntax" - "XML Schema" - "traversal" - "model refactoring" - "refactoring" - "language engineering" - "testing model transformations" - "transformation language" - "software language engineering" - "architecture" - "functional programming" - "software component" - "points-to analysis" - "domain analysis" - "testing" - "analysis" - "static analysis" - "Haskell" - "type system" - "reuse" - "data-flow programming" - "little language" - "data-flow" - "source-to-source" - "graph-rewriting" - "software engineering" - "model-driven engineering" - "programming paradigms" - "transformation system" - "model transformation" - "programming" - "subject-oriented programming" - "abstraction" - "rewriting" - "data-flow analysis" - "Cobol" - "software contracts" - "parsing" - "systematic-approach" - "rewriting strategies" - "ASF+SDF" - "feature-oriented programming" - "open-source" - "transformation" - "grammar" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/Vi03" cites: 0 citedby: 0 school: "University of Amsterdam" address: "Amsterdam, The Netherlands" kind: "phdthesis" key: "Vi03" - title: "Issue handling performance in proprietary software projects" author: - name: "Aigerim Issabayeva" link: "https://researchr.org/alias/aigerim-issabayeva" - name: "Ariadi Nugroho" link: "https://researchr.org/alias/ariadi-nugroho" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2012" doi: "http://dx.doi.org/10.1109/MSR.2012.6224282" links: doi: "http://dx.doi.org/10.1109/MSR.2012.6224282" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/msr/IssabayevaNV12" researchr: "https://researchr.org/publication/IssabayevaNV12" cites: 0 citedby: 0 pages: "209-212" booktitle: "9th IEEE Working Conference of Mining Software Repositories, MSR 2012, June 2-3, 2012, Zurich, Switzerland" editor: - name: "Michele Lanza" link: "https://researchr.org/alias/michele-lanza" - name: "Massimiliano Di Penta" link: "https://researchr.org/alias/massimiliano-di-penta" - name: "Tao Xi" link: "https://researchr.org/alias/tao-xi" publisher: "IEEE" isbn: "978-1-4673-1761-0" kind: "inproceedings" key: "IssabayevaNV12" - title: "3rd International Workshop on Software Quality and Maintainability" author: - name: "Christos Tjortjis" link: "http://www.cs.manchester.ac.uk/~tjortjis/" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2009" doi: "http://dx.doi.org/10.1109/CSMR.2009.58" abstract: "Software is playing a crucial role in modern societies. Not only do people rely on it for their daily operations or business, but for their lives as well. For this reason correct and consistent behavior of software systems is a fundamental part of end user expectations. Additionally, businesses require cost- effective production, maintenance, and operation of their systems. Thus, the demand for software quality is increasing and is setting it as a differentiator for the success or failure of a software product. In fact, high quality software is becoming not just a competitive advantage but a necessary factor for companies to be successful. The main question that arises now is how quality is measured. What, where and when we assess and assure quality, are still open issues. Many views have been expressed about software quality attributes, including maintainability, evolvability, portability, robustness, reliability, usability, and efficiency. These have been formulated in standards such as ISO/IEC-9126 and CMMI. However, the debate about quality and maintainability between software producers, vendors and users is ongoing, while organizations need the ability to evaluate from multiple angles the software systems that they use or develop. So, is “Software quality in the eye of the beholder”? This workshop session aims at feeding into this debate by establishing what the state of the practice and the way forward is." links: doi: "http://dx.doi.org/10.1109/CSMR.2009.58" tags: - "maintainability" - "software product quality" - "source-to-source" - "maintenance" - "reliability" - "software quality" - "open-source" researchr: "https://researchr.org/publication/TjortjisV09" cites: 0 citedby: 0 pages: "271-272" booktitle: "13th European Conference on Software Maintenance and Reengineering, CSMR 2009, Architecture-Centric Maintenance of Large-SCale Software Systems, Kaiserslautern, Germany, 24-27 March 2009" editor: - name: "Andreas Winter" link: "http://www.uni-koblenz.de/~winter/" - name: "Rudolf Ferenc" link: "https://researchr.org/alias/rudolf-ferenc" - name: "Jens Knodel" link: "https://researchr.org/alias/jens-knodel" publisher: "IEEE" kind: "inproceedings" key: "TjortjisV09" - title: "Design patterns for functional strategic programming" author: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2002" doi: "http://doi.acm.org/10.1145/570186.570187" abstract: "We believe that design patterns can be an effective means of consolidating and communicating program construction expertise for functional programming, just as they have proven to be in object-oriented programming. The emergence of combinator libraries that develop a specific domain or programming idiom has intensified, rather than reduced, the need for design patterns. In previous work, we introduced the fundamentals and a supporting combinator library for functional strategic programming. This is an idiom for (general purpose) generic programming based on the notion of a functional strategy: a first-class generic function that can not only be applied to terms of any type, but which also allows generic traversal into subterms and can be customised with type-specific behaviour. This paper seeks to provide practising functional programmers with pragmatic guidance in crafting their own generic programs using functional strategies. To this end, we propose a novel description format for functional design patterns, and we initiate a catalogue of strategy design patterns. These design patterns aim at consolidating strategic programming expertise in accessible form." links: doi: "http://doi.acm.org/10.1145/570186.570187" tags: - "object-oriented programming" - "rule-based" - "meta programming" - "generic programming" - "traversal" - "functional programming" - "Haskell" - "strategic programming" - "programming" - "subject-oriented programming" - "Meta-Environment" - "design" - "feature-oriented programming" - "meta-objects" researchr: "https://researchr.org/publication/LammelV02%3A0" cites: 0 citedby: 0 pages: "1-14" booktitle: "Proceedings of the 2002 ACM SIGPLAN Workshop on Rule-Based Programming, Pittsburgh, Pennsylvania, USA, 2002" editor: - name: "Bernd Fischer" link: "http://www.ecs.soton.ac.uk/people/bf" - name: "Eelco Visser" link: "http://eelcovisser.org" publisher: "ACM" isbn: "1-58113-606-4" kind: "inproceedings" key: "LammelV02:0" - title: "A Practical Model for Evaluating the Energy Efficiency of Software Applications" author: - name: "Georgios Kalaitzoglou" link: "https://researchr.org/alias/georgios-kalaitzoglou" - name: "Magiel Bruntink" link: "https://researchr.org/alias/magiel-bruntink" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2014" doi: "http://dx.doi.org/10.2991/ict4s-14.2014.9" links: doi: "http://dx.doi.org/10.2991/ict4s-14.2014.9" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/ict4s/KalaitzoglouBV14" researchr: "https://researchr.org/publication/KalaitzoglouBV14" cites: 0 citedby: 0 booktitle: "ICT for Sustainability 2014 (ICT4S-14), Stockholm, Sweden, August 25, 2014" publisher: "Atlantis Press" isbn: "978-94-62520-22-6" kind: "inproceedings" key: "KalaitzoglouBV14" - title: "Strategic Term Rewriting and Its Application to a VDMSL to SQL Conversion" author: - name: "Tiago L. Alves" link: "http://wiki.di.uminho.pt/twiki/bin/view/Personal/Tiago/" - name: "Paulo F. Silva" link: "http://wiki.di.uminho.pt/twiki/bin/view/Main/PauloSilva" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "José Nuno Oliveira" link: "http://www.di.uminho.pt/~jno/" year: "2005" doi: "http://dx.doi.org/10.1007/11526841_27" abstract: "We constructed a tool, called VooDooM, which converts datatypes in VDM-SL into SQL relational data models. The conversion involves transformation of algebraic types to maps and products, and pointer introduction. The conversion is specified as a theory of refinement by calculation. The implementation technology is strategic term rewriting in Haskell, as supported by the Strafunski bundle. Due to these choices of theory and technology, the road from theory to practise is straightforward." links: doi: "http://dx.doi.org/10.1007/11526841_27" tags: - "model-to-model transformation" - "Data refinement" - "meta programming" - "graph transformation" - "meta-model" - "refinement" - "SQL" - "term rewriting" - "relational algebra" - "Haskell" - "data-flow programming" - "data-flow" - "source-to-source" - "graph-rewriting" - "strategic programming" - "Strategic term rewriting" - "model transformation" - " algebra" - "type theory" - "Meta-Environment" - "rewriting" - "transformation" researchr: "https://researchr.org/publication/AlvesSVO05" cites: 0 citedby: 0 pages: "399-414" booktitle: "FM 2005: Formal Methods, International Symposium of Formal Methods Europe, Newcastle, UK, July 18-22, 2005, Proceedings" editor: - name: "John Fitzgerald" link: "https://researchr.org/alias/john-fitzgerald" - name: "Ian J. Hayes" link: "https://researchr.org/alias/ian-j.-hayes" - name: "Andrzej Tarlecki" link: "https://researchr.org/alias/andrzej-tarlecki" volume: "3582" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-27882-6" kind: "inproceedings" key: "AlvesSVO05" - title: "From spreadsheets to relational databases and back" author: - name: "Jácome Cunha" link: "http://alfa.di.uminho.pt/~jacome/" - name: "João Saraiva" link: "http://di.uminho.pt/~jas" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2009" doi: "http://doi.acm.org/10.1145/1480945.1480972" abstract: "This paper presents techniques and tools to transform spreadsheets into relational databases and back. A set of data refinement rules is introduced to map a tabular datatype into a relational database schema. Having expressed the transformation of the two data models as data refinements, we obtain for free the functions that migrate the data. We use well-known relational database techniques to optimize and query the data. Because data refinements define bi-directional transformations we can map such database back to an optimized spreadsheet. We have implemented the data refinement rules and we constructed Haskell-based tools to manipulate, optimize and refactor Excel-like spreadsheets." links: doi: "http://doi.acm.org/10.1145/1480945.1480972" tags: - "model-to-model transformation" - "optimization" - "relational data base" - "rule-based" - "relational database" - "meta-model" - "XML" - "XML Schema" - "refinement" - "Haskell" - "data-flow" - "source-to-source" - "rules" - "Spreadsheet" - "model transformation" - "database" - "Meta-Environment" - "2LT" - "transformation" researchr: "https://researchr.org/publication/CunhaSV09" cites: 0 citedby: 0 pages: "179-188" booktitle: "Proceedings of the 2009 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulation, PEPM 2009, Savannah, GA, USA, January 19-20, 2009" editor: - name: "Germán Puebla" link: "https://researchr.org/alias/germ%C3%A1n-puebla" - name: "Germán Vidal" link: "http://users.dsic.upv.es/~gvidal/" publisher: "ACM" isbn: "978-1-60558-327-3" kind: "inproceedings" key: "CunhaSV09" - title: "The Essence of Strategic Programming. An inquiry into trans-paradigmatic genericity" author: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2002" abstract: "Strategic programming is an idiom for generic programming where the concept of a strategy plays a central role. A strategy is a generic, dataprocessing action. Strategies are first-class citizens as witnessed by a combinator style. Two important characteristics of strategies are that they can traverse into compound data, and that they can be customized by type-specific actions. We provide a general definition of strategic programming, and we demonstrate how this idiom can be realized inside several programming language paradigms." researchr: "https://researchr.org/publication/LaemmelVV02" cites: 0 citedby: 0 kind: "misc" key: "LaemmelVV02" - title: "Measuring the Degree of Service Orientation in Proprietary SOA Systems" author: - name: "Anwar Aldris" link: "https://researchr.org/alias/anwar-aldris" - name: "Ariadi Nugroho" link: "https://researchr.org/alias/ariadi-nugroho" - name: "Patricia Lago" link: "https://researchr.org/alias/patricia-lago" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2013" doi: "http://doi.ieeecomputersociety.org/10.1109/SOSE.2013.63" links: doi: "http://doi.ieeecomputersociety.org/10.1109/SOSE.2013.63" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sose/AldrisNLV13" researchr: "https://researchr.org/publication/AldrisNLV13" cites: 0 citedby: 0 pages: "233-244" booktitle: "Seventh IEEE International Symposium on Service-Oriented System Engineering, SOSE 2013, San Francisco, CA, USA, March 25-28, 2013" publisher: "IEEE Computer Society" isbn: "978-1-4673-5659-6" kind: "inproceedings" key: "AldrisNLV13" - title: "Dependency profiles for software architecture evaluations" author: - name: "Eric Bouwers" link: "https://researchr.org/alias/eric-bouwers" - name: "Arie van Deursen" link: "https://researchr.org/alias/arie-van-deursen" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2011" doi: "http://dx.doi.org/10.1109/ICSM.2011.6080827" links: doi: "http://dx.doi.org/10.1109/ICSM.2011.6080827" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/icsm/BouwersDV11" researchr: "https://researchr.org/publication/BouwersDV11" cites: 0 citedby: 0 pages: "540-543" booktitle: "IEEE 27th International Conference on Software Maintenance, ICSM 2011, Williamsburg, VA, USA, September 25-30, 2011" publisher: "IEEE" isbn: "978-1-4577-0663-9" kind: "inproceedings" key: "BouwersDV11" - title: "XT: a bundle of program transformation tools" author: - name: "Merijn de Jonge" link: "https://researchr.org/profile/merijndejonge/publications" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2001" doi: "http://dx.doi.org/10.1016/S1571-0661(04)80921-6" abstract: "XT bundles existing and newly developed program transformation libraries and tools into an open framework that supports component-based development of program transformations. We discuss the roles of XT's constituents in the development process of program transformation tools, as well as some experiences with building program transformation systems with XT. " links: doi: "http://dx.doi.org/10.1016/S1571-0661(04)80921-6" successor: "https://researchr.org/publication/BravenboerKVV06" tags: - "model-to-model transformation" - "rule-based" - "Stratego/XT" - "model-driven development" - "source-to-source" - "transformation system" - "model transformation" - "programming" - "open-source" - "transformation" - "Stratego" - "program transformation" researchr: "https://researchr.org/publication/JongeVV01" cites: 0 citedby: 0 journal: "Electronic Notes in Theoretical Computer Science" volume: "44" number: "2" pages: "79-86" kind: "article" key: "JongeVV01" - title: "Domain-Specific Languages: An Annotated Bibliography" author: - name: "Arie van Deursen" link: "http://www.st.ewi.tudelft.nl/~arie/" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2000" doi: "http://doi.acm.org/10.1145/352029.352035" abstract: "We survey the literature available on the topic of domain-specific languages as used for the construction and maintenance of software systems. We list a selection of 75 key publications in the area, and provide a summary for each of the papers. Moreover, we discuss terminology, risks and benefits, example domain-specific languages, design methodologies, and implementation techniques." links: doi: "http://doi.acm.org/10.1145/352029.352035" tags: - "Domain-specific languages" - "bibliography" - "language design" - "maintenance" - "survey" - "annotated bibliography" - "design" - "domain-specific language" researchr: "https://researchr.org/publication/DeursenKV00" cites: 79 citedby: 4 journal: "SIGPLAN Notices" volume: "35" number: "6" pages: "26-36" kind: "article" key: "DeursenKV00" - title: "Quantifying the Analyzability of Software Architectures" author: - name: "Eric Bouwers" link: "https://researchr.org/alias/eric-bouwers" - name: "José Pedro Correia" link: "https://researchr.org/alias/jos%C3%A9-pedro-correia" - name: "Arie van Deursen" link: "https://researchr.org/alias/arie-van-deursen" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2011" doi: "http://doi.ieeecomputersociety.org/10.1109/WICSA.2011.20" links: doi: "http://doi.ieeecomputersociety.org/10.1109/WICSA.2011.20" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/wicsa/BouwersCDV11" researchr: "https://researchr.org/publication/BouwersCDV11" cites: 0 citedby: 0 pages: "83-92" booktitle: "9th Working IEEE/IFIP Conference on Software Architecture, WICSA 2011, Boulder, Colorado, USA, June 20-24, 2011" publisher: "IEEE Computer Society" isbn: "978-0-7695-4351-2" kind: "inproceedings" key: "BouwersCDV11" - title: "Benchmark-Based Aggregation of Metrics to Ratings" author: - name: "Tiago L. Alves" link: "https://researchr.org/alias/tiago-l.-alves" - name: "José Pedro Correia" link: "https://researchr.org/alias/jos%C3%A9-pedro-correia" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2011" doi: "http://doi.ieeecomputersociety.org/10.1109/IWSM-MENSURA.2011.15" links: doi: "http://doi.ieeecomputersociety.org/10.1109/IWSM-MENSURA.2011.15" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/iwsm/AlvesCV11" researchr: "https://researchr.org/publication/AlvesCV11" cites: 0 citedby: 0 pages: "20-29" booktitle: "2011 Joint Conf of 21st Int'l Workshop on Software Measurement and the 6th Int'l Conference on Software Process and Product Measurement, IWSM/Mensura 2011, Nara, Japan, November 3-4, 2011" editor: - name: "Koichi Matsuda" link: "https://researchr.org/alias/koichi-matsuda" - name: "Ken-ichi Matsumoto" link: "https://researchr.org/alias/ken-ichi-matsumoto" - name: "Akito Monden" link: "https://researchr.org/alias/akito-monden" publisher: "IEEE" isbn: "978-1-4577-1930-1" kind: "inproceedings" key: "AlvesCV11" - title: "Workshop on Generative Programming 2002 (GP2002)" author: - name: "Merijn de Jonge" link: "https://researchr.org/profile/merijndejonge/publications" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2002" doi: "http://link.springer.de/link/service/series/0558/bibs/2319/23190331.htm" abstract: "-" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2319/23190331.htm" tags: - "Domain-specific languages" - "generative programming" - "programming languages" - "object-oriented programming" - "feature diagrams" - "programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/JongeV02" cites: 0 citedby: 0 pages: "331" booktitle: "Software Reuse: Methods, Techniques, and Tools, 7th International Conference, ICSR-7, Austin, TX, USA, April 15-19, 2002, Proceedings" editor: - name: "Cristina Gacek" link: "https://researchr.org/alias/cristina-gacek" volume: "2319" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-43483-6" kind: "inproceedings" key: "JongeV02" - title: "Industrial Realities of Program Comprehension (IRPC 2008)" author: - name: "Thomas Dean" link: "http://post.queensu.ca/~trd/" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2008" doi: "http://dx.doi.org/10.1109/ICPC.2008.43" abstract: "In the working session on Industrial Realities of Program Comprehension (IRPC 2008), experience and ideas are shared regarding the challenges and opportunities of industrial application of program comprehension techniques. Participants work together to formulate a set of useful guidelines for introducing new program comprehension techniques into industrial practice as well as consolidating and increasing their use." links: doi: "http://dx.doi.org/10.1109/ICPC.2008.43" tags: - "program comprehension" - "programming" researchr: "https://researchr.org/publication/DeanV08" cites: 0 citedby: 0 pages: "283-284" booktitle: "The 16th IEEE International Conference on Program Comprehension, ICPC 2008, Amsterdam, The Netherlands, June 10-13, 2008" editor: - name: "René L. Krikhaar" link: "https://researchr.org/alias/ren%C3%A9-l.-krikhaar" - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Chris Verhoef" link: "http://www.cs.vu.nl/~x/" publisher: "IEEE Computer Society" kind: "inproceedings" key: "DeanV08" - title: "Standardized Code Quality Benchmarking for Improving Software Maintainability" author: - name: "Robert Baggen" link: "http://www.tuvit.de/english/Home.asp" - name: "Katrin Schill" link: "http://www.tuvit.de/english/Home.asp" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2010" abstract: "Abstract—We provide an overview of the approach developed by the Software Improvement Group (SIG) for code analysis and quality consulting focused on software maintainability. The approach uses a standardized measurement model based on the ISO/IEC 9126 definition of maintainability and source code metrics. Procedural standardization in evaluation projects further enhances the comparability of results. Individual assessments are stored in a repository that allows any system at hand to be compared to the industry-wide state of the art in code quality and maintainability. When a minimum level of software maintainability is reached, the certification body of TÜV Informationstechnik GmbH (TÜViT) issues a Trusted Product Maintainability certificate for the software product." tags: - "rule-based" - "meta-model" - "software product quality" - "points-to analysis" - "analysis" - "source-to-source" - "certification" - "benchmarking" - "ISO/IEC 9126" - "Meta-Environment" - "standardization" - "systematic-approach" - "open-source" researchr: "https://researchr.org/publication/BaggenSV2010" cites: 0 citedby: 0 booktitle: "4th International Workshop on Software Quality and Maintainability (SQM 2010), March 15, 2010, Madrid, Spain" kind: "inproceedings" key: "BaggenSV2010" - title: "Faster issue resolution with higher technical quality of software" author: - name: "Dennis Bijlsma" link: "https://researchr.org/alias/dennis-bijlsma" - name: "Miguel Alexandre Ferreira" link: "https://researchr.org/alias/miguel-alexandre-ferreira" - name: "Bart Luijten" link: "https://researchr.org/alias/bart-luijten" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2012" doi: "http://dx.doi.org/10.1007/s11219-011-9140-0" links: doi: "http://dx.doi.org/10.1007/s11219-011-9140-0" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/sqj/BijlsmaFLV12" researchr: "https://researchr.org/publication/BijlsmaFLV12" cites: 0 citedby: 0 journal: "Software Quality Journal" volume: "20" number: "2" pages: "265-285" kind: "article" key: "BijlsmaFLV12" - title: "Strategic polymorphism requires just two combinators!" author: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2002" doi: "http://arxiv.org/abs/cs.PL/0212048" abstract: "In previous work, we introduced the notion of functional strategies: first-class generic functions that can traverse terms of any type while mixing uniform and type-specific behaviour. Functional strategies transpose the notion of term rewriting strategies (with coverage of traversal) to the functional programming paradigm. Meanwhile, a number of Haskell-based models and combinator suites were proposed to support generic programming with functional strategies. In the present paper, we provide a compact and matured reconstruction of functional strategies. We capture strategic polymorphism by just two primitive combinators. This is done without commitment to a specific functional language. We analyse the design space for implementational models of functional strategies. For completeness, we also provide an operational reference model for implementing functional strategies (in Haskell). We demonstrate the generality of our approach by reconstructing representative fragments of the Strafunski library for functional strategies." note: "informal publication" links: doi: "http://arxiv.org/abs/cs.PL/0212048" tags: - "programming languages" - "rule-based" - "completeness" - "meta programming" - "generic programming" - "meta-model" - "modeling language" - "modeling" - "traversal" - "term rewriting" - "language modeling" - "functional programming" - "language design" - "Haskell" - "graph-rewriting" - "programming paradigms" - "strategic programming" - "Strategic term rewriting" - "programming" - "Meta-Environment" - "rewriting" - "design" - "coverage" - "systematic-approach" - "rewriting strategies" - "domain-specific language" researchr: "https://researchr.org/publication/cs-PL-0212048" cites: 0 citedby: 0 journal: "CoRR" volume: "cs.PL/0212048" kind: "article" key: "cs-PL-0212048" - title: "Collaborative Software Development" author: - name: "Merijn de Jonge" link: "https://researchr.org/profile/merijndejonge/publications" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2001" note: "Unpublished draft" researchr: "https://researchr.org/publication/JongeVV01-CSD" cites: 0 citedby: 0 kind: "unpublished" key: "JongeVV01-CSD" - title: "Quality Assessment for Embedded SQL" author: - name: "Huib van den Brink" link: "http://www.linkedin.com/pub/huib-van-den-brink/1/8aa/69a" - name: "Rob van der Leek" link: "http://www.sig.eu" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2007" doi: "http://dx.doi.org/10.1109/SCAM.2007.23" abstract: "The access of information systems to underlying relational databases is commonly programmed using embedded SQL queries. Such embedded queries may take the form of string literals that are programmatically concatenated into queries to be submitted to the DBMS, or they may be written in a mixture of the syntax of SQL and a host programming language. The particular ways in which embedded queries are constructed and intertwined with the surrounding code can have significant impact on the understandability, testability, adaptability, and other quality aspects of the overall system. We present an approach to tool-based analysis of the quality of systems that employ embedded SQL queries. The basis of the approach is the identification and reconstruction of embedded queries. These queries are then submitted to a variety of analyses. For example, we chart the relationships of queries to the surrounding code and, via the control and data flow of that code, to each other. Also, we define a suite of metric extractors for embedded queries. Through a number of case studies, involving PL/SQL, Cobol, and Visual Basic, we show how the results of these analyses can be employed to make an assessment of various quality aspects related to the use of embedded queries." links: doi: "http://dx.doi.org/10.1109/SCAM.2007.23" tags: - "control systems" - "programming languages" - "relational data base" - "rule-based" - "program analysis" - "data-flow language" - "case study" - "relational database" - "embedded software" - "SQL" - "software product quality" - "testing" - "analysis" - "data-flow programming" - "data-flow" - "programming" - "access control" - "data-flow analysis" - "Cobol" - "role-based access control" - "systematic-approach" - "query language" researchr: "https://researchr.org/publication/BrinkLV07" cites: 0 citedby: 0 pages: "163-170" booktitle: "Seventh IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2007), September 30 - October 1, 2007, Paris, France" publisher: "IEEE" kind: "inproceedings" key: "BrinkLV07" - title: "Criteria for the evaluation of implemented architectures" author: - name: "Eric Bouwers" link: "http://www.st.ewi.tudelft.nl/~bouwers/main/" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "Arie van Deursen" link: "http://www.st.ewi.tudelft.nl/~arie/" year: "2009" doi: "http://dx.doi.org/10.1109/ICSM.2009.5306330" abstract: "Software architecture evaluation methods aim at identifying potential maintainability problems for a given architecture. Several of these methods exist, which typically prescribe the structure of the evaluation process. Often left implicit, however, are the concrete system attributes that need to be studied in order to assess the maintainability of implemented architectures. To determine this set of attributes, we have performed an empirical study on over 40 commercial architectural evaluations conducted during the past two years as part of a systematic Software Risk Assessment. We present this study and we explain how the identified attributes can be projected on various architectural system properties, which provides an overview of criteria for the evaluation of the maintainability of implemented software architectures." links: doi: "http://dx.doi.org/10.1109/ICSM.2009.5306330" tags: - "empirical" - "software architecture" - "architecture" - "systematic-approach" researchr: "https://researchr.org/publication/BouwersVD09" cites: 0 citedby: 0 pages: "73-82" booktitle: "25th IEEE International Conference on Software Maintenance (ICSM 2009), September 20-26, 2009, Edmonton, Alberta, Canada" publisher: "IEEE" kind: "inproceedings" key: "BouwersVD09" - title: "Constraint-aware Schema Transformation" author: - name: "Tiago L. Alves" link: "https://researchr.org/alias/tiago-l.-alves" - name: "Paulo F. Silva" link: "https://researchr.org/alias/paulo-f.-silva" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2012" doi: "http://dx.doi.org/10.1016/j.entcs.2012.11.008" links: doi: "http://dx.doi.org/10.1016/j.entcs.2012.11.008" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/entcs/AlvesSV12" researchr: "https://researchr.org/publication/AlvesSV12" cites: 0 citedby: 0 journal: "Electronic Notes in Theoretical Computer Science" volume: "290" pages: "3-18" kind: "article" key: "AlvesSV12" - title: "Strong types for relational databases" author: - name: "Alexandra Silva" link: "http://homepages.cwi.nl/~ams/" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2006" doi: "http://doi.acm.org/10.1145/1159842.1159846" abstract: "Haskell's type system with multi-parameter constructor classes and functional dependencies allows static (compile-time) computations to be expressed by logic programming on the level of types. This emergent capability has been exploited for instance to model arbitrary-length tuples (heterogeneous lists), extensible records, functions with variable length argument lists, and (homogenous) lists of statically fixed length (vectors). We explain how type-level programming can be exploited to define a strongly-typed model of relational databases and operations on them. In particular, we present a strongly typed embedding of a significant subset of SQL in Haskell. In this model, meta-data is represented by type-level entities that guard the semantic correctness of database operations at compile time. Apart from the standard relational database operations, such as selection and join, we model functional dependencies (among table attributes), normal forms, and operations for database transformation. We show how functional dependency information can be represented at the type level, and can be transported through operations. This means that type inference statically computes functional dependencies on the result from those on the arguments. Our model shows that Haskell can be used to design and prototype typed languages for designing, programming, and transforming relational databases." links: doi: "http://doi.acm.org/10.1145/1159842.1159846" tags: - "programming languages" - "model-to-model transformation" - "type inference" - "meta programming" - "data-flow language" - "relational database" - "meta-model" - "modeling language" - "modeling" - "SQL" - "transformation language" - "language modeling" - "functional programming" - "language design" - "Haskell" - "type system" - "data-flow programming" - "data-flow" - "type-level programming" - "source-to-source" - "logic programming" - "transformation system" - "compiler" - "model transformation" - "information models" - "programming" - "database" - "logic" - "Meta-Environment" - "design" - "extensible language" - "meta-objects" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/SilvaV06" cites: 0 citedby: 0 pages: "25-36" booktitle: "Proceedings of the ACM SIGPLAN Workshop on Haskell, Haskell 2006, Portland, Oregon, USA, September 17, 2006" editor: - name: "Andres Löh" link: "http://people.cs.uu.nl/andres/" publisher: "ACM" isbn: "1-59593-489-8" kind: "inproceedings" key: "SilvaV06" - title: "Interpretation of Source Code Clusters in Terms of the ISO/IEC-9126 Maintainability Characteristics" author: - name: "Yiannis Kanellopoulos" link: "http://www.sig.eu" - name: "Christos Tjortjis" link: "http://www.cs.manchester.ac.uk/~tjortjis/" - name: "Ilja Heitlager" link: "http://www.sig.eu" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2008" doi: "http://dx.doi.org/10.1109/CSMR.2008.4493301" abstract: "Clustering is a data mining technique that allows the grouping of data points on the basis of their similarity with respect to multiple dimensions of measurement. It has also been applied in the software engineering domain, in particular to support software quality assessment based on source code metrics. Unfortunately, since clusters emerge from metrics at the source code level, it is difficult to interpret the significance of clusters at the level of the quality of the entire system. In this paper, we propose a method for interpreting source code clusters using the ISO/IEC 9126 software product quality model. Several methods have been proposed to perform quantitative assessment of software systems in terms of the quality characteristics defined by ISO/IEC 9126. These methods perform mappings of low-level source code metrics to high-level quality characteristics by various aggregation and weighting procedures. We applied such a method to obtain quality profiles at various abstraction levels for each generated source code cluster. Subsequently, the plethora of quality profiles obtained is visualized such that conclusions about different quality problems in various clusters can be obtained at a glance." links: doi: "http://dx.doi.org/10.1109/CSMR.2008.4493301" tags: - "rule-based" - "meta-model" - "software product quality" - "data-flow" - "source-to-source" - "software engineering" - "model-driven engineering" - "ISO/IEC 9126" - "abstraction" - "Meta-Environment" - "open-source" researchr: "https://researchr.org/publication/KanellopoulosTHV08" cites: 0 citedby: 0 pages: "63-72" booktitle: "12th European Conference on Software Maintenance and Reengineering, CSMR 2008, April 1-4, 2008, Athens, Greece" publisher: "IEEE" kind: "inproceedings" key: "KanellopoulosTHV08" - title: "Testing principles, current practices, and effects of change localization" author: - name: "Steven Raemaekers" link: "https://researchr.org/alias/steven-raemaekers" - name: "Gabriela F. Nane" link: "https://researchr.org/alias/gabriela-f.-nane" - name: "Arie van Deursen" link: "https://researchr.org/alias/arie-van-deursen" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2013" doi: "http://dl.acm.org/citation.cfm?id=2487136" links: doi: "http://dl.acm.org/citation.cfm?id=2487136" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/msr/RaemaekersNDV13" researchr: "https://researchr.org/publication/RaemaekersNDV13" cites: 0 citedby: 0 pages: "257-266" booktitle: "Proceedings of the 10th Working Conference on Mining Software Repositories, MSR '13, San Francisco, CA, USA, May 18-19, 2013" editor: - name: "Thomas Zimmermann" link: "https://researchr.org/alias/thomas-zimmermann" - name: "Massimiliano Di Penta" link: "https://researchr.org/alias/massimiliano-di-penta" - name: "Sunghun Kim" link: "https://researchr.org/alias/sunghun-kim" publisher: "IEEE / ACM" isbn: "978-1-4673-2936-1" kind: "inproceedings" key: "RaemaekersNDV13" - title: "Deriving metric thresholds from benchmark data" author: - name: "Tiago L. Alves" link: "https://researchr.org/alias/tiago-l.-alves" - name: "Christiaan Ypma" link: "https://researchr.org/alias/christiaan-ypma" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2010" doi: "http://dx.doi.org/10.1109/ICSM.2010.5609747" links: doi: "http://dx.doi.org/10.1109/ICSM.2010.5609747" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/icsm/AlvesYV10" tags: - "data-flow" researchr: "https://researchr.org/publication/AlvesYV10" cites: 0 citedby: 0 pages: "1-10" booktitle: "26th IEEE International Conference on Software Maintenance (ICSM 2010), September 12-18, 2010, Timisoara, Romania" publisher: "IEEE Computer Society" isbn: "978-1-4244-8630-4" kind: "inproceedings" key: "AlvesYV10" - title: "Certification of Technical Quality of Software Products" author: - name: "José Pedro Correia" link: "http://www.sig.eu" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2008" abstract: "In this paper we propose a method for certification of technical quality of software products. The certification method employs a layered model of technical quality, based on the ISO/IEC 9126 international standard for software product quality. This model was developed in the context of software assessments conducted on commercial software systems over the course of several years. Using the layered quality model as a basis, we define a three-phase appraisal method that ends in certification of a software product at one of five possible levels. We illustrate the certification method by providing details of its application to twelve open source database management systems and five open source web servers." note: "In Proceedings of the 2nd International Workshop on Foundations and Techniques for Open Source Software Certification, Research Report 398, United Nations University" tags: - "rule-based" - "meta-model" - "modeling" - "software product quality" - "source-to-source" - "certification" - "ISO/IEC 9126" - "web applications" - "database" - "context-aware" - "Meta-Environment" - "open-source" researchr: "https://researchr.org/publication/CorreiaVisser2008a" cites: 0 citedby: 0 kind: "inproceedings" key: "CorreiaVisser2008a" - title: "Design Patterns for Functional Strategic Programming" author: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2002" doi: "http://arxiv.org/abs/cs.PL/0204015" abstract: "In previous work, we introduced the fundamentals and a supporting combinator library for strategic programming. This an idiom for generic programming based on the notion of a functional strategy: a first-class generic function that cannot only be applied to terms of any type, but which also allows generic traversal into subterms and can be customized with type-specific behaviour. This paper seeks to provide practicing functional programmers with pragmatic guidance in crafting their own strategic programs. We present the fundamentals and the support from a user's perspective, and we initiate a catalogue of strategy design patterns. These design patterns aim at consolidating strategic programming expertise in accessible form." note: "informal publication" links: doi: "http://arxiv.org/abs/cs.PL/0204015" tags: - "rule-based" - "generic programming" - "traversal" - "functional programming" - "Haskell" - "strategic programming" - "programming" - "design" researchr: "https://researchr.org/publication/cs-PL-0204015" cites: 0 citedby: 0 journal: "CoRR" volume: "cs.PL/0204015" kind: "article" key: "cs-PL-0204015" - title: "Assessment of Issue Handling Efficiency" author: - name: "Bart Luijten" link: "http://nl.linkedin.com/in/bluijten" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "Andy Zaidman" link: "http://www.st.ewi.tudelft.nl/~zaidman" year: "2010" abstract: "We mined the issue database of GNOME to assess how issues are handled. How many issues are submitted and resolved? Does the backlog grow or decrease? How fast are issues resolved? Does issue resolution speed increase or decrease over time? In which subproject are issues handled most efficiently? To answer such questions, we apply several visualization and quantification instruments to the raw issue data. In particular, we aggregate issues into four risk categories, based on their resolution time. These categories are the basis both for visualizing and ranking, which are used in concert for issue database exploration." tags: - "source code analysis" - "rule-based" - "issue mining" - "software product quality" - "points-to analysis" - "analysis" - "data-flow" - "source-to-source" - "database" - "data-flow analysis" - "software defects" - "open-source" researchr: "https://researchr.org/publication/LuijtenVZ2010" cites: 0 citedby: 0 booktitle: "The 7th Working Conference on Mining Software Repositories (MSR 2010)" kind: "inproceedings" key: "LuijtenVZ2010" - title: "Coupled Schema Transformation and Data Conversion for XML and SQL" author: - name: "Pablo Berdaguer" link: "http://wiki.di.uminho.pt/twiki/bin/view/Personal/Pablo/WebHome" - name: "Alcino Cunha" link: "http://www.di.uminho.pt/~mac/" - name: "Hugo Pacheco" link: "http://alfa.di.uminho.pt/~hpacheco/" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-69611-7_19" abstract: "A two-level data transformation consists of a type-level transformation of a data format coupled with value-level transformations of data instances corresponding to that format. We have implemented a system for performing two-level transformations on XML schemas and their corresponding documents, and on SQL schemas and the databases that they describe. The core of the system consists of a combinator library for composing type-changing rewrite rules that preserve structural information and referential constraints. We discuss the implementation of the system’s core library, and of its SQL and XML front-ends in the functional language Haskell. We show how the system can be used to tackle various two-level transformation scenarios, such as XML schema evolution coupled with document migration, and hierarchical-relational data mappings that convert between XML documents and SQL databases." links: doi: "http://dx.doi.org/10.1007/978-3-540-69611-7_19" tags: - "rule-based" - "Data refinement" - "data-flow language" - "relational database" - "graph transformation" - "XML" - "XML Schema" - "refinement" - "SQL" - "transformation language" - "coupled evolution" - "coupled transformation" - "constraints" - "Haskell" - "type system" - "data-flow" - "Schema transformation" - "format evolution" - "graph-rewriting" - "rules" - "migration" - "transformation system" - "Two-level transformation" - "2LT" - "rewriting" - "transformation" researchr: "https://researchr.org/publication/BerdaguerCPV07" cites: 0 citedby: 0 pages: "290-304" booktitle: "Practical Aspects of Declarative Languages, 9th International Symposium, PADL 2007, Nice, France, January 14-15, 2007" editor: - name: "Michael Hanus" link: "http://www.informatik.uni-kiel.de/~mh/" volume: "4354" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-69608-7" kind: "inproceedings" key: "BerdaguerCPV07" - title: "Preface to the Proceedings of the Eighth International Workshop on Rule Based Programming (RULE 2007)" author: - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "Victor L. Winter" link: "http://faculty.ist.unomaha.edu/winter/" year: "2008" doi: "http://dx.doi.org/10.1016/j.entcs.2008.10.030" abstract: "-" links: doi: "http://dx.doi.org/10.1016/j.entcs.2008.10.030" tags: - "rule-based" - "rules" - "programming" - "Rule-based programming" researchr: "https://researchr.org/publication/VisserW08" cites: 0 citedby: 0 journal: "Electronic Notes in Theoretical Computer Science" volume: "219" pages: "1-2" kind: "article" key: "VisserW08" - title: "Assessment of issue handling efficiency" author: - name: "Bart Luijten" link: "http://nl.linkedin.com/in/bluijten" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "Andy Zaidman" link: "http://www.st.ewi.tudelft.nl/~zaidman" year: "2010" doi: "http://dx.doi.org/10.1109/MSR.2010.5463292" links: doi: "http://dx.doi.org/10.1109/MSR.2010.5463292" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/msr/LuijtenVZ10" researchr: "https://researchr.org/publication/LuijtenVZ10" cites: 0 citedby: 0 pages: "94-97" booktitle: "Proceedings of the 7th International Working Conference on Mining Software Repositories, MSR 2010 (Co-located with ICSE), Cape Town, South Africa, May 2-3, 2010, Proceedings" editor: - name: "Jim Whitehead" link: "https://researchr.org/alias/jim-whitehead" - name: "Thomas Zimmermann" link: "https://researchr.org/alias/thomas-zimmermann" publisher: "IEEE" isbn: "978-1-4244-6803-4" kind: "inproceedings" key: "LuijtenVZ10" - title: "Software metrics: pitfalls and best practices" author: - name: "Eric Bouwers" link: "https://researchr.org/alias/eric-bouwers" - name: "Arie van Deursen" link: "https://researchr.org/alias/arie-van-deursen" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2013" doi: "http://dl.acm.org/citation.cfm?id=2487051" links: doi: "http://dl.acm.org/citation.cfm?id=2487051" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/icse/BouwersDV04" researchr: "https://researchr.org/publication/BouwersDV04" cites: 0 citedby: 0 pages: "1491-1492" booktitle: "35th International Conference on Software Engineering, ICSE '13, San Francisco, CA, USA, May 18-26, 2013" editor: - name: "David Notkin" link: "https://researchr.org/alias/david-notkin" - name: "Betty H. C. Cheng" link: "https://researchr.org/alias/betty-h.-c.-cheng" - name: "Klaus Pohl" link: "https://researchr.org/alias/klaus-pohl" publisher: "IEEE / ACM" isbn: "978-1-4673-3076-3" kind: "inproceedings" key: "BouwersDV04" - title: "A Practical Model for Rating Software Security" author: - name: "Haiyun Xu" link: "https://researchr.org/alias/haiyun-xu" - name: "Jeroen Heijmans" link: "https://researchr.org/alias/jeroen-heijmans" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2013" doi: "http://dx.doi.org/10.1109/SERE-C.2013.11" links: doi: "http://dx.doi.org/10.1109/SERE-C.2013.11" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/ssiri/XuHV13" researchr: "https://researchr.org/publication/XuHV13" cites: 0 citedby: 0 pages: "231-232" booktitle: "Seventh International Conference on Software Security and Reliability, SERE 2012, Gaithersburg, Maryland, USA, 18-20 June 2013 - Companion Volume" publisher: "IEEE" kind: "inproceedings" key: "XuHV13" - title: "Building Program Understanding Tools Using Visitor Combinators" author: - name: "Arie van Deursen" link: "http://www.st.ewi.tudelft.nl/~arie/" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2002" doi: "http://computer.org/proceedings/iwpc/1495/14950137abs.htm" abstract: "Program understanding tools manipulate program representations, such as abstract syntax trees, control-flow graphs, or data-flow graphs. This paper deals with the use of visitor combinators to conduct such manipulations. Visitor combinators are an extension of the well-known visitor design pattern. They are small, reusable classes that carry out specific visiting steps. They can be composed in different constellations to build more complex visitors. We evaluate the expressiveness, reusability, ease of development, and applicability of visitor combinators to the construction of program understanding tools. To that end, we conduct a case study in the use of visitor combinators for control-flow analysis and visualization as used in a commercial Cobol program understanding tool." links: doi: "http://computer.org/proceedings/iwpc/1495/14950137abs.htm" tags: - "object-oriented programming" - "program comprehension" - "program analysis" - "program understanding" - "case study" - "abstract syntax" - "visitor" - "analysis" - "reuse" - "data-flow programming" - "data-flow" - "graph-rewriting" - "programming" - "subject-oriented programming" - "rewriting" - "data-flow analysis" - "Cobol" - "design" - "feature-oriented programming" researchr: "https://researchr.org/publication/DeursenV02%3A0" cites: 0 citedby: 0 pages: "137-146" booktitle: "10th International Workshop on Program Comprehension (IWPC 2002), 27-29 June 2002, Paris, France" publisher: "IEEE Computer Society" isbn: "0-7695-1495-2" kind: "inproceedings" key: "DeursenV02:0" - title: "What is the value of your software?" author: - name: "Jelle de Groot" link: "https://researchr.org/alias/jelle-de-groot" - name: "Ariadi Nugroho" link: "https://researchr.org/alias/ariadi-nugroho" - name: "Thomas Bäck" link: "https://researchr.org/alias/thomas-b%C3%A4ck" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2012" doi: "http://dl.acm.org/citation.cfm?id=2666043" links: doi: "http://dl.acm.org/citation.cfm?id=2666043" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/icse/GrootNBV12" researchr: "https://researchr.org/publication/GrootNBV12" cites: 0 citedby: 0 pages: "37-44" booktitle: "Proceedings of the Third International Workshop on Managing Technical Debt, MTD 2012, Zurich, Switzerland, June 5, 2012" editor: - name: "Philippe Kruchten" link: "https://researchr.org/alias/philippe-kruchten" - name: "Robert L. Nord" link: "https://researchr.org/alias/robert-l.-nord" - name: "Ipek Ozkaya" link: "https://researchr.org/alias/ipek-ozkaya" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" publisher: "ACM" isbn: "978-1-4673-1749-8" kind: "inproceedings" key: "GrootNBV12" - title: "A Case Study in Grammar Engineering" author: - name: "Tiago L. Alves" link: "http://wiki.di.uminho.pt/twiki/bin/view/Personal/Tiago/" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-642-00434-6_18" abstract: "This paper describes a case study about how well-established software engineering techniques can be applied to the development of a grammar. The employed development methodology can be described as iterative grammar engineering and includes the application of techniques such as grammar metrics, unit testing, and test coverage analysis. The result is a grammar of industrial strength, in the sense that it is well-tested, it can be used for fast parsing of high volumes of code, and it allows automatic generation of support for syntax tree representation, traversal, and interchange. " links: doi: "http://dx.doi.org/10.1007/978-3-642-00434-6_18" tags: - "test coverage" - "case study" - "traversal" - "grammar engineering" - "testing" - "analysis" - "software engineering" - "code generation" - "parsing" - "iterative development" - "coverage" - "grammar" researchr: "https://researchr.org/publication/AlvesV08" cites: 0 citedby: 0 pages: "285-304" booktitle: "Software Language Engineering, First International Conference, SLE 2008, Toulouse, France, September 29-30, 2008. Revised Selected Papers" editor: - name: "Dragan Gasevic" link: "http://www.sfu.ca/~dgasevic/" - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" volume: "5452" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-00433-9" kind: "inproceedings" key: "AlvesV08" - title: "Grammars as Contracts" author: - name: "Merijn de Jonge" link: "https://researchr.org/profile/merijndejonge/publications" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2000" doi: "http://link.springer.de/link/service/series/0558/bibs/2177/21770085.htm" abstract: "Component-based development of language tools stands in need of meta-tool support. This support can be offered by generation of code — libraries or full-fledged components — from syntax definitions. We develop a comprehensive architecture for such syntax-driven meta-tooling in which grammars serve as contracts between components. This architecture addresses exchange and processing both of full parse trees and of abstract syntax trees, and it caters for the integration of generated parse and pretty-print components with tree processing components. We discuss an instantiation of the architecture for the syntax definition formalism SDF, integrating both existing and newly developed meta-tools that support SDF. The ATerm format is adopted as exchange format. This instantiation gives special attention to adaptability, scalability, reusability, and maintainability issues surrounding language tool development." links: doi: "http://link.springer.de/link/service/series/0558/bibs/2177/21770085.htm" tags: - "generative programming" - "programming languages" - "reusable components" - "rule-based" - "syntax definition" - "meta programming" - "SDF" - "contracts" - "meta-model" - "abstract syntax" - "language engineering" - "architecture" - "grammar engineering" - "reuse" - "model-driven development" - "model-driven engineering" - "code generation" - "Meta-Environment" - "parsing" - "ASF+SDF" - "meta-objects" - "grammar" researchr: "https://researchr.org/publication/JongeV00" cites: 0 citedby: 0 pages: "85-99" booktitle: "Generative and Component-Based Software Engineering, Second International Symposium, GCSE 2000, Erfurt, Germany, October 9-12, 2000, Revised Papers" editor: - name: "Gregory Butler" link: "https://researchr.org/alias/gregory-butler" - name: "Stan Jarzabek" link: "https://researchr.org/alias/stan-jarzabek" volume: "2177" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-42578-0" kind: "inproceedings" key: "JongeV00" - title: "Transformation of structure-shy programs: applied to XPath queries and strategic functions" author: - name: "Alcino Cunha" link: "http://www.di.uminho.pt/~mac/" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2007" doi: "http://doi.acm.org/10.1145/1244381.1244385" abstract: "Various programming languages allow the construction of structure-shy programs. Such programs are defined generically for many different datatypes and only specify specific behavior for a few relevant subtypes. Typical examples are XML query languages that allow selection of subdocuments without exhaustively specifying intermediate element tags. Other examples are languages and libraries for polytypic or strategic functional programming and for adaptive object-oriented programming. In this paper, we present an algebraic approach to transformation of declarative structure-shy programs, in particular for strategic functions and XML queries. We formulate a rich set of algebraic laws, not just for transformation of structure-shy programs, but also for their conversion into structure-sensitive programs and vice versa. We show how subsets of these laws can be used to construct effective rewrite systems for specialization, generalization, and optimization of structure-shy programs. We present a type-safe encoding of these rewrite systems in Haskell which itself uses strategic functional programming techniques." links: doi: "http://doi.acm.org/10.1145/1244381.1244385" tags: - "programming languages" - "optimization" - "object-oriented programming" - "program transformations" - "meta programming" - "generic programming" - "graph transformation" - "XML" - "XML Schema" - "tagging" - "graph query" - "transformation language" - "functional programming" - "polytypic programming" - "XPath" - "Haskell" - "type system" - "graph-rewriting" - "subtyping" - "strategic programming" - "transformation system" - " algebra" - "programming" - "subject-oriented programming" - "program optimization" - "Meta-Environment" - "2LT" - "rewriting" - "polytypic" - "systematic-approach" - "feature-oriented programming" - "meta-objects" - "transformation" - "query language" - "program transformation" - "domain-specific language" researchr: "https://researchr.org/publication/CunhaV07" cites: 0 citedby: 0 pages: "11-20" booktitle: "Proceedings of the 2007 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-based Program Manipulation, 2007, Nice, France, January 15-16, 2007" editor: - name: "Ganesan Ramalingam" link: "http://research.microsoft.com/en-us/um/people/grama/" - name: "Eelco Visser" link: "http://eelcovisser.org" publisher: "ACM" isbn: "978-1-59593-620-2" kind: "inproceedings" key: "CunhaV07" - title: "Technical debt in software development: from metaphor to theory report on the third international workshop on managing technical debt" author: - name: "Philippe Kruchten" link: "https://researchr.org/alias/philippe-kruchten" - name: "Robert L. Nord" link: "https://researchr.org/alias/robert-l.-nord" - name: "Ipek Ozkaya" link: "https://researchr.org/alias/ipek-ozkaya" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2012" doi: "http://doi.acm.org/10.1145/2347696.2347698" links: doi: "http://doi.acm.org/10.1145/2347696.2347698" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/sigsoft/KruchtenNOV12" researchr: "https://researchr.org/publication/KruchtenNOV12" cites: 0 citedby: 0 journal: "ACM SIGSOFT Software Engineering Notes" volume: "37" number: "5" pages: "36-38" kind: "article" key: "KruchtenNOV12" - title: "Model-Based Programming Environments for Spreadsheets" author: - name: "Jácome Cunha" link: "https://researchr.org/alias/j%C3%A1come-cunha" - name: "João Saraiva" link: "https://researchr.org/alias/jo%C3%A3o-saraiva" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2012" doi: "http://dx.doi.org/10.1007/978-3-642-33182-4_10" links: doi: "http://dx.doi.org/10.1007/978-3-642-33182-4_10" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/sblp/CunhaSV12" researchr: "https://researchr.org/publication/CunhaSV12" cites: 0 citedby: 0 pages: "117-133" booktitle: "Programming Languages - 16th Brazilian Symposium, SBLP 2012, Natal, Brazil, September 23-28, 2012. Proceedings" editor: - name: "Francisco Heron de Carvalho Junior" link: "https://researchr.org/alias/francisco-heron-de-carvalho-junior" - name: "Luís Soares Barbosa" link: "https://researchr.org/alias/lu%C3%ADs-soares-barbosa" volume: "7554" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-33181-7" kind: "inproceedings" key: "CunhaSV12" - title: "Energy-efficiency indicators for e-services" author: - name: "Jeroen Arnoldus" link: "https://researchr.org/alias/jeroen-arnoldus" - name: "Joris Gresnigt" link: "https://researchr.org/alias/joris-gresnigt" - name: "Kay Grosskop" link: "https://researchr.org/alias/kay-grosskop" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2013" doi: "http://dx.doi.org/10.1109/GREENS.2013.6606418" links: doi: "http://dx.doi.org/10.1109/GREENS.2013.6606418" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/greens/ArnoldusGGV13" researchr: "https://researchr.org/publication/ArnoldusGGV13" cites: 0 citedby: 0 pages: "24-29" booktitle: "2nd International Workshop on Green and Sustainable Software, GREENS 2013, San Francisco, CA, USA, May 20, 2013" editor: - name: "Patricia Lago" link: "https://researchr.org/alias/patricia-lago" - name: "Niklaus Meyer" link: "https://researchr.org/alias/niklaus-meyer" - name: "Maurizio Morisio" link: "https://researchr.org/alias/maurizio-morisio" - name: "Hausi A. Müller" link: "https://researchr.org/alias/hausi-a.-m%C3%BCller" - name: "Giuseppe Scanniello" link: "https://researchr.org/alias/giuseppe-scanniello" publisher: "IEEE" kind: "inproceedings" key: "ArnoldusGGV13" - title: "Model-based programming environments for spreadsheets" author: - name: "Jácome Cunha" link: "https://researchr.org/alias/j%C3%A1come-cunha" - name: "Jorge Mendes" link: "https://researchr.org/alias/jorge-mendes" - name: "João Saraiva" link: "https://researchr.org/alias/jo%C3%A3o-saraiva" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2014" doi: "http://dx.doi.org/10.1016/j.scico.2014.02.002" links: doi: "http://dx.doi.org/10.1016/j.scico.2014.02.002" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/scp/CunhaMSV14" researchr: "https://researchr.org/publication/CunhaMSV14" cites: 0 citedby: 0 journal: "Science of Computer Programming" volume: "96" pages: "254-275" kind: "article" key: "CunhaMSV14" - title: "Type-Safe Two-Level Data Transformation" author: - name: "Alcino Cunha" link: "http://www.di.uminho.pt/~mac/" - name: "José Nuno Oliveira" link: "http://www.di.uminho.pt/~jno/" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2006" doi: "http://dx.doi.org/10.1007/11813040_20" abstract: "A two-level data transformation consists of a type-level transformation of a data format coupled with value-level transformations of data instances corresponding to that format. Examples of two-level data transformations include XML schema evolution coupled with document migration, and data mappings used for interoperability and persistence. We provide a formal treatment of two-level data transformations that is type-safe in the sense that the well-formedness of the value-level transformations with respect to the type-level transformation is guarded by a strong type system. We rely on various techniques for generic functional programming to implement the formalization in Haskell. The formalization addresses various two-level transformation scenarios, covering fully automated as well as user-driven transformations, and allowing transformations that are information-preserving or not. In each case, two-level transformations are disciplined by one-step transformation rules and type-level transformations induce value-level transformations. We demonstrate an example hierarchical-relational mapping and subsequent migration of relational data induced by hierarchical format evolution." links: doi: "http://dx.doi.org/10.1007/11813040_20" tags: - "rule-based" - "generic programming" - "XML" - "XML Schema" - "coupled evolution" - "functional programming" - "Haskell" - "type system" - "data-flow programming" - "data-flow" - "format evolution" - "rules" - "migration" - "transformation system" - "programming" - "2LT" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/CunhaOV06" cites: 0 citedby: 0 pages: "284-299" booktitle: "FM 2006: Formal Methods, 14th International Symposium on Formal Methods, Hamilton, Canada, August 21-27, 2006, Proceedings" editor: - name: "Jayadev Misra" link: "https://www.cs.utexas.edu/~misra/" - name: "Tobias Nipkow" link: "https://researchr.org/alias/tobias-nipkow" - name: "Emil Sekerinski" link: "https://researchr.org/alias/emil-sekerinski" volume: "4085" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-37215-6" kind: "inproceedings" key: "CunhaOV06" - title: "Matching Objects Without Language Extension" author: - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2006" doi: "http://www.jot.fm//issues/issue_2006_11/article2" abstract: "Pattern matching is a powerful programming concept which has proven its merits in declarative programming. The absence of pattern-matching in object-oriented programming languages is felt especially when tackling source code processing problems. But existing proposals for pattern matching in such languages rely on language extension, which makes their adoption overly intrusive. We propose an approach to support pattern matching in mainstream object-oriented languages without language extension. In this approach, a pattern is a first-class entity, which can be created, be passed as argument, and receive method invocations, just like any other object. We demonstrate how our approach can be used in conjunction with existing parser generators to perform pattern matching on various kinds of abstract syntax representation. We elaborate our approach to include concrete syntax patterns, and mixing of patterns and visitors for the construction of sophisticated syntax tree traversals." links: doi: "http://www.jot.fm//issues/issue_2006_11/article2" tags: - "programming languages" - "object-oriented programming" - "concrete object syntax" - "meta programming" - "pattern language" - "abstract syntax" - "traversal" - "visitor" - "tree pattern matching" - "source-to-source" - "pattern matching" - "strategic programming" - "programming" - "subject-oriented programming" - "Meta-Environment" - "parsing" - "systematic-approach" - "feature-oriented programming" - "concrete syntax" - "open-source" - "meta-objects" researchr: "https://researchr.org/publication/Visser06" cites: 0 citedby: 0 journal: "Journal of Object Technology" volume: "5" number: "8" pages: "81-100" kind: "article" key: "Visser06" - title: "The ASF+SDF Meta-environment: A Component-Based Language Development Environment" author: - name: "Mark G. J. van den Brand" link: "http://www.win.tue.nl/~mvdbrand/" - name: "Arie van Deursen" link: "http://www.st.ewi.tudelft.nl/~arie/" - name: "Jan Heering" link: "http://homepages.cwi.nl/~jan/" - name: "H. A. de Jong" link: "http://www.cwi.nl" - name: "Merijn de Jonge" link: "https://researchr.org/profile/merijndejonge/publications" - name: "Tobias Kuipers" link: "http://www.sig.eu" - name: "Paul Klint" link: "http://homepages.cwi.nl/~paulk/" - name: "Leon Moonen" link: "http://simula.no/~leonm/" - name: "Pieter A. Olivier" link: "http://www.cwi.nl" - name: "Jeroen Scheerder" link: "http://www.linkedin.com/in/jeroenscheerder" - name: "Jurgen J. Vinju" link: "http://homepages.cwi.nl/~jurgenv/" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2001" doi: "https://doi.org/10.1016/S1571-0661(04)80917-4" abstract: "The Asf+Sdf Meta-environment is an interactive development environment for the automatic generation of interactive systems for constructing language definitions and generating tools for them. Over the years, this system has been used in a variety of academic and commercial projects ranging from formal program manipulation to conversion of COBOL systems. Since the existing implementation of the Meta-environment started exhibiting more and more characteristics of a legacy system, we decided to build a completely new, component-based, version. We demonstrate this new system and stress its open architecture. " links: doi: "https://doi.org/10.1016/S1571-0661(04)80917-4" tags: - "programming languages" - "rule-based" - "meta programming" - "SDF" - "meta-model" - "architecture" - "model-driven development" - "source-to-source" - "DSL" - "metaprogramming" - "Meta-Environment" - "Cobol" - "ASF+SDF" - "open-source" - "meta-objects" researchr: "https://researchr.org/publication/BrandDHJ01" cites: 0 citedby: 3 pages: "365-370" booktitle: "Compiler Construction, 10th International Conference, CC 2001 Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2001 Genova, Italy, April 2-6, 2001, Proceedings" editor: - name: "Reinhard Wilhelm" link: "https://researchr.org/alias/reinhard-wilhelm" volume: "2027" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-41861-X" kind: "inproceedings" key: "BrandDHJ01" - title: "Object-oriented tree traversal with JJForester" author: - name: "Tobias Kuipers" link: "http://www.sig.eu" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2003" doi: "http://dx.doi.org/10.1016/S0167-6423(02)00108-9" abstract: "We want to use the advanced language processing technology available in the in combination with general purpose programming languages. In particular, we want to combine the syntax definition formalism ( ) and the associated components that support generalized LR parsing, with the object-oriented language Java. To this end, we implemented JJForester, a tool that generates class structures from grammar definitions. The generated class structures implement a number of design patterns to facilitate construction and traversal of parse trees represented by object structures. In a detailed case study, we demonstrate how program analyses and transformations for languages of non-trivial size can be constructed with JJForester." links: doi: "http://dx.doi.org/10.1016/S0167-6423(02)00108-9" tags: - "programming languages" - "object-oriented programming" - "Java" - "syntax definition" - "meta programming" - "pattern language" - "generic programming" - "case study" - "traversal" - "transformation language" - "language design" - "programming" - "subject-oriented programming" - "Meta-Environment" - "parsing" - "design" - "feature-oriented programming" - "meta-objects" - "transformation" - "grammar" - "program transformation" researchr: "https://researchr.org/publication/KuipersV03" cites: 0 citedby: 0 journal: "Science of Computer Programming" volume: "47" number: "1" pages: "59-87" kind: "article" key: "KuipersV03" - title: "Object-oriented Tree Traversal with JJForester" author: - name: "Tobias Kuipers" link: "http://www.sig.eu" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2001" doi: "http://www.elsevier.com/gej-ng/31/29/23/73/27/show/Products/notes/index.htt#005" abstract: "We want to use the advanced language processing technology available in the ASF+SDF Meta-Environment in combination with general purpose programming languages. In particular, we want to combine the syntax definition formalism (SDF) and the associated components that support generalized LR parsing, with the object-oriented language Java. To this end, we implemented JJForester, a tool that generates class structures from SDF grammar definitions. The generated class structures implement a number of design patterns to facilitate construction and traversal of parse trees represented by object structures. In a detailed case study, we demonstrate how program analyses and transformations for languages of non-trivial size can be constructed with JJForester." links: doi: "http://www.elsevier.com/gej-ng/31/29/23/73/27/show/Products/notes/index.htt#005" tags: - "programming languages" - "model-to-model transformation" - "object-oriented programming" - "Java" - "syntax definition" - "meta programming" - "pattern language" - "generic programming" - "case study" - "SDF" - "meta-model" - "traversal" - "transformation language" - "visitor" - "language design" - "model transformation" - "programming" - "subject-oriented programming" - "Meta-Environment" - "parsing" - "design" - "Visitor pattern" - "ASF+SDF" - "feature-oriented programming" - "meta-objects" - "transformation" - "grammar" - "program transformation" researchr: "https://researchr.org/publication/KuipersV01" cites: 0 citedby: 0 journal: "Electronic Notes in Theoretical Computer Science" volume: "44" number: "2" pages: "34-58" kind: "article" key: "KuipersV01" - title: "A Practical Model for Measuring Maintainability" author: - name: "Ilja Heitlager" link: "http://www.sig.eu" - name: "Tobias Kuipers" link: "http://www.sig.eu" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2007" doi: "http://dx.doi.org/10.1109/QUATIC.2007.8" abstract: "The amount of effort needed to maintain a software system is related to the technical quality of the source code of that system. The ISO 9126 model for software product quality recognizes maintainability as one of the 6 main characteristics of software product quality, with adaptability, changeability, stability, and testability as subcharacteristics of maintainability. Remarkably, ISO 9126 does not provide a consensual set of measures for estimating maintainability on the basis of a system's source code. On the other hand, the maintainability index has been proposed to calculate a single number that expresses the maintainability of a system. In this paper, we discuss several problems with the MI, and we identify a number of requirements to be fulfilled by a maintainability model to be usable in practice. We sketch a new maintainability model that alleviates most of these problems, and we discuss our experiences with using such as system for IT management consultancy activities." links: doi: "http://dx.doi.org/10.1109/QUATIC.2007.8" tags: - "source code analysis" - "maintainability" - "software metrics" - "meta-model" - "modeling" - "software product quality" - "points-to analysis" - "testing" - "analysis" - "source-to-source" - "ISO/IEC 9126" - "Meta-Environment" - "open-source" researchr: "https://researchr.org/publication/HeitlagerKV07" cites: 0 citedby: 0 pages: "30-39" booktitle: "Quality of Information and Communications Technology, 6th International Conference on the Quality of Information and Communications Technology, QUATIC 2007, Lisbon, Portugal, September 12-14, 2007, Proceedings" editor: - name: "Ricardo Jorge Machado" link: "https://researchr.org/alias/ricardo-jorge-machado" - name: "Fernando Brito e Abreu" link: "https://researchr.org/alias/fernando-brito-e-abreu" - name: "Paulo Rupino da Cunha" link: "https://researchr.org/alias/paulo-rupino-da-cunha" publisher: "IEEE Computer Society" isbn: "0-7695-2948-8" kind: "inproceedings" key: "HeitlagerKV07" - title: "Strategic programming meets adaptive programming" author: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2003" doi: "http://doi.acm.org/10.1145/643603.643621" abstract: "Strategic programming is a generic programming idiom for processing compound data such as terms or object structures. At the heart of the approach is the separation of two concerns: basic dataprocessing computations vs. traversal schemes. Actual traversals are composed by passing the former as arguments to the latter. Traversal schemes can be defined by the strategic programmer using a combinator style that relies on primitives for layered traversal.In this paper, we take a look at strategic programming from an aspect-oriented programming perspective. Throughout the paper, we compare strategic programming with adaptive programming, which is a well-established aspectual approach to the traversal of object structures. We start from the observation that aspect-oriented programming terms, e.g., crosscutting, join point, and advice can be instantiated for aspectual traversal approaches. " links: doi: "http://doi.acm.org/10.1145/643603.643621" tags: - "object-oriented programming" - "meta programming" - "generic programming" - "separation of concerns" - "traversal" - "data-flow programming" - "data-flow" - "strategies" - "graph-rewriting" - "adaptive programming" - "strategic programming" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "Meta-Environment" - "rewriting" - "systematic-approach" - "rewriting strategies" - "feature-oriented programming" - "meta-objects" researchr: "https://researchr.org/publication/LammelVV03" cites: 0 citedby: 1 pages: "168-177" booktitle: "AOSD" kind: "inproceedings" key: "LammelVV03" - title: "A Cognitive Model for Software Architecture Complexity" author: - name: "Eric Bouwers" link: "http://www.st.ewi.tudelft.nl/~bouwers/main/" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "Carola Lilienthal" link: "https://researchr.org/alias/carola-lilienthal" - name: "Arie van Deursen" link: "http://www.st.ewi.tudelft.nl/~arie/" year: "2010" doi: "http://doi.ieeecomputersociety.org/10.1109/ICPC.2010.28" links: doi: "http://doi.ieeecomputersociety.org/10.1109/ICPC.2010.28" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/iwpc/BouwersVLD10" tags: - "software architecture" - "architecture" researchr: "https://researchr.org/publication/BouwersVLD10" cites: 0 citedby: 0 pages: "152-155" booktitle: "The 18th IEEE International Conference on Program Comprehension, ICPC 2010, Braga, Minho, Portugal, June 30-July 2, 2010" publisher: "IEEE Computer Society" isbn: "978-0-7695-4113-6" kind: "inproceedings" key: "BouwersVLD10" - title: "Standardized code quality benchmarking for improving software maintainability" author: - name: "Robert Baggen" link: "https://researchr.org/alias/robert-baggen" - name: "José Pedro Correia" link: "https://researchr.org/alias/jos%C3%A9-pedro-correia" - name: "Katrin Schill" link: "https://researchr.org/alias/katrin-schill" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2012" doi: "http://dx.doi.org/10.1007/s11219-011-9144-9" links: doi: "http://dx.doi.org/10.1007/s11219-011-9144-9" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/sqj/BaggenCSV12" researchr: "https://researchr.org/publication/BaggenCSV12" cites: 0 citedby: 0 journal: "Software Quality Journal" volume: "20" number: "2" pages: "287-307" kind: "article" key: "BaggenCSV12" - title: "Discovery-based edit assistance for spreadsheets" author: - name: "Jácome Cunha" link: "http://di.uminho.pt/" - name: "João Saraiva" link: "https://researchr.org/alias/jo%C3%A3%C2%A3o-saraiva" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2009" doi: "http://doi.ieeecomputersociety.org/10.1109/VLHCC.2009.5295255" abstract: "In this paper, we demonstrate how implicit structural properties of spreadsheet data can be exploited to offer edit assistance to spreadsheet users. Our approach is based on the discovery of functional dependencies among data items which allow automatic reconstruction of a relational database schema. From this schema, new formulas and visual objects are embedded into the spreadsheet to offer features for auto-completion, guarded deletion, and controlled insertion. Schema discovery and spreadsheet enhancement are carried out automatically in the background and do not disturb normal user experience." links: doi: "http://doi.ieeecomputersociety.org/10.1109/VLHCC.2009.5295255" tags: - "relational data base" - "rule-based" - "discovery" - "relational database" - "XML" - "XML Schema" - "data-flow" - "spreadsheets" - "database" - "Meta-Environment" - "systematic-approach" - "meta-objects" researchr: "https://researchr.org/publication/CunhaSV09-0" cites: 0 citedby: 0 pages: "233-237" booktitle: "IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2009, Corvallis, OR, USA, 20-24 September 2009, Proceedings" publisher: "IEEE" isbn: "978-1-4244-4876-0" kind: "inproceedings" key: "CunhaSV09-0" - title: "Preface to the Proceedings of the International Workshop on Software Quality and Maintainability (SQM 2008)" author: - name: "Christos Makris" link: "http://mmlab.ceid.upatras.gr/people/makris/indexen.htm" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2009" doi: "http://dx.doi.org/10.1016/j.entcs.2009.02.057" abstract: "-" links: doi: "http://dx.doi.org/10.1016/j.entcs.2009.02.057" tags: - "SQM" researchr: "https://researchr.org/publication/MakrisV09" cites: 0 citedby: 0 journal: "Electronic Notes in Theoretical Computer Science" volume: "233" pages: "1-3" kind: "article" key: "MakrisV09" - title: "Source model analysis using the JJTraveler visitor combinator framework" author: - name: "Arie van Deursen" link: "http://www.st.ewi.tudelft.nl/~arie/" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2004" doi: "http://dx.doi.org/10.1002/spe.616" abstract: "Program understanding tools manipulate program representations, such as abstract syntax trees, control-flow graphs, or data-flow graphs. This paper deals with the use of visitor combinators to conduct such manipulations. Visitor combinators are an extension of the well-known visitor design pattern. They are small, reusable classes that carry out specific visiting steps. They can be composed in different constellations to build more complex visitors. We evaluate the expressiveness, reusability, ease of development, and applicability of visitor combinators to the construction of program understanding tools. To that end, we conduct a case study in the use of visitor combinators for control-flow analysis and visualization as used in a commercial Cobol program understanding tool." links: doi: "http://dx.doi.org/10.1002/spe.616" tags: - "source code analysis" - "object-oriented programming" - "program analysis" - "meta programming" - "generic programming" - "case study" - "meta-model" - "abstract syntax" - "visitor" - "points-to analysis" - "analysis" - "reuse" - "data-flow programming" - "model-driven development" - "data-flow" - "source-to-source" - "graph-rewriting" - "object-role modeling" - "programming" - "subject-oriented programming" - "Meta-Environment" - "rewriting" - "data-flow analysis" - "Cobol" - "design" - "feature-oriented programming" - "open-source" researchr: "https://researchr.org/publication/DeursenV04" cites: 0 citedby: 0 journal: "Software: Practice and Experience" volume: "34" number: "14" pages: "1345-1379" kind: "article" key: "DeursenV04" - title: "A survey-based study of the mapping of system properties to ISO/IEC 9126 maintainability characteristics" author: - name: "José Pedro Correia" link: "http://www.sig.eu" - name: "Yiannis Kanellopoulos" link: "http://www.sig.eu" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2009" doi: "http://dx.doi.org/10.1109/ICSM.2009.5306346" abstract: "The ISO/IEC 9126 international standard for software product quality is a widely accepted reference for terminology regarding the multi-faceted concept of software product quality. Based on this standard, the Software Improvement Group has developed a pragmatic approach for measuring technical quality of software products. This quality model introduces another level below the hierarchy defined by ISO/IEC 9126, which consists of system properties such as volume, duplication, unit complexity and others. A mapping between system properties and ISO/IEC 9126 characteristics is defined in a binary fashion: a property either influences a characteristic or not. This mapping embodies consensus among three experts based, in an informal way, on their experience in software quality assessment. We have conducted a survey-based experiment to study the mapping between system properties and quality characteristics. We used the Analytic Hierarchy Process as a formally structured method to elicit the relative importance of system properties and quality characteristics from a group of 22 software quality experts. We analyzed the results of the experiment with two objectives: (i) to validate the original binary mapping and (ii) to refine the mapping using the elicited relative weights." links: doi: "http://dx.doi.org/10.1109/ICSM.2009.5306346" tags: - "rule-based" - "meta-model" - "software product quality" - "survey" - "ISO/IEC 9126" - "Meta-Environment" - "process modeling" - "systematic-approach" - "AHP" researchr: "https://researchr.org/publication/CorreiaKV09" cites: 0 citedby: 0 pages: "61-70" booktitle: "25th IEEE International Conference on Software Maintenance (ICSM 2009), September 20-26, 2009, Edmonton, Alberta, Canada" publisher: "IEEE" kind: "inproceedings" key: "CorreiaKV09" - title: "Dealing with Large Bananas" author: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "Jan Kort" link: "http://www.english.uva.nl/" year: "2000" doi: "http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.936" abstract: "Many problems call for a mixture of generic and specific programming techniques. We propose a polytypic programming approach based on generalised (monadic) folds where a separation is made between basic fold algebras that model generic behaviour and updates on these algebras that model specific behaviour. We identify particular basic algebras as well as some algebra combinators, and we show how these facilitate structured programming with updatable fold algebras. This blend of genericity and specificity allows programming with folds to scale up to applications involving large systems of mutually recursive datatypes. Finally, we address the possibility of providing generic definitions for the functions, algebras, and combinators that we propose." links: doi: "http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.936" tags: - "rule-based" - "meta programming" - "generic programming" - "meta-model" - "polytypic programming" - " algebra" - "programming" - "Meta-Environment" - "polytypic" - "systematic-approach" researchr: "https://researchr.org/publication/Lmmel00dealingwith" cites: 0 citedby: 0 booktitle: "Proceedings of WGP' 00" kind: "inproceedings" key: "Lmmel00dealingwith" - title: "Type-Safe Evolution of Spreadsheets" author: - name: "Jácome Cunha" link: "https://researchr.org/alias/j%26aacute%3Bcome-cunha" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "Tiago L. Alves" link: "https://researchr.org/alias/tiago-l.-alves" - name: "João Saraiva" link: "https://researchr.org/alias/jo%26atilde%3Bo-saraiva" year: "2011" doi: "http://dx.doi.org/10.1007/978-3-642-19811-3_14" links: doi: "http://dx.doi.org/10.1007/978-3-642-19811-3_14" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/fase/CunhaVAS11" researchr: "https://researchr.org/publication/CunhaVAS11" cites: 0 citedby: 0 pages: "186-201" booktitle: "Fundamental Approaches to Software Engineering - 14th International Conference, FASE 2011, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2011, Saarbrücken, Germany, March 26-April 3, 2011. Proceedings" editor: - name: "Dimitra Giannakopoulou" link: "https://researchr.org/alias/dimitra-giannakopoulou" - name: "Fernando Orejas" link: "https://researchr.org/alias/fernando-orejas" volume: "6603" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-19810-6" kind: "inproceedings" key: "CunhaVAS11" - title: "Getting what you measure" author: - name: "Eric Bouwers" link: "https://researchr.org/alias/eric-bouwers" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "Arie van Deursen" link: "https://researchr.org/alias/arie-van-deursen" year: "2012" doi: "http://doi.acm.org/10.1145/2209249.2209266" links: doi: "http://doi.acm.org/10.1145/2209249.2209266" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/cacm/BouwersVD12" researchr: "https://researchr.org/publication/BouwersVD12" cites: 0 citedby: 0 journal: "Communications of the ACM" volume: "55" number: "7" pages: "54-59" kind: "article" key: "BouwersVD12" - title: "Static Estimation of Test Coverage" author: - name: "Tiago L. Alves" link: "http://wiki.di.uminho.pt/twiki/bin/view/Personal/Tiago/" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2009" doi: "http://doi.ieeecomputersociety.org/10.1109/SCAM.2009.15" abstract: "Test coverage is an important indicator for unit test quality. Tools such as Clover compute coverage by first instrumenting the code with logging functionality, and then logging which parts are executed during unit test runs. Since computation of test coverage is a dynamic analysis, it presupposes a working installation of the software. In the context of software quality assessment by an independent third party, a working installation is often not available. The evaluator may not have access to the required libraries or hardware platform. The installation procedure may not be automated or documented. In this paper, we propose a technique for estimating test coverage at method level through static analysis only. The technique uses slicing of static call graphs to estimate the dynamic test coverage. We explain the technique and its implementation. We validate the results of the static estimation by statistical comparison to values obtained through dynamic analysis using Clover. We found high correlation between static coverage estimation and real coverage at system level but closer analysis on package and class level reveals opportunities for further improvement." links: doi: "http://doi.ieeecomputersociety.org/10.1109/SCAM.2009.15" tags: - "test coverage" - "testing" - "analysis" - "static analysis" - "code querying" - "graph-rewriting" - "slicing" - "context-aware" - "rewriting" - "coverage" researchr: "https://researchr.org/publication/AlvesV09" cites: 0 citedby: 0 pages: "55-64" booktitle: "Ninth IEEE International Working Conference on Source Code Analysis and Manipulation, SCAM 2009, Edmonton, Alberta, Canada, September 20-21, 2009" publisher: "IEEE Computer Society" isbn: "978-0-7695-3793-1" kind: "inproceedings" key: "AlvesV09" - title: "Faster Defect Resolution with Higher Technical Quality of Software" author: - name: "Bart Luijten" link: "http://nl.linkedin.com/in/bluijten" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2010" abstract: "We performed an empirical study of the relation between technical quality of software products and the defect resolution performance of their maintainers. In particular, we tested the hypothesis that ratings for source code maintainability, as employed by the SIG quality model, are correlated with ratings for defect resolution speed. This study revealed that all but one of the metrics of the SIG quality model show a significant positive correlation." tags: - "empirical" - "issue mining" - "defect resolution" - "maintainability" - "meta-model" - "software product quality" - "testing" - "source-to-source" - "ISO/IEC 9126" - "Meta-Environment" - "open-source" researchr: "https://researchr.org/publication/LuijtenV2010" cites: 0 citedby: 0 booktitle: "4th International Workshop on Software Quality and Maintainability (SQM 2010), March 15, 2010, Madrid, Spain" kind: "inproceedings" key: "LuijtenV2010" - title: "A type-level approach to component prototyping" author: - name: "Luís Barbosa" link: "http://di.uminho.pt/~lsb" - name: "Jácome Cunha" link: "http://alfa.di.uminho.pt/~jacome" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2007" doi: "http://doi.acm.org/10.1145/1294917.1294920" abstract: "Algebraic theories for modeling components and their interactions offer abstraction over the specifics of component states and interfaces. For example, such theories deal with forms of sequential composition of two components in a manner independent of the type of data stored in the states of the components, and independent of the number and types of methods offered by the interfaces of the combinators. General purpose programming languages do not offer this level of abstraction, which implies that a gap must be bridged when turning component models into implementations. In this paper, we present an approach to prototyping of component-based systems that employs so-called type-level programming (or compile-time computation) to bridge the gap between abstract component models and their type-safe implementation in a functional programming language. We demonstrate our approach using Barbosa's model of components as generalized Mealy machines. For this model, we develop a combinator library in Haskell, which uses type-level programming with two effects. Firstly, wiring between components is computed during compilation. Secondly, the well-formedness of the component compositions is guarded by Haskell's strong type system." links: doi: "http://doi.acm.org/10.1145/1294917.1294920" tags: - "programming languages" - "rule-based" - "meta programming" - "data-flow language" - "meta-model" - "modeling language" - "modeling" - "components" - "language modeling" - "composition" - "functional programming" - "Haskell" - "type system" - "data-flow programming" - "data-flow" - "type-level programming" - "compiler" - " algebra" - "programming" - "type theory" - "abstraction" - "Meta-Environment" - "safe composition" - "abstract machine" - "systematic-approach" researchr: "https://researchr.org/publication/BarbosaCV07" cites: 0 citedby: 0 pages: "23-36" booktitle: "Proceedings of the International Workshop on Synthesis and Analysis of Component Connectors: in conjunction with the 6th ESEC/FSE joint meeting, SYANCO 2007, Dubrovnik, Croatia, September 3-4, 2007" editor: - name: "Farhad Arbab" link: "https://researchr.org/alias/farhad-arbab" - name: "Christel Baier" link: "https://researchr.org/alias/christel-baier" publisher: "ACM" kind: "inproceedings" key: "BarbosaCV07" - title: "Detecting Cross-Language Dependencies Generically" author: - name: "Theodoros Polychniatis" link: "https://researchr.org/alias/theodoros-polychniatis" - name: "Jurriaan Hage" link: "https://researchr.org/alias/jurriaan-hage" - name: "Slinger Jansen" link: "https://researchr.org/alias/slinger-jansen" - name: "Eric Bouwers" link: "https://researchr.org/alias/eric-bouwers" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2013" doi: "http://doi.ieeecomputersociety.org/10.1109/CSMR.2013.47" links: doi: "http://doi.ieeecomputersociety.org/10.1109/CSMR.2013.47" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/csmr/PolychniatisHJBV13" researchr: "https://researchr.org/publication/PolychniatisHJBV13" cites: 0 citedby: 0 pages: "349-352" booktitle: "17th European Conference on Software Maintenance and Reengineering, CSMR 2013, Genova, Italy, March 5-8, 2013" editor: - name: "Anthony Cleve" link: "https://researchr.org/alias/anthony-cleve" - name: "Filippo Ricca" link: "https://researchr.org/alias/filippo-ricca" - name: "Maura Cerioli" link: "https://researchr.org/alias/maura-cerioli" publisher: "IEEE Computer Society" isbn: "978-1-4673-5833-0" kind: "inproceedings" key: "PolychniatisHJBV13" - title: "Transformation of structure-shy programs with application to XPath queries and strategic functions" author: - name: "Alcino Cunha" link: "https://researchr.org/alias/alcino-cunha" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2011" doi: "http://dx.doi.org/10.1016/j.scico.2010.01.003" links: doi: "http://dx.doi.org/10.1016/j.scico.2010.01.003" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/scp/CunhaV11" tags: - "XPath" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/CunhaV11" cites: 0 citedby: 0 journal: "Science of Computer Programming" volume: "76" number: "6" pages: "516-539" kind: "article" key: "CunhaV11" - title: "Towards a catalog format for software metrics" author: - name: "Eric Bouwers" link: "https://researchr.org/alias/eric-bouwers" - name: "Arie van Deursen" link: "https://researchr.org/alias/arie-van-deursen" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2014" doi: "http://doi.acm.org/10.1145/2593868.2593876" links: doi: "http://doi.acm.org/10.1145/2593868.2593876" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/icse/BouwersDV14" researchr: "https://researchr.org/publication/BouwersDV14" cites: 0 citedby: 0 pages: "44-47" booktitle: "Proceedings of the 5th International Workshop on Emerging Trends in Software Metrics, WETSoM 2014, Hyderabad, India, June 3, 2014" editor: - name: "Steve Counsell" link: "https://researchr.org/alias/steve-counsell" - name: "Michele Marchesi" link: "https://researchr.org/alias/michele-marchesi" - name: "Corrado Aaron Visaggio" link: "https://researchr.org/alias/corrado-aaron-visaggio" - name: "Hongyu Zhang" link: "https://researchr.org/alias/hongyu-zhang" - name: "Radhika Venkatasubramanyam" link: "https://researchr.org/alias/radhika-venkatasubramanyam" publisher: "ACM" isbn: "978-1-4503-2854-8" kind: "inproceedings" key: "BouwersDV14" - title: "Detection of Seed Methods for Quantification of Feature Confinement" author: - name: "Andrzej Olszak" link: "https://researchr.org/alias/andrzej-olszak" - name: "Eric Bouwers" link: "https://researchr.org/alias/eric-bouwers" - name: "Bo Nørregaard Jørgensen" link: "https://researchr.org/alias/bo-n%C3%B8rregaard-j%C3%B8rgensen" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2012" doi: "http://dx.doi.org/10.1007/978-3-642-30561-0_18" links: doi: "http://dx.doi.org/10.1007/978-3-642-30561-0_18" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/tools/OlszakBJV12" researchr: "https://researchr.org/publication/OlszakBJV12" cites: 0 citedby: 0 pages: "252-268" booktitle: "Objects, Models, Components, Patterns - 50th International Conference, TOOLS 2012, Prague, Czech Republic, May 29-31, 2012. Proceedings" editor: - name: "Carlo A. Furia" link: "http://bugcounting.net/" - name: "Sebastian Nanz" link: "https://researchr.org/alias/sebastian-nanz" volume: "7304" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-30560-3" kind: "inproceedings" key: "OlszakBJV12" - title: "Collaborative Software Development" author: - name: "Merijn de Jonge" link: "https://researchr.org/profile/merijndejonge/publications" - name: "Eelco Visser" link: "http://eelcovisser.org" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2001" month: "May" researchr: "https://researchr.org/publication/JongeVV01-SEN" cites: 0 citedby: 0 institution: "Software Engineering (SEN), CWI" number: "SEN-R0113" address: "Amsterdam" kind: "techreport" key: "JongeVV01-SEN" - title: "Strongly Typed Rewriting For Coupled Software Transformation" author: - name: "Alcino Cunha" link: "http://www.di.uminho.pt/~mac" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2007" doi: "http://dx.doi.org/10.1016/j.entcs.2006.10.019" abstract: "Coupled transformations occur in software evolution when multiple artifacts must be modified in such a way that they remain consistent with each other. An important example involves the coupled transformation of a data type, its instances, and the programs that consume or produce it. Previously, we have provided a formal treatment of transformation of the first two: data types and instances. The treatment involved the construction of type-safe, type-changing strategic rewrite systems. In this paper, we extend our treatment to the transformation of corresponding data processing programs. The key insight underlying the extension is that both data migration functions and data processors can be represented type-safely by a generalized abstract data type (GADT). These representations are then subjected to program calculation rules, harnessed in type-safe, type-preserving strategic rewrite systems. For ease of calculation, we use point-free representations and corresponding calculation rules. Thus, coupled transformations are carried out in two steps. First, a type-changing rewrite system is applied to a source type to obtain a target type together with (representations of) migration functions between source and target. Then, a type-preserving rewrite system is applied to the composition of a migration function and a data processor on the source (or target) type to obtain a data processor on the target (or source) type. All rewrites are type-safe." links: doi: "http://dx.doi.org/10.1016/j.entcs.2006.10.019" tags: - "model-to-model transformation" - "object-oriented programming" - "rule-based" - "graph transformation" - "coupled evolution" - "composition" - "coupled transformation" - "type system" - "data-flow programming" - "data-flow" - "software evolution" - "source-to-source" - "graph-rewriting" - "rules" - "migration" - "strategic programming" - "transformation system" - "model transformation" - "subject-oriented programming" - "safe composition" - "2LT" - "rewriting" - "feature-oriented programming" - "open-source" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/CunhaV07%3A0" cites: 0 citedby: 0 journal: "Electronic Notes in Theoretical Computer Science" volume: "174" number: "1" pages: "17-34" kind: "article" key: "CunhaV07:0" - title: "Energy Efficiency Optimization of Application Software" author: - name: "Kay Grosskop" link: "https://researchr.org/alias/kay-grosskop" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2013" doi: "http://dx.doi.org/10.1016/B978-0-12-407725-6.00005-8" links: doi: "http://dx.doi.org/10.1016/B978-0-12-407725-6.00005-8" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/ac/GrosskopV13" researchr: "https://researchr.org/publication/GrosskopV13" cites: 0 citedby: 0 journal: "Advances in Computers" volume: "88" pages: "199-241" kind: "article" key: "GrosskopV13" - title: "Coupled Transformation of Schemas, Documents, Queries, and Constraints" author: - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2008" doi: "http://dx.doi.org/10.1016/j.entcs.2008.04.090" abstract: "Coupled transformation occurs when multiple software artifacts must be transformed in such a way that they remain consistent with each other. For instance, when a database schema is adapted in the context of system maintenance, the persistent data residing in the system's database needs to be migrated to conform to the adapted schema. Also, queries embedded in the application code and any declared referential constraints must be adapted to take the schema changes into account. As another example, in XML-to-relational data mapping, a hierarchical XML Schema is mapped to a relational SQL schema with appropriate referential constraints, and the XML documents and queries are converted into relational data and relational queries. The 2LT project is aimed at providing a formal basis for coupled transformation. This formal basis is found in data refinement theory, point-free program calculation, and strategic term rewriting. We formalize the coupled transformation of a data type by an algebra of information-preserving data refinement steps, each witnessed by appropriate data conversion functions. Refinement steps are modeled by so-called two-level rewrite rules on type expressions that synthesize conversion functions between redex and reduct while rewriting. Strategy combinators are used to composed two-level rewrite rules into complete rewrite systems. Point-free program calculation is applied to optimized synthesize conversion function, to migrate queries, and to normalize data type constraints. In this paper, we provide an overview of the challenges met by the 2LT project and we give a sketch of the solutions offered." links: doi: "http://dx.doi.org/10.1016/j.entcs.2008.04.090" tags: - "model-to-model transformation" - "optimization" - "rule-based" - "Data refinement" - "completeness" - "meta programming" - "persistent" - "relational database" - "graph transformation" - "meta-model" - "XML" - "embedded software" - "XML Schema" - "point-free program transformation" - "graph query" - "refinement" - "SQL" - "coupled evolution" - "term rewriting" - "constraint propagation" - "relational algebra" - "coupled transformation" - "constraints" - "type system" - "data-flow programming" - "data-flow" - "software evolution" - "format evolution" - "source-to-source" - "graph-rewriting" - "maintenance" - "rules" - "data mappings" - "strategic programming" - "transformation system" - "Strategic term rewriting" - "model transformation" - " algebra" - "information models" - "database" - "context-aware" - "type theory" - "program optimization" - "change propagation" - "Two-level transformation" - "Meta-Environment" - "2LT" - "rewriting" - "query migrations" - "rewriting strategies" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/Visser08" cites: 0 citedby: 0 journal: "Electronic Notes in Theoretical Computer Science" volume: "200" number: "3" pages: "3-23" kind: "article" key: "Visser08" - title: "A Strafunski Application Letter" author: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2003" doi: "http://link.springer.de/link/service/series/0558/bibs/2562/25620357.htm" abstract: "Strafunski is a Haskell-centred software bundle for implementing language processing components—most notably program analyses and transformations. Typical application areas include program optimisation, refactoring, software metrics, software re- and reverse engineering. Strafunski started out as generic programming library complemented by generative tool support to address the concern of generic traversal over typed representations of parse trees in a scalable manner. Meanwhile, Strafunski also encompasses means of integrating external components such as parsers, pretty printers, and graph visualisation tools. In a selection of case studies, we demonstrate that typed functional programming in Haskell, augmented with Strafunski ’s support for generic traversal and external components, is very appropriate for the development of practical language processors. In particular, we discuss using Haskell for Cobol reverse engineering, Java code metrics, and Haskell re-engineering." links: doi: "http://link.springer.de/link/service/series/0558/bibs/2562/25620357.htm" tags: - "generative programming" - "programming languages" - "transformation engineering" - "Java" - "generic programming" - "case study" - "software components" - "graph transformation" - "reverse engineering" - "traversal" - "refactoring" - "language engineering" - "transformation language" - "software language engineering" - "functional programming" - "software component" - "Haskell" - "graph-rewriting" - "software engineering" - "programming" - "rewriting" - "Cobol" - "parsing" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/LammelV03" cites: 0 citedby: 0 pages: "357-375" booktitle: "Practical Aspects of Declarative Languages, 5th International Symposium, PADL 2003, New Orleans, LA, USA, January 13-14, 2003, Proceedings" editor: - name: "Verónica Dahl" link: "https://researchr.org/alias/ver%C3%B3nica-dahl" - name: "Philip Wadler" link: "http://homepages.inf.ed.ac.uk/wadler/" volume: "2562" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-00389-4" kind: "inproceedings" key: "LammelV03" - title: "Monitoring Software Quality at Large Scale" author: - name: "Eric Bouwers" link: "https://researchr.org/alias/eric-bouwers" - name: "Per John" link: "https://researchr.org/alias/per-john" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2014" doi: "http://ercim-news.ercim.eu/en99/special/monitoring-software-quality-at-large-scale" links: doi: "http://ercim-news.ercim.eu/en99/special/monitoring-software-quality-at-large-scale" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/ercim/BouwersJV14" researchr: "https://researchr.org/publication/BouwersJV14" cites: 0 citedby: 0 journal: "ERCIM News" volume: "2014" number: "99" kind: "article" key: "BouwersJV14" - title: "Quality Assessment for Embedded SQL" author: - name: "Huib van den Brink" link: "http://www.linkedin.com/pub/huib-van-den-brink/1/8aa/69a" - name: "Rob van der Leek" link: "http://www.sig.eu" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2007" doi: "http://doi.ieeecomputersociety.org/10.1109/SCAM.2007.23" abstract: "The access of information systems to underlying relational databases is commonly programmed using embedded SQL queries. Such embedded queries may take the form of string literals that are programmatically concatenated into queries to be submitted to the DBMS, or they may be written in a mixture of the syntax of SQL and a host programming language. The particular ways in which embedded queries are constructed and intertwined with the surrounding code can have significant impact on the understandability, testability, adaptability, and other quality aspects of the overall system. We present an approach to tool-based analysis of the quality of systems that employ embedded SQL queries. The basis of the approach is the identification and reconstruction of embedded queries. These queries are then submitted to a variety of analyses. For example, we chart the relationships of queries to the surrounding code and, via the control and data flow of that code, to each other. Also, we define a suite of metric extractors for embedded queries. Through a number of case studies, involving PL/SQL, Cobol, and Visual Basic, we show how the results of these analyses can be employed to make an assessment of various quality aspects related to the use of embedded queries." links: doi: "http://doi.ieeecomputersociety.org/10.1109/SCAM.2007.23" tags: - "control systems" - "programming languages" - "relational data base" - "rule-based" - "program analysis" - "data-flow language" - "case study" - "relational database" - "embedded software" - "SQL" - "software product quality" - "testing" - "analysis" - "data-flow programming" - "data-flow" - "programming" - "access control" - "data-flow analysis" - "Cobol" - "role-based access control" - "systematic-approach" - "query language" researchr: "https://researchr.org/publication/10.1109-SCAM.2007.23" cites: 0 citedby: 0 journal: "Source Code Analysis and Manipulation, IEEE International Workshop on" volume: "0" kind: "article" key: "10.1109-SCAM.2007.23" - title: "Functional Transformation Systems" author: - name: "Jan Kort" link: "http://www.english.uva.nl/" - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2000" abstract: "We demonstrate how functional programming can be used as a platform for developing integrated transformation systems that are typed, scalable, easy to use, and adaptable. The kernel of such a functional transformation system for a certain language is a transformation framework generated from the language's grammar. The framework provides a fold traversal scheme and adaptable basic traversals. From the grammar a parser and pretty-printer is also generated. There is also support for storage and interchange of intermediate results. A software renovation case study illustrates our approach and its practical value." tags: - "programming languages" - "case study" - "traversal" - "transformation language" - "functional programming" - "Haskell" - "type system" - "transformation system" - "programming" - "parsing" - "systematic-approach" - "transformation" - "grammar" - "program transformation" researchr: "https://researchr.org/publication/KortLV00" cites: 0 citedby: 0 pages: "154-168" booktitle: "9th International Workshop on Functional and Logic Programming, WFLP 2000, Benicassim, Spain, September 28-30, 2000" editor: - name: "María Alpuente" link: "http://www.dsic.upv.es/~alpuente" kind: "inproceedings" key: "KortLV00" - title: "Seflab: A lab for measuring software energy footprints" author: - name: "Miguel Alexandre Ferreira" link: "https://researchr.org/alias/miguel-alexandre-ferreira" - name: "Eric Hoekstra" link: "https://researchr.org/alias/eric-hoekstra" - name: "Bo Merkus" link: "https://researchr.org/alias/bo-merkus" - name: "Bram Visser" link: "https://researchr.org/alias/bram-visser" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2013" doi: "http://dx.doi.org/10.1109/GREENS.2013.6606419" links: doi: "http://dx.doi.org/10.1109/GREENS.2013.6606419" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/greens/FerreiraHMVV13" researchr: "https://researchr.org/publication/FerreiraHMVV13" cites: 0 citedby: 0 pages: "30-37" booktitle: "2nd International Workshop on Green and Sustainable Software, GREENS 2013, San Francisco, CA, USA, May 20, 2013" editor: - name: "Patricia Lago" link: "https://researchr.org/alias/patricia-lago" - name: "Niklaus Meyer" link: "https://researchr.org/alias/niklaus-meyer" - name: "Maurizio Morisio" link: "https://researchr.org/alias/maurizio-morisio" - name: "Hausi A. Müller" link: "https://researchr.org/alias/hausi-a.-m%C3%BCller" - name: "Giuseppe Scanniello" link: "https://researchr.org/alias/giuseppe-scanniello" publisher: "IEEE" kind: "inproceedings" key: "FerreiraHMVV13" - title: "Benchmarking Technical Quality of Software Products" author: - name: "José Pedro Correia" link: "http://www.sig.eu" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2008" doi: "http://dx.doi.org/10.1109/WCRE.2008.16" abstract: "To enable systematic comparison of technical quality of (groups of) software products, we have collected measurement data of a wide range of systems into a benchmark repository. The measurements were taken over the course of several years of delivering software assessment services to corporations and public institutes. The granularity of the collected data follows the layered structure of a model for software product quality, based on the ISO/IEC 9126 international standard, which we developed previously. In this paper, we describe the design of our benchmark repository, and we explain how it can be used to perform comparisons of systems. To provide a concrete illustration of the concept without revealing confidential data, we use a selection of open source systems as example." links: doi: "http://dx.doi.org/10.1109/WCRE.2008.16" tags: - "rule-based" - "meta-model" - "software product quality" - "data-flow" - "source-to-source" - "Meta-Environment" - "design" - "systematic-approach" - "open-source" researchr: "https://researchr.org/publication/CorreiaV08" cites: 0 citedby: 0 pages: "297-300" booktitle: "WCRE 2008, Proceedings of the 15th Working Conference on Reverse Engineering, Antwerp, Belgium, October 15-18, 2008" publisher: "IEEE" kind: "inproceedings" key: "CorreiaV08" - title: "Evaluating usefulness of software metrics: an industrial experience report" author: - name: "Eric Bouwers" link: "https://researchr.org/alias/eric-bouwers" - name: "Arie van Deursen" link: "https://researchr.org/alias/arie-van-deursen" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2013" doi: "http://dl.acm.org/citation.cfm?id=2486914" links: doi: "http://dl.acm.org/citation.cfm?id=2486914" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/icse/BouwersDV13" researchr: "https://researchr.org/publication/BouwersDV13" cites: 0 citedby: 0 pages: "921-930" booktitle: "35th International Conference on Software Engineering, ICSE '13, San Francisco, CA, USA, May 18-26, 2013" editor: - name: "David Notkin" link: "https://researchr.org/alias/david-notkin" - name: "Betty H. C. Cheng" link: "https://researchr.org/alias/betty-h.-c.-cheng" - name: "Klaus Pohl" link: "https://researchr.org/alias/klaus-pohl" publisher: "IEEE / ACM" isbn: "978-1-4673-3076-3" kind: "inproceedings" key: "BouwersDV13" - title: "Measuring software library stability through historical version analysis" author: - name: "Steven Raemaekers" link: "https://researchr.org/alias/steven-raemaekers" - name: "Arie van Deursen" link: "https://researchr.org/alias/arie-van-deursen" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2012" doi: "http://doi.ieeecomputersociety.org/10.1109/ICSM.2012.6405296" links: doi: "http://doi.ieeecomputersociety.org/10.1109/ICSM.2012.6405296" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/icsm/RaemaekersDV12" researchr: "https://researchr.org/publication/RaemaekersDV12" cites: 0 citedby: 0 pages: "378-387" booktitle: "28th IEEE International Conference on Software Maintenance, ICSM 2012, Trento, Italy, September 23-28, 2012" publisher: "IEEE Computer Society" isbn: "978-1-4673-2313-0" kind: "inproceedings" key: "RaemaekersDV12" - title: "Static Estimation of Test Coverage" author: - name: "Tiago L. Alves" link: "http://wiki.di.uminho.pt/twiki/bin/view/Personal/Tiago/" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" year: "2009" doi: "http://doi.ieeecomputersociety.org/10.1109/SCAM.2009.15" abstract: "Test coverage is an important indicator for unit test quality. Tools such as Clover compute coverage by first instrumenting the code with logging functionality, and then logging which parts are executed during unit test runs. Since computation of test coverage is a dynamic analysis, it presupposes a working installation of the software. In the context of software quality assessment by an independent third party, a working installation is often not available. The evaluator may not have access to the required libraries or hardware platform. The installation procedure may not be automated or documented. In this paper, we propose a technique for estimating test coverage at method level through static analysis only. The technique uses slicing of static call graphs to estimate the dynamic test coverage. We explain the technique and its implementation. We validate the results of the static estimation by statistical comparison to values obtained through dynamic analysis using Clover. We found high correlation between static coverage estimation and real coverage at system level but closer analysis on package and class level reveals opportunities for further improvement. " links: doi: "http://doi.ieeecomputersociety.org/10.1109/SCAM.2009.15" tags: - "test coverage" - "testing" - "analysis" - "static analysis" - "graph-rewriting" - "slicing" - "context-aware" - "rewriting" - "coverage" researchr: "https://researchr.org/publication/10.1109-SCAM.2009.15" cites: 0 citedby: 0 journal: "Source Code Analysis and Manipulation, IEEE International Workshop on" volume: "0" kind: "article" key: "10.1109-SCAM.2009.15" - title: "Generative and Transformational Techniques in Software Engineering IV, International Summer School, GTTSE 2011, Braga, Portugal, July 3-9, 2011. Revised Papers" year: "2013" doi: "http://dx.doi.org/10.1007/978-3-642-35992-7" links: doi: "http://dx.doi.org/10.1007/978-3-642-35992-7" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/gttse/2011" researchr: "https://researchr.org/publication/gttse-2011" cites: 0 citedby: 0 booktitle: "Generative and Transformational Techniques in Software Engineering IV, International Summer School, GTTSE 2011, Braga, Portugal, July 3-9, 2011. Revised Papers" conference: "GTTSE" editor: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "João Saraiva" link: "https://researchr.org/alias/jo%C3%A3o-saraiva" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" volume: "7680" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-35992-7" kind: "proceedings" key: "gttse-2011" - title: "Generative and Transformational Techniques in Software Engineering, International Summer School, GTTSE 2005, Braga, Portugal, July 4-8, 2005. Revised Papers" year: "2006" tags: - "transformation engineering" - "GTTSE" - "software engineering" - "transformation" researchr: "https://researchr.org/publication/gttse%3A2006" cites: 0 citedby: 0 booktitle: "Generative and Transformational Techniques in Software Engineering, International Summer School, GTTSE 2005, Braga, Portugal, July 4-8, 2005. Revised Papers" conference: "GTTSE" editor: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "João Saraiva" link: "http://di.uminho.pt/~jas" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" volume: "4143" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-45778-X" kind: "proceedings" key: "gttse:2006" - title: "Proceedings of the Third International Workshop on Managing Technical Debt, MTD 2012, Zurich, Switzerland, June 5, 2012" year: "2012" doi: "http://dl.acm.org/citation.cfm?id=2666036" links: doi: "http://dl.acm.org/citation.cfm?id=2666036" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/icse/2012mtd" researchr: "https://researchr.org/publication/icse-2012mtd" cites: 0 citedby: 0 booktitle: "Proceedings of the Third International Workshop on Managing Technical Debt, MTD 2012, Zurich, Switzerland, June 5, 2012" conference: "ICSE" editor: - name: "Philippe Kruchten" link: "https://researchr.org/alias/philippe-kruchten" - name: "Robert L. Nord" link: "https://researchr.org/alias/robert-l.-nord" - name: "Ipek Ozkaya" link: "https://researchr.org/alias/ipek-ozkaya" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" publisher: "ACM" isbn: "978-1-4673-1749-8" kind: "proceedings" key: "icse-2012mtd" - title: "Generative and Transformational Techniques in Software Engineering III - International Summer School, GTTSE 2009, Braga, Portugal, July 6-11, 2009. Revised Papers" year: "2011" doi: "http://dx.doi.org/10.1007/978-3-642-18023-1" links: doi: "http://dx.doi.org/10.1007/978-3-642-18023-1" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/gttse/2009" tags: - "transformation engineering" - "software engineering" - "transformation" researchr: "https://researchr.org/publication/gttse-2009" cites: 0 citedby: 0 booktitle: "Generative and Transformational Techniques in Software Engineering III - International Summer School, GTTSE 2009, Braga, Portugal, July 6-11, 2009. Revised Papers" conference: "GTTSE" editor: - name: "Joao M. Fernandes" link: "https://researchr.org/alias/joao-m.-fernandes" - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "João Saraiva" link: "http://di.uminho.pt/~jas" volume: "6491" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-18022-4" kind: "proceedings" key: "gttse-2009" - title: "Generative and Transformational Techniques in Software Engineering II, International Summer School, GTTSE 2007" year: "2008" month: "July" tags: - "transformation engineering" - "GTTSE" - "software engineering" - "transformation" researchr: "https://researchr.org/publication/gttse%3A2007" cites: 0 citedby: 0 booktitle: "Generative and Transformational Techniques in Software Engineering II, International Summer School, GTTSE 2007" conference: "GTTSE" editor: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "João Saraiva" link: "http://di.uminho.pt/~jas" volume: "5235" series: "Lecture Notes in Computer Science" address: "Braga, Portugal" publisher: "Springer" isbn: "978-3-540-88642-6" kind: "proceedings" key: "gttse:2007" - title: "Pre-proceedings of the 3rd International Summer School on Generative and Transformational Techniques in Software Engineering" year: "2009" tags: - "transformation engineering" - "GTTSE" - "software engineering" - "transformation" researchr: "https://researchr.org/publication/gttse%3A2009" cites: 0 citedby: 0 booktitle: "Pre-proceedings of the 3rd International Summer School on Generative and Transformational Techniques in Software Engineering" editor: - name: "João M. Fernandes" link: "http://www.di.uminho.pt/~jmf/" - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "João Saraiva" link: "http://di.uminho.pt/~jas" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" kind: "proceedings" key: "gttse:2009"