Universidad de Santiago de Chile Facultad de Ingeniería Departamento de Ingeniería Informática Method used for Research Software Development LACCIR Summer Doctoral Academy Authors : Héctor Antillanca Espina Gerardo Cerda Neumann Date : January 9th, 2012
o Introduction o Current development situation o Features o Difficulties o Development Method Proposal o Stages of Development o Support Tools o Teamwork o Results Diapositiva 2
Introduction Software Development in a scientific environment v/s commercial environment - Simple interface - Requirements defined by the development team - Multiple versions of applications Knowledge-driven projects Developmental problems - Several deliveries Method use for Research Software Development - Lack of documentation - Coordination between groups is not easy - To modify code made by others programmers is hard Diapositiva 3
Features Software used by specialists Software developed is based on papers or scientific publications Not much time is devoted to documentation Many sub projects may appear Sudden changes in requirements Final product is an academic paper Diapositiva 4
Difficulties Method use for Research Software Development Some and same errors are repeated in different projects To modify applications is hard Lack of documentation It is hard to manage different versions of the paper It is hard to link data, applications and papers Diapositiva 5
Proposal Method use for Research Software Development KDDP Knowledge Discovery-Driven Project Diapositiva 6
Stages of development proposed (1 / 3) Quadrant 1: Defining the objective of the cycle and the knowledge to be obtained. Quadrant 2: Evaluation of alternatives. Exploring solutions. Quadrant 4: Discussion of the achievement of the activities and the knowledge generated Decision to perform a new cycle Preparation of data. The experiment. Quadrant 3: Carrying out the planned activities Diapositiva 7
Stages of development proposed (2 / 3) Quadrant Results Quadrant 1: Quadrant 2: Quadrants 2 and 3: Quadrant 3: A brief report in order to achieve the cycle. Each member has a defined activity (using the Wiki). A list of features and functionality that the application must meet. An assignment of the roles for each member. A list of assigned activities. A list of discoveries by the team. A report of analysis results. Quadrant 4: The decision of whether or not a new cycle. The findings of the experiment. A paper or technical report presents the knowledge generated. Diapositiva 8
Stages of development proposed (3 / 3) For each iteration of the spiral can use the following template: Objectives: To describe the intent of the cycle to be performed. The general guideline is to increase knowledge Constraints: factors that limit the possibilities for the cycle and to generate knowledge Alternatives: different ways to achieve the objectives Knowledge: potential knowledge to be gained with the cycle Knowledge discovery: strategies for generating knowledge Results: the knowledge generated Plans: how to attack the next cycle become necessary Commitments: decisions on how to continue Diapositiva 9
Support Tools (1 / 2) Daily coordination meetings of 15 minutes' standing. "Each member answers the questions: What did I do yesterday?, What am I doing today? and what difficulties have you had? A Wiki for project commitments. For documentation suggests the following applications: Doxygen automatic generator for the code, currently at version 1.5.2. The version control system SVN (Subversion) for software and documentation. Diapositiva 10
Support Tools (2 / 2) A "Traceability matrix" where is recorded each generated software version, the processed data, the obtained results on that date, in which computer is every version of the project and who was responsible for the creation of the application. Proyecto: Proyecto 002 2009 Ciclo Aplicación creada Equipo de Trabajo: Equipo 1 Inicio: 20/12/2009 Desarrollador: Datos ejecución: Fecha ejecución: Documento de resultados: 1 Pr005 ABC, HIJ Pr005.dat 01/01/2010 Inf005.doc N Diapositiva 11
And last The Task Force In each task force are the following roles and responsibilities: Project manager: who guides and leads the team work. Developer-Documenter: who writes the code and the program documentation. Data Manager and Tester: who prepares data to be processed, tests the created programs and reviews the results. The whole group is responsible for: The decision of whether or not a new cycle. The findings of the experiment. A paper or technical report presents the knowledge generated. Diapositiva 12
Results (1) Method use for Research Software Development KDDP was applied in two projects: Evaluation of content and relevance of Web pages in a focused crawler Tour manager strategies on Web sites Diapositiva 13
Results (2) Method use for Research Software Development It has been validated Use of Spiral Model Doxygen Moodle forums instead of e-mail Traceability Matrix Diapositiva 14
Universidad de Santiago de Chile Facultad de Ingeniería Departamento de Ingeniería Informática Method used for Research Software Development LACCIR Summer Doctoral Academy Authors : Héctor Antillanca Espina Gerardo Cerda Neumann Date : January 9th, 2012