Mesurer la structure

La mesure des propriétés structurelles d'un logiciel est importante pour estimer l'effort de développement ainsi que pour la maintenance du produit. La structure des exigences, de la conception et du code aide à comprendre la difficulté qui se pose lors de la conversion d'un produit en un autre, du test d'un produit ou de la prédiction des attributs logiciels externes à partir des premières mesures internes du produit.

Types de mesures structurelles

La structure du logiciel comprend trois parties. Ils sont -

  • Control-flow structure - C'est la séquence dans laquelle les instructions sont exécutées dans un programme.

  • Data-flow structure - C'est le comportement des données lorsqu'elles interagissent avec le programme.

  • Data structure - C'est l'organisation des éléments de données sous forme de listes, de files d'attente, de piles ou d'autres structures bien définies avec un algorithme pour les créer, les modifier ou les supprimer.

Mesure de la structure du flux de contrôle

Les mesures de flux de contrôle sont généralement modélisées avec un graphe orienté, où chaque nœud ou point correspond à des instructions de programme, et chaque arc ou bord dirigé indique le flux de contrôle d'une instruction à une autre. Ces graphes sont appelés graphe de contrôle-flux ou graphe orienté.

Si ‘m’ est une mesure structurelle définie en fonction du modèle de graphe de flux, et si le programme A est structurellement plus complexe que le programme B, puis la mesure m(A) devrait être supérieur à m(B).

Mesure de la structure du flux de données

Le flux de données ou le flux d'informations peut être inter-modulaire (flux d'informations à l'intérieur des modules) ou intra-modulaire (flux d'informations entre les modules individuels et le reste du système).

Selon la manière dont les données se déplacent dans le système, elles peuvent être classées comme suit:

  • Local direct flow - Si un module appelle un deuxième module et lui transmet des informations ou si le module appelé renvoie un résultat à l'appelant.

  • Local indirect flow - Si le module appelé renvoie des informations qui sont ensuite transmises à un deuxième module appelé.

  • Global flow - Si les informations circulent d'un module à un autre via une structure de données globale.

La complexité du flux d'information peut être exprimée selon Henry et Kafura comme suit:

Information flow complexity (M) = length (M) × fan-in (M) × (fan-out (M))2

Où,

  • Fan-in (M) - Le nombre de flux locaux qui se terminent en M + le nombre de structures de données à partir desquelles les informations sont extraites par M.

  • Fan–out (M) - Le nombre de flux locaux qui émanent de M + le nombre de structures de données mises à jour par M.

Mesure de la structure des données

La structure des données peut être à la fois local et global.

Locally, la quantité de structure dans chaque élément de données sera mesurée. Une approche théorique des graphes peut être utilisée pour analyser et mesurer les propriétés de structures de données individuelles. En cela, les types de données simples tels que les entiers, les caractères et les booléens sont considérés comme des nombres premiers et les différentes opérations qui nous permettent de construire des structures de données plus complexes sont prises en compte. Les mesures de la structure des données peuvent alors être définies hiérarchiquement en termes de valeurs pour les nombres premiers et les valeurs associées aux différentes opérations.

Globally, un décompte du nombre total de variables définies par l'utilisateur sera mesuré.