Software Quality @SOLEIL Tango Meeting - May 2011 N. Leclercq on behalf of the SOLEIL Computing Team.

Slides:



Advertisements
Similar presentations
Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Advertisements

Introduction to Java Lab CS110A – Lab Section 004 Instructor: Duo Wei.
CSE 219 COMPUTER SCIENCE III PROPERTIES OF HIGH QUALITY SOFTWARE.
Continuous Integration for Databases Learn how to automate your build and test Steve Jones Red Gate Software Part II of the Continuous Delivery for Databases.
IT:Network:Microsoft Applications
OpenAlea An OpenSource platform for plant modeling C. Pradal, S. Dufour-Kowalski, F. Boudon, C. Fournier, C. Godin.
Marcelo de Paiva Guimarães Bruno Barberi Gnecco Marcelo Knorich Zuffo
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
INFSOM-RI Juelich, 10 June 2008 ETICS - Maven From competition, to collaboration.
EGEE is a project funded by the European Union under contract IST Testing processes Leanne Guy Testing activity manager JRA1 All hands meeting,
1 Alice DAQ Configuration DB
EGEE is a project funded by the European Union under contract IST Tools survey status, first experiences with the prototype Diana Bosio EGEE.
1© Nokia Siemens Networks Presentation / Author / Date For internal use T Better Code Faster - Next Generation Java Continuous Integration Environment.
23/2/2000Status of GAUDI 1 P. Mato / CERN Computing meeting, LHCb Week 23 February 2000.
Software Deployment & Release 26/03/2015 1EN-ICE.
1 September 2007 – Tango Meeting – A.Buteau ICALEPS 2005 Status report SOLEIL September 2007.
Maven. Introduction Using Maven (I) – Installing the Maven plugin for Eclipse – Creating a Maven Project – Building the Project Understanding the POM.
MAUS Status A. Dobbs CM43 29 th October Contents MAUS Overview Infrastructure Geometry and CDB Detector Updates CKOV EMR KL TOF Tracker Global Tracking.
Instrumenting CernVM-FS Code José Molina Colmenero CERN PH-SFT 1June 29th 2015.
7/8/2016 OAF Jean-Jacques Gras Stephen Jackson Blazej Kolad 1.
Windows App Studio Windows App Studio is the tool that makes it fast and easy to build Windows 10 apps. It’s accessible from any device with a browser.
Tango Meeting Grenoble September 5/ Claudio Scafuri, Elettra ELETTRA Status Claudio Scafuri
Anjana & Shankar September,2010 Introduction to Programming Tools.
Slide 1. What's New in NetBeans IDE 7.1 Name Title.
Practical Project Maintenance
1 30 th Tango collaboration meeting, June 2016 SPYC Project : CLI and scripting solution on top of Tango SPYC project : Command Line Interface and.
See Build, See Build Run Run Build Run Hudson - Continuous Integration Vincent Batts SELF 2010.
ALM Deployment Pipeline Implementation. Create a Repeatable, Reliable Process for Releasing Software. Automate Almost Everything Keep Everything in Version.
Continuous Integration for Databases Steve Jones SQLServerCentral Red Gate Software.
What is it all about? .NET MeetUp in Prague, CZ (2017/7/19)
Mobile Device Development
Appium Studio Appium testing made easy at any scale.
A to Zh Tutorial Progress
Introduction to Software Testing Part1 Summary & Terms
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Open-O Integration Project Introduction
Swagger-SDK ONAP Paris Developer Event 25 –
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
with Some Eclipse Tricks included Safa Bacanlı Fall 16
Proposal for ONAP Development Best Practices Gildas Lanilis – ONAP Release Manager June 23 , 2017.
Maven 04 March
Supporting quality devices
C/C++ Build tools & Testbed
Archiving System News Tango Meeting (Elettra, April 2008)
The next-gen. list archiver
Status report SOLEIL May 2009
Overview – SOE PatchTT November 2015.
Chapter 18 Maintaining Information Systems
Software Tools and Environments
Trends like agile development and continuous integration speak to the modern enterprise’s need to build software hyper-efficiently Jenkins:  a highly.
Automatic RElease Service
Software Development Life Cycle
Continuous Integration For Databases
Continuous Performance Engineering
X in [Integration, Delivery, Deployment]
With Some Eclipse Tricks included.
YeahMobi CD Practice based on Container -- openstack meetup
Continuous deployment best practices, methods and tools.
Helping a friend out Guidelines for better software
Tango in a Nutshell 31/12/2018.
JENKINS TIPS Ideas for making your life with Jenkins easier
Chapter 7 –Implementation Issues
Escidoc build and development environment
Addressing Test coverage in Continuous Testing
CS 240 – Advanced Programming Concepts
Open Automation Software
Java & Testing.
Continuous Integration
PyWBEM Python WBEM Client: Overview #2
Presentation transcript:

Software Quality @SOLEIL Tango Meeting - May 2011 N. Leclercq on behalf of the SOLEIL Computing Team

The facts SOLEIL project started in Feb. 2002 We went fast! Goal of Phase 1: CS for (linac) + booster + SR + 10 beamlines First beam stored in Mid. 2005 10 beamlines officially opened in 2007 26 beamlines by the end of 2012 We went fast! everything was developed under pressure... ... with moving specifications

The facts SOLEIL computing team Tango was an emerging technology 12 people for both machine & beamlines 9 developers: 50% C++ / 50% Java heterogeneous programming skills (let’s forget the subcontractors management) Tango was an emerging technology started with version 2.x (IDL v.2) ! no async calls, no events, ...

The Consequences Impact on Software Quality heterogenous implementations: 1 approach per developer! heterogeneous tools: STL, boost, ACE, ... unadapted designs no tools to manage software production (no time for that) (a lot of) bugs! >>>> too many time spent on existing software! <<<<

So... We need to enhance the overall quality of existing software and to avoid to propagate «mistakes» in new developments... Deploy quality «tools» at each stage of the software development process compilation, versioning, dependencies management, packaging, deployment, ... code analysis, crash reporting, ... Factorize knowledge, best programming practices (at team level) documents (howto, wiki, ...) & documentations (API) libraries (general programming tools, DAQ abstraction, ...)

Current Status Batch compilation, dependencies, packaging... solution based on: maven + jenkins + nexus + sonar batch compilation of our +400 projects Java & C++ (for both Windows & Linux) versioning compilation of the latest release (CVS/SVN tag) packaging

Current Status Batch compilation, dependencies, packaging... dependencies management allow to detect impact of any interface change in the underlying APIs automatic developer notification (compilation broken) statical code analysis in production for Java projects, work in progress C++ (plugins evaluation) feedback on Java: very useful information (no noise)

Current Status Batch compilation, dependencies, packaging... unit testing for the moment, only a few Java projects integrate unit testing packaging system builds ready to deploy binary package for our 2 platforms we (re)deploy everything at each shutdown!

Current Status Batch compilation, dependencies, packaging... so... what’s the added value for us... ease developer life: «mvn [clean] install» to compile any project! no more dependencies nightmares (auto downloaded) binary coherency at CS system level no «forgotten software/binary black box»

Current Status Batch compilation, dependencies, packaging... so... what’s the added value for us... ease developer life: «mvn [clean] install» to compile any project! no more dependencies nightmares (auto downloaded) binary coherency at CS system level no «forgotten software/binary black box»

Current Status Designs & Programming tools... we already generalized usage of common libraries DAQ (ASL, DSL, ...), Yat & Yat4Tango, Maths tools,... we are generalizing «proven designs» designs known to produce stable & efficient devices prohibit usage of some tools! no boost! no ACE! no «this super framework I found on the net», ... any piece of software can be potentially maintained by any team member

Current Status Crash Reporting any C++ device now embeds «breakpad» we analyze the dumps after each run and extract some statistics 20% of the devices cause 80% of the crashes we fixed approx. 20 low occurrence crashes (after 1 run with breakpad) we identified problems in Tango itself (partilly fixed in 7.2.6) we can now detect regressions we know which devices are problematic, we can «classify» them and select which ones should be uppermost fixed

Conclusion (kind of) A humble advice to new projects: «invest» in quality tools from day one!

?