OOAD - Modélisation fonctionnelle

La modélisation fonctionnelle donne la perspective du processus du modèle d'analyse orientée objet et un aperçu de ce que le système est censé faire. Il définit la fonction des processus internes du système à l'aide de diagrammes de flux de données (DFD). Il décrit la dérivation fonctionnelle des valeurs de données sans indiquer comment elles sont dérivées lorsqu'elles sont calculées, ni pourquoi elles doivent être calculées.

Diagrammes de flux de données

La modélisation fonctionnelle est représentée par une hiérarchie de DFD. Le DFD est une représentation graphique d'un système qui montre les entrées du système, le traitement sur les entrées, les sorties du système ainsi que les magasins de données internes. Les DFD illustrent la série de transformations ou de calculs effectués sur les objets ou le système, ainsi que les commandes et objets externes qui affectent la transformation.

Rumbaugh et coll. ont défini DFD comme suit: «Un diagramme de flux de données est un graphique qui montre le flux de valeurs de données de leurs sources dans des objets via des processus qui les transforment vers leurs destinations sur d'autres objets.»

Les quatre parties principales d'un DFD sont:

  • Processes,
  • Flux de données,
  • Acteurs, et
  • Magasins de données.

Les autres parties d'un DFD sont -

  • Contraintes, et
  • Contrôlez les flux.

Caractéristiques d'un DFD

Processus

Les processus sont les activités de calcul qui transforment les valeurs des données. Un système entier peut être visualisé comme un processus de haut niveau. Un processus peut être divisé en plus petits composants. Le processus de niveau le plus bas peut être une fonction simple.

Representation in DFD - Un processus est représenté comme une ellipse avec son nom écrit à l'intérieur et contient un nombre fixe de valeurs de données d'entrée et de sortie.

Example - La figure suivante montre un processus Compute_HCF_LCM qui accepte deux entiers comme entrées et sort leur HCF (facteur commun le plus élevé) et LCM (multiple le plus petit commun).

Flux de données

Le flux de données représente le flux de données entre deux processus. Cela peut être entre un acteur et un processus, ou entre un magasin de données et un processus. Un flux de données indique la valeur d'un élément de données à un moment donné du calcul. Cette valeur n'est pas modifiée par le flux de données.

Representation in DFD - Un flux de données est représenté par un arc dirigé ou une flèche, étiqueté avec le nom de la donnée qu'il porte.

Dans la figure ci-dessus, Integer_a et Integer_b représentent les flux de données d'entrée vers le processus, tandis que LCM et HCF sont les flux de données de sortie.

Un flux de données peut être forké dans les cas suivants -

  • La valeur de sortie est envoyée à plusieurs endroits comme indiqué dans la figure suivante. Ici, les flèches de sortie ne sont pas étiquetées car elles indiquent la même valeur.

  • Le flux de données contient une valeur agrégée et chacun des composants est envoyé à différents endroits, comme illustré dans la figure suivante. Ici, chacun des composants fourchus est étiqueté.

Acteurs

Les acteurs sont les objets actifs qui interagissent avec le système en produisant des données et en les introduisant dans le système, ou en consommant des données produites par le système. En d'autres termes, les acteurs servent de sources et de puits de données.

Representation in DFD- Un acteur est représenté par un rectangle. Les actionneurs sont connectés aux entrées et aux sorties et se trouvent à la limite du DFD.

Example - La figure suivante montre les acteurs, à savoir, Customer et Sales_Clerk dans un système de vente au comptoir.

Magasins de données

Les magasins de données sont les objets passifs qui agissent comme un référentiel de données. Contrairement aux acteurs, ils ne peuvent effectuer aucune opération. Ils sont utilisés pour stocker des données et récupérer les données stockées. Ils représentent une structure de données, un fichier disque ou une table dans une base de données.

Representation in DFD- Un magasin de données est représenté par deux lignes parallèles contenant le nom du magasin de données. Chaque magasin de données est connecté à au moins un processus. Les flèches d'entrée contiennent des informations permettant de modifier le contenu de la banque de données, tandis que les flèches de sortie contiennent des informations extraites de la banque de données. Lorsqu'une partie des informations doit être récupérée, la flèche de sortie est étiquetée. Une flèche non étiquetée indique une récupération complète des données. Une flèche bidirectionnelle implique à la fois la récupération et la mise à jour.

Example- La figure suivante montre un magasin de données, Sales_Record, qui stocke les détails de toutes les ventes. L'entrée dans le magasin de données comprend les détails des ventes tels que l'article, le montant de facturation, la date, etc. Pour trouver les ventes moyennes, le processus récupère les enregistrements de ventes et calcule la moyenne.

Contraintes

Les contraintes spécifient les conditions ou restrictions qui doivent être satisfaites au fil du temps. Ils permettent d'ajouter de nouvelles règles ou de modifier des règles existantes. Des contraintes peuvent apparaître dans les trois modèles d'analyse orientée objet.

  • Dans la modélisation d'objets, les contraintes définissent la relation entre les objets. Ils peuvent également définir la relation entre les différentes valeurs qu'un objet peut prendre à différents moments.

  • Dans la modélisation dynamique, les contraintes définissent la relation entre les états et les événements de différents objets.

  • Dans la modélisation fonctionnelle, les contraintes définissent les restrictions sur les transformations et les calculs.

Representation - Une contrainte est rendue sous forme de chaîne entre accolades.

Example- La figure suivante montre une partie du DFD pour le calcul du salaire des employés d'une entreprise qui a décidé de donner des primes à tous les employés du service commercial et d'augmenter le salaire de tous les employés du service RH. On peut voir que la contrainte {Dept: Sales} provoque le calcul de l'incitation uniquement si le département est commercial et la contrainte {Dept: HR} fait que l'incrément ne sera calculé que si le département est HR.

Contrôle des flux

Un processus peut être associé à une certaine valeur booléenne et n'est évalué que si la valeur est vraie, bien qu'il ne s'agisse pas d'une entrée directe dans le processus. Ces valeurs booléennes sont appelées les flux de contrôle.

Representation in DFD - Les flux de contrôle sont représentés par un arc en pointillé du processus produisant la valeur booléenne au processus contrôlé par eux.

Example- La figure suivante représente un DFD pour la division arithmétique. Le diviseur est testé pour non nul. S'il n'est pas égal à zéro, le flux de contrôle OK a une valeur True et par la suite le processus Divide calcule le Quotient et le Reste.

Développement du modèle DFD d'un système

Afin de développer le modèle DFD d'un système, une hiérarchie de DFD est construite. Le DFD de niveau supérieur comprend un seul processus et les acteurs qui interagissent avec lui.

À chaque niveau inférieur successif, des détails supplémentaires sont progressivement inclus. Un processus est décomposé en sous-processus, les flux de données parmi les sous-processus sont identifiés, les flux de contrôle sont déterminés et les magasins de données sont définis. Lors de la décomposition d'un processus, le flux de données entrant ou sortant du processus doit correspondre au flux de données au niveau suivant de DFD.

Example- Considérons un système logiciel, Wholesaler Software, qui automatise les transactions d'un magasin de gros. Le magasin vend en gros et a une clientèle composée de commerçants et de propriétaires de magasins de détail. Chaque client est invité à s'inscrire avec ses coordonnées et reçoit un code client unique, C_Code. Une fois la vente effectuée, la boutique enregistre ses coordonnées et envoie les marchandises pour expédition. Chaque année, la boutique distribue des cadeaux de Noël à ses clients, qui se composent d'une pièce d'argent ou d'une pièce d'or selon le total des ventes et la décision du propriétaire.

Le modèle fonctionnel du logiciel de gros est indiqué ci-dessous. La figure ci-dessous montre le DFD de niveau supérieur. Il montre le logiciel comme un processus unique et les acteurs qui interagissent avec lui.

Les acteurs du système sont -

  • Customers
  • Salesperson
  • Proprietor

Dans le DFD de niveau suivant, comme le montre la figure suivante, les principaux processus du système sont identifiés, les magasins de données sont définis et l'interaction des processus avec les acteurs, et les magasins de données sont établis.

Dans le système, trois processus peuvent être identifiés, qui sont -

  • Enregistrer les clients
  • Ventes de processus
  • Vérifier les cadeaux

Les magasins de données qui seront nécessaires sont -

  • Détails du client
  • Détails des ventes
  • Détails du cadeau

La figure suivante montre les détails du processus Enregistrer un client. Il comprend trois processus: vérifier les détails, générer le code C et mettre à jour les détails du client. Lorsque les coordonnées du client sont saisies, elles sont vérifiées. Si les données sont correctes, C_Code est généré et le magasin de données Détails du client est mis à jour.

La figure suivante montre l'extension du processus Vérifier les dons. Il comporte deux processus, trouver les ventes totales et décider du type de pièce cadeau. Le processus Rechercher les ventes totales calcule les ventes totales annuelles correspondant à chaque client et enregistre les données. En prenant cet enregistrement et la décision du propriétaire comme entrées, les pièces-cadeaux sont attribuées via le processus Décider le type de pièces-cadeaux.

Avantages et inconvénients du DFD

Avantages Désavantages
Les DFD décrivent les limites d'un système et sont donc utiles pour décrire la relation entre les objets externes et les processus au sein du système. Les DFD prennent beaucoup de temps à créer, ce qui n'est peut-être pas faisable à des fins pratiques.
Ils aident les utilisateurs à avoir une connaissance du système. Les DFD ne fournissent aucune information sur le comportement dépendant du temps, c'est-à-dire qu'ils ne spécifient pas quand les transformations sont effectuées.
La représentation graphique sert de modèle aux programmeurs pour développer un système. Ils n'éclairent pas la fréquence des calculs ni les raisons des calculs.
Les DFD fournissent des informations détaillées sur les processus du système. La préparation des DFD est un processus complexe qui nécessite une expertise considérable. En outre, il est difficile pour une personne non technique de comprendre.
Ils sont utilisés dans le cadre de la documentation du système. La méthode de préparation est subjective et laisse une large marge de manœuvre pour être imprécise.

Relation entre les modèles objet, dynamique et fonctionnel

Le modèle objet, le modèle dynamique et le modèle fonctionnel sont complémentaires pour une analyse complète orientée objet.

  • La modélisation d'objets développe la structure statique du système logiciel en termes d'objets. Ainsi, il montre les «faiseurs» d'un système.

  • La modélisation dynamique développe le comportement temporel des objets en réponse à des événements externes. Il montre les séquences d'opérations effectuées sur les objets.

  • Le modèle fonctionnel donne un aperçu de ce que le système doit faire.

Modèle fonctionnel et modèle objet

Les quatre principales parties d'un modèle fonctionnel en termes de modèle objet sont:

  • Process - Les processus impliquent les méthodes des objets à implémenter.

  • Actors - Les acteurs sont les objets du modèle objet.

  • Data Stores - Ce sont soit des objets dans le modèle d'objet, soit des attributs d'objets.

  • Data Flows- Les flux de données vers ou depuis les acteurs représentent des opérations sur ou par des objets. Les flux de données vers ou depuis les magasins de données représentent des requêtes ou des mises à jour.

Modèle fonctionnel et modèle dynamique

Le modèle dynamique indique quand les opérations sont effectuées, tandis que le modèle fonctionnel indique comment elles sont effectuées et quels arguments sont nécessaires. Les acteurs étant des objets actifs, le modèle dynamique doit spécifier quand il agit. Les magasins de données sont des objets passifs et ils ne répondent qu'aux mises à jour et aux requêtes; par conséquent, le modèle dynamique n'a pas besoin de spécifier quand ils agissent.

Modèle d'objet et modèle dynamique

Le modèle dynamique montre l'état des objets et les opérations effectuées sur les occurrences d'événements et les changements d'états ultérieurs. L'état de l'objet suite aux modifications est affiché dans le modèle d'objet.