Académique Documents
Professionnel Documents
Culture Documents
INTRODUCTION............................................................................................................... 2
I. Qu’est-ce que les Problem-frames ............................................................................. 3
II. Pourquoi les problem-frames................................................................................. 3
III. Fonctionnement des probem-frames ..................................................................... 4
IV. Les cinq principaux problem-frames....................................................................... 6
V. Notions de base et décomposition des problem-frames ....................................... 11
1. Notions de base .............................................................................................................................................11
a. La machine ..................................................................................................................................................11
b. Les phénomènes .........................................................................................................................................11
c. Les domaines ...................................................................................................................................................12
2. Décomposition ...............................................................................................................................................14
VI. Cas concret relatif à l’approche des problem-frames : MVC AFrame ..................... 16
VII. Avantages et inconvénients des problem-frames ................................................. 17
1. Avantages .......................................................................................................................................................17
2. Inconvénients .................................................................................................................................................17
CONCLUSION ................................................................................................................ 18
1
INTRODUCTION
La complexité des gros logiciels est telle qu’il n’est plus possible à une seule personne
d’en assurer le développement ni d’en connaître toutes les finesses. Le
développement devra donc être organisé et coordonné ; les personnes en charge du
développement devront documenter leur travail de manière exhaustive et
standardisée, et les différentes tâches du développement devront être soigneusement
synchronisées.
Plusieurs d’études ont montré que les échecs dans la mise en œuvre et l’utilisation
des systèmes informatiques sont dus à une mauvaise compréhension des besoins
auxquels ces systèmes tentent de répondre. Le sous discipline du génie logiciel qui
s’occupe de cette préoccupation est l’Ingénierie de Besoin. L’ingénierie de besoin
présente alors une étape primordiale dans un projet de développement de système.
Sous-estimer cette étape peut mener à l’inachèvement des projets, ou à la défaillance
des systèmes développés. Au niveau de cette étape, plusieurs approches de
développement ont été proposées. Récemment, l’approche de Problem Frames (PF)
(schémas de problèmes) est introduite comme moyen de classification, d’analyse et
de structuration de problèmes. Cette nouvelle approche ne permet pas seulement
d’identifier les besoins du futur système, mais aussi de réduire les efforts de
développement grâce à sa classification des problèmes.
2
I. Qu’est-ce que les Problem-frames
Les Problem Frames (PF) (schémas de problèmes) sont des moyens de classification,
d’analyse et de structuration de problèmes. Introduite par Mickael Jackson, l’approche
de problem frames fournit des diagrammes, des notations et des concepts permettant
une description claire et directe du problème considéré. Elle offre, également, des
mécanismes de décomposition de problèmes en sous-problèmes simples ce qui
permet la réutilisation des solutions logiciel. L’idée principale repose sur l’identification
des problèmes communs et simples qui peuvent être utilisés comme des patterns
(patrons) sur lesquels les grands problèmes doivent être décomposés ce qui permet
la réutilisation des solutions de problèmes existants pour un nouveau problème de la
même classe. Michael Jackson a identifié les principales classes de problèmes qu’on
trouve dans le développement de logiciels. Chaque classe est capturée par un problem
frame, en résultat cinq problem frames élémentaires ont été définis : required behavior
PF, commended behavior PF, information display PF, workpiece PF, et transformation
PF. En outre, d’autres problem frames ont été proposés dans la littérature.
Des études effectuées dans le domaine de l’ingénierie des logiciels ont montré que, le
plus souvent, l’échec du développement est dû à une mauvaise compréhension des
besoins auxquels le système tente de répondre. L’ingénierie des besoins est l’étape
qui s’intéresse à la définition des besoins de la façon la plus méthodique, complète et
cohérente possible.
3
III. Fonctionnement des probem-frames
Cette nouvelle approche ne permet pas seulement d’identifier nos besoins, mais aussi
de réduire les efforts de développement grâce à sa classification des problèmes. Cette
caractéristique permet la réutilisation et l’adaptation des solutions existantes d’un
problème donné à un nouveau problème de la même classe.
Pour chaque PF, un diagramme est établi qui est une représentation générale d’un
PF.
Le système à développer est appelé machine, il est représenté par un rectangle avec
une double barre. Les différents domaines constituants le monde du problème sont
représentés par des rectangles simples.
4
besoins sont notés par un ovale pointillé indiquant leur qualité intangible car le besoin
n’est pas une partie tangible du problème mais plutôt une condition sur le monde du
problème que la machine doit le garantir. La ligne discontinue « b » entre les besoins
et le monde du problème indique les phénomènes de besoin ; ces derniers présentent
les phénomènes que l’utilisateur du système (le client) doit l’observer pour déterminer
si les besoins sont satisfaits ou non. On distingue deux types de lignes discontinues
qui relient les besoins avec les différents domaines : ceux qui sont simple et ceux qui
sont dotées par une flèche. La flèche indique que le domaine est une contrainte de
besoin, c’est-à-dire que la machine doit garantir que l’état ou le comportement de ce
domaine satisfait le besoin. Une ligne discontinue sans flèche indique que le besoin
fait référence à un phénomène d’un domaine donnée.
Bien que le produit final soit une description de la machine, une succession de résultats
peut être rarement accomplie en décrivant que la machine. En général, on a besoin
de faire les descriptions suivantes :
− Les propriétés du monde de problème (World properties) W : est une description des
propriétés que le domaine possède intrinsèquement, sans se soucier du
comportement de la machine. Par exemple, la propriété que depuis un étage n,
l’ascenseur peut aller seulement vers l’étage n+1 ou n-1.
Ces trois descriptions présentent les trois préoccupations de base d’un PF.
Pour montrer que la machine satisfera les besoins, il est indispensable de montrer la
relation suivante : S, W├ R.
5
En d’autres termes, si la machine satisfait la spécification S qui est installée dans un
monde du problème qui satisfait W, donc le besoin R sera également satisfait.
➢ Required Behaviour PF
Jackson a defini ce PF comme suit: « There is some part of the physical world whose
behaviour is to be controlled so that it satisfies certain conditions. The problem is to
build a machine that will impose that control ».
6
Required Behaviour PF est proposé pour modéliser les problèmes où on a besoin de
développer une machine qui assure le contrôle du comportement d’une partie du
monde réel. Ce PF est illustré ci-dessous.
➢ Commanded Behaviour PF
Commanded Behaviour PF a été défini par M. Jackson comme suit: «There is some
part of the physical world that has to be controlled, in accordance with commands
issued by an operator. The problem is to build a machine that will accept the operator’s
commands and impose the control accordingly».
Commanded Behaviour PF est proposé pour modéliser les problèmes dans lesquels
on a besoin de développer une machine pour commander une partie du monde réel
en accordance avec les commandes fournies par un opérateur.
7
Ce schéma décrit le diagramme du Commanded Behaviour PR. Le «CM » est la
machine qu’on doit développer pour contrôler le comportement du domaine «CD ». La
machine doit fournir les différents événements et opérations C1 pour commander le
comportement de «CD ». Ce PF est similaire à celui de Requiered Behaviour sauf
l’ajout de l’opérateur dans Commanded Behaviour PR. Cet opérateur fournit des
commandes à la machine pour assurer un certain comportement du domaine «CD ».
Ces commandes sont illustrées dans le diagramme par les phénomènes partagés E4
qui représentent également les phénomènes de besoin concernant l’opérateur. Le
comportement du domaine «CD » est exigé dans les besoins, cela est montré par la
flèche discontinue qui relie les besoins avec le «CD ».
➢ Information Display PF
Jackson a défini le problem frame Information Display comme suit: «There is some
part of the physical world about whose states and behaviour certain information is
continually needed. The problem is to build a machine that will obtain this information
from the world and present it at the required place in the required form «.
8
Ce PF est proposé pour modéliser une classe de problèmes dans laquelle on
développe une machine pour afficher continuellement des informations sur les états et
le comportement d’une partie du monde réel. La figure illustre le diagramme de ce PF.
«IM » est la machine à développer. Le domaine causal «RW » est la partie du monde
physique dont ses états et son comportement doivent être, régulièrement, affichés.
Les états et le comportement du monde réel sont modélisés par les phénomènes de
besoin «C3 ». Ces informations sont transmises du «RW » vers la machine à travers
les capteurs (les phénomènes «C1 » dans la figure 2.5). La machine affiche ces
informations dans une console d’affichage « DP » à travers les différents événements
et opérations « E2 » générés par la machine. Cet affichage respecte un certain format
(entiers, messages…), les informations à afficher sont ainsi modélisées par les
phénomènes symbolique « Y4 ». On note ici que la machine n’a aucune influence sur
le comportement du «RW ».
➢ Workpiece PF
M. Jackson a défini le Workpiece PF comme suit: « A tool is needed to allow a user to
create and edit a certain class of computable processable text or graphic objects or
similar structures, so that they can be used subsequently copied, printed, analyzed or
used in other ways. The problem is to build a machine that can act as this tool «.
➢ Transformation PF
La definition de M. Jackson pour Transformation PF est comme suit: « There are some
given computable readable input files whose data must be transformed to give a
certain required output files. The output data must be in particular format and it must
be derived from the input data according to certain rules. The problem is to build a
machine that will produce the required outputs ».
Transformation PF est proposé pour modéliser une classe de problèmes dans laquelle
nous avons besoin de développer une machine capable d’assurer le transfert de
données en entrée vers d’autres données en sortie en respectant certaines règles de
transformation. Le diagramme du Transformation PF est illustré par la figure.
«TM » est la machine à développer. Nous deux domaines lexicaux : Inputs «IN » qui
représente les données à transférer et l’Outputs « OU » qui est le résultat du transfère
effectuer. Tous les phénomènes du Transformation problem frame sont des
phénomènes symboliques car ils représentent généralement la structure de données
de l’Inputs «IN » et de l’Output « OÙ ».
10
V. Notions de base et décomposition des problem-
frames
1. Notions de base
a. La machine
Le but de l’ingénierie de logiciel est de développer des logiciels pour résoudre les
différents problèmes existants. Certains problèmes sont de nature abstraite dans le
sens mathématique, c’est-à-dire qu’ils résident dans un monde platonique ; tel que la
résolution d’une équation de deuxième degré où on ne manipule que des nombres.
Cependant, la majorité des problèmes résident dans un monde réel de nature
physique où on traite et interagit avec des entités physiques, telles que les boutons,
les automobiles, les comptes bancaires, les consommateurs, etc. On appelle la
solution de ce deuxième type de problème « la machine ».
b. Les phénomènes
Pour analyser un problème donné du monde réel, il faut analyser les différents
phénomènes dans ce monde, car le but est de construire une machine qui interagit
avec son environnement à travers les différents phénomènes qui caractérisent cet
environnement. On peut distinguer deux types des phénomènes dans un
environnement donné : les individus et les relations entre ces individus.
On a comme individus :
❖ Les valeurs (V) : qui sont des individus statiques (immutable), tel que les
entiers, les chaînes de caractères...etc. Par exemple, 100 est une valeur qui
représente le degré de vaporisation de l’eau.
❖ Les entités (N) : sont des individus dynamiques qui se changent tout le temps,
tels que les êtres humains, les automobiles, les boutons...etc.
11
Les différentes relations entre ces individus sont :
❖ Les états (S) : représentent les situations d’une entité. On peut détecter le
changement d’une entité donnée par le changement de ses états. Par exemple,
la porte ouverte représente l’état d’une porte.
❖ Les rôles (R) : sont les relations indiquant la participation d’un individu dans un
événement. Par exemple, la relation ‘is BUttonIn(b,p)’ exprime le rôles d’un
bouton ‘b’ dans l’événement de pression.
❖ Les vérités (U) : ce sont les relations inchangeables. Par exemple, la relation
‘x>y’ entre les entiers.
On peut classer ces différents individus selon deux catégories : les phénomènes
contrôlables et les phénomènes symboliques. La première catégorie concerne les
événements, les rôles et les états décrivant les entités. Ces éléments sont causés et
contrôlés directement par une partie du monde où ils résident. Par exemple, le
conducteur d’une voiture peut causer l’événement de freinage. La deuxième catégorie
concerne les valeurs, les vérités, et les états. Ces phénomènes symbolisent d’autres
phénomènes ainsi que les relations entre eux.
En se basant sur ces phénomènes, on peut classifier les différentes parties du monde
du problème ; par exemples, ceux qui sont de nature statique et qui se caractérisent
par l’absence des événements et ont des états non changeables ; et ceux qui sont de
nature dynamique et qui ont des états changeables à cause des différents événements
qui se produisent dans ce monde.
c. Les domaines
Pour bien décrire le monde d’un problème donné il faut décrire les différentes parties
qui le constituent. On appelle ces parties « Domaines ». Un domaine dans ce sens
n’est pas une catégorie générale d’applications, tel que le domaine du système
bancaire ou le domaine de contrôle d’un processus. Mais plutôt, un domaine présente
une partie spécifique du contexte d’un problème particulier qui peut être étudié et décrit
dans une isolation comparative. Par exemple, dans un problème de contrôle d’un
patient, le contexte est divisé en : patients, infirmiers, appareils de contrôles...etc.
Chaque domaine a ses propres phénomènes et ses propres propriétés qui sont vues
comme des relations entre ces phénomènes. Les domaines peuvent partager des
phénomènes. En effet, la seule façon que deux domaines interagissent est à travers
ces phénomènes partagés.
12
L’interaction entre la machine et son environnement peut être vue à travers les
différents phénomènes partagés entre la machine et les autres domaines constituant
le monde du problème. Les états sont également partagés, car l’environnement est
doté de capteurs qui offrent les différentes informations sur les états de
l’environnement de la machine. Les événements sont aussi partagés car la machine
et son environnement participent à chaque occurrence d’événement.
❖ Des domaines causals : sont les domaines qui incluent des relations causales
et prédictibles entre leurs différents phénomènes. Ces domaines sont
généralement des équipements mécaniques ou électroniques qui ont des
actions et des réactions prédictibles. Un domaine causal peut contrôler d’autres
domaines et peut être lui aussi contrôlé par d’autres domaines. Par exemple,
un moteur d’une automobile peut être démarré ou arrêté par le conducteur, il
est alors contrôlé par ce dernier ; ce moteur gère également la rotation des
roues de la voiture, en d’autres termes, il contrôle les roues.
13
2. Décomposition
− La machine peut être aussi vue comme un ensemble de sous machines. Dans
l’exemple de l’ascenseur, on peut avoir une machine pour fournir les différents services
d’ascenseur et une autre pour détecter les anomalies de fonctionnement.
14
Les deux conséquences majores de cette approche sont [26] :
− Les préoccupations de composition sont différées jusqu’à ce que les sous problèmes
soient bien compris.
Une fois les sous problèmes sont identifiés et résolus, il est indispensable de
recomposer leurs solutions pour contribuer à la solution du problème original. Ainsi,
les besoins des sous problèmes peuvent être combinés par des conjonctions logiques,
et les machines des sous problèmes par une exécution concurrente.
Pour des cas particuliers de décomposition, les sous problèmes peut avoir des
phénomènes en commun créant par conséquent des interactions potentielles qui
doivent être traitées lors de la décomposition. Généralement, certaines
préoccupations de composition apparaissent lorsqu’on a des parties de sous
problèmes communes telles que :
− L’interférence : le problème est posé lorsqu’on a un sous problème qui crée des
changements dans un domaine d’un autre problème pendant qu’un autre l’utilise
(problème d’exclusion mutuelle).
− L’ordonnancement : dans certain cas, l’exécution des sous machines doit suivre un
ordre précis.
− Le conflit : deux sous problèmes peuvent avoir des conflits entre eux. Par exemple
dans un ascenseur les deux sous besoins « offre les services d’ascenseur aux
utilisateurs » et « assurer des opérations saines « peuvent avoir des conflits.
15
VI. Cas concret relatif à l’approche des problem-
frames : MVC AFrame
− Vue (View) : s’occupe de l’affichage des résultats des traitements aux utilisateurs.
16
VII. Avantages et inconvénients des problem-frames
1. Avantages
2. Inconvénient
La complexité d’utilisation des problem-frames est tel qu’il n’est pas possible à
n’importe qui de l’utiliser ; il faut avoir un niveau de réflexion poussée
17
CONCLUSION
Nous avons commencé ce rapport en évoquant les principales notions de l’approche
problem frame. Nous avons, par la suite, présenté les cinq problem frames de base de
Michael Jackson. Notons que l’ensemble des problem frames proposés dans la
litérature) ne permet pas de cerner complètement les différents problèmes rencontrés
dans le développement de logiciel, ce domaine restera alors un domaine de recherche
ouvert.
18