the polarsys maturity model: assessing and improving

33
The Polarsys Maturity Model: Assessing and Improving Software Project Quality B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo https://polarsys.org/wiki/Maturity_Assessment_WG Polarsys Meeting Ludwigsburg (Germany), October 27st 2014 B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG) Polarsys Maturity Model 1 / 33

Upload: others

Post on 02-Feb-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The Polarsys Maturity Model: Assessing and Improving

The Polarsys Maturity Model:Assessing and Improving Software Project Quality

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo

https://polarsys.org/wiki/Maturity_Assessment_WG

Polarsys MeetingLudwigsburg (Germany), October 27st 2014

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 1 / 33

Page 2: The Polarsys Maturity Model: Assessing and Improving

c©2014Some rights reserved. This presentation is distributed under the

“Attribution-ShareAlike 3.0” license, by Creative Commons, available athttp://creativecommons.org/licenses/by-sa/3.0/

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 2 / 33

Page 3: The Polarsys Maturity Model: Assessing and Improving

Structure of the presentation

1 The Big Picture

2 The Quality Model

3 Mining Software Repositories

4 The PolarSys Dashboard

5 Next Steps

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 3 / 33

Page 4: The Polarsys Maturity Model: Assessing and Improving

The Big Picture

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 4 / 33

Page 5: The Polarsys Maturity Model: Assessing and Improving

The PolarSys ecosystem

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 5 / 33

Page 6: The Polarsys Maturity Model: Assessing and Improving

PolarSys in a nutshell

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 6 / 33

Page 7: The Polarsys Maturity Model: Assessing and Improving

Objectives...

What we want..

Assess maturity of components to ensure that the full stack is safe.Help people better understand, know and manage their project.Propose guidance for good practices and Eclipse processes.Involve people to make it a community-driven project.

What we do not want..

Judge or blame projects or people.Address individual characteristics.

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 7 / 33

Page 8: The Polarsys Maturity Model: Assessing and Improving

The Quality Model

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 8 / 33

Page 9: The Polarsys Maturity Model: Assessing and Improving

Defining Quality Requirements

There is no single definition of quality..Usual definitions of quality, existing standards and norms are notenough..OSS has an impact on the different quality concerns.We have to define our own quality requirements for Eclipse andPolarSys.

I Process: predictable outputs, well-defined structure of projects.I Ecosystem: nurture communities, good citizenship behaviour.I Product: maintainability, reliability, good practices.

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 9 / 33

Page 10: The Polarsys Maturity Model: Assessing and Improving

Composition of the Quality ModelQuality Attributes:

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 10 / 33

Page 11: The Polarsys Maturity Model: Assessing and Improving

Composition of the Quality Model

We further define:Quality attributes: define the concerns of quality.Measurement goals: generic measurement goals that can be appliedto all projects.Base metrics: raw numbers adapted to each project’s characteristics.

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 11 / 33

Page 12: The Polarsys Maturity Model: Assessing and Improving

The full quality model

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 12 / 33

Page 13: The Polarsys Maturity Model: Assessing and Improving

Mining Software Repositories

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 13 / 33

Page 14: The Polarsys Maturity Model: Assessing and Improving

Eclipse Software Repositories

The metrics used in the process are retrieved from several sources:Source Code: SonarQube, rule-checking tools.SCM, ITS, Mailing lists: Eclipse Dashboard (Grimoire).PMI JSON files from the Project Management Infrastructure project.Analysis of Forums, Web sites, or even manual surveys.

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 14 / 33

Page 15: The Polarsys Maturity Model: Assessing and Improving

Source code metrics

Source code metrics are retrieved from SonarQube, but other inputsmay be easily added.Metrics are computed as a ratio to limit the effect of size of software:

I Comment rate: number of comments per KLOC.I Complexity density: average number of paths per function.I Duplicated lines density: amount of duplicated lines per KLOC.

Some metrics are kept absolute because they are self-explicite:I Source Lines of Code: representative of the size of the software.I Depth of Inheritance Tree for OO languages.

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 15 / 33

Page 16: The Polarsys Maturity Model: Assessing and Improving

Rule-checking metrics

Rule-checking tools define good practices elaborated by theOpen-Source Community.PMD 5.2.1 and FindBugs 3.0.0 are used for now, but other tools canbe easily included in the framework: e.g. CheckStyle, FxCop, Lint,CppCheck..Examples of metrics include:

I NCC (NCC ANA, NCC CHA, etc.): number of violations (related toanalysability, changeability, etc.)

I ROKR (ROKR ANA, ROKR CHA, etc.): percentage of acquiredpractices (related to analysability, changeability, etc.)

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 16 / 33

Page 17: The Polarsys Maturity Model: Assessing and Improving

Configuration Management metrics

Software Configuration Management metrics are extracted from toolsmetadata.Supported tools are Git, Subversion, CVS, Bazaar, Mercurial.Examples of metrics include:

I Number of commits during last month.I Number of committers during last month.I Number of files committed during last month

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 17 / 33

Page 18: The Polarsys Maturity Model: Assessing and Improving

ITS metrics

Issue Tracking System metrics are extracted from tools metadata.Bugzilla, Jira, Redmine, Launchpad, GitHub and SourceForge ITS aresupported.Examples of metrics include:

I Number of bugs per thousands Lines of Code during last month.I Number of users active on the ITS during last month.I Number of updates to the ITS during last month.I Median time to fix issues during last month.

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 18 / 33

Page 19: The Polarsys Maturity Model: Assessing and Improving

MLS metrics

Mailing list metrics are extracted from the project’s archives.MBox and GMane are supported for now (forums are planned).Examples of metrics include:

I Number of mails exchanged during last month.I Number of threads exchanged during last month.I Number of active authors during last month.I Median ratio of answers on questions during last month.

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 19 / 33

Page 20: The Polarsys Maturity Model: Assessing and Improving

PMI metrics

The Project Management Infrastructure maintains a list of characteristicsfor all projects, with:

Information about repositories: SCM, ITS, MLS.Links for published content: web site, wiki, getting started, buildprocess, official documentation.Description of releases, date, scope, status of review...

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 20 / 33

Page 21: The Polarsys Maturity Model: Assessing and Improving

The PolarSys Dashboard

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 21 / 33

Page 22: The Polarsys Maturity Model: Assessing and Improving

Architecture of the platform

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 22 / 33

Page 23: The Polarsys Maturity Model: Assessing and Improving

The Dashboard: Home

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 23 / 33

Page 24: The Polarsys Maturity Model: Assessing and Improving

The Dashboard: project page for CDT

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 24 / 33

Page 25: The Polarsys Maturity Model: Assessing and Improving

The Dashboard: Quality Model for CDT

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 25 / 33

Page 26: The Polarsys Maturity Model: Assessing and Improving

The Dashboard: Measures for CDT

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 26 / 33

Page 27: The Polarsys Maturity Model: Assessing and Improving

The Dashboard: attributes for CDT

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 27 / 33

Page 28: The Polarsys Maturity Model: Assessing and Improving

The Dashboard: Practices for CDT

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 28 / 33

Page 29: The Polarsys Maturity Model: Assessing and Improving

The Dashboard: Actions for CDT

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 29 / 33

Page 30: The Polarsys Maturity Model: Assessing and Improving

Next Steps

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 30 / 33

Page 31: The Polarsys Maturity Model: Assessing and Improving

Next steps

Scales: 1-5 scales to instantly get an idea of what numbers mean.Improve presentation of results: visualisation, ergonomy.Add more content: metrics, rules, actions.Improve automation, ease the adoption setup for new-coming projects.Add more projects. What about yours?

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 31 / 33

Page 32: The Polarsys Maturity Model: Assessing and Improving

Join us!

The PolarSys wiki: polarsys.org/wikiMaturity Assessment on the wiki:polarsys.org/wiki/Maturity Assessment WGPolarSys Mailing list: dev.eclipse.org/mailman/listinfo/polarsys-iwgLook at the live dashboard prototype: castalia.camp/dl/dashboard/

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 32 / 33

Page 33: The Polarsys Maturity Model: Assessing and Improving

References

MACMIng2003 M. A. C. M. Ing, E. Georgiadou & W. Suryn (2003). Software QualityModel Requirements for Software Quality Engineering. QualityEngineering. doi:10.1.1.90.677

Kearney1986 Kearney, J. P., Sedlmeyer, R. L., Thompson, W. B., Gray, M. A., &Adler, M. A. (1986). Software complexity measurement.Communications of the ACM, 29(11), 1044–1050.

Kemerer1995 Kemerer, C. F. (1995). Software complexity and softwaremaintenance: A survey of empirical research. Annals of SoftwareEngineering, 1(1), 1–22.

B. Baldassari, G. Blondelle, J. M. Gonzalez-Barahona, D. Izquierdo (PolarSys Maturity Assessment WG)Polarsys Maturity Model 33 / 33