The TXL source transformation system is widely used in industry and academia for both research and production tasks involving source transformation and software analysis. While it is designed to be accessible to software practitioners, understanding how to use TXL effectively takes time and has a steep learning curve. This tutorial is designed to get you over the initial hump and rapidly move you from a TXL novice to the skills necessary to use it effectively in real applications. Consisting of a combination of one hour lecture presentations followed by one hour practice sessions, this is a hands-on tutorial in which you will quickly learn how to use TXL effectively in your research or industrial practice.
James Cordy is Professor and past Director of the School of Computing at Queen’s University at Kingston, Canada. As leader of the TXL source transformation project with hundreds of academic and industrial users worldwide, he is the author of more than 160 refereed contributions in programming languages, software engineering and artificial intelligence. From 1995-2001 he was Vice President and Chief Research Scientist at Legasys Corporation, whose LS/2000 source code analysis system was responsible for the analysis and reprogramming of over 4.5 billion lines of financial code of the largest Canadian banks for the Year 2000 problem. Dr. Cordy is an ACM Distinguished Scientist, a senior member of the IEEE, and an IBM CAS faculty fellow.
You can’t control what you can’t measure. And you can’t decide if you are wandering around in the dark. Risk management in practice requires shedding light on the internals of the software product in order to make informed decisions. Thus, in practice, risk management has to be based on information about artifacts (documentation, code, and executables) in order to detect (potentially) critical issues.
This tutorial presents experiences from industrial cases world-wide on qualitative and quantitative measurement of software products. We present our lessons learned as well as consolidated experiences from practice and provide a classification scheme of applicable measurement techniques.
Participants of the tutorial will receive an introduction to the techniques in theory and will then apply them in practice in interactive exercises. This enables participants to learn how to shed light on the internals of their software and how to make risk management decisions efficiently and effectively.
Dr. Jens Knodel and Dr. Matthias Naab are software architects. Their expertise –- consolidated experiences and lessons learned from more than 50 projects with industry in domains like Embedded Systems, Information Systems, and Smart Ecosystems –- lies in the definition, improvement, and assessment of software architectures.
Jens and Matthias are senior researchers at the Fraunhofer Institute for Experimental Software Engineering IESE in Kaiserslautern, Germany. They are responsible for project management, method development, and technology transfer in research and industry projects and are leading research activities in the area of software and systems architecture at IESE.
In addition, Jens Knodel, and Matthias Naab regularly coach practitioners on software architecture. They also give tutorials at conferences and hold lectures at the Fraunhofer Academy and at the University of Kaiserslautern on the same topics. They are the authors of more than 100 scientific, peer-reviewed publications in the areas of software architecture, ecosystems, maintenance, and evolution.
Eric Bouwers is a qualified teacher and technical consultant at the Software Improvement Group in Amsterdam, The Netherlands. He is interested in how software metrics can assist in quantifying the architectural aspects of software quality. In the past six years, this interest has led to the design, evaluation, and application of two architecture-level metrics that are now embedded in a benchmark-based model for software quality.
Joost Visser is head of research at the Software Improvement Group (SIG) in Amsterdam, The Netherlands, and holds a position as professor of large-scale software systems at Radboud University Nijmegen, The Netherlands. At the SIG, Joost is responsible for innovation of tools and services, academic relations, internship coordination, and general research. In the past eight years, he has been involved in the development, evaluation, and application of a benchmark-based model for software quality.
Every system is a legacy system, the moment a programmer writes a line of code it becomes a legacy. Therefore in even relatively new systems similar to long lived systems, developers are faced with a body of code that they need to understand, and from which they need to extract architectural knowledge. Unfortunately, anecdotal evidence has shown that such knowledge tends to be tacit in nature, stored in the heads of people, and inconsistently scattered across various software artifacts and repositories. Furthermore, architectural knowledge vaporizes over time. Given the size, complexity, and longevity of many projects, developers therefore often lack a comprehensive knowledge of architectural design decisions and consequently make changes in the code that inadvertently degrade the underlying design and compromise its qualities.
This technical briefing will answer three fundamental questions about software architecture recovery: Why? What? and How? Through several examples it articulates and synthesizes technical forces and financial motivations that make software companies to invest in software architecture recovery. It discusses “what” are the pieces of design knowledge that can be recovered and lastly demonstrates a methodology as well as required tools for answering “how” to reconstruct architecture from implementation artifacts.
Mehdi Mirakhorli is an assistant professor at Rochester Institute of Technology. His research interest focuses on the application of data mining and information retrieval techniques to solve software engineering problems, “software architecture design, implementation, maintenance and reconstruction”, requirements engineering and software traceability. Previously, he worked for seven years as a software architect on large data-intensive software systems in banking, health care and meteorological domains. Dr. Mirakhorli has served as Guest Editor for a special edition of IEEE Software and organizer, committee member and reviewer for several software engineering conferences. Dr. Mirakhorli has received two ACM SIGSOFT Distinguished Paper Awards at the International Conference on Software Engineering. Furthermore he has been speaker in several technical venues such as ALTA Distinguished Speaker at Alcatel-Lucent.