Free and Open Source Software Development and Research: Opportunities for Software Engineering

Free/Libre/Open Source Software (FLOSS) communities have produced a large amount of valuable software that is directly or indirectly used daily by any person with access to a computer. The field of Software Engineering studies processes, mechanisms, tools, and frameworks for the development of software artifacts. Historically, however, most of Software Engineering research and education does not benefit from the large and rich source of data and experimental testbeds offered by FLOSS projects and their hundreds of millions of lines of working code. In this paper, we discuss how Software Engineering research and education can greatly benefit from the wealth of information available in the FLOSS ecosystem. We then evaluate how FLOSS has been used, up to now, by papers published in the Brazilian Symposium on Software Engineering. Finally, we present an agenda for the future, proposing concrete ways to exploit the synergies between research and education in Software Engineering and FLOSS projects.

[1]  Cláudia Maria Lima Werner,et al.  On the Selection of Concurrency Control Policies for Configuration Management , 2009, 2009 XXIII Brazilian Symposium on Software Engineering.

[2]  Roberto da Silva Bigonha,et al.  Reference Values for Object-Oriented Software Metrics , 2009, 2009 XXIII Brazilian Symposium on Software Engineering.

[3]  Paulo Meirelles,et al.  Analizo: an Extensible Multi-Language Source Code Analysis and Visualization Toolkit , 2010 .

[4]  Francisco Brasileiro,et al.  GridUnit : Using the Computational Grid to Speed up Software Testing , 2005 .

[5]  Kevin Crowston,et al.  Core and Periphery in Free/Libre and Open Source Software Team Communications , 2006, Proceedings of the 39th Annual Hawaii International Conference on System Sciences (HICSS'06).

[6]  Alessandro F. Garcia,et al.  Defining and Applying Detection Strategies for Aspect-Oriented Code Smells , 2010, 2010 Brazilian Symposium on Software Engineering.

[7]  Cleidson R. B. de Souza,et al.  Understanding Open Source Developers' Evolution Using TransFlow , 2009, CRIWG.

[8]  Keith W. Miller,et al.  Open source software: intellectual challenges to the status quo , 2002, SIGCSE '02.

[9]  Tony Greening Computer Science Education in the 21st Century , 2000 .

[10]  Marcelo Soares Pimenta,et al.  Towards a UML Profile for Model-Driven Object-Relational Mapping , 2009, 2009 XXIII Brazilian Symposium on Software Engineering.

[11]  Uirá Kulesza,et al.  A Component-based Product Development Process for a Workflow Management System Product Line , 2005 .

[12]  Fabio Kon,et al.  A Study of the Relationships between Source Code Metrics and Attractiveness in Free Software Projects , 2010, 2010 Brazilian Symposium on Software Engineering.

[13]  Michael R. Wade,et al.  A Comprehensive Review and Synthesis of Open Source Research , 2010, J. Assoc. Inf. Syst..

[14]  Arndt von Staa,et al.  SDiff: A Comparison Tool based in Syntactical Document Structure , 2010, 2010 Brazilian Symposium on Software Engineering.

[15]  Thomas Østerlie,et al.  A Critical Review of Software Engineering Research on Open Source Software Development , 2007 .

[16]  Yguaratã Cerqueira Cavalcanti,et al.  A Bug Report Analysis and Search Tool , 2009 .

[17]  Rita Suzana Pitangueira Maciel,et al.  An Integrated Approach for Model Driven Process Modeling and Enactment , 2009, 2009 XXIII Brazilian Symposium on Software Engineering.

[18]  Kevin Crowston,et al.  Group Maintenance Behaviors of Core and Peripherial Members of Free/Libre Open Source Software Teams , 2009, OSS.

[19]  Marcelo Hideki Yamaguti Uma Arquitetura reflexiva baseada na web para ambiente de suporte a processo , 2002 .

[20]  Francisco Dantas,et al.  Software Reuse versus Stability: Evaluating Advanced Programming Techniques , 2010, 2010 Brazilian Symposium on Software Engineering.

[21]  Walt Scacchi,et al.  Role Migration and Advancement Processes in OSSD Projects: A Comparative Case Study , 2007, 29th International Conference on Software Engineering (ICSE'07).

[22]  R.K. Raj,et al.  Using Open Source Software in Computer Science Courses , 2006, Proceedings. Frontiers in Education. 36th Annual Conference.

[23]  Fabiano Cutigi Ferrari,et al.  Characterising Faults in Aspect-Oriented Programs: Towards Filling the Gap Between Theory and Practice , 2010, 2010 Brazilian Symposium on Software Engineering.

[24]  David A. Patterson Computer science education in the 21st century , 2006, CACM.

[25]  Francisco Brasileiro,et al.  Obtaining Trustworthy Test Results in Multi-threaded Systems , 2008, SBES.

[26]  Cláudio Sant'Anna,et al.  Identifying Code Smells with Multiple Concern Views , 2010, 2010 Brazilian Symposium on Software Engineering.

[27]  João Paulo,et al.  Um Serviço de Repositório Compartilhado e Distribuído para Suporte ao Desenvolvimento Baseado em Componentes , 2007 .

[28]  Márcio de Oliveira Barros,et al.  Evaluating the Implications of a Package Design Principle upon Software Maintainability , 2010, 2010 Brazilian Symposium on Software Engineering.

[29]  Antonio Soares de Azevedo Terceiro,et al.  An Empirical Study on the Structural Complexity Introduced by Core and Peripheral Developers in Free Software Projects , 2010, 2010 Brazilian Symposium on Software Engineering.

[30]  Cleidson R. B. de Souza,et al.  Using TransFlow to Analyze Open Source Developers' Evolution , 2009, 2009 XXIII Brazilian Symposium on Software Engineering.

[31]  Fabio Kon,et al.  Intellectual property policy and attractiveness: a longitudinal study of free and open source software projects , 2011, CSCW '11.

[32]  Gregory W. Hislop,et al.  Using open source software to engage students in computer science education , 2009, SIGCSE '09.

[33]  Jennifer S. Kay,et al.  Open source software and computer science education , 2003 .

[34]  Walt Scacchi,et al.  Free/open source software development: recent research results and emerging opportunities , 2007, ESEC-FSE companion '07.

[35]  F. Ferreira,et al.  TaRGeT : a Model Based Product Line Testing Tool , 2010 .

[36]  Eric S. Raymond,et al.  The Cathedral & the Bazaar , 1999 .

[37]  Daniel Izquierdo-Cortazar,et al.  FLOSSMetrics: Free/Libre/Open Source Software Metrics , 2009, 2009 13th European Conference on Software Maintenance and Reengineering.

[38]  Daniel Lucrédio,et al.  One Step More to Understand the Bug Report Duplication Problem , 2010, 2010 Brazilian Symposium on Software Engineering.

[39]  Manoel G. Mendonça,et al.  Mining Software Change History in an Industrial Environment , 2009, 2009 XXIII Brazilian Symposium on Software Engineering.

[40]  Rossana M. C. Andrade,et al.  Building Flexible Refactoring Tools with XML , 2007 .

[41]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..

[42]  V.N. Gudivada,et al.  Learning software engineering principles using open source software , 2008, 2008 38th Annual Frontiers in Education Conference.

[43]  Brenton D. Faber Educational models and open source: resisting the proprietary university , 2002, SIGDOC '02.

[44]  Márcio de Oliveira Barros,et al.  An Automated Approach for Scheduling Bug Fix Tasks , 2010, 2010 Brazilian Symposium on Software Engineering.

[45]  Matthijs den Besten,et al.  The Words and Actions That Distinguish Core from Periphery in Bug Reports and How Core and Periphery Interact Together , 2009 .

[46]  Walt Scacchi The future of research in free/open source software development , 2010, FoSER '10.

[47]  Marcelo de Almeida Maia,et al.  Software Evolution Aided by Execution Trace Alignment , 2010, 2010 Brazilian Symposium on Software Engineering.

[48]  David A. Patterson Revisiting my campaign statement , 2006, CACM.

[49]  J. Herbsleb,et al.  Two case studies of open source software development: Apache and Mozilla , 2002, TSEM.

[50]  David Lorge Parnas Software Engineering or Methods for the Multi - Person Construction of Multi - Version Programs , 1974, Programming Methodology.