Il n’est pas facile de concevoir un nouveau système. Une question revient souvent : par où commencer ?
Je pense qu’il faut d’abord se poser deux questions :
Qu’est-ce qu’un système ?
Quelles sont les qualités d’un système ?
Je vais tenter d’introduire une réponse sommaire à ces deux questions :
Un système est un ensemble d’entités et de relations entre ces entités.
Le choix des entités et de leurs relations n’est pas aisé. Pour simplifier cette tâche, il doit être guidé par un certain nombre de critères soigneusement choisis. Ces critères constituent les qualités d’un système.
Stabilité
Il est évident que la première qualité d’un système est d’être stable.
en d’autres termes de fonctionner correctement, de répondre aux exigences de sa spécification et de réagir de façon appropriée à des évènements inattendus, des évènements qui ne font pas partie de sa spécification.
Réutilisabilité
Un système réutilisable est un système utilisé pour concevoir de nouveaux systèmes.
On constate que certains systèmes ont de nombreux points communs. Ces systèmes auraient pu reposer sous un même sous-système.
Afin d’atteindre cette qualité nous devrions essayer de concevoir des systèmes soigneusement décomposés en sous-systèmes et généralisés au maximum.
Performance
Un système performant est un système minimisant son occupation spatiale et temporelle. Il minimise les ressources qu’il utilise et réagit rapidement.
Simplicité
Un système se doit d’être simple pour la facilité de son appréhension.
Beaucoup de systèmes sont conçus pour un public précis. Il s’avère que souvent ces systèmes finissent par être utilisés par un public plus large.
Le système est alors mal adapté et est complexe pour tous ceux qui ne font pas partie du groupe initialement ciblé.
Je pense qu’un système simple doit être généralisé. Il doit s’appuyer sur le moins de suppositions possible. Il doit utiliser un minimum de concepts; des concepts clairs, cohérents, puissants et si possible intuitifs.
Flexibilité
Un système flexible est capable de s’adapter aux circonstances. J’entends par flexible un système configurable et compatible avec d’autres systèmes, d’autres environnements.
Fonctionnalité
Un système fonctionnel offre un grand nombre de possibilités.
Les utilisateurs demandent toujours plus de fonctionnalités. Cet ajout représente souvent l’évolution majeure d’un système. L’addition de fonctionnalités peut complexifier le système et briser sa cohérence.
Des ajouts ultérieurs de fonctionnalité doivent être prévus dès la conception.
Chaque qualité ne peut être considérée séparément. Elles sont étroitement liées et doivent faire l’objet d’un compromis.