Presentation is loading. Please wait.

Presentation is loading. Please wait.

Status and first objectives 14/06/2012Jean-Christophe Garnier1.

Similar presentations


Presentation on theme: "Status and first objectives 14/06/2012Jean-Christophe Garnier1."— Presentation transcript:

1 Status and first objectives 14/06/2012Jean-Christophe Garnier1

2  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 14/06/2012Jean-Christophe Garnier2

3  Purposes  Basis for Software Quality  Sharing  Future steps 14/06/2012Jean-Christophe Garnier3

4  Improve software quality  Reach a common agreement for SW practices  Coding conventions  Testing recommendations  Consistent infrastructure + tools  Documentation ▪ For users ▪ For developers 14/06/2012Jean-Christophe Garnier4

5  Coordinate resource allocation on projects  Working primarily with students  Improve collaboration with other groups  FESA3  DIAMON2  Software Upgrade Working Group 14/06/2012Jean-Christophe Garnier5

6 14/06/2012Jean-Christophe Garnier6 External Quality Correctness Efficiency Maintenance Cost Invisible Root Program Structure Complexity Coding Practices Testability Reusability Maintainability Readability

7  Define Coding Conventions  Define Testing Rules  Unit Testing  Static Code Analysis  Test / Pre-prod environment  Implement Continuous Integration  Quality control performed frequently 14/06/2012Jean-Christophe Garnier7

8  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 14/06/2012Jean-Christophe Garnier8

9  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 14/06/2012Jean-Christophe Garnier9

10  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 14/06/2012Jean-Christophe Garnier10

11 14/06/2012Jean-Christophe Garnier11  Coverity  FindBugs

12  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 14/06/2012Jean-Christophe Garnier12

13  Automatic build  Automatic test execution  Audit of code quality  Using Bamboo from CO for Java projects 14/06/2012Jean-Christophe Garnier13

14  CheckStyle  Static Code Analysis with PMD  Code Coverage

15  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++ 14/06/2012Jean-Christophe Garnier15

16  R&D  Software Upgrade Working Group 14/06/2012Jean-Christophe Garnier16

17  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. 14/06/2012Jean-Christophe Garnier17

18  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 14/06/2012Jean-Christophe Garnier18

19  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 14/06/2012Jean-Christophe Garnier19

20  Technologies  Spring Framework  Project Management  Agile Programming with Scrum  eXtreme Programming (XP) 14/06/2012Jean-Christophe Garnier20

21  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 14/06/2012Jean-Christophe Garnier21

22  Spring for future projects  Simplify application configurations  Simplify maintenance  Testability ▪ Injecting mocked objects  Not intrusive  Already used in  PcInterlock  AccTesting  SMP pre-op 14/06/2012Jean-Christophe Garnier22

23 14/06/2012Jean-Christophe Garnier23  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

24 14/06/2012Jean-Christophe Garnier24  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

25 14/06/2012Jean-Christophe Garnier25  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.

26 14/06/2012Jean-Christophe Garnier26 Customer satisfaction Developer satisfaction

27 14/06/2012Jean-Christophe Garnier27  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

28 14/06/2012Jean-Christophe Garnier28  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/


Download ppt "Status and first objectives 14/06/2012Jean-Christophe Garnier1."

Similar presentations


Ads by Google