Ideas for a Cooperative Software Development for Future GGOS Stations



Similar documents
Lecture 4: Software design

New concepts in control systems for SLR with remotely accessible, autonomous process cells

e-control: new concepts for remote control of VLBI-telescopes and first experiences at Wettzell

Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha

Software Requirements Metrics

OpenIMS 4.2. Document Management Server. User manual

Software Metrics. Lord Kelvin, a physicist. George Miller, a psychologist

An Introduction to. Metrics. used during. Software Development

Component visualization methods for large legacy software in C/C++

Software Visualization and Model Generation

IFS-8000 V2.0 INFORMATION FUSION SYSTEM

Realize your full potential with the new version of SIMATIC PCS 7

When a Process Diagram is not Enough

Research Data Management CODING

PE Explorer. Heaventools. Malware Code Analysis Made Easy

Analytic Modeling in Python

Introduction to Automated Testing

University E-Learning System

MONITORING OF NETWORKED MACHINES AND DEVICES IN MANUFACTURING NETWORKS

Web-to-Case Overview. Best Practices. Tom Muskatevc Success Account Manager

Outlook Training. By Martha Williamson, CIC AVP Automation and Workflow Trainer (217) Cell

WoPeD - An Educational Tool for Workflow Nets

Adding diagrams to Scaladoc

Assuming the Role of Systems Analyst & Analysis Alternatives

To create User who have already been registered with OCR and have received Registration Number can follow the following steps.

Smart Use Inventory Management solution at the Royal Shrewsbury Hospital Pathology Service Delivery Unit

Nokia E90 Communicator Using WLAN

Utilizing Domain-Specific Modelling for Software Testing

Information. Security Series. Evaluate Your. Information. Security Program. Survey to find out if you are making progress

Use of automated workflow systems in virtual teams

Software Design. Design (I) Software Design Data Design. Relationships between the Analysis Model and the Design Model

BUSINESS PROCESS DOCUMENTATION

PROFIBUS/PROFINET System design

Visualizing e-government Portal and Its Performance in WEBVS

Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction

D5.1: System Deployment

Choosing a Content Management System (CMS)

Agenda. Copyright Acuity Business Solutions, LLC All Rights Reserved

THE BRITISH LIBRARY. Unlocking The Value. The British Library s Collection Metadata Strategy Page 1 of 8

E-control: First Public Release of Remote Control Software for VLBI Telescopes

Identity & Access Management: Strategic Roadmap. April 2013

Microsoft SharePoint: A Powerful Solution for Environmental Health and Safety Programs

Basic Unix/Linux 1. Software Testing Interview Prep

A Software Engineering Approach For GIS Developing

SAS Customer Intelligence 360: Creating a Consistent Customer Experience in an Omni-channel Environment

ETPL Extract, Transform, Predict and Load

TABLE OF CONTENTS. race result 11 Introduction

Internships and graduation jobs Development

Analysis Programming

How to Build a Successful Website

Rotorcraft Health Management System (RHMS)

Terms and Definitions for CMS Administrators, Architects, and Developers

White Paper. Making the case for PPM

The Role of Reactive Typography in the Design of Flexible Hypertext Documents

Enterprise Architecture Process, Structure and Organization

When we first loaded the Launching Page the pictures on each of the four widgets were missing.

Unit 351: Website Software Level 3

Paperless Office Solution Framework for Banking & Financial Services A Business Process Automation (BPA) Approach

ANATOMY OF A WEBSITE PROJECT Jasper Ditton, Head of Digital

Enterprise Content Management (ECM) Strategy

Total Quality Management (TQM) Quality, Success and Failure. Total Quality Management (TQM) vs. Process Reengineering (BPR)

Software Requirements Specification

Good Software. Lecture 6 GSL Peru 2014

Fourth generation techniques (4GT)

A study on Security Level Management Model Description

Universal Tracking Application Reference and Training Guide

TIRED OF TYPING? ACCELERATE YOUR BUSINESS WITH: AUTOMATED DATA ENTRY PURCHASE APPROVAL WORKFLOW DIGITAL DOCUMENT ARCHIVE DOCUMENT CAPTURE

Announcement. Interreg Project Management Camp. 28 June 1July 2016 Gothenburg, Sweden. Dear Colleague,

RichPromo User Guide PAGE 1

Static Analysis Best Practices

Computer Integrated Manufacturing CIM A T I L I M U N I V E R S I T Y

Christof Ebert Reiner Dumke. Software Measurement. Establish - Extract - Evaluate - Execute. With 157 Figures and 50 Tables.

Enterprise Resource Planning Analysis of Business Intelligence & Emergence of Mining Objects

COMPARING MATRIX-BASED AND GRAPH-BASED REPRESENTATIONS FOR PRODUCT DESIGN

MATLAB as a Collaboration Platform Marta Wilczkowiak Senior Applications Engineer MathWorks

InstaFile. Complete Document management System

White Paper. Lessons Learned from User Acceptance Testing. M. Glenn Newkirk Helen A. Sims. June 15, 2002

Abstract. 1. Introduction. 2. Hypothesis of This Study

Developers Guide. Designs and Layouts HOW TO IMPLEMENT WEBSITE DESIGNS IN DYNAMICWEB. Version: English

Managing Variability in Software Architectures 1 Felix Bachmann*

Spotify Homepage Takeover

Non-Volatile Memory Programming on the Agilent 3070

Guidelines for School Websites

Digital Commons Journal Guide: How to Manage, Peer Review, and Publish Submissions to Your Journal

Deep analysis of a modern web site

Interface Definition Language

Converting and Exporting Data in XML Format

Mobilize workforce using Fiori apps: Graybar Story

Quality Management & Process Improvement. Quality Management. Software quality management. What is quality?

ENHANCING INTELLIGENCE SUCCESS: DATA CHARACTERIZATION Francine Forney, Senior Management Consultant, Fuel Consulting, LLC May 2013

ORACLE PROJECT PLANNING AND CONTROL

Copyrighted , Address :- EH1-Infotech, SCF 69, Top Floor, Phase 3B-2, Sector 60, Mohali (Chandigarh),

PROJECT MANAGEMENT PLAN CHECKLIST

A review of ADP processing software

Huawei Managed Services Unified Platform (MS UP) v1.0

Working With Templates in Web Publisher. Contributed by Paul O Mahony Developer Program

Section 1 Spreadsheet Design

Flumes Short User Guide to Subversion

Setting up the EUCIP network in Poland. Grzegorz Szyjewski

BCSD WebMail Documentation

Transcription:

Ideas for a Cooperative Software Development for Future GGOS Stations, IVS 2012 General Meeting Proceedings, p.207 211 http://ivscc.gsfc.nasa.gov/publications/gm2012/neidhardt2.pdf Ideas for a Cooperative Software Development for Future GGOS Stations Alexander Neidhardt, Martin Ettl Forschungseinrichtung Satellitengeodäsie (TUM), Geodetic Observatory Wettzell Contact author: Alexander Neidhardt, e-mail: neidhardt@fs.wettzell.de Abstract The development of software is a creative process, which offers a huge degree of freedom. In scientific fields a lot of researchers develop their own software for specific needs. Everyone has their own preferences and backgrounds regarding the used programming languages, styles, and platforms. This complexity results in software which is not always directly usable by others in the communities. In addition, the software is often error-prone as hidden bugs are not always revealed. Therefore ideas came up to solve these problems at the Geodetic Observatory Wettzell. The results were coding layouts and policies, documentation strategies, the usage of version control, and a consistent process of continuous integration. Within this, the discussed quality factors can define quality metrics which help to quantize code quality. The resulting software is a repository of tested modules that can be used in different programs for the geodetic space techniques. This is one possible contribution to future GGOS stations. 1. Introduction Source code is just an individual representation of an algorithm prepared for a processing platform. Such representations can have very individual forms and are expressions of the programmer. But software quality is also dependent on a clear structure, readability, and used mechanisms as errors can be hidden behind unstructured and unreadable code text, thus making it very difficult to maintain. Figure 1 shows how dense but unreadable code can be written. The program really solves the task to position N queens on an NxN chess board so that one code is not in the way of another. Figure 1. A code snippet from The International Obfuscated C Code Contest demonstrates how dense but unreadable codes can become [7]. Another problem is the testing behavior of developers with their source code especially in the scientific field. While the industry has dedicated certifications, scientific programs are almost untested, even if the developers perform tests. Dependencies on compilers and platforms or sketchy IVS 2012 General Meeting Proceedings 207

function checks reduce the re-usability and even the functionality of a program. Based on this the authors of this article made a private initiative and used ideas, discussed in another article of these proceedings [5], to realize a continuous integration environment, which is also accessible for other scientists. This service is offered on a private Web site of the authors and is currently for free. 2. Continuous Integration as e-service for the Community Continuous integration means that the newest versions of source code are downloaded from a version control system and are used for automated, daily inspections. Static code checks, nightly builds for different platforms and multiple compilers, code beautifier runs, documentation generators or even unit tests can be started automatically on the latest software version to check the included source code. The results of these inspections are converted to HTML pages. These are published on the e-service homepages [3] in password restricted areas, to which only the developers of the project can get access. Therefore, each developer can use this information to detect and fix possible problems in the code. Figure 2 gives an example of the service. Figure 2. Continuous integration mechanisms as e-service for the science community. Full effectiveness of the service is only given when the following items are under consideration: Reduction to a few software languages (to reduce needed checker tools and complexity). A style guide with coding layout and coding policies (to offer a unique style and become comparable between projects in terms of code metrics). A general way to use legacy codes (to include older codes, e.g., written in Fortran). Documentation generation (to get the developers documentation automatically, which can be very detailed if special identifiers and structures are used within the code). 208 IVS 2012 General Meeting Proceedings

Automated code tests and inspections (to find errors which are not found by the compilers and to classify software quality in the sense of a quantitative metric). Version control (to support the continuous integration workflow with a version management). Offering of tested, open source toolboxes (to have reusable, well tested modules). 3. The e-service Chain of Tools The offered environment combines several Open Source tools and concentrates on C/C++ codes (some tools can also deal with other languages, e.g., the document generator). While the tools themselves are just a loose collection, the e-service combines them into a powerful unit, offering quick-look overviews (e.g., in the form of smiley matrices, see Figure 3), well-formatted HTML outputs and statistics graphs, or to see the historical development of errors. The goal is to offer a low-level, general metric. Metrics try to classify software with quantitative parameters, which can be measured. Such parameters are not always clearly interpreted. But lines of code, found errors, found platform dependencies, number of updates, number of new lines, etc., can give a feeling about the current status of the code. The tools in the e-service environment help to acquire such parameters. The currently offered tools are: Static program analysis (cppcheck [2]). Spell check of program and text files (codespell [1]). Extracting of development information (StatSVN [10]). Find non-reentrant functions in code (nsiqcppstyle [8]). Find security problems (Flawfinder [6]). Detect common printf/scanf format errors (pscan [9]). Generate developer documentation based on Doxygen [4]). Detect redundant files in the repository (own development). Figure 3. The quick-look overview about the project status in the form of a smiley matrix. The inspections and checks can be run daily or weekly. The environment is also flexible enough to deal with TAR-archives if no version control repository is available. But then the workflow of continuous integration is not as effective as it might be as the response times in the development process increases. IVS 2012 General Meeting Proceedings 209

4. Impressions from the e-service The environment can be used to portray a certain emotion about the software status. The quick-look overview with the smiley matrix gives a first impression about the project status (see Figure 3). The statistics can be used to classify the software quality. Lines of code or found errors over time give an overview about the historic progress in a project (see Figure 4). The statistics can also be used to show the regular work in a project, for funding institutions, and for splitting the contribution to the different developers (see Figure 5). Figure 4. Statistics help to obtain an impression of the historic progress in a project over time. 5. Summary and Outlook This continuous integration workflow reduces the amount of severe issues during the whole development phase. The e-service environment is a private initiative of the authors to help in improving the software in scientific developments and is open to others. The service is currently for free but the capacities are limited. Therefore, registrations can only be made by contacting the authors by email so that load balances and maximum transfer capacities are not overrun and to reduce costs for the authors. Currently the DiFX community uses this service on the e-control Software Web page [3]. Also the NASA Field System is intermittently checked. 210 IVS 2012 General Meeting Proceedings

Figure 5. The contribution can be clearly allocated to developers to demonstrate the regular progress and the individual participation in funded projects. Acknowledgements The authors would like to thank the DiFX developer group for using the continuous integration Web environment. References [1] codespell. Official codespell repository. http://git.profusion.mobi/cgit.cgi/lucas/codespell. [2] cppcheck. Static analysis of C/C++ code. http://sourceforge.net/projects/cppcheck. [3] e-control Sofwtware. http://econtrol-software.de/. [4] Doxygen. Doxygen Manual. Generate documentation from source code. http://www.stack.nl/dimitri/doxygen/index.html. [5] Ettl, Martin; Neidhardt, Alexander; Brisken, Walter; Dassing, Reiner: Continuous software integration and quality control during software development. IVS 2012 General Meeting Proceedings. 2012. [6] Flawfinder. http://www.dwheeler.com/flawfinder/. [7] Osovlanski, Doron; Nissenbaum, Baruch: baruch.c.baruch.hint. In: Noll, Landon Curt; Cooper, Simon; Seebach, Peter; Broukhis, Leonid A.: The International Obfuscated C Code Contest. Winning entries. 1990. 7th International Obfuscated C Code Contest. 2003, http://www.de.ioccc.org/years.html#1990, Download 2011-08-04. [8] nsiqcppstyle. C/C++ Coding Style Checker. http://code.google.com/p/nsiqcppstyle/. [9] PScan: A limited problem scanner for C source files. http://deployingradius.com/pscan/. [10] StatSVN. Repository Statistics. http://statsvn.org/. IVS 2012 General Meeting Proceedings 211