MODULE No 07 |
Titre : À la recherche des concepts |
But : Montrer comment en partant d’un texte (souvent une simple correspondance ou des documents Power Points) on commence à chercher les « bons » concepts. |
Antécédents : Aucun |
Corps : Introduction. Pour trouver les concepts on va analyser (encore ce mot !) un texte. On peut commencer par considérer qu’un texte est
constitué de phrases et que chaque phrase est constituée de syntagmes nominaux (des groupes
significatifs dans une phrase centrés autour d’un nom) et syntagmes verbaux (des groupes
significatifs dans une phrase centrés autour d’un verbe). Exemple : dans la phrase « Britney Spears possède une maison très chère. » « Britney Spears » et « une maison très chère » sont des syntagmes nominaux et « possède » est un syntagme verbal. Puisque ce module concerne les concepts nous allons nous concentrer sur les syntagmes nominaux à l’intérieur desquels les noms communs sont les concepts qui permettent de construire un réseau à l’aide d’associations. Est-ce « Britney Spears » un concept ? Non parce qu’il s’agit d’un nom propre (Britney Spears est une instance de personne, femme, chanteuse, etc.) Dans un travail d’analyse le choix du concept dont Britney est une instance ne peut être fait qu’en partant du contexte : elle pourrait être une instance de chanteuse si on fait une application pour une maison de disque, une instance de personne pour une application pour le gouvernement américain, une instance de femme pour un groupe de misogynes, etc. Il est aussi clair que lors de l’analyse on pourrait avoir décidé d’introduire dans notre documentation le fait que : Une chanteuse est une (est un type de) Femme. Est-ce que « une maison très chère » est un concept ? Pour nous (simple ingénieurs des exigences) non : « Maison » est un concept et « chère » est un attribut de tous les objets qui peuvent être achetés. La « chérité » (le fait d’être cher et non la « charité » !) pourrait devenir un concept dans l’analyse si la « chérité » peut avoir des caractéristiques propres et une vie indépendante des objets qui sont chers. Dans une application pour des sociologues ou pour des philosophes, par exemple. Exemple Cet exemple est tiré de Grady Booch, Obect-Oriented Analysis and design, Benjamin 1994 : Weather Monitoring Station
Requirements This system shall provide automatic monitoring of various weather conditions. Specifically, it
must measure: ·
Wind speed and direction ·
Temperature ·
Barometric pressure ·
Humidity The system shall also provide the
following derived measurements: ·
Wind chill ·
Dew point temperature ·
Temperature trend ·
Barometric pressure trend The system shall have a means of determining the current time and date,
so that it can report the highest and
lowest values of any of the four
primary measurements during the previous 24 hour period. The system
shall have a display that
continuously indicates all eight primary and derived measurements, as well as
the current time and date. Through the use of a keypad, the user may direct
the system to display the 24-hour high or low value of any one primary
measurement, together with the time of the reported value. The system shall allow the user to calibrate
its sensors against known values, and to set the current time and date. Note Si vous avez l’impression que dans la suite du module je donne des recettes, considérez que la « recette » a une infinité de variantes et que ce qui compte est le style de l’approche. Seulement lorsque l’on définit des méthodes pour une entreprise donnée, pour un domaine donné, on peut donner quelque chose qui ressemble à des « vraies » recettes de génie. Fin de la note 1.Liste « brute »Concentrons-nous sur les concepts et reprenons donc le texte à la recherche des noms. Écrivons-les un après l’autre en considérant que chacun pourrait être un « concept important » dans le cadre de la résolution de notre problème. Il est clair que plus on connaît le domaine et plus il est facile de décider quels sont les concepts les plus importants (mais toujours avec le danger qu’un concept jugé sans importance se révèle, un jour très important). Voici une liste brute (traduite en français) : · Système · Surveillance · conditions météorologiques · La vitesse du vent · La direction du vent · La température · La pression barométrique · L’humidité. · les mesures dérivées · Le facteur vent · La température du point de rosée · La tendance de la température · La tendance de la pression barométrique · la date · l’heure · les valeurs les plus petites · les valeurs les plus grandes · mesures primaires · les 24 heures précédentes · un afficheur · un clavier · l’utilisateur · les capteurs · des valeurs connues Il faudra maintenant éliminer les « mauvais » concepts et éventuellement en ajouter d’autres si on a besoin d’éclaircir le problème. La difficulté est de trouver les mauvais concepts ! Qu’est-ce qu’un mauvais concept ? Pourquoi est-il mauvais ? Ce ne sont presque jamais des questions simples (quand on ne connaît pas le domaine il est pratiquement et théoriquement impossible d’y répondre[1]). 2. Élimination de concepts (exemple)On peut tout de suite éliminer Système car il s’agit d’un terme très générique qui ne nous aide pas dans la résolution de notre problème et qui ne représente que la machine qui devra résoudre le problème. On peut aussi éliminer le clavier et l’écran parce qu’eux aussi sont une description de la solution (attention cela ne veux pas dire qu’ils ne sont pas importants mais seulement que ce n’est pas à ce moment (analyse du problème) qu’on veut les considérer). Et l’utilisateur ? Ça dépend si on le considère une partie du problème ou non. À ce stade-ci on peut l’oublier et on le fera entrer quand on fera la conception système (quand on fixera les frontières). Condition météorologiques ? C’est clairement un concept clefs pour savoir ce que l’on fait mais est-il important en soi ou est-il important seulement comme ensemble des valeurs de la température, l’humidité, etc. ? Considérons-le comme inutile dans cette première phase[2] car il nous suffit d’avoir les concepts qui donnent un sens à Condition météorologiques. Surveillance ? En relisant le texte on peut voir comment surveillance est un nom qui est là pour indiquer un style de système et plus particulièrement une fonction : surveiller, On éliminera donc lui aussi (on ne veut pas d’action (fonctions) maintenant). Température ? Il s’agit du concept qu’on connaît le mieux, parce qu’on passe notre vie à nous plaindre du chaud et du froid. Il est clair qu’on ne peut pas éliminer la température mais on pourrait quand même se poser la question suivante : est-ce que température est un concept autonome ou est-il simplement un attribut d’un autre concept ? Attribut ? Une caractéristique (variable) qui peut avoir une valeur qui définit l’état d’un objet. Exemple : La couleur des cheveux d’une personne peut
être considérée un attribut de Est-ce que la température, dans notre cas, est un concept autonome ou est-elle un attribut d’un autre concept (comme atmosphère par exemple) ? Est-ce que la température a un « comportement[3] » des « états » (des situations stables pour un laps de temps significatif[4]) qui la caractérisent ou est-elle une simple valeur de l’atmosphère qui, elle, a un comportement et des états ? Vu que dans la description on parle de tendance, de min et max, de représentation sur un écran, etc. il serait très dangereux de ne pas considérer la température comme un concept important. Le même raisonnement vaut bien sûr pour humidité, pression, vitesse du vent et direction du vent. On gardera donc le concept (classe) Température comme toutes les autres mesures primaires. Mesure primaire : il s’agit certainement d’un concept important. Si on essaye de voir qu’est-ce qu’une mesure primaire on pourrait dire qu’elle est ou une température, ou une pression, ou une humidité, ou une vitesse du vent ou une direction du vent. Mais, on peut aussi la voir d’une autre manière : Une mesure primaire est une mesure. Pas de doute : primaire ne fait que « spécialiser » mesure. « Est un » (ou « est une ») est un concept (encore ce mot !) important dans l’analyse car il nous permet de regrouper les concepts (les classes) d’une manière qui risque d’être fort intéressante et « économique » du point de vue de la compréhension du problème[5]. Inutile d’insister sur l’importance de la classification par généralisation et spécialisation : c’est à la base de notre langue (et de notre compréhension du monde). Vous connaissez déjà très bien cela à cause de votre travaille de programmeur et des notions d’UML que nous avons vues dans ce cours. La généralisation nous permet donc de mettre les concepts dans une hiérarchie dans laquelle les feuilles sont les concepts les plus spécialisés. Il est une bonne pratique de ne pas essayer d’introduire dès le début la spécialisation. Note : une sous-classe doit hériter tous les attributs de la super classe ! Dans notre cas quel seraient les attributs de la classe mesure qui sont hérités par les autres classes ? Par exemple : ValeurCourant (la valeur de la température au moment ou on la demande), UnitéDeMesure, Précision et Fréquence d’échantillonnage. Fréquence d’échantillonnage ? Oui. Il s’agit de la fréquence à laquelle il faut numériser la température (qui est une valeur analogique) afin que sa représentation numérique représente correctement (du point de vue de notre but) la valeur analogique. Pour une station météorologique quelle pourrait être la fréquence d’échantillonnage de la température ? Disons entre une seconde et 600 secondes. Comment connaître la fréquence d’échantillonnage ? En demandant aux experts du domaine. L’échantillonnage nous oblige à abandonner notre analyse du texte et à nous poser la question suivante : comment savoir s’il existe du matériel (un capteur) qui est capable d’échantillonner à la vitesse voulue ? Et, s’il existe, existe-t-il un ordinateur qui est capable de traiter à cette vitesse ? Note Il s’agit d’une étude de faisabilité technique : on a beau faire la plus belle analyse des concepts, des fonctions et de la qualité mais si les moyens techniques à l’intérieur d’une certaine fourchette de coûts ne sont pas suffisants pour mettre en œuvre notre application… il faut réviser à la baisse les exigences fonctionnelles et/ou de qualité. Fin de la note Ces questions sont clairement des questions qui impliquent déjà une solution. Mais notre but n’était-il pas de ne pas parler de solution (de machine) au début de l’analyse ? Oui. Mais, malheureusement nous sommes pris avec un « problème pratique[6] » qu’il faut régler si on ne veut pas faire du travail inutile. Ce problème pratique nous a obligés à interrompre l’ascension vers le modèle pour simuler une descente vers la machine même si le modèle n’est pas complet. Comme quoi… les règles sont faites pour ne pas être respectées (aussi). Ce qui veut dire que votre intelligence doit travailler pour atteindre le but au moindre coût, avec un maximum de qualité, dans les temps les plus courts possible... ce qui est loin d’être toujours facile. Et maintenant… je vous laisse continuer… pour arriver après des mois (éventuellement) à un schéma comme le suivant, conçu par une équipe d’étudiants dans un cours de conception (et non d’analyse !) : |
Conséquent : 1. Avoir une idée de comment débuter la recherche des concepts « importants ». |
Note (un peu
pédante sur un sujet léger (!?)) : En français « cher » peut
être synonyme de « aimé » ou de
« de prix élevé ». Donc si Britney vous
est chère et habite une
maison chère vous devez
faire une différence entre les deux
« chère ». Il est clair que les deux
significations de « chère » ont un lien assez
clair : ce que vous aimez a (pour vous) un « prix »
élevé. Si, pour continuer sur la même note, vous pensez
que Britney est trop en « chair » vous êtes prix
dans une autre difficulté (quand vous parlez et les autres vous
écoutent) qui n’est pas facile à régler même
si vous avez une « chaire » en informatique. En
résumé quand on est pris en même temps avec des synonymes
et des homonymes on est en droit d’avoir la chair de poule (et non de
la poule ! sans allusion à notre Britney). |
[1] Même si c’est très dangereux dans notre cas on considérera que l’on connaît (au moins un peu) le domaine.
[2] Vous voyez très bien comment on pourrait discuter pendant des heures et comment on risquerait même de ne pas trouver un accord !
[3] On n’en a pas encore parlé mais un objet a en plus des attributs (des propriétés) des comportements (des opérations). À ce stade-ci ça suffit la connaissance informelle que vous avez de ces concepts.
[4] Comme dans l’état civil (célibataire, mariée, veuve, etc.)
[5] Et, pour ceux qui connaissent déjà la programmation objet, du point de vue de la solution aussi !
[6] Pour la température il n’y a aucun problème. Mais il est facile d’envisager des situations ou la fréquence d’échantillonnage peut créer des difficultés énormes. Nous ferons semblant de ne pas savoir que dans notre cas il n’y a pas de problèmes d’ordre technique.