How the Open Source tools and spirit enable better...
Transcript of How the Open Source tools and spirit enable better...
RMLL / Libre Software Meeting 2009
How the Open Source tools and spirit enable better projects July 09 th 2009 Erlé Le GacBertrand Florat
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
(E) RMLL 2009
Contents
(*) FLOSS = Free Libre Open Source Software
9 Juillet 2009 - Capgemini
(E/B) RMLL 2009
FLOSS is a strategic choice
Direct benefits : economic choiceProfitability, Budget focus on value-added business but we need Performance. Good compromise between efficiency and usability
Indirect important benefits for an IT integratorEase in recruiting skilled employeesSoftware perenityCollaborative appoach ensures good supportNo license means no legals headeach, trial licenses, token servers complifying the architecture...
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
9 Juillet 2009 - Capgemini
RMLL 2009
Contents
(*) FLOSS = Free Libre Open Source Software
9 Juillet 2009 - Capgemini
(B) RMLL 2009
FLOSS is used in any phase of the project
Singleiteration /sprint for Scrum projects
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
9 Juillet 2009 - Capgemini
RMLL 2009
Contents
(*) FLOSS = Free Libre Open Source Software
9 Juillet 2009 - Capgemini
(E) RMLL 2009
Model Driven Development : from design to generation
9 Juillet 2009 - Capgemini
(E) RMLL 2009
The MDD concept
Model Driven DevelopmentMDA : Topcased (includes an UML editor) DSM : EMF / GMF
Unedic : Full open source approachCapgemini SoFa : mixed approach, open source complemented with a commercial solution (Obeo Designer)
Sometimes commercial solution requiredWhen the FLOSS is less profitable
Generator : Acceleo
5000 day-man Unédic project (EMF, GMF , Acceleo)Capgemini consulting supportDSM built by OBEO
1 meta-model, 100 meta-entities, 3 modelers, 70 templatesCost of the tool : 200 day-manProductivity gain : 30 %
@Unedic, a DSM cuts down development costs by 30%
(B) RMLL 2009
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
9 Juillet 2009 - Capgemini
RMLL 2009
Contents
(*) FLOSS = Free Libre Open Source Software
9 Juillet 2009 - Capgemini
(E) 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 pluginsInternal pluginsBundle 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.)
9 Juillet 2009 - Capgemini
(E) RMLL 2009
Eclipse is a standard that comes with a set of almost-standard FLOSS plugins
9 Juillet 2009 - Capgemini
(B) RMLL 2009
FLOSS frameworks are now totally ubiquitous within major companies applicative architecture
Navigationprocess
Presentation / GUI
Persistencelegacy
ServicesRules
Struts, Spring MVCJBPM
Web : JSF, GWTRIA / RDA : Swing, RCP
AxisDrools
Hibernate - Ibatis
Main frameworks we use by architecture tiers :
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 / rulesContinuous Integration
"Bob the builder" is the "slave" member of the team ! Detect dev and integration issues early, save time and money Tools : Hudson rocks !
9 Juillet 2009 - Capgemini
(B) RMLL 2009
We code agile with XP
(*) XP = eXtreme Programing is a set of best practices and rules used to make projects more agile.
9 Juillet 2009 - Capgemini
(E) RMLL 2009
Improving exchanges between technical integration and continuous integration
This ICP improves communication between actors who shares a common tool :
Technical framework responsibleDevelopersTechnical integratorProject manager
We set up an Continuous Integration Platform (ICP) to consolidate :
CodingContinuous IntegrationTechnical Integration
Hudson is probably currently the best Continuous Integration tool
9 Juillet 2009 - Capgemini
(B) RMLL 2009
9 Juillet 2009 - Capgemini
(E) 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.
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
9 Juillet 2009 - Capgemini
RMLL 2009
Contents
(*) FLOSS = Free Libre Open Source Software
9 Juillet 2009 - Capgemini
(B) 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
Sonar is the leading FLOSS solution as quality center
9 Juillet 2009 - Capgemini
(B) RMLL 2009
9 Juillet 2009 - Capgemini
(E) RMLL 2009
Automated functional validation Open sources solutions combination is sometimes more relevant than commercial products
Watin (Watij) allows automated non-regression validation :
Screen navigationBusiness rulesView RulesBusiness services
Cobertura allows measuring test coverage
Unlike unit tests, all the Java code is instrumentedtest 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
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 RestitutionNagVis : Map view applicationRRDTool : Trend curves
9 Juillet 2009 - Capgemini
(E) RMLL 2009
FLOSS monitoring is production-proof !
9 Juillet 2009 - Capgemini
(E/B) 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 staffBetter support from communityProfitability
Questions ?
Contacts : Erlé LE GAC Senior Architect [email protected]
Bertrand FLORATSenior Architect [email protected]