Download presentation
Presentation is loading. Please wait.
Published byAlicia Gordon Modified over 6 years ago
1
Software Quality @SOLEIL
Tango Meeting - May 2011 N. Leclercq on behalf of the SOLEIL Computing Team
2
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
3
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, ...
4
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! <<<<
5
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, ...)
6
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
7
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)
8
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!
9
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»
10
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»
11
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
12
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
13
Conclusion (kind of) A humble advice to new projects: «invest» in quality tools from day one!
14
?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.