1 / 28

MPE SW coordination

Status and first objectives. MPE SW coordination. Introduction. 7 software developers ~40 distinct software applications BIS, QPS, SMP, Post Mortem, AccTesting , PcInterlock , etc. 3 main technologies: Java, C/C++, LabVIEW What about VHDL? Collaborations with EN/ICE, BE/CO, BE/OP.

Download Presentation

MPE SW coordination

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Status and first objectives MPE SW coordination Jean-Christophe Garnier

  2. Introduction • 7 software developers • ~40 distinct software applications • BIS, QPS, SMP, Post Mortem, AccTesting, PcInterlock, etc. • 3 main technologies: Java, C/C++, LabVIEW • What about VHDL? • Collaborations with EN/ICE, BE/CO, BE/OP Jean-Christophe Garnier

  3. Outline • Purposes • Basis for Software Quality • Sharing • Future steps Jean-Christophe Garnier

  4. Purposes • Improve software quality • Reach a common agreement for SW practices • Coding conventions • Testing recommendations • Consistent infrastructure + tools • Documentation • For users • For developers Jean-Christophe Garnier

  5. Purposes • Coordinate resource allocation on projects • Working primarily with students • Improve collaboration with other groups • FESA3 • DIAMON2 • Software Upgrade Working Group Jean-Christophe Garnier

  6. Basis for Software Quality Correctness Efficiency External Quality Maintenance Cost Invisible Root Program Structure Complexity Coding Practices Reusability Testability Readability Maintainability Jean-Christophe Garnier

  7. Basis for Software Quality • Define Coding Conventions • Define Testing Rules • Unit Testing • Static Code Analysis • Test / Pre-prod environment • Implement Continuous Integration • Quality control performed frequently Jean-Christophe Garnier

  8. Coding Conventions • Improve readability for long-term maintenance • Indentation • Name length • Acronyms • Syntax highlighting • Discussion still on-going • Following or extending CO rules • Helping and auditing using code checking tools Jean-Christophe Garnier

  9. Unit Testing • Purpose • Correctness of individual modules • No contact with outside -> Mocking • Test Driven Development? • Solutions • Toolset already established by CO for Java • C++ definition on-going -> Google Testing Jean-Christophe Garnier

  10. Static Code Analysis • Purpose • No program execution needed • Check for possible coding errors • Formal methods to check if program behaviour matches specifications • Solutions • PH-SFT using Coverity • Line of Code license or Team License • BE-CO • CheckStyle • FindBugs • PMD Jean-Christophe Garnier

  11. Static Code Analysis • Coverity • FindBugs Jean-Christophe Garnier

  12. Pre-prod environment • Tests in an exact copy of the production environment • Decoupled from operation • Needed for the Post-Mortem data collection • 3 alternatives • EN-ICE test-bed • BE-CO test-bed • Virtual test-bed Jean-Christophe Garnier

  13. Continuous Integration • Automatic build • Automatic test execution • Audit of code quality • Using Bamboo from CO for Java projects Jean-Christophe Garnier

  14. Continuous Integration • CheckStyle • Static Code Analysis with PMD • Code Coverage

  15. Continuous Integration • Projects in Continuous Integration • AccTesting • PcInterlock • SMP software • To be done • BIS and QPS software • Post Mortem data collection • See with BE-CO and EN-ICE to compare different solutions • Limits • Report’s configurations is not consistent yet • Better having the same tool for Java and C++ Jean-Christophe Garnier

  16. Sharing • R&D • Software Upgrade Working Group Jean-Christophe Garnier

  17. R&D • Identify and extract redundant features • Projects were developed independently by different developers • Some features could prove to be useful for other projects • SMP Logger to be extended for BIS • History Buffer interpretation and display • Client / Server architecture • Etc. Jean-Christophe Garnier

  18. R&D • Software Quality Tools • Inventory and test of existing tools • Particularly for C++ • Analysis of software development practices and tools • Consistent configurations • Spread across technologies and groups • Change-tracking framework • Better diagnostic on software failure Jean-Christophe Garnier

  19. Software Upgrade Working Group • Aims • Quality of upgrade interventions • Software quality • Standardization of development practices • Involved groups • BE-CO, BE-OP, BE-BI, BE-RF, EN-STI, EN-CV, EN-ICE, GS-ASE, TE-ABT, TE-PO, TE-MPE • Numerous possible contributions Jean-Christophe Garnier

  20. Future Steps • Technologies • Spring Framework • Project Management • Agile Programming with Scrum • eXtreme Programming (XP) Jean-Christophe Garnier

  21. Spring Framework • Open Source • Programming and configuration model • Inversion of Control • Configure the objects at run-time from outside • Create the dependencies and the dependant object • Inject dependencies into dependant object • Enhance testability • Aspect-oriented programming • Improvement for crosscutting concerns • Enhance maintainability • Many other nice features Jean-Christophe Garnier

  22. Spring Framework • Spring for future projects • Simplify application configurations • Simplify maintenance • Testability • Injecting mocked objects • Not intrusive • Already used in • PcInterlock • AccTesting • SMP pre-op Jean-Christophe Garnier

  23. Scrum • Main characteristics • Self-Organizing teams • Requirements are captured as items in a list of “product backlog” • Product progresses in series of 2-4 week “sprints” = iteration • Monitoring progress per day and per sprint Extracted from slides from Mike Cohn – mike@moutaingoatsoftware.com Jean-Christophe Garnier

  24. Scrum • Roles • Product Owner • Define and prioritize features of the product • Define deadline • Available to provide information/feedback frequently • Scrum Master • Management of the project • Interface with outer world • Team • 5-9 full time people • Self organized Jean-Christophe Garnier

  25. Scrum • Statistics on 230 people in 150 companies, computed by Scrum User Group France in 2009 Adopted Agile Methods Used Scrum practices Scrum users: Google, Microsoft, Yahoo, Siemens, Nokia, CERN (EDH developer team), etc. Jean-Christophe Garnier

  26. Scrum Developer satisfaction Customer satisfaction Jean-Christophe Garnier

  27. Adding XP to Scrum • Specific engineering practices • Automated Testing • On-going • Test Driven Development • Long term idea • Pair Programming • Writer focuses on current task • Observer considers the overall direction • Frequent switching of roles • Refactoring • Collective Code Ownership Jean-Christophe Garnier

  28. Conclusion • Software Quality • Long term objective, needs assimilation • Identifying standard tools in collaboration with other groups • Project Management • Start using Scrum and XP • Agree on which practices, if not all • Review feedback • Internal and External points of view • http://wikis/display/MPESC/ Jean-Christophe Garnier

More Related