Etude des caractères essentiels de la qualimétrie appliqués au logiciel embarqué - développement et structure organisationnelle- incluant un aspect d'entropie logicielle.

par Yann Argotti

Projet de thèse en Informatique et Systèmes Embarqués

Sous la direction de Claude Baron et de Philippe Esteban.

Thèses en préparation à Toulouse, INSA , dans le cadre de École doctorale Systèmes , en partenariat avec LAAS - Laboratoire d'Analyse et d'Architecture des Systèmes (laboratoire) et de ISI - Ingéniérie Système et Intégration (equipe de recherche) depuis le 01-03-2018 .


  • Résumé

    Aujourd'hui la qualité est un aspect non seulement incontournable mais aussi un des fils directeurs des projets, et cela, appliqué dès le démarrage de ceux-ci. Les retards et les évolutions de charge de développement, les optimisations et corrections techniques liées aux phases d'intégration et de qualification, ainsi que les phases de recette auprès des clients puis de support sont des enjeux essentiels du coût d'un projet: à elles seules, ces activités représentent environ 65% du coût total et la non-qualité coûte 5% du chiffre d'affaire (source AFQP 2017). En outre, comme en thermodynamique, l'entropie logicielle, ou complexité, augmente tout au long du cycle de vie du logicielle, et il est alors capital de mesurer ces « désordres » afin d'éviter de perdre le contrôle du projet, et du budget, au cours du temps. La qualimétrie est une discipline scientifique décisive en termes d'apport d'un ensemble de bonnes pratiques d'amélioration de l'efficacité, de productivité et de contrôle non seulement pour les développeurs mais également pour l'organisation tout entière. Il est donc capital de maitriser cette approche à travers des modèles standardisés tel que l'ISO/IEC 9126-1:2001 « Software engineering — Product quality — Part1 : Quality Model », des métriques et un processus de développement logiciel maitrisé. En effet, cette approche qualitative, ou contrôle, de la qualité est obtenue à travers de modèles qualité qui suivent soit une adhérence à des processus ou niveaux de capacité (par exemple, le standard CMM -Capability Maturity Model- ou encore ISO/IEC 15504), soit à l'évaluation à travers un ensemble de caractéristiques, ou attributs, et leurs métriques associées (par exemple, le modèle de McCall ou l'ISO/IEC 25010 (ie SQuaRE)). De plus, depuis 1977 avec le modèle de McCall, de nombreux modèles qualité ont été régulièrement définis ou dérivés d'autres, incluant parfois des efforts de normalisation. Nous pouvons rapidement énumérer le modèle de Boehm en 1978, l'ISO/IEC 9126 en 1986, les modèles FURPS en 1987 et FURPS+ en 2000, le modèle d'Evans & Marciniak en 1987, celui de Deutsch & Willis en 1988, le Capability Maturity Model (ie CMM) et le modèle de Ghezzi en 1991, de Dromey en 1992 puis une évolution en 1995, le modèle IEEE en 1993, de SEI en 1995, de SATC en 1996, de Bansiya pour le design orienté objet en 2002, de Kazman en 2003, le modèle qualité orienté aspect logiciel en 2006, celui pour le développement logiciel orienté composant en 2008, de DEQUALITE en 2009, le modèle conceptuel UML en 2010, de Sehra S. K. et l'ISO/IEC 25010 (ie SQuaRE) [9] en 2011, ... et le modèle qualité optimisé pour le développement agile en 2017. Ainsi, et malgré aussi différentes études comparatives, aucun modèle qualité apparaît clairement comme le meilleur choix et en outre, il n'existe aucun modèle qualité qui combine, connecte, les côtés adhérence et évaluation. Enfin, il est intéressant de noter que les mesures d'entropie logicielle, ou « désordre », à travers le temps peuvent être caractérisé par le vieillissement logiciel et être mesuré grâce à des caractéristiques qualités telle que la fiabilité. Cependant, par définition, les métriques de ces sous-caractéristiques sont effectués dans un contexte d'exécution logiciel continue et n'incluent nullement les impacts des maintenances et des mises à jour logicielles durant la vie produit : doucement, le produit logiciel se dégrade de lui-même. Nous pouvons conclure ici que le renforcement d'un modèle qualité peut nécessiter aussi une considération un peu plus poussée, accompagné de métriques, entre la vie produit et la réalisation du produit. L'étude que nous proposons ici va tout d'abord porté sur l'analyse et la proposition d'un modèle qualité qui connecte et quantifie non seulement le développement logiciel embarqué mais aussi la structure organisationnelle correspondante tout en respectant les contraintes que nous avons : conformité des normes ASPICE, IEC/ISO 25010, ISO 26262 et ISO/TS 16949:2009. Cette étude débutera sur un état de l'art exhaustif des modèles qualité (en partant de la liste vue ci-dessus) et des métriques associées qui devront aussi inclure des mesures indépendantes (i.e. les points de fonction, COSMIC) ou dépendantes des technologies et qualités évaluées. Seront aussi incluses les normes et standards applicables au développement logiciel embarqué, processus (agile et cycle en V) et à l'organisation. Cette étude sera complétée par une comparaison systématique permettant de conclure sur un modèle qualité optimisée. Une fois ce modèle défini, et dans un souci de consolidation et vérification, nous l'exercerons à travers l'implémentation projet de la qualimétrie via la mesure de la maturité logicielle à travers le processus d'intégration continue et ensuite dans la vie produit, en incluant un aspect de vieillissement logiciel.

  • Titre traduit

    Study of Qualimetry essentials applied to embedded software product and organization, with consideration to software entropy.


  • Résumé

    Today quality is a key project aspect that follows and drives software development since its beginning. Delay and coding workload reductions, technical back and forth optimization linked to qualification, customer acceptance and sustaining phases are essential stakes in project cost: solely, these activities represent around 65% of overall cost and non quality cost 5% of total revenues(source: AFPQ 2017). Moreover, like in thermodynamics, software entropy, or complexity, increases during software system lifetime, and then it is mandatory to measure those ”disorders” to avoid to loose project control over time. Qualimetry approach brings a set of good practices, fosters dysfunction detection, enhances control, increases efficiency and productivity not only to developers but also to overall organization. Therefore mastery of this scientific discipline is decisive in terms of efficiency improvement, through standardized quality model such as ISO/IEC 9126-1:2001 "Software engineering — Product quality — Part1 : Quality Model", metrics and controlled process of software development. Indeed, this qualitative approach, or control, of the quality is realized via quality models which can follow either an adherence to process or capability level (e.g. CMM -Capability Maturity Model-, ISO/IEC 1550) or assessment through a set of attributes and metrics (e.g. McCall's model or ISO/IEC 25010 (ie SQuaRE)). In addition, since 1977 with McCall model, many software quality models were regularly defined or derived from others, including some effort of normalization. We can quickly identify Boehm's model in 1978, ISO/IEC 9126 in 1986, FURPS /FURPS+ model in 1987 and then 2000, Evans & Marciniak's model in 1987, Deutsch & Willis' model in 1988, Capability Maturity Model (ie CMM) and Ghezzi's model in 1991, Dromey's model in 1992 and 1995, IEEE model in 1993, SEI model in 1995, SATC Model in 1996, Bansiya's Quality Model for Object Oriented Design in 2002, Kazman's model in 2003, Aspect –Oriented Software Quality Model in 2006, Component based Software development Quality Model in 2008, DEQUALITE model in 2009, UML Conceptual Model in 2010, Sehra S.K.'s model and ISO/IEC 25010 (ie SQuaRE) in 2011, ...and Optimized Quality model for Agile Development in 2017. We can then state that there is no obvious quality model best choice, despite comparison studies, and none of the existing quality models are bridging the assessment and the adherence sides. Finally, it is interesting to notice that software entropy, or ”disorder”, over time measurements, could be characterized by software aging and can be measured thanks to reliability quality characteristics. However, by definition the related sub-characteristic metrics are performed in the context of continuous software execution and don't include software maintenance or update impacts during the software product life : slowly, the software product is being degraded by itself. We can conclude that strengthening a quality model may require also further consideration to product life vs product realization with some metric refinements. The study we are proposing here will be organized into several incremental steps. Indeed, the first step is to proceed on studying, analyzing and proposing a quality model which bridges and quantifies quality not only for software development but also for software organization with respect to the conformance constraints we have: conformance to ASPICE, IEC/ISO 25010, ISO 26262 and ISO/TS 16949:2009. This study shall be based on a rigorous state of the art on quality model (starting from the references seen above) and the related metrics which must include independent (e.g. Function Points, COSMIC) or dependent measures of technical or quality considerations. It will be completed by considering also applicable norms and standard for embedded software development, process(agile and in V-cycle) and software organization. The analysis will be achieved through a systematic comparison, integrating identified constraints and then be concluded by an optimized quality model. Once this quality model will be defined, in order to consolidate and assess it, it will be exercised through a Qualimetry for project implementation, via Software Maturity within Continuous Integration process measurement, and then for product life, including software aging aspect.