status and first objectives n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
MPE SW coordination PowerPoint Presentation
Download Presentation
MPE SW coordination

Loading in 2 Seconds...

play fullscreen
1 / 28

MPE SW coordination - PowerPoint PPT Presentation


  • 59 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'MPE SW coordination' - stuart-greene


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
introduction
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

outline
Outline
  • Purposes
  • Basis for Software Quality
  • Sharing
  • Future steps

Jean-Christophe Garnier

purposes
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

purposes1
Purposes
  • Coordinate resource allocation on projects
    • Working primarily with students
  • Improve collaboration with other groups
    • FESA3
    • DIAMON2
    • Software Upgrade Working Group

Jean-Christophe Garnier

basis for software quality
Basis for Software Quality

Correctness

Efficiency

External Quality

Maintenance Cost

Invisible Root

Program Structure

Complexity

Coding Practices

Reusability

Testability

Readability

Maintainability

Jean-Christophe Garnier

basis for software quality1
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

coding conventions
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

unit testing
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

static code analysis
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

static code analysis1
Static Code Analysis
  • Coverity
  • FindBugs

Jean-Christophe Garnier

pre prod environment
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

continuous integration
Continuous Integration
  • Automatic build
  • Automatic test execution
  • Audit of code quality
  • Using Bamboo from CO for Java projects

Jean-Christophe Garnier

continuous integration1
Continuous Integration
  • CheckStyle
  • Static Code Analysis with PMD
  • Code Coverage
continuous integration2
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

sharing
Sharing
  • R&D
  • Software Upgrade Working Group

Jean-Christophe Garnier

slide17
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

slide18
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

software upgrade working group
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

future steps
Future Steps
  • Technologies
    • Spring Framework
  • Project Management
    • Agile Programming with Scrum
    • eXtreme Programming (XP)

Jean-Christophe Garnier

spring framework
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

spring framework1
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

scrum
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

scrum1
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

scrum2
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

scrum3
Scrum

Developer satisfaction

Customer satisfaction

Jean-Christophe Garnier

adding xp to scrum
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

conclusion
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