Complexité accidentelle

From Wikipedia, the free encyclopedia

En développement logiciel le terme complexité accidentelle désigne la complexité introduite dans des programmes informatiques non en raison de la complexité du problème, mais de manière accidentelle en raison de choix de développement non pertinents. Il a été inventé par Frederick Brooks dans son article No Silver Bullet [1]. Ce terme est réutilisé dans différentes études proposant des outils pour lutter contre ce phénomène [2],[3].

Le terme de complexité accidentelle est lié au problème créé par une implantation ou un langage donné. Ce terme s'oppose à celui de complexité essentielle qui lui décrit la complexité propre à un problème.

Les causes sont diverses :

  • le développeur n'est pas familier avec les capacités de la technologie utilisée ;
  • le souhait de généraliser le travail en prévision de fonctionnalités futures ;
  • le développeur ne prend pas le temps d'optimiser et de réusiner son code : il en résulte une complexité croissante.

Solution

Les solutions pour contrer ces causes sont :

  • prendre le temps de se former aux technologies afin d'appréhender plus finement leurs possibilités ;
  • éviter de généraliser les fonctionnalités et ainsi tout surcoût en complexité ;
  • prendre soin de réusiner son code.

Dans un monde utopique, il existerait un programme capable de simplifier n'importe quel code afin d'en éliminer la complexité accidentelle.

Exemple

Articles connexes

Notes et références

Related Articles

Wikiwand AI