I.1.3.4. Abstraction
L'abstraction consiste à ne considérer que les
aspects jugés importants d'un système à un moment
donné, en faisant abstraction des autres aspects (c'est encore un
exemple de séparation des problèmes).
Une même réalité peut souvent être
décrite à différents niveaux d'abstraction. Par
exemple, un circuit électronique peut être décrit par un
modèle mathématique très abstrait (équation
logique), ou par un assemblage de composants logiques qui font abstraction des
détails de réalisation (circuit logique), ou par un plan physique
de composants réels au sein d'un circuit intégré.
L'abstraction permet une meilleure maîtrise de la complexité.
I.1.3.5. Anticipation du changement
La caractéristique essentielle du logiciel, par
rapport à d'autres produits, est qu'il est presque toujours soumis
à des changements continuels (corrections d'imperfections et
évolutions en fonctions des besoins qui changent).
Ceci requiert des efforts particuliers pour
prévoir, faciliter et gérer ces évolutions
inévitables. Il faut par exemple :
· faire en sorte que les changements soient les plus
localisés possibles (bonne modularité),
· être capable de gérer les multiples
versions des modules et configurations des versions des modules, constituant
des versions du produit complet.
I.1.3.6. Généricité
Il est parfois avantageux de remplacer la résolution
d'un problème spécifique par la résolution d'un
problème plus général. Cette solution
générique (paramétrable ou adaptable) pourra être
réutilisée plus facilement.
Exemple : plutôt que d'écrire une identification
spécifique à un écran particulier, écrire (ou
réutiliser) un module générique d'authentification (saisie
d'une identification - éventuellement dans une liste - et
éventuellement d'un mot de passe).
I.1.3.7. Construction incrémentale
Un procédé incrémental atteint son but
par étapes en s'en approchant de plus en plus ; chaque résultat
est construit en étendant le précédent.
9
On peut par exemple réaliser d'abord un noyau des
fonctions essentielles et ajouter progressivement les aspects plus
secondaires. Ou encore, construire une série de prototypes
simulant' plus ou moins complètement le système
envisagé.
Ces principes sont très abstraits et ne sont pas
utilisables directement. Mais ils font partie du vocabulaire de base du
génie logiciel. Ces principes ont un impact réel sur beaucoup
d'aspects et constituent le type de connaissance le plus stable, dans un
domaine où les outils, les méthodes et les techniques
évoluent très vite.
|