Vous êtes sur la page 1sur 41

Design Patterns et Outils

de Développement
AMEWUHO Kofi Amenyo Jean
Ingénieur de conception informatique
2021 - 2022
Email : avenakaj@gmail.com
Tel : 062-55-61-70
3
Outils de
développement
2
Développement
de logiciel 3
Le développement de logiciel

Le développement de logiciel fait référence à un ensemble d'activités informatiques dédiées au


processus de création, de conception, de déploiement et de support des logiciels. Il consiste

▰ Étudier ▰ Maintenir
▰ Concevoir ▰ Installer
▰ Construire ▰ Mettre à jour
▰ Déboguer ▰ Améliorer
▰ Paramétrer ▰…
▰ Documenter un logiciel.
4
Outil de développement

L’évolution de complexité des tâches et des langages de programmation a exigé la


création des logiciels pour le traitement (semi-)automatique des programmes pendant
leur développement.
Un outil de développement est un logiciel qui aide le développeur dans le déroulement
d’une activité de développement.
Dans le cas général, les outils de développement aident à :
1. Implanter une phase d’un processus de développement logiciel
2. Automatiser des tâches importantes et ennuyeuses
3. Être plus efficace. 5
Outil de développement (Importance)

▰ Comment écrire un programme sans un éditeur de texte ?


▰ Comment l’exécuter sans un compilateur ou un interprète ?
▰ Combien de temps faudrait-il :
▻ Pour (re-)indenter une fonction de 40 lignes ?
▻ Et pour renommer une structure de données dans 20 fichiers sources ?
▻ Pour exécuter 99 tests unitaires après un bug fix ?
▻ Déployer une application sur 100 machines ?
▻ Combien d’action manuelles dans chaque cas ? 6
Quelques outils de développements

La pratique du génie logiciel à travers des années a amené à l’utilisation


d’une multitude des outils de développement.
▰ Éditeur de code ▰ Analyseur d'empreinte mémoire
▰ Compilateur ▰ Analyseur des performances
▰ Débogueur ▰ Automatiseur de tâches
▰ Analyseur de dépendances ▰ Gestionnaire des paquets
▰ Générateur de documentation ▰ Gestionnaire des versions
▰ Unité de test ▰… 7
Éditeur de texte
8
Éditeur de texte

Un éditeur de texte est un programme qui va nous permettre d’écrire des lignes de code et de
simplifier l’écriture de ce code en embarquant une panoplie de fonctionnalités utiles comme l’auto-
complétion de certaines commandes de code et etc.
Un éditeur de texte ne doit pas être confondu avec un outil de traitement de texte comme Word.
L’éditeur de texte a véritablement vocation à créer des pages de code dans n’importe quel langage
comme le HTML, le JavaScript… en utilisant du texte brut tandis qu’un outil de traitement de texte
comme Word permet de créer du texte « enrichi » c’est-à-dire du texte mis en forme (choix de
l’alignement, de la police, du poids de celle-ci, etc.).
Aujourd’hui, chaque système d’exploitation reconnu (Windows, Mac, Linux) embarque son ou ses
propres éditeurs de texte nativement.
9
Éditeur de texte

Il existe aujourd’hui des milliers d’éditeurs disponibles sur le web. Certains fonctionnent
exclusivement sous certains environnements (Windows, Mac Os, etc.) tandis que d’autres vont être
cross-plateformes (fonctionner sous plusieurs environnements). Certains éditeurs de texte vont être
gratuits tandis que d’autres vont être payants ou disponibles sous forme d’abonnement.
Un éditeur va donc permettre de pouvoir écrire des pages de code et de les enregistrer au bon format
(c’est-à-dire avec la bonne extension). Un bon éditeur de texte est un éditeur qui va proposer
différentes options pour vous aider à coder. Parmi ces options, on peut notamment citer :

▰ La mise en couleur des différents éléments d’un langage informatique pour pouvoir les distinguer ;
▰ L’affichage d’indications lorsque l’on fait une faute de syntaxe dans le code avec une explication du
problème en question ;
▰ L’auto-complétion du code;
▰ Des bibliothèques intégrées ou téléchargeables et installables en 1 clic ; 10
▰ Une indentation automatique et pertinente.
Visual Studio Code

Visual Studio Code est l’éditeur de code gratuit développé par Microsoft en parallèle de Visual Studio.
Également connu sous le nom de VSCODE, Visual Studio Code est un logiciel multiplateforme qui
convient parfaitement aux développeurs informatiques quel que soit leur langage de prédilection.
Vous pouvez télécharger VSCODE pour Linux (Deb, Rpm, tar.gz ou via le Snap Store), Windows ou
MacOs en 32 et 64 bits.
L’interface sombre de Visual Studio Code, idéale pour ne pas fatiguer les yeux, est très simple
d’utilisation.
Visual Studio Code propose une coloration syntaxique intelligente, chaque élément est coloré selon
son type ce qui vous de les repérer plus facilement. Le logiciel propose également un système d’auto-
complétion.
11
Visual Studio Code

Visual Studio Code est un éditeur de code source


léger mais puissant. Il est livré avec un support
intégré pour JavaScript, TypeScript et Node.js et
dispose d'un riche écosystème d'extensions pour
d'autres langages (tels que C++, C#, Java, Python,
PHP, Go) et des runtimes (tels que .NET et Unity) .
Visual Studio Code propose une bibliothèque
d’extensions qui permet d’ajouter de nouveaux
outils, fonctionnalités et langages. Pour chaque
extension proposée vous pourrez lire la fiche
descriptive, voir les détails et la note des
utilisateurs, ainsi que le nombre de 12
téléchargements.
IntelliSense

IntelliSense est un outil de complétion de code intégré à Microsoft Visual Studio et Visual Studio Code. C'est l'un
des nombreux outils similaires qui permettent la complétion intelligente de code ou la complétion de texte
intelligente sur différentes plates-formes.
Grâce à l'utilisation de divers algorithmes, IntelliSense tente de deviner ce que le développeur veut taper afin de
compléter une ligne de code. L'utilisation de cet outil peut réduire les erreurs typographiques et syntaxiques.
Grâce à un certain nombre de fonctionnalités, notamment les «membres de la liste», les «informations sur les
paramètres» et le «travail complet», IntelliSense aide les développeurs à évaluer le code au fur et à mesure de la
frappe et à utiliser moins de touches pour implémenter certains aspects d'un code. Par exemple, "lister les
membres" générera une liste de membres valides à partir d'un caractère déclencheur et limitera le résultat en
fonction des lettres initiales saisies.
IntelliSense et les outils associés sont utiles pour rendre l'écriture de code plus efficace et permettent aux
programmeurs de suivre ce qu'ils ont fait afin de réduire les erreurs et d'améliorer la précision.
13
Indentation du
code 14
Indentation

Le métier de développeur ne consiste pas simplement à écrire du code. Il arrive régulièrement qu'il soit nécessaire
d'en lire, par exemple pour comprendre le fonctionnement d'un programme. Il est donc important de donner une
bonne lisibilité à son code, pour permettre aux autres ou à soi-même de le relire facilement. Pour cela différentes
règles doivent être respectées, comme par exemple l'indentation.
Elle consiste à ajouter des espaces au début des lignes, pour identifier clairement les différents blocs de code.
La lecture d'un code doit être facilitée visuellement par une bonne indentation : c'est une manière de formater les
lignes et d'arranger les blocs de code en utilisant un nombre spécifique d'espaces et de tabulations. Le résultat
doit permettre d'identifier d'un simple coup d’œil les différents niveaux du code, en particulier lorsque l'on
imbrique des blocs dans d'autres.
L'indentation est la plupart du temps esthétique : elle ne fait que mettre en forme le code.
Néanmoins, dans certains langage comme Python elle modifie le sens du contenu.
15
Indentation (Règles générales)

Bien que le style d'indentation puisse légèrement varier, il existe des conventions populaires :
▰ Utiliser des espaces (qui espaceront de manière identique partout) plutôt que des tabulations (qui
pourront rendre un résultat différent selon les environnements).
▰ Utiliser deux espaces pour l'indentation.
▰ À chaque fois qu'un bloc est imbriqué dans un autre, l'indenter avec les 2 espaces
supplémentaires.
▰ Ne pas sauter plusieurs lignes entre des instructions.
L'indentation ne doit pas être négligée car, sans elle, un code peut rapidement devenir difficile à lire et
donc à comprendre.
16
Indentation (Exemples de règles)

Style K&R
C'est le style employé par Brian Kernighan et
Dennis Ritchie pour rédiger les exemples dans leur
livre Le Langage C, connu comme le premier livre
sur le langage C.
Il place donc l'accolade ouvrante d'une fonction
sur la ligne suivant la partie déclarative,
contrairement aux autres accolades (par exemple
des structures de contrôle) qui sont laissées sur la
même ligne que la déclaration.
17
Indentation (Exemples de règles)

Style Allman
Nommé d'après Eric Allman, ce style respecte un
alignement strict des accolades ouvrantes et
fermantes.
L'avantage principal de ce style est qu'on peut
visuellement repérer très facilement tout oubli
d'accolade. De plus, on a une séparation claire
entre le contenu de chaque bloc de code, ce qui
améliore la lisibilité. Ceci est obtenu au prix d'un
nombre de lignes plus important que pour d'autres
styles.
18
Commentaires
19
Commentaires

Un commentaire, dans un langage de programmation, est une ligne écrite en langage


naturel qui ne sera pas exécutée par l'interpréteur (ou le compilateur selon le langage
employé). Sa fonction est de décrire ou bien d'expliquer une partie du code qui se révèlerai
délicate à déchiffrer en cas de maintenance ou de travail collaboratif (plusieurs
développeurs travaillant sur le même programme).
Les commentaires sont donc particulièrement utiles pour un développeur solitaire, mais ils le
sont davantage lorsque c'est une équipe complète qui travaille sur un même projet. Ils
permettent entre autre d'imposer des nomenclatures et une organisation dans l'écriture du
code d'un projet collaboratif. De plus, les commentaires assurent une maintenance plus
aisée du programme par son auteur ou une tierce personne.
20
Commentaires (Quelques cas d’utilisation)

Il est important d'ajouter des commentaires pour les raisons suivantes :


▰ Expliquer le rôle d'une fonction : Utiliser une fonction est compliqué si on ne sait pas ce qu'elle fait, ce qu'elle
retourne. Une explication permet de savoir comment l'utiliser.
▰ Expliquer le fonctionnement d'un algorithme complexe : Le code source des algorithmes les plus complexes
ne suffit pas à en comprendre le fonctionnement. Une description synthétique permet de le modifier pour
l'adapter à un autre projet, ou pour le corriger en cas de problèmes.
▰ Justifier certains choix techniques : Un code source est souvent repris ultérieurement (correction,
réutilisation). Si certains choix ne sont pas justifiés par un commentaire explicatif, ils pourront être remis en
cause par le développeur.
▰ Lister les contextes d'appel à une fonction : Un commentaire expliquant quand la fonction est appelée permet
de comprendre son rôle et les circonstances de déclenchement de l'appel à la fonction.
21
Documentation
du code 22
Documentation

Fournir un code qui fonctionne c’est bien, pouvoir en transmettre la connaissance c’est
mieux.
En théorie, n’importe quel projet informatique possède une documentation, elle fait partie
du format de livrable standard.
La documentation logicielle est un texte explicatif autour du processus de développement
du logiciel qui sert de support de communication. Elle a pour objectif de présenter la
manière dont le logiciel a été développé, comment il fonctionne et comment le faire évoluer
auprès de son public cible. La documentation peut être à destination des développeurs, ou
bien à destination des utilisateurs finaux qui s’intéresseront davantage à la manière
d’utiliser le logiciel.
23
Documentation (Importance)

Le capital connaissance est indispensable pour les entreprises. La capitalisation du savoir


et des connaissances est une tâche gourmande en temps, mais qui s’avère nécessaire. Ne
pas créer de documentation développe certains risques importants :
▰ Lorsque l’information est détenue par un seul et même expert, il est difficile de se séparer de cette personne.
Cela induit une charge importante pour le sachant et un risque majeur pour l’entreprise dans le cas ou l’expert
ne souhaite plus faire parti du projet.
▰ Des coûts supplémentaires en terme de support humain dans le but de former et d’informer (développeurs ou
utilisateurs).
▰ Une perte de connaissance globale qui impacte les évolutions futures du projet.
▰ Une perte de temps autour des échanges répétitifs entre les acteurs du projet (développeurs et porteurs de
projets), concernant le fonctionnement et le développement du logiciel.
24
Documentation (Exemple C#)

25
Chaîne de
compilation
26
Compilation

Une fois le code source écrit, il faut procéder à sa compilation. Cette étape part donc du
code source pour produire un code machine. Un code machine est un fichier binaire, qui
n'est pas lisible par un être humain.
Évidemment, une fois cela fait, il ne reste plus qu'à exécuter le code machine sur
l'ordinateur qui est capable de comprendre ce code.

27
Préprocessing

Le code source subit d'abord un premier traitement appelé préprocessing avant la phase
de compilation à proprement parler.
Le préprocessing prend le fichier source du programmeur comme entrée, fait subir une
série de traitements à ce code source, et produit en sortir un nouveau code source. C'est ce
nouveau code source qui est ensuite traduit en code machine par le compilateur. Le
préprocesseur ne s'intéresse qu'à des instructions spéciales qui lui sont destinées,
appelées directives préprocesseur. De plus, c'est également le préprocesseur qui est en
charge de supprimer les commentaires.

28
Environnement de
Développement
Intégré 29
IDE (EDI)

Un environnement de développement intégré, ou IDE, est un logiciel de création d'applications, qui rassemble des
outils de développement fréquemment utilisés dans une seule interface utilisateur.
Dans un environnement de développement intégré, les divers utilitaires ne nécessitent en général aucun réglage
ni aucune intégration lors du processus de configuration. Les développeurs peuvent ainsi lancer rapidement le
développement de nouvelles applications. Ils ne perdent pas non plus de temps à prendre en main chaque outil
individuellement, car tous les utilitaires sont réunis dans une interface unique. Il s'agit d'un avantage non
négligeable pour les nouveaux développeurs qui peuvent s'appuyer sur un IDE pour apprendre à utiliser les outils
et les workflows standard de l'équipe qu'ils viennent d'intégrer.
La plupart des fonctions d'un IDE font en fait gagner du temps, à l'instar de la saisie intelligente du code et de la
génération automatique du code, qui permettent d'éviter la saisie manuelle de chaînes complètes de caractères.

30
IDE (EDI)

D'autres fonctions fréquemment disponibles dans les IDE aident les développeurs à organiser leur workflow et à
résoudre les problèmes.
Les environnements de développement intégré analysent le code au cours de sa rédaction et identifient ainsi en
temps réel les bogues qui résultent d'erreurs humaines. Étant donné que tous les utilitaires sont rassemblés dans
une seule interface graphique, les développeurs peuvent exécuter plusieurs actions sans avoir à basculer entre
diverses applications.
La plupart des IDE offrent aussi une fonction de coloration syntaxique avec des repères visuels qui mettent en
évidence les structures syntaxiques du langage dans l'éditeur de texte.
Certains IDE comprennent en plus des navigateurs de classes et d'objets, ainsi que des diagrammes
hiérarchiques de classes pour certains langages.

31
Visual Studio
32
Visual Studio

Visual Studio est une suite de logiciels de développement conçue principalement pour créer des
programmes visuels, des sites, des services et des applications Web, ainsi que des apps mobiles.
C’est un éditeur de code qui utilise les plateformes de développement logiciel de Microsoft telles que
l'API Windows, Windows Presentation Foundation, le Windows Store, Windows Forms et Windows
Silverlight. Il dispose également de son débogueur intégré qui peut effectuer le débogage au niveau
source et au niveau machine. Parmi ses autres outils intégrés figurent son propre profileur de code,
son outil de formulaires, son concepteur Web et son concepteur de diagrammes de base de données.
Visual Studio prend en charge les plug-ins qui peuvent améliorer ses fonctionnalités à tous les
niveaux. Il supporte jusqu'à 36 langages de programmation différents, notamment C, C++, Visual
Basic .NET, C #, F #, JavaScript, Python, etc. Il inclut également le système d’auto-complétion
IntelliSense et la coloration syntaxique pour une saisie de code encore plus facile.
33
Visual Studio

La dernière version de Visual Studio met l’accent sur l’aspect collaboratif avec sa fonction Visual Studio Live
Share qui permet à tous les développeurs travaillant sur un même projet d'effectuer des modifications en temps
réel. Grâce à son large éventail de fonctionnalités, Visual Studio est un outil de référence pour la création de
projets en équipe.

34
Visual Studio

35
Visual Studio

36
Débogage
37
Débogage

Le code que nous écrivons en tant que développeurs de logiciels ne fait pas toujours ce que nous
attendions. Il fait parfois quelque chose de totalement différent ! Dans ce cas, la tâche suivante
consiste à identifier la raison, et bien qu’il soit tentant de rester simplement bouche bée devant notre
code pendant des heures, il est beaucoup plus facile et efficace d’utiliser un outil de débogage, ou
débogueur.
Malheureusement, un débogueur n’est pas quelque chose qui peut révéler comme par magie tous les
problèmes ou « bogues » dans notre code. Déboguer signifie exécuter votre code pas à pas dans un
outil de débogage tel que Visual Studio afin de trouver le point exact où vous avez fait une erreur de
programmation. Vous comprenez alors les corrections que vous devez effectuer dans votre code, et
les outils de débogage vous permettent souvent d’apporter des modifications temporaires afin de
pouvoir continuer l’exécution du programme.
38
Débogage

L’utilisation efficace d’un débogueur est également une compétence qui nécessite du temps et des
efforts, mais il s’agit d’une tâche essentielle que tout développeur de logiciels doit savoir effectuer.
Le terme débogage peut signifier un grand nombre de choses différentes, mais la plupart du fait, cela
implique de supprimer les bogues de votre code. À présent, il existe de nombreuses façons de
procéder. Par exemple, vous pouvez déboguer en analysant votre code pour rechercher des fautes de
frappe, ou à l’aide d’un analyseur de code. Vous pouvez déboguer du code à l’aide d’un profileur de
performances. Vous pouvez également déboguer à l’aide d’un débogueur.
Un débogueur est un outil de développement très spécialisé qui s’attache à votre application en cours
d’exécution et vous permet d’inspecter votre code.

39
Débogage

Quand utiliser un débogueur


Le débogueur est un outil essentiel pour rechercher et corriger les bogues dans vos applications.
Toutefois, le contexte est roi et il est important de tirer parti de tous les outils de votre jetable pour
vous aider à éliminer rapidement les bogues ou les erreurs. Parfois, le bon « outil » peut être une
meilleure pratique de codage. En apprenant quand utiliser le débogueur ou un autre outil, vous
apprendrez également comment utiliser le débogueur plus efficacement.

40
THANKS!
Any questions?
You can find me at
062 55 61 70
avenakaj@gmail.com
41

Vous aimerez peut-être aussi