status and first objectives 14/06/2012jean-christophe garnier1

28
MPE SW coordination Status and first objectives 14/06/2012 Jean-Christophe Garnier 1

Upload: roderick-mcdonald

Post on 04-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

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

Jean-Christophe Garnier 1

MPE SW coordinationStatus and first objectives

14/06/2012

Page 2: Status and first objectives 14/06/2012Jean-Christophe Garnier1

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

14/06/2012

Page 3: Status and first objectives 14/06/2012Jean-Christophe Garnier1

Jean-Christophe Garnier 3

Outline

Purposes Basis for Software Quality Sharing Future steps

14/06/2012

Page 4: Status and first objectives 14/06/2012Jean-Christophe Garnier1

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

14/06/2012

Page 5: Status and first objectives 14/06/2012Jean-Christophe Garnier1

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

14/06/2012

Page 6: Status and first objectives 14/06/2012Jean-Christophe Garnier1

Jean-Christophe Garnier 6

Basis for Software Quality

14/06/2012

External Quality

Correctness

Efficiency

Maintenance Cost

Invisible Root

Program Structure

Complexity

Coding Practices

Testability

Reusability

Maintainability

Readability

Page 7: Status and first objectives 14/06/2012Jean-Christophe Garnier1

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

14/06/2012

Page 8: Status and first objectives 14/06/2012Jean-Christophe Garnier1

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 tools14/06/2012

Page 9: Status and first objectives 14/06/2012Jean-Christophe Garnier1

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

14/06/2012

Page 10: Status and first objectives 14/06/2012Jean-Christophe Garnier1

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

14/06/2012

Page 11: Status and first objectives 14/06/2012Jean-Christophe Garnier1

Jean-Christophe Garnier 11

Static Code Analysis

14/06/2012

Coverity

FindBugs

Page 12: Status and first objectives 14/06/2012Jean-Christophe Garnier1

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

14/06/2012

Page 13: Status and first objectives 14/06/2012Jean-Christophe Garnier1

Jean-Christophe Garnier 13

Continuous Integration

Automatic build Automatic test execution Audit of code quality Using Bamboo from CO for Java

projects

14/06/2012

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

Continuous Integration CheckStyle

Static Code Analysis with PMD

Code Coverage

Page 15: Status and first objectives 14/06/2012Jean-Christophe Garnier1

Jean-Christophe Garnier 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++

14/06/2012

Page 16: Status and first objectives 14/06/2012Jean-Christophe Garnier1

Jean-Christophe Garnier 16

Sharing

R&D Software Upgrade Working Group

14/06/2012

Page 17: Status and first objectives 14/06/2012Jean-Christophe Garnier1

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.

14/06/2012

Page 18: Status and first objectives 14/06/2012Jean-Christophe Garnier1

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

14/06/2012

Page 19: Status and first objectives 14/06/2012Jean-Christophe Garnier1

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

14/06/2012

Page 20: Status and first objectives 14/06/2012Jean-Christophe Garnier1

Jean-Christophe Garnier 20

Future Steps

Technologies Spring Framework

Project Management Agile Programming with Scrum eXtreme Programming (XP)

14/06/2012

Page 21: Status and first objectives 14/06/2012Jean-Christophe Garnier1

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

14/06/2012

Page 22: Status and first objectives 14/06/2012Jean-Christophe Garnier1

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

14/06/2012

Page 23: Status and first objectives 14/06/2012Jean-Christophe Garnier1

Jean-Christophe Garnier 23

Scrum

14/06/2012

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 – [email protected]

Page 24: Status and first objectives 14/06/2012Jean-Christophe Garnier1

Jean-Christophe Garnier 24

Scrum

14/06/2012

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

Page 25: Status and first objectives 14/06/2012Jean-Christophe Garnier1

Jean-Christophe Garnier 25

Scrum

14/06/2012

Statistics on 230 people in 150 companies, computed by Scrum User Group France in 2009

Adopted Agile MethodsUsed Scrum practices

Scrum users: Google, Microsoft, Yahoo, Siemens, Nokia, CERN (EDH developer team), etc.

Page 26: Status and first objectives 14/06/2012Jean-Christophe Garnier1

Jean-Christophe Garnier 26

Scrum

14/06/2012

Customer satisfactionDeveloper satisfaction

Page 27: Status and first objectives 14/06/2012Jean-Christophe Garnier1

Jean-Christophe Garnier 27

Adding XP to Scrum

14/06/2012

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

Page 28: Status and first objectives 14/06/2012Jean-Christophe Garnier1

Jean-Christophe Garnier 28

Conclusion

14/06/2012

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/