Vous êtes sur la page 1sur 7

Industrialisation du développement dans cela on voit ou a comme objectif l’optimisation qui

consiste à réduire la charge de travail pour y arriver on utilise des développements


décentralisées c’est-à-dire répartir le codage d’un projet entre plusieurs personnes ensuite de
réunir cela pour effectuer des tests unitaires.

Objectif du cours : il a pour objectif de maitriser un ensemble de méthode et outils permettant


d’assurer une production en continue de code source ; en d’ordre terme de faciliter une
production en masse et en qualité des applications informatiques ceci de manières optimales.

Plan du cours

Chap.1 : LES BONNES PRATIQUES DE DEVELOPEMENT LOGICIEL

Chap.2: PLATEFORME D’INTEGRATION ET LIVRAISON CONTINUE

Chap3 : ENVIRONNEMENT DE TESTS UNITAIRES

Chap4 : LE VERSIONNING

CHAP1 : LES BONNES PRATIQUES DE DEVELOPPEMENT LOGICIEL

INTRODUCTION

Plusieurs raisons justifient l’adoption des bonnes pratiques de développement :

 Elles permettent de réduire la dette technique de l’application. Les coûts ultérieurs tant
sur la maintenance corrective (ensemble des mesures prises pour éliminer les bugs que
peuvent rencontrer l’application dans son environnement de déploiement) que pour la
maintenance évolutive (ensemble des mesures prises pour améliorer l’application)
peuvent plus ou moins importantes selon la mise en œuvre des bonnes pratiques de
développement.se sont ces coûts additionnels qui représentent la dette technique de
l’application
 Permet d’accroitre la sécurité des logiciels développés
 Permet d’avoir une bonne qualité juridique au cas où
 Facilite le travail en groupe en établissant un code de conduite commun à tous les
acteurs

I. LA SECURITE DANS LE DEVELOPPEMENT INFORMATIQUE

Tous projets de développement logiciel fait peser des risques sur des données qui traitées ou
produites ainsi que sur des infrastructures qui les manipules ou les héberge par conséquent,
lorsqu’un code possède des failles et que celles-ci sont exploitées, la prise de contrôle des
serveurs peut constituer une porte d’entrée dans le système d’information de l’organisation et
provoquer de grave dommages ou dégâts comme :

 Divulgation des données


 Fuite des données
 La perturbation de l’activité de l’organisation

Conscient des risques et de la nécessité de les réduire il est recommandé de prendre en compte
la sécurité dans la le développement dans la phase de conception

II. LES METHODES OU CYCLES DE DEVELOPPEMENT

On distingue les grandes familles suivantes :

 Le modèle en cascade
 La méthode ou cycle en V
 Le cycle en spirale
 Le cycle semi-itératif
 Le cycle itératif

TD : Etude approfondi sur les grandes familles de méthode de developpement

Il est indispensable pour une équipe de développeur d’adopter dès le commencement une
méthode de développement.
Certaines méthodes comme la méthode en V sont lourds à mettre en œuvre raison pour laquelle
d’autres approches ont étés créées et mis en œuvre pour palier à ces défauts comme la méthode
itérative.

III. ENVIRONNEMENT DE TRAVAIL

La complexité du développement logiciel a conduit à la mise en place des plateformes


de développement appelées Forge.

Les outils potentiels qu’on retrouve dans une forge sont les suivantes :

 Un système de gestion de version


 Un gestionnaire des listes de distribution
 Un outil de suivi des bugs
 Un gestionnaire de la documentation
 Un gestionnaire des tâches

L’outil de gestion des codes permet non seulement l’archivage des versions, mais aussi
la traçabilité des contributions.

L’organisation des fichiers permet de facilement distinguer les composants de


l’application et améliore le travail en groupe. La forge permet en outre la sauvegarde du code
et évite les pertes de données ; il est recommandé d’utiliser un ensemble d’outils d’intégration
continu pour automatiser un certain nombre de tâche et gagner en efficacité. Cette
automatisation des tests permet d’améliorer la qualité du code ; de plus le même jeu de test est
appliqué dès que le code évolue ou encore sur un autre composant.

IV. LES DIFFERENTES ETAPES DE DEVELOPPEMENT


1. Les spécifications fonctionnelles (le quoi)

L’analyse fonctionnelle correspond à l’expression du besoin. Elle doit être précise, et couvre
l’intégralité des cas d’utilisation de l’application en expliquant ce qui doit être fait. L’expression
fonctionnelle du logiciel permet :

 Identifier les besoins puis les traduire en termes de fonctionnalités


 De préciser les enchainements d’accès
 Préciser les contraintes
 D’analyser en fonction des besoins à couvrir les logiciels qui peuvent être réutilisés et
d’évaluer leur impact dans cette réutilisation

Il est important d’établir les fonctionnalités de l’application au préalable pour ne pas se lancer
aveuglement dans le codage.

2. Hh

Ici on décrit comment le code est sensé fonctionner avant d’entrer dans le codage. La conception
est la réponse technique aux spécifications fonctionnelles. Cette activité consiste à :

 Définir le découpage structurel de l’application en composant et en constituants puis


détailler chacun d’eux.
 Définir le flux de données et les interfaces entre composants
 Effectuer les estimations de ressources
 Définir les interfaces Hommes/machines

L’architecture de l’application doit être conçue en amont du codage, sa mise en place


permet de structurer le logiciel, de séparer ses différentes fonctionnalités et d’obtenir un codage
modulaire. Sans ce dernier, le logiciel sera constitué d’un seul fichier contenant plusieurs
milliers de lignes de code ce qui va rendre difficile sa maintenance et son évolution.

Dans l’activité de conception, on utilise généralement un ensemble d’outils comme


UML, Merise, etc.

3. Le codage

C’est la phase de réalisation proprement dit ; ici on développe les composants qui en suite sont
assemblés pour créer le logiciel répondant aux spécifications fonctionnelles. Il est recommandé
de séparer le code en plusieurs fichiers selon la découpe architecturale :

Règles de codage

Dans un projet logiciel il est recommandé de définir les conventions de codage de nomenclature
des variables au sein de l’équipe de développement. Il est également recommandé de mettre des
commentaires qui permettront une meilleure compréhension du code. Pour limiter le nombre
de commentaire il est conseillé d’écrire un code très lisible compréhensible par tous

Agrégation de code

Il est rare de nos jours d’écrire le code d’un logiciel partant d’une page blanche par conséquent,
les bonnes pratiques doivent intégrer la réutilisation des composants des tiers. Ces composants
peuvent prendre différentes formes :

 code source récupéré et réutilisé


 code modifié ou utilisation des bibliothèques existantes ; ces
bibliothèque peuvent avoir des licences libres ()

Dans tous les cas, il est important d’assurer la traçabilité et le suivi des composants des tiers.
Pour cela, il est recommandé de :

 respecter le standard SPDX (Software Package Data EXchange) qui est


un format de fichier utilisé pour documenter les informations sur les
licences des logiciels.
 Il est aussi conseillé de mettre à jour l’architecture du logiciel

Langage de programmation

A un moment donné dans un projet de développement, il est nécessaire de choisir un langage


de programmation. Le bon langage est celui que l’on maîtrise ; il est donc important de connaitre
ses particularités ses forces et se faiblesses. Les paramètres à prendre en compte pour le choix
du langage de programmation sont :

- La facilité d’usage ;
- La production du code qui doit être clair et compréhensible
- L’écosystème qui doit être riche. Et il tourne au tour de l’outillage
(compilateur, éditeur) et aussi autour du support (communauté du forum)
- Le langage doit être maintenu pour assurer une bonne sécurité
- Il ne doit pas être exotique
L’entête

L’entête permet le bon suivi historique et juridique des composants logiciels. Il mentionne le
copyright, l’année, éventuellement la licence de diffusion. Les outils existent pour vérifier que
toutes les informations sont

NB : ne jamais modifier les entêtes des composants des tiers que l’on utilise

Exemple d’outils pour la phase de codage :

 Un éditeur de code
 IDE (environnement de developpement intégré)
 Compilateur et ou interpréteur
 Outils de création d’Interface Homme Machine (IHM)

4. Les tests

Il existe trois types de tests

a. Les tests unitaires :

Ils s’effectuent à un niveau atomique, chaque composant doit être testé pour s’assurer de son
fonctionnement. Ce test assure que les composants respectent de manière individuelle les
spécifications. Les tests unitaires doivent être exécuté automatiquement, il y’a ainsi un
ensemble d’outils approprié comme : Junit, Phpunit, Unitest pour Python

b. Les tests d’intégrations

Ils rassurent que le logiciel intégrant les composants préalablement testés de manière unitaire
fonctionnent parfaitement, Se sont les premiers tests dans leur nature ; pour ces tests on retrouve
les outils : Jenkins, Gitlab-ci

c. Les tests de validation

Ils ont pour but de se rassurer que le logiciel satisfait aux besoins préalablement définis

Vous aimerez peut-être aussi