ICSE 2011 Tutorials/ Technical Briefings

F1: Effective Experimental Design and Statistical Analysis of Software Engineering Data

Monday, June 4

Speaker: Akbar Siami Namin

Experimentation is an inevitable part of scientific and scholarly activities. Researchers transform empirical findings into body of knowledge and synthesize analytical concepts in sciences and engineering. Experimentation is also vital to software engineering research and serves as a proof of concept to support or reject a scientific hypothesis. Software engineers evaluate novel approaches and tools through empirical studies. Despite its importance to the field, solid experimentations and conducting rigorous statistical data analyses are often overlooked. Many software engineering research articles contain instances of misused statistical techniques and violated necessary assumptions. Moreover, many experimental findings reported in software engineering articles suffer from inconsistency and thus hurdle synthesizing empirical findings through meta-analysis. The primary goal of this tutorial is to flag common mistakes that often occur when conducting statistical data analysis. The tutorial will review fundamental concepts of design of experiments, metrics, data collection as well as relevant statistical techniques and methodologies in reporting empirical findings. More specifically, the tutorial will review: a) techniques in design of experiments including randomized, factorial, and Taghuchi design methods, b) Common metrics and measurements in software engineering, c) Explanatory and descriptive analysis techniques, d) Relevant statistical techniques and the underlying assumptions, e) Predictive models including regressions, classification, and clustering, f) Probabilistic and stochastic distributions including Gaussian, lognormal, exponential, and Poisson as extensively used in software reliability engineering.

Akbar Siami Namin is an assistant professor in the Computer Science Department at Texas Tech University where he leads the Advanced Empirical Software Testing and Analysis research group. He received his PhD in Computer Science from the University of Western Ontario, Canada. His research focuses on statistical analysis of software engineering data and in particular software testing, machine learning, and empirical software engineering. He has published many articles using statistical data analysis.

F2: Self-Organizing Teams

Monday, June 4

Speakers: Rashina Hoda and Esther Derby


F3: Wolf Pack Programming Workshop - Real Time Collaboration hands-on Experience

Tuesday, June 5

Speakers: Helge Nowak and Jason Ayers


F4: Domain Specific Language Design

Tuesday, June 5

Speaker: Markus Voelter

Domain Specific Languages are languages with high expressivity for a specific, narrow problem domain. They are a powerful tool for software engineering, because they can be tailor-made for a specific class of problems. However, because of the large degree of freedom in designing DSLs, and because they are supposed to cover the right domain, completely, and at the right abstraction level, DSL design is also hard. In this tutorial I present a framework for describing, characterizing and guiding the design of external domain specific languages. I identify eight design dimensions that span the space within which DSLs are designed: expressivity, coverage, semantics, separation of concerns, completeness, reusable paradigms, language modularization and syntax. I illustrate design alternatives along each of these dimensions with examples from four case studies and discuss the drivers that lead to particular design decisions. The case studies are: a component architecture DSL, a DSL for describing refrigerator cooling algorithms, a pension plan specification language and a suite of domain-specific extensions to C. The tutorial will be slides, demos, and discussion.

Markus Völter works as an independent researcher, consultant and coach for itemis AG in Stuttgart, Germany. His focus is on software architecture, model-driven software development and domain specific languages as well as on product line engineering. Markus also regularly writes (articles, patterns, books) and speaks (trainings, conferences) on those subjects. Contact him via voelter@acm.org or www.voelter.de.

H1: Strategic Management of Technical Debt

Monday, June 4

Speakers: Philippe Kruchten, Robert Nord and Ipek Ozkaya

The technical debt metaphor acknowledges that development teams sometimes accept compromises in a system in one dimension (for example, modularity) to meet an urgent demand in some other dimension (for example, a deadline), and that such compromises incur a “debt”. If not properly managed the interest on this debt may continue to accrue, severely hampering system stability and quality and impacting the team’s ability to deliver enhancements at a pace that satisfies business needs. Although unmanaged debt can have disastrous results, strategically managed debt can help businesses and organizations take advantage of time-sensitive opportunities, fulfill market needs and acquire stakeholder feedback. Because architecture has such leverage within the overall development life cycle, strategic management of architectural debt is of primary importance. This half-day tutorial introduces the technical debt metaphor and techniques for measuring and communicating this technical debt.

Philippe Kruchten is professor of software engineering at the University of British Columbia in Vancouver, where he retired after 30+ years in industry, primarily with Alcatel and Rational Software (now IBM). Dr. Kruchten has organized numerous ICSE workshops and tutorials since 1998, and more recently on Software Architecture (Shark 2007 to 2011), on Global Software Development (GSD 2006), Software Development Governance (SDG 2008 to 2010) and on Technical Debt (MTD2011).

Robert L. Nord is a senior member of the technical staff at the Software Engineering Institute (SEI) of Carnegie Mellon University. He is engaged in activities focusing on agile and architecture at scale and works to develop and communicate effective methods and practices for software architecture. He is coauthor of the practitioner-oriented books Applied Software Architecture and Documenting Software Architectures: Views and Beyond, and he lectures on architecture-centric approaches. Dr. Nord has organized tutorials, workshops, and sessions at software engineering venues (e.g., ICSE, ECSA, SATURN, WICSA, and SPLC).

Ipek Ozkaya is a senior member of the technical staff at the SEI. Her primary work is on developing techniques and methods for improving software architecture practices by focusing on software economics and agile development. Most recently, Dr. Ozkaya has chaired the annual SEI Architecture Technology User Network Conferences 2006-2010. Dr. Ozkaya has organized several tutorials and workshops at software engineering venues (e.g. ICSE, OOPSLA, SATURN and WICSA).

H2: Positive Transitions from the Classroom to the Cubicle

Monday, June 4

Speakers: C Shaun Longstreet and Kendra Cooper

A Code of Ethics and Professional Practice is widely recognized as a key element of the engineering discipline and has been embodied in international standards (IEEE SWEBOK & ACM Software Engineering Code of Ethics and Professional Practice). Engineering ethics often receives attention in separate courses or modules, however other critical elements of professionalism are not directly addressed in a curriculum. Graduates coming to industry frequently lack proficiency in vital skills such as being adept in appropriate interpersonal communications, quickly adapting to industry protocols, and effectively acclimating to corporate hierarchy, culture and accountability. Many programs assume that professionalism is indirectly socialized through faculty modeling and classroom management. Such an assumption does not serve our students well, or the SE industry that hires them and then must put a tremendous effort into new employee orientation to create a productive work environment. This highly interactive 3-hour tutorial provides practical resources for those who seek to introduce professionalism education into the SE curriculum but cannot create whole new courses devoted to the subject. Participants will come away with concrete plans to assess, create, and integrate professional development opportunities into their academic Software Engineering curricula or industry training programs. Participants will reflect on their own context, they will engage peers and facilitators through a series of cases in small groups, while working on their individual strategic plan that will work best for their own campus. This tutorial is a fertile opportunity for SE educators, advisors, administrators and representatives from SE undergraduate professional societies who want to respond to a vital concern for many campuses.

C. Shaun Longstreet, Ph.D. is the Director of the Center for Teaching and Learning at Marquette University. He has twelve years of faculty and graduate student professional development experience at research universities with well respected engineering programs. He has given many talks and has published on the subject of professional development in higher education and has created several professional development programs for graduate students.

Kendra M.L. Cooper is an Associate Professor in the Department of Computer Science in the Erik Jonsson School of Engineering and Computer Science at The University of Texas at Dallas. She received her Ph.D. in Electrical and Computer Engineering from The University of British Columbia and has worked extensively in the early phases of the software development lifecycle, both in industry and academia. Her research interests center on software and systems architecture and education.

H3: Multicore Software Engineering and Auto-Tuning

Monday, June 4

Speaker: Victor Pankratius

Multicore processors with several cores on a chip transform PCs, laptops, servers, and embedded devices into parallel computers. As software engineers are now asked to write parallel applications of all sorts, they need to quickly grasp the relevant aspects of general-purpose parallel programming. This tutorial prepares them for this challenge. It presents on overview of concepts and techniques in multicore software engineering, such as basics of parallel programming, design patterns for parallelism, parallelism in modern programming languages, and testing and debugging techniques for multicore. In addition, the tutorial discusses automatic performance tuning methods for multicore systems. Experience reports on the parallelization and performance tuning of real-world applications are used for illustration.

Victor Pankratius is a visiting scientist at MIT CSAIL in Cambridge, Massachusetts. He is also a Privatdozent at Karlsruhe Institute of Technology where he heads the Multicore Software Engineering investigator group. His research concentrates on how to make parallel programming easier and covers a range of research topics including auto-tuning, language design, debugging, and empirical studies. Victor received various awards for his work for pushing the boundaries at the intersection of software engineering and parallel computing. He serves as the elected chairman of the international Software Engineering for Parallel Systems (SEPARS) working group. Contact him at www.victorpankratius.com

H4: SOA Migration in Practice

Monday, June 4

Speakers: Maryam Razavian and Patricia Lago

This tutorial explains and discusses a method elicited from multiple enterprises to carry out SOA migration from legacy to service-oriented software. It will be organized in a highly interactive way: academics will learn and contrast their research against practice, and learn what industry-relevant research is still needed to bring SOA migration to maturity. Practitioners will be able to learn practices from other organizations, and share their insights about their own methods, practices, and current challenges.

Maryam Razavian is a PhD candidate at the VU University Amsterdam, department of computer science. Her PhD research focuses on knowledge-driven migration of legacy systems to services in industry and is funded by the NWO/Jacquard SAPIENSA project. She has also participated in the European projects such as NoE S-Cube.

Patricia Lago is an Associate Professor at the VU University Amsterdam, leading the service engineering group. Her research interests focus on software- and service architectures, architectural knowledge management and green IT. She is member of the IFIP 2.10 WG on Software Architecture & IFIP 2.14 WG on Services-based Systems. She has been local chair of ESEC/FSE 2009, program co-chair of WICSA 2011, and since 2009 PC co-chair of the Dutch Software Architecture Conference. She is VUA principal investigator of the NWO/Jacquard SAPIENSA project on SOA migration in industry.

H5: Using Ethnographic methods in Software Engineering Research

Tuesday, June 5

Speakers: Yvonne Dittrich, Cleidson De Souza, Helen Sharp and Jennifer Ferreira

Ethnographic methods are a powerful qualitative empirical approach to understanding and hence improving software engineering practice. Ethnographic methods are widely adopted in the Social Sciences and Information Systems and provide a complementary source of insight to quantitative methods predominantly applied in software engineering. The tutorial introduces ethnography and its application in software engineering research. The tutorial is especially appropriate for those wanting to study the complexities of software development practice. Attendees will leave the tutorial with practical advice about how to apply ethnography in their own setting to provide an in-depth understanding of the socio-technological realities of software development practice and how to use this knowledge to improve processes, methods and tools as well as to advance the observed industrial practices.

Yvonne Dittrich is an associate professor at the IT University of Copenhagen, Denmark. Her research addresses software development as cooperative work and use oriented design and development of software. She has more than 10 years of experience with qualitative empirical research methods. She developed a research approach combining ethnographical methods with action research.

Cleidson de Souza is a Researcher at the newly created Vale Technological Institute in Belém, Brazil. His main research interest is in understanding how software engineers work collaboratively to develop software. He has been using ethnographic methods in his research since 2002 and has published in leading conferences and journals, including IEEE TSE, ICSE and FSE.

Helen Sharp is Professor of Software Engineering at The Open University, UK. Her research focuses on the social nature of software development, and she has been conducting qualitative studies of software development teams since the early 1990s. More recently, her focus has been on agile software development. She is joint author of a leading textbook on Interaction Design, which includes ethnographic methods in software development.

Jennifer Ferreira is a post doctoral fellow at the University of Calgary. She has recently completed her PhD studies at The Open University, UK, involving ethnographically-informed studies of Agile developers and User Experience designers working together in organizational settings. The results have been published at the XP2010 conference and the journal Software: Practice and Experience.

H6: Mining Software Engineering Data

Tuesday, June 5

Speakers: Ahmed Hassan and Tao Xie

Software engineering data (such as code bases, execution traces, historical code changes, mailing lists, and bug databases) contains a wealth of information about a project’s status, progress, and evolution. Using well established data mining techniques, practitioners and researchers can explore the potential of this valuable data in order to better manage their projects and to produce higher quality software systems that are delivered on time and within budget. This tutorial presents the latest research in mining Software Engineering (SE) data, discusses challenges associated with mining SE data, highlights SE data mining success stories, and outlines future research directions. Attendees will acquire the knowledge and skills needed to perform research or conduct practice in the field and to integrate data mining techniques in their own research or practice. The tutorial has been very well attended and received in previous offerings at ICSE. More information including tutorial slides can be found on the tutorial website: https://sites.google.com/site/asergrp/dmse/.

Dr. Hassan spearheaded the organization and creation of the Mining Software Repositories (MSR) conference and its research community. He co-edited special issues of the IEEE Transaction on Software Engineering and the Journal of Empirical Software Engineering on the MSR topic. Early tools and techniques developed by Dr. Hassan's team are already integrated into products used by millions of users worldwide. Dr. Hassan industrial experience includes helping architect the Blackberry wireless platform at RIM, and working for IBM Research at the Almaden Research Lab and the Computer Research Lab at Nortel Networks. Dr. Hassan is the named inventor of patents at several jurisdictions around the world including the United States, Europe, India, Canada, and Japan.

Tao Xie is an Associate Professor in the Department of Computer Science at North Carolina State University. He received his Ph.D. in Computer Science from the University of Washington in 2005. His research interests are in software engineering, including software testing, analysis, and analytics. He is an ACM Distinguished Speaker and an IEEE Computer Society Distinguished Visitor. He was Program Co-Chair of ICSM 2009 and is Program Co-Chair of MSR 2011 and 2012.

H7: Software Ecosystems - Implications for Strategy, Business Model and Architecture

Tuesday, June 5

Speaker: Jan Bosch

Software ecosystems are the logical destination for any successful software product or software product line. Once an organization has established a a product or product line with a significant number of customers, there will be more requests from customers for functionality than what the organization can build itself. Also, independent solution providers and third party developers will increasingly ask for access to the platform in order to build customer (segment) specific solutions on top of the products and platform. A successful software ecosystem provides an incredibly powerful, valuable and durable competitive advantage to the platform company and an effective way for third party developers to focus their energy on the most differentiating functionality. This tutorial provides the participants with an understanding of the forces leading to the creation of a software ecosystem, a theoretical framework and taxonomy of software ecosystems, guidelines on how to initiate a software ecosystem, several industrial examples and cases and exercises to apply the principles to a specific case.

Jan Bosch is professor of software engineering and co-director of the software research center at Chalmers University Technology in Gothenburg, Sweden. Earlier, he worked as Vice President Engineering Process at Intuit Inc. and headed the Software and Application Technologies Laboratory at Nokia Research Center, Finland. His research activities include compositional software engineering, software ecosystems, software architecture, software product families and software variability management.

B1: Understanding Machine Learning for Empirical Software Engineering

Tuesday, June 5

Speaker: Tim Menzies

This briefing is intended for software engineering practitioners and researchers who want to use machine learners, not for merely making predictions, but for learning lessons on how to change and improve their projects. Attendees will learn how to tune machine learners to particular projects. Specifically, attendees will learn how to mix and match between algorithms in order to create analysis methods that are best suited to their own projects.

Tim Menzies is an associate professor in computer science at West Virginia University and a former research chair for NASA. He has workied on advanced modeling and AI since 1986. He received his PhD from UNSW, Australia and is the author of 200+ refereed papers. He currently serves as the chair of the steering committee of the PROMISE conference on repeatable software engineering experiments and will be PC co-chair for IEEE ASE 2012. For more information, see his web page http://menzies.us.

B2: Software Engineering in the Age of Data Privacy

Tuesday, June 5

Speakers: Mark Grechanik and Denys Poshyvanyk

It is notoriously difficult to both protect the confidentiality of private data and make the data available for different software engineering and maintenance tasks. While there are often several options that achieve an equivalent level of data protection, each option may have a unique impact on software engineering tasks. The goal of this technical briefing is to provide state-of-the art overview of the research agenda, solutions, and questions related to data privacy issues in software engineering. One example of such a fundamental question of software engineering is how can a data owner protect private information so that the data subjects (e.g., persons, equipment) cannot be re-identified while the data retains their efficacy for software engineering tasks?

Dr.Mark Grechanik is a Research Manager with the Accenture Technology Labs and an Adjunct Professor at the departments of Computer Science of the University of Illinois at Chicago and the Northwestern University. He earned his Ph.D. in Computer Science from the department of Computer Sciences of the University of Texas at Austin. In parallel with his academic activities, Mark worked as a software consultant for startups and Fortune 500 companies. Mark is a recipient of best paper awards from competitive conferences and he is a PI of NSF grants, which he received through his affiliation with U. of Illinois. Currently, Mark is a member of the Executive Committee of ACM SigSoft and he has chaired various research conference tracks and workshops.

Denys Poshyvanyk is an Assistant Professor at the College of William and Mary in Virginia. He received his Ph.D. degree in Computer Science from Wayne State University in 2008. He serves as a program co-chair for the 18th and 19th International Working Conference on Reverse Engineering (WCRE 2011 and WCRE 2012) and 21st International Conference on Program Comprehension (ICPC 2013). His research interests are in software engineering, software maintenance and evolution, program comprehension, reverse engineering, software repository mining, source code analysis, and metrics.

B3: On the Use of Text Retrieval Techniques in Software Engineering

Tuesday, June 5

Speakers: Andrian Marcus and Giuliano Antoniol

During software evolution many related artifacts are created or modified. Some of these are composed of structured data (e.g., analysis data), some contain semi-structured information (e.g., source code), and many include unstructured information (e.g., natural language text). Software artifacts written in natural language (e.g., requirements, design documents, user manuals, scenarios, bug reports, developers’ messages, etc.) together with the comments and identifiers in the source code encode to a large degree the domain of the software, the developers’ knowledge about the system, capture design decisions, developer information, etc. Retrieving and analyzing the textual information existing in software are extremely important in supporting program comprehension and a variety of software evolution tasks. Text retrieval (TR) is a branch of information retrieval where the information is stored primarily in the form of text. TR methods have proved to be suitable in the retrieval and the analysis of textual data embedded in software. More than 20 different software engineering tasks have been addressed with tools based on TR techniques and more than 250 papers have been published in the past two decades on this research. This technical briefing presents some of the most popular TR-based approaches to software engineering problems. The technical briefing aims at providing a starting point for any software engineering researcher or practitioner to start using TR methods in their work.

Andrian Marcus is Associate Professor of Computer Science at Wayne State University. His research interests are in program comprehension and the application of data mining and analysis to support developer tasks during the evolution of software. He is a former Fulbright Scholar and recipient of the NSF Career Award. He served as steering, organizing, or program committee member for many conferences related to his area of research and on the editorial board of two journals (EMSE and JSME).

Giuliano Antoniol (Giulio) Canada Research Chair in Software Change and Evolution, served as program chair, industrial chair, tutorial, and general chair of international conferences and workshops. He is a member of the editorial boards of five software engineering journals. He is currently Full Professor at the Ecole Polytechnique de Montreal, where he works in the area of software evolution, software testing search based software engineering and software traceability.

B4: Symbolic Techniques for Software Debugging

Tuesday, June 5

Speakers: Abhik Roychoudhury and Satish Chandra

A key difficulty in software debugging is that the observable manifestation of an error may be far removed from the error itself. Fault localization is the act of locating the root cause of an error from an observable manifestation. Automation of fault localization requires some notion of the intended behavior of a program, so that one can infer where the actual execution veered away from the intended execution. However, the intended program behavior is typically not documented in the source code. In this technical briefing, we will focus on automated fault localization techniques that leverage symbolic analysis (i.e. solving logical constraints) of a buggy program for reasoning about a program’s intended behavior. Constraint solving, as embodied in propositional satisfiability (SAT) and satisfiability modulo theory (SMT) solvers, has become a practical technology for use in a variety of software engineering tools. Symbolic execution and constraint solving provide fundamental capabilities to accurately infer, compare and summarize program behavior. There are attractive prospects in terms of creating semantics-based debugging tools, and our goal is to highlight these prospects to the ICSE community and spur more research in the area.

Abhik Roychoudhury is an Associate Professor of Computer Science at the National University of Singapore, where he has been employed since 2001. Abhik received his Ph.D. in Computer Science from the State University of New York at Stony Brook in 2000. His research interests are in software testing, analysis and validation. Abhik's research has led to scalable and usable analysis tools which enhance software quality as well as programmer productivity. Meaningful examples of such endeavor include the the JSlice dynamic analysis tool for software debugging. Such tools have a substantial user-base spread across many different countries and have usage in teaching / development apart from research. He has served in at least 25 program committees of various conferences in software engineering and embedded systems, and has been involved in Networks of Excellences in these areas.

Satish Chandra obtained a PhD from the University of Wisconsin-Madison in 1997, and a B.Tech from the Indian Institute of Technology-Kanpur in 1991, both in computer science. From 1997 to 2002, he was a member of technical staff at Bell Laboratories, where his research focused on program analysis, domain-specific languages, and data-communication protocols. Since 2002, he has been at IBM Research, where he has worked in various capacities: an individual researcher, a research manager, and a product developer. His current work involves test automation, bug finding and verification tools, symbolic analysis, and synthesis of programs. He is an ACM Distinguished Scientist.

B5: Licensing Compliance

Tuesday, June 5

Speakers: Daniel German and Massimiliano Di Penta


B6: Software Release Engineering

Tuesday, June 5

Speaker: Bram Adams

Software release engineering is the discipline of integrating, building and delivering qualitative software releases to the end user. Whereas software used to be released in shrink-wrapped form once per year, modern companies like Intuit, Google and Mozilla only need a couple of days or weeks in between releases, while lean start-ups like IMVU release up to 50 times per day. Reducing the release cycle of a software project requires considerable process and technical changes, yet the scope and nature of such changes are unknown to the majority of practitioners. Hence, this technical briefing will focus on the state-of-the-art in release engineering. First, we will provide an overview of the three major sub-fields of release engineering (integration, build and delivery) and their interaction with other activities like development and testing. Then, we will discuss for each sub-field the current practices and recent research results, as well as the open challenges for the major stakeholders involved in the process (management, developers, testers and operations). The briefing will not only appeal to release engineers and companies planning to improve their release process, but will teach software engineering researchers and practitioners in general how to align their work with the release engineering goals of a project.

Bram Adams (http://mcis.polymtl.ca) is an assistant professor at the École Polytechnique de Montréal (Canada), where he heads the MCIS lab. He obtained his PhD at Ghent University (Belgium), and was an adjunct assistant professor at Queen's University (Canada). His interests include software release engineering in general, and software integration, software build systems, and software modularity in particular. His work has been published at premier venues like ICSE, FSE, ASE, ESEM, MSR and ICSM.