Développement logiciel

Définition

On appelle «Développement logiciel» le processus de création et maintenance d’un logiciel.

Dans un sens plus large, il inclut tout ce qui est impliqué entre la conception du logiciel désiré jusqu’au produit logiciel, en respectant un processus planifié et structuré.

Plusieurs activités:

Le développement de logiciels peut inclure la recherche, le développement, le test, le prototypage, la modification, la réutilisation, la réingénierie, la maintenance, ou toute autre activité qui résulte en un produit logiciel.

Prototypage

prototyping

Réalisation d’un prototype, càd, un exemplaire incomplet et non défini de ce qui pourra être le produit final.

Réingénierie

reengineering

Redéveloppement d’un produit afin de le rendre plus efficient.

Maintenance

software maintenance

Modifications de code qui visent à maintenir un logiciel dans un état de fonctionnement normal.

software engineering
Une discipline:

Le besoin d’un meilleur contrôle de qualité du processus de développement a engendré, dans les années 70, la discipline appelée «Génie Logiciel».

Plan

  • Les acteurs du développement logiciel

  • Environnement de travail du développeur

  • Conclusion

Les acteurs du développement logiciel

Un peu d’histoire…

1940-50

1940
  • Langages: ENIAC Short Code, ARC Assembly, etc.

Années 50

1950
  • Langages: Fortran, LISP, ALGOL, etc.

Années 50 (cont.)

puchcard
  • Thèse: développer des logiciels c’est comme développer le matériel électronique.

  • Il n’y avait pratiquement aucune interaction entre le programmeur et l’ordinateur.

Années 60

1960
  • Langages: COBOL, Simula, PL/I

Années 60 (Cont.)

  • Antithèse: élaboration des logiciels.

  • Début de la programmation structurée.

  • Les utilisateurs ne sont plus seulement les scientifiques.

structured programming
Figure 1. Programmation structurée

Années 70

1970
  • Langages: Pascal, C, Prolog, Smalltalk, Modula, BASIC, etc.

Années 70 (cont.)

anniversary
  • C’est la crise du logiciel!

  • Naissance du «Génie Logiciel», créé en 1968 à l’OTAN.

Années 80

1980
  • Langages: ADA, Objective C, Eiffel, Perl, etc.

Années 80 (cont.)

lisa gui
Figure 2. Lisa
fsf
  • Création du premier Macintosh en 1984: début des ordinateurs personnels.

  • Création de la «Free Software Fondation» en 1985.

  • Nouveaux acteurs: Fournisseur d’outils (création des AGL), développeur IHM

Années 90

1990
  • Nouveau langages: Python, Haskell, OCaml, Lua, Java, PHP, Ruby, JavaScript, etc.

Années 90 (Cont.)

WWW

Début du «World Wide Web».

Maintenance

La maintenance commence à devenir plus importante que le développement

Années 2000

2000
  • Nouveau langages: C#, Scala, Groovy, Go, etc.

Années 2000 (Cont.)

  • Création de Facebook et des réseaux sociaux.

  • Le logiciel libre devient indispensable.

  • Plusieurs entreprises ouvrent leur code: Apple, Google, Microsoft, Facebook, etc.

  • Début des méthodes de développement agiles.

Années 10

2010
  • Nouveau langages: Rust, Dart, Kotlin, Swift, TypeScript, etc.

Années 10 (Cont.)

  • Démocratisation des smartphones et des tablettes.

  • Nouvelles architectures: cloud, fog, edge, etc.

  • Démocratisation des objets connectés: le logiciel est partout.

  • Vers une «crise du logiciel» 2.0 ?

Plan

  • Les acteurs du développement logiciel

  • Environnement de travail du développeur

  • Conclusion

Environnement de travail du développeur

IDE

developpeur ide
  • Habituellement, les développeurs utilisent un Environnement de Développement Intégré (IDE), adapté à un langage de programmation ou à une plateforme cible.

  • Avantages: Auto-complétion, débogueur, réorganisation et mise en forme du code, navigation à l’intérieur du code.

Développement collaboratif

  • Souvent, plusieurs développeurs travaillent sur un même projet.

  • Dans ce cas, chaque développeur garde une copie du projet localement sur son ordinateur.

developpeurs multiples

Gestionnaire de versions

vcs
  • Le gestionnaire de versions garde l’historique du code source et gère l’intégration des modifications des développeurs.

Évaluation continue de la qualité

evaluateur qualite
  • One peut coupler le gestionnaire de versions avec un évaluateur de qualité du code source.

Évaluation continue de la qualité (Cont.)

L’évaluateur de qualité peut, en continu:
  • identifier le code dupliqué;

  • mesurer le niveau de documentation;

  • vérifier le respect des règles de programmation;

  • détecter des bugs;

  • évaluer la qualité des tests.

Exemple: SonarCloud

sonarcloud

Web

developpeur web
  • Enfin, les développeurs utilisent souvent des sites web spécialisés pour poser des questions, obtenir des exemples de code, apprendre de nouvelles techniques, etc.

  • Exemples: StackOverflow, Code Project, Développez.com.

Exemple: Stack Overflow

stackoverflow

Plan

  • Les acteurs du développement logiciel

  • Environnement de travail du développeur

  • Conclusion

Conclusion

  • Le développement logiciel comprend plusieurs activités au-delà du simple codage: maintenance, prototypage, test, etc.

  • C’est une activité très outillée et automatisée.

  • Beaucoup d’acteurs différents (et tout autant de métiers).