Automatisation des lignes de produits logiciels en entreprise

Par : THOMAS PETIT

Lโ€™informatique

Lโ€™essor de lโ€™informatique au dรฉbut du XXรจme siรจcle, puis dโ€™internet ร  la fin du XXรจme siรจcle ont rรฉvolutionnรฉ notre quotidien et notre faรงon de vivre. En France, La transformation numรฉrique a fait basculer les mรฉtiers de lโ€™industrie vers le tertiaire et les services faisant accroitre de maniรจre exponentielle le dรฉveloppement dโ€™outils informatique. Lโ€™informatique, puis internet ont largement contribuรฉ ร  cette rรฉvolution. Cette digitalisation a permis entre autres dโ€™automatiser des taches par des algorithmes en passant par des applications et logiciels. Aujourd’hui, l’informatique occupe une place immense dans notre quotidien. Les nouvelles technologies รฉvoluent constamment chaque jour, cherchant toujours ร  automatiser ces processus de la vie courante. La demande croissante de nouveaux logiciels oblige les fabricants ร  accรฉlรฉrer le processus dรฉveloppement ainsi que des logiciels ร  plus grande รฉchelle. Les programmes sont constituรฉs de code et de donnรฉes. Le code est la sรฉrie d’instructions qui indiquent ร  l’ordinateur la tรขche ร  accomplir ensuite et la maniรจre dont il doit hiรฉrarchiser les tรขches. Les programmeurs utilisent ces instructions pour ordonner ร  l’ordinateur d’exรฉcuter des tรขches spรฉcifiques, comme l’enregistrement de fichiers ou l’organisation d’images sur votre bureau ; ce sont les programmes, qui doivent รชtre รฉcrits dans un ou plusieurs langages de programmation. Ces logiciels ont pour but dโ€™automatiser des taches souvent avec une interface graphique permettant ร  lโ€™utilisateur dโ€™interagir avec le logiciel. Un logiciel, parfois appelรฉ programme, est un ensemble d’instructions qui indiquent ร  l’ordinateur ce qu’il doit faire.

Les entreprises face aux dรฉfis de la rรฉutilisationย 

De plus les entreprises se confrontent ร  des problรจmes de maintenances et dโ€™รฉvolutions des logiciels qui entrainent des pertes de temps et donc dโ€™argent. En effet la maintenance et le support des applications, sont trรจs chronophages pour les dรฉveloppeurs, qui sont parfois contraints de se relayer pour pouvoir assurer ce service en continue. Les dรฉveloppeurs dans les entreprises ne maitrisent pas forcement lโ€™historique de lโ€™ensemble des modifications et des amรฉliorations acquises ร  travers le temps. Ils doivent parfois ainsi se plonger dans le logiciel parfois mal implรฉmentรฉ avant de pouvoir y apporter une modification. Ceci entraine une perte de temps considรฉrable. La construction des logiciels est relativement statique au dรฉpart, une fois celui-ci dรฉveloppรฉ et livrรฉ au client, toute maintenance requise et envisagรฉe pour ces systรจmes nรฉcessite des modifications potentiellement importantes du code source existant. Ceci n’est plus acceptable pour les systรจmes logiciels contemporains, car la complexitรฉ de la production et de la maintenance gรฉnรจre souvent des coรปts qu’il faut prendre en compte. La rรฉutilisation du code source est donc un point important qui peut aider les entreprises ร  accรฉlรฉrer le processus de dรฉveloppement maximiser la rรฉutilisation dans un ensemble de produits logiciels crรฉera un ensemble de Le logiciel est conรงu autour de fonctionnalitรฉs communes. Pour les fabricants, cela offre des possibilitรฉs de conception Ce n’est plus un produit sรฉparรฉ, mais une sรฉrie de produits. Ce changement L’รฉchelle (passage d’un produit unique ร  une sรฉrie de produits) leur permettra de produire plus L’important est que la quantitรฉ de logiciels augmente, mais cela amรฉliore รฉgalement la qualitรฉ et rรฉduit les coรปts. Les lignes de produits logiciels sont un outil permettant de rรฉpondre ร  ces problรฉmatiques.

Les lignes de produits logicielsย 

La ยซ recherche ยป sur l’ingรฉnierie des lignes de produits logiciels s’est avรฉrรฉe utile pour lโ€™industrie notamment les petites et moyennes entreprise (PME). Mais elle reste largement peu utilisรฉe dans les entreprises. Lโ€™objectif envisagรฉ des LPL n’est plus d’obtenir un systรจme logiciel unique, mais de partir de bases et caractรฉristiques communes pour dรฉvelopper et affiner les fonctionnalitรฉs du logiciel. En somme faire sรฉrie de produits logiciels avec des caractรฉristiques communes. Mais garde cet ensemble. Les logiciels peuvent dรฉvelopper de maniรจre laborieuse, et peuvent รฉgalement engendrer des couts considรฉrables pour les entreprises.

Lโ€™ingรฉnierie les lignes de produits logiciels a rencontrรฉ de nombreux succรจs ces derniรจres annรฉes. Cependant, il est rapide de constater quโ€™encore peu dโ€™entreprise du logiciels informatique (tous secteurs confondu) ont adoptรฉ le dรฉveloppement de LPL. Ce phรฉnomรจne peut รชtre expliquรฉ par au moins plusieurs facteurs : la difficultรฉ dโ€™appliquer les trois approches dโ€™adoptions existantes au contexte des PME couplรฉe ร  une rรฉticence ร  lโ€™adoption de pratiques ร  risques dans lโ€™entreprise. La rรฉutilisation logiciel peut jouer un rรดle crucial dans cette diminution du temps de dรฉveloppement. Intuitivement, nous observons chez les dรฉveloppeurs une tendance ร  la rรฉutilisation, qui prend la forme de copiรฉ collรฉ successif, depuis des logiciels dรฉjร  conรงu vers ceux en cours de conception. A terme, cette pratique nommรฉ Clone&Own en anglais, fait รฉmerger des familles de logiciels, ce sont des logiciels qui partagent des caractรฉristiques communes. Cette pratique est toutefois chaotique, et peut parfois รชtre plus couteuse que de commencer le projet de zรฉro De plus, elle fait รฉmerger des familles de logiciels dont la maintenance doit รชtre assurรฉe de faรงon individuelle. Cโ€™est pourquoi il est prรฉfรฉrable pour les entreprises de considรฉrer lโ€™utilisation de Lโ€™ingรฉnierie des Lignes de Produits Logiciels (LPL) comme paradigme de dรฉveloppement pour leurs logiciels. Lโ€™objectif est de rendre la rรฉutilisation systรฉmique : les logiciels sont conรงus par la rรฉutilisation et pour la rรฉutilisation. La conception dโ€™une famille de logiciels partageant des caractรฉristiques communes. Pour cela, les lignes de produits logiciels reposent sur la rรฉutilisation et la configuration en masse. De faรงon gรฉnรฉrale, lโ€™adoption des LPL dans le processus de dรฉveloppement permet : une diminution des temps de dรฉveloppement ; une augmentation de la qualitรฉ des logiciels ; et une amรฉlioration de la maintenabilitรฉ des logiciels Concevoir une sรฉrie de produits ร  partir de zรฉro peut รชtre compliquรฉe, il y a de nombreux paramรจtres ร  prendre en compte comme le domaine d’activitรฉ, le domaine d’expertise du dรฉveloppeur, la technologie utilisรฉe.

La demande de nouveaux logiciels a suivi l’augmentation de la popularitรฉ des appareils informatiques tels que les ordinateurs personnels, les smartphones, les voitures, appareils Et avec cette augmentation de la demande, les logiciels sont devenus plus complexes ร  concevoir, nรฉcessitant de plus en plus de temps et d’efforts pour les dรฉveloppeurs de plus en plus de temps et d’efforts de la part des dรฉveloppeurs. Le domaine du gรฉnie logiciel s’intรฉresse ร  la recherche de mรฉthodologies et des techniques pour faciliter le dรฉveloppement d’un systรจme logiciel. Par exemple, ces mรฉthodes concernent l’amรฉlioration de la qualitรฉ du logiciel, son accessibilitรฉ ร  la maintenance et ร  l’รฉvolution dans le temps, ainsi quโ€™ร  la description de nouvelles approches pour faciliter son dรฉveloppement. Parmi ces mรฉthodes, l’ingรฉnierie des lignes de produits logiciels se concentre sur la conception de familles de logiciels de maniรจre systรฉmatique. Une famille de logiciels est un ensemble de logiciels qui partage plusieurs fonctionnalitรฉs ou aspects logiciels en commun. Le dรฉveloppement d’un logiciel standard permet de proposer une mรชme solution globale pour l’ensemble des clients. Dans lโ€™industrie, chaque utilisateur client accรจde ร  un logiciel contenant l’ensemble des fonctionnalitรฉs logicielles dรฉveloppรฉes. Pour concevoir ce logiciel, l’entreprise s’adonne d’abord ร  une รฉtude de marchรฉ pour dรฉterminer les fonctionnalitรฉs logicielles les plus demandรฉes. Puis, l’entreprise conรงoit un logiciel qui implรฉmente toutes ces fonctionnalitรฉs, par exemple la rรฉservation, la crรฉation de comptes utilisateur ou encore un systรจme de notation. Elle livre ensuite un seul et mรชme logiciel ร  chacun des clients contenant l’ensemble des fonctionnalitรฉs. Le logiciel standard permet de n’avoir qu’un seul logiciel ร  maintenir par les dรฉveloppeurs. Avec le dรฉveloppement de logiciels individuels, une version du logiciel est conรงue spรฉcifiquement autour des besoins deย  chaque utilisateur.

Dans l’entreprise cliente, celle-ci dรฉveloppe trois versions de son logiciel pour convenir aux besoins spรฉcifiques de ses clients. Cette stratรฉgie de dรฉveloppement permet de rรฉduire les coรปts des logiciels ร  proposer aux utilisateurs, et de faire un logiciel qui correspond mieux ร  leurs besoins. On obtient alors une famille de produits logiciels au sens dรฉfini par David Parnas (1976) : ยซ Une famille de produits logiciels est un ensemble de logiciels partageant une certaine proximitรฉ dans leurs objectifs et qui disposent de suffisamment de similaritรฉ pour justifier dโ€™une mutualisation de leurs concepts et leur maintenance. ยป

Lโ€™alternance

Lors de cette annรฉe 2018/2019, jโ€™ai eu lโ€™honneur de faire mon alternance dans une petite entreprise cliente du groupe Accenture. Cette sociรฉtรฉ sโ€™occupe de la crรฉation et la maintenance de multiples logiciels pour des PME et autres sociรฉtรฉs. Ces logiciels peuvent รชtre variรฉs, lโ€™entreprise possรฉdant de nombreux clients trรจs divers, dโ€™oรน le possible nรฉcessitรฉ dโ€™avoir recours ร  des LPL. Les domaines dโ€™activitรฉ sont surtout autour du numรฉrique mais aussi de lโ€™aviation ainsi que lโ€™automobile. Dรจs mon intรฉgration en Septembre 2018, jโ€™ai eu lโ€™occasion de travailler sur les lignes de produits logiciel au sein de lโ€™entreprise et de participer ร  la maintenance des multiples outils pour le dรฉveloppement des diffรฉrentes gammes de logiciel ร  la demande des clients. Outre la maintenance et le support quotidien des logiciels en production, jโ€™ai pu participer ร  lโ€™รฉlaboration dโ€™un outil dโ€™automatisation de la gรฉnรฉration des lignes de produits logiciels. Pour cela il a fallu effectuer une รฉtude de lโ€™art des diffรฉrentes recherche industrielles sur lignes de produits pour pouvoir par la suite proposer une nouvelle approche innovante avec les รฉquipes R&D et IT. La ligne directrice de mon alternance รฉtait, dans un premier temps, dโ€™amรฉliorer lโ€™implรฉmentation la ligne de produit et dans un second, de trouver un moyen dโ€™automatiser lโ€™intรฉgration de nouvelles fonctionnalitรฉs dans cette ligne de produit logiciel. Jโ€™ai pu lors de mon alternance travailler avec diffรฉrentes รฉquipes :

Lโ€™รฉquipe IT, qui sโ€™occupe du support des logiciels et du bon fonctionnement de la ligne de produit se compose dโ€™une dizaine de personne, elle sโ€™occupe de la maintenance et des รฉvolutions des logiciels avec lโ€™รฉquipe commerciale et les maitrises dโ€™ouvrages.
Lโ€™รฉquipe commerciale et les Maitres dโ€™Ouvrages MOA : ces รฉquipes sont au plus proches de lโ€™environnement mรฉtier et dictent les projets ainsi que les nouvelles amรฉliorations ร  intรฉgrer dans les logiciels dans le but de satisfaire au mieux les attentes des clients. Ils prennent en compte les modification et changements du marchรฉ et ont une trรจs bonne connaissance dans le domaine.
Lโ€™รฉquipe Recherche et Dรฉveloppement, principalement composรฉs dโ€™ingรฉnieurs et de chercheurs en ingรฉnierie, cette รฉquipe effectue une veille des derniรจres รฉtudes de recherche dans diffรฉrent domaine (gรฉnie logiciel, IAโ€ฆ) Leur but est dโ€™adapter les travaux de recherche existant ร  notre entreprise, mais aussi de faire de la recherche en trouvant de nouvelles solutions innovantes. Le but de mon alternance sโ€™inscrivait dans lโ€™optique de la crรฉation de lโ€™outil ยซ SPL Generator ยป, un gรฉnรฉrateur automatique de ligne de produit logiciel qui prend en compte une automatisation complรจte de la rรฉingรฉnie de la ligne de produit.

Lors de mon alternance, jโ€™ai donc pu รชtre en lien permanant tout au long de lโ€™annรฉe entre ces diffรฉrentes รฉquipes, cela mโ€™a permis dโ€™avoir une vision complรจte du fonctionnement des รฉquipes prรฉsentes au sein dโ€™une PME. Ce projet, considรฉrรฉ comme de la recherche industrielle, sโ€™inscrit dans une approche innovante dโ€™automatisation du processus de rรฉingรฉnierie des lignes de produit logiciel liant plusieurs domaine autour du gรฉnie logiciel. Lโ€™outil dรฉveloppรฉ par mes soins ยซ SPL_Generator ยป est le travail de 10 mois de recherche et dโ€™implรฉmentation,( 4 mois รฉtude de lโ€™art et dรฉcouverte des LPL, 2 mois pour la proposition de la solution,3 mois pour la conception 1 mois de test). Ce fut la tรขche majeure de mon alternance en plus du support quotidien des diffรฉrents logiciel, et lโ€™รฉlaboration dโ€™autres outils pour les รฉquipes IT et R&D. Les autres outils dรฉveloppรฉs en marge de mon alternance sont des applications qui permettent de dรฉplacer des dossiers ou des fichiers a des heures prรฉcises et de faire tourner des processus permettant le bon fonctionnement des autres applications en production dans lโ€™entreprise. ยซ Lโ€™orchestre ยป .

La rรฉduction des couts de dรฉveloppementย 

Les avantages et bรฉnรฉfices de l’adoption de l’ingรฉnierie des LPL se mesurent par comparaison avec un dรฉveloppement ยซย traditionnelย ยป L’ingรฉnierie des lignes de produits logiciels promeut une rรฉutilisation logicielle ร  grande รฉchelle lors du dรฉveloppement de nouveaux produits. Au cours du dรฉveloppement, les artefacts de la ligne sont rรฉutilisรฉs pour la conception de nouveaux logiciels, ce qui rรฉduit ses coรปts de conception. Le gain est รฉgalement visible sur le temps de dรฉveloppement qui tend ร  diminuer grรขce ร  la rรฉutilisation (c’est d’ailleurs la principale cause de rรฉduction des coรปts). Cependant, cette rรฉduction des coรปts est seulement visible sur le temps long : des coรปts survient ร  partir du troisiรจme produit dรฉveloppรฉ grรขce ร  la ligne de produits comparativement aux coรปts de dรฉveloppement produit par produit. De plus, la rรฉduction des coรปts nรฉcessite un investissement initial consรฉquent. Cet investissement permet la conception des artefacts rรฉutilisables en amont du dรฉveloppement des produits.

Rรฉduction du dรฉlai de mise sur le marchรฉ des logicielsย 

Comme nous l’avons mentionnรฉ pour la rรฉduction des coรปts, l’application de cette ingรฉnierie permet de rรฉduire les temps de dรฉveloppement de nouveaux produits. Cette rรฉduction de temps amรฉliore les dรฉlais de mise sur le marchรฉ ou de livraison des produits logiciels. Il en dรฉcoule des retours sur investissement plus rapides pour les entreprises, ร  condition lร  encore de concevoir les artefacts en amont.

Rรฉduction des efforts de maintenabilitรฉ des logiciels

ร€ travers la plateforme configurable d’une LPL, la maintenance d’un artefact se propage virtuellement ร  tous les produits oรน cet artefact est implรฉmentรฉ. La plateforme supprime la nรฉcessitรฉ de maintenir individuellement chaque produit et permet de factoriser les opรฉrations de maintenance. ร€ terme, cela permet de rรฉduire l’effort de maintenance. De plus, la maintenance peut se faire sans connaรฎtre et maรฎtriser l’intรฉgralitรฉ des implรฉmentations des produits, ce qui rรฉduit l’effort de comprรฉhension.

Le rapport de stage ou le pfe est un document dโ€™analyse, de synthรจse et dโ€™รฉvaluation de votre apprentissage, cโ€™est pour cela chatpfe.com propose le tรฉlรฉchargement des modรจles complet de projet de fin dโ€™รฉtude, rapport de stage, mรฉmoire, pfe, thรจse, pour connaรฎtre la mรฉthodologie ร  avoir et savoir comment construire les parties dโ€™un projet de fin dโ€™รฉtude.

Table des matiรจres

INTRODUCTION
Lโ€™informatique
Les entreprises face aux dรฉfis de la rรฉutilisation
Les lignes de produits logiciels
Lโ€™alternance
Le plan du mรฉmoire dโ€™alternance
LE BUT
La rรฉduction des couts de dรฉveloppement
Rรฉduction du dรฉlai de mise sur le marchรฉ des logiciels
Rรฉduction des efforts de maintenabilitรฉ des logiciels
Amรฉlioration de la qualitรฉ des logiciels
Etat de lโ€™art et prรฉrequis
La ligne de produit logiciel
Ingรฉnierie du domaine et ingรฉnierie dโ€™application
Analyse du domaine
Conception du domaine
Rรฉalisation du domaine
Ingรฉnierie d’application
Configuration des produits
Gรฉnรฉration des produits
Les approches de conceptions traditionnelles
Le dรฉveloppement from scratch
Le clone and own
Le rรฉpertoire commun
Les approches fondamentales pour les LPL
Lโ€™approche Proactive
Lโ€™approche Extractive
Lโ€™approche Rรฉactive
Quelle approche adaptรฉe aux PME ?
Lโ€™analyse Formelle
La variabilitรฉ dโ€™une Ligne de produit logiciel
La gestion de la variabilitรฉ
Caractรฉristique logicielle
Modรจle des caractรฉristiques
Lโ€™implรฉmentation LPL par annotation et par composition
Annotation
Lโ€™implรฉmentation en compositionnel
Le degrรฉ de granularitรฉ
Localisation des caractรฉristiques
Rรฉsumรฉ LPL
SPL generator
Les objectifs de lโ€™approche
Mon alternance
Les รฉtapes de Lโ€™intรฉgration
Identification des assets et lโ€™entrรฉe des produits
Problรฉmatiques lors de mon alternance
Lโ€™entrรฉe des produits
Lโ€™entrรฉe des caractรฉristiques du produit
Lโ€™identification des assets du code source du produit.
Lโ€™unicitรฉ des Identifiants
Acquisition des artefacts
Les modรจles de variabilitรฉ et leur extraction
Quโ€™est-ce quโ€™un modรจle de variabilitรฉ ?
Comment peut t on extraire automatiquement la variabilitรฉ SPL et ses contraintes ?
FCA pour la variabilitรฉ
Le calcul de la variabilitรฉ dans notre Outils SLP generator
Crรฉation du contexte formel (PCM) ร  partir des assets
Extraction de la variabilitรฉ ร  partir du Treillis
La localisation des caractรฉristiques.
L’analyse de concepts formels (ACF) pour rรฉaliser la localisation
Conclusion

Rapport PFE, mรฉmoire et thรจse PDFTรฉlรฉcharger le rapport complet

Tรฉlรฉcharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiรฉe. Les champs obligatoires sont indiquรฉs avec *