RMLL / Libre Software Meeting 2009 How the Open Source tools and spirit enable better projects July 09 th 2009 Erlé Le Gac Bertrand Florat
Contents FLOSS*, a strategic choice for us FLOSS* within the project life cycle Design through Model Driven Development Development : tools, methods and frameworks we use Quality insurance : How FLOSS enables global quality from coding to publishing (*) FLOSS = Free Libre Open Source Software (E) RMLL 2009
FLOSS is a strategic choice Direct benefits : economic choice Profitability, Budget focus on value-added business but we need Performance. Good compromise between efficiency and usability Indirect important benefits for an IT integrator Ease in recruiting skilled employees Software perenity Collaborative appoach ensures good support No license means no legals headeach, trial licenses, token servers complifying the architecture... (E/B) RMLL 2009
Contents FLOSS*, a strategic choice for us FLOSS* within the project life cycle Design through Model Driven Development Development : tools, methods and frameworks we use Quality insurance : How FLOSS enables global quality from coding to publishing (*) FLOSS = Free Libre Open Source Software RMLL 2009
FLOSS is used in any phase of the project Single iteration / sprint for Scrum projects (B) RMLL 2009
Contents FLOSS*, a strategic choice for us FLOSS* within the project life cycle Design through Model Driven Development Development : tools, methods and frameworks we use Quality insurance : How FLOSS enables global quality from coding to publishing (*) FLOSS = Free Libre Open Source Software RMLL 2009
Model Driven Development : from design to generation (E) RMLL 2009
The MDD concept Model Driven Development MDA : Topcased (includes an UML editor) DSM : EMF / GMF Unedic : Full open source approach Capgemini SoFa : mixed approach, open source complemented with a commercial solution (Obeo Designer) Sometimes commercial solution required When the FLOSS is less profitable Generator : Acceleo (E) RMLL 2009
@Unedic, a DSM cuts down development costs by 30% 5000 day-man Unédic project (EMF, GMF, Acceleo) Capgemini consulting support DSM built by OBEO 1 meta-model, 100 meta-entities, 3 modelers, 70 templates Cost of the tool : 200 day-man Productivity gain : 30 % (B) RMLL 2009
Contents FLOSS*, a strategic choice for us FLOSS* within the project life cycle Design through Model Driven Development Development : tools, methods and frameworks we use Quality insurance : How FLOSS enables global quality from coding to publishing (*) FLOSS = Free Libre Open Source Software RMLL 2009
Eclipse : efficient, customizable and adaptable IDE Single IDE for any targeted application server The trend is for us to use Eclipse in place of commercial offers our customers used (RSA, BEA WorkShop, ) Beyond Eclipse tool itself, we leverage : Numerous powerful FLOSS plugins Internal plugins Bundle releases (EMF, GMF, Mylyn, Birt, ) Development is made more efficient through centralized and unified tool (single place for the modeler, the generator, the IDE, the RDBMS browser etc.) (E) RMLL 2009
Eclipse is a standard that comes with a set of almost-standard FLOSS plugins (E) RMLL 2009
FLOSS frameworks are now totally ubiquitous within major companies applicative architecture Main frameworks we use by architecture tiers : Presentation / GUI Navigation process Web : JSF, GWT RIA / RDA : Swing, RCP Struts, Spring MVC JBPM Services Rules Axis Drools Persistence legacy Hibernate - Ibatis (B) RMLL 2009
We code agile with XP Main XP* practices we use the most : Test Driven Development (TDD) Even Test-first in some projects (especially for technical code) Coding standard Shared code layouts / rules Continuous Integration "Bob the builder" is the "slave" member of the team! Detect dev and integration issues early, save time and money Tools : Hudson rocks! (*) XP = extreme Programing is a set of best practices and rules used to make projects more agile. (B) RMLL 2009
Improving exchanges between technical integration and continuous integration We set up an Continuous Integration Platform (ICP) to consolidate : Coding Continuous Integration Technical Integration This ICP improves communication between actors who shares a common tool : Technical framework responsible Developers Technical integrator Project manager (E) RMLL 2009
Hudson is probably currently the best Continuous Integration tool (B) RMLL 2009
Unit tests For TU coding, we use the ubiquitous JUnit available within Eclipse...and the mock framework Mockito coming with abilities to manage behavior of dependencies of the targeted component. (E) RMLL 2009
Contents FLOSS*, a strategic choice for us FLOSS* within the project life cycle Design through Model Driven Development Development : tools, methods and frameworks we use Quality insurance : How FLOSS enables global quality from coding to publishing (*) FLOSS = Free Libre Open Source Software RMLL 2009
Quality analysis Main goals : Keep code style homogeneous and formal among developers (Checkstyle) Detect potential flaws and bugs (Findbugs) Provide metrics (JavaNCSS) Detect rules violations (PMD) Tests coverage analysis (Cobertura) All this metrics can be customized according team and customer specifications (often contractual) We use Sonar Provides a global dashboard targeting project managers.. but also offers full drill-down vision to developers (B) RMLL 2009
Sonar is the leading FLOSS solution as quality center (B) RMLL 2009
Automated functional validation Open sources solutions combination is sometimes more relevant than commercial products Watin (Watij) allows automated nonregression validation : Screen navigation Business rules View Rules Business services Cobertura allows measuring test coverage Unlike unit tests, all the Java code is instrumented test coverage is more representative (E) RMLL 2009
Performance testing We make performance testing campaigns after functional qualification and in near-production situation These tests aim to ensure early good performances Verify that performance was not degraded by contentions or bugs A loading test workshop relies on tools such as (E) RMLL 2009
FLOSS monitoring is production-proof! Efficient monitoring solution is critical for an information system. We have to : Be proactive, foresee production incidents Be fast in detecting production issues Assessing overall performance of the information system (Capacity Planning...) To implement open supervision we use : Nagios and plugins Centreon : Configuration and Restitution NagVis : Map view application RRDTool : Trend curves (E) RMLL 2009
Conclusions Most of Capgemini Ouest software factory is made of FLOSS tools FLOSS tools now covers all the software engineering scope This choice is strategic for us Open technology (standards, formats) Easier to find skilled staff Better support from community Profitability (E/B) RMLL 2009
Questions?
Contacts : Erlé LE GAC Senior Architect erle.le-gac@capgemini.com Bertrand FLORAT Senior Architect bertrand.florat@capgemini.com