Contenu principal

Créer, importer, lier et justifier des exigences de manière programmatique

Vous pouvez utiliser l’API Requirements Toolbox™ pour créer, importer, lier et justifier des exigences de manière programmatique. L’API propose une alternative à l’exécution interactive de ces actions dans le Requirements Editor. Pour plus d’informations sur la création interactive, l’importation, la liaison et la justification des exigences, consultez Utiliser les exigences pour développer et vérifier les fonctions MATLAB.

Les éléments que vous pouvez créer, visualiser et modifier dans le Requirements Editor, tels que les exigences, les liens et les justifications, ont également des objets équivalents auxquels vous pouvez accéder de manière programmatique dans la fenêtre de commande MATLAB® au moyen de l’API Requirements Toolbox.

Cet exemple vous indique comment créer des exigences, importer des exigences supplémentaires à partir de Microsoft® Word, puis lier et justifier les exigences de manière programmatique. Cet exemple ne peut être exécuté que sur les plateformes Microsoft Windows®.

Créer des exigences

Créez un ensemble regroupant les exigences au moyen de la fonction slreq.new.

myReqSet = slreq.new("MyRequirementSet");

La fonction renvoie l’objet d’ensemble d’exigences en tant qu’objet slreq.ReqSet. Ajoutez une exigence parent à l’ensemble d’exigences en transmettant l’objet slreq.ReqSet en tant qu’entrée pour la méthode add.

parentReq1 = add(myReqSet);

La méthode renvoie l’exigence en tant qu’objet slreq.Requirement. Ajoutez du texte aux propriétés Summary et Description. Accédez à ces propriétés au moyen d’une notation pointée.

parentReq1.Summary = "Parent Requirement 1";
parentReq1.Description = "This is the first parent requirement in the requirement set.";

Ajoutez une deuxième exigence parent à l’ensemble d’exigences. Lorsque vous ajoutez l’exigence, spécifiez les propriétés Summary et Description.

parentReq2 = add(myReqSet,Summary="Parent Requirement 2", ...
    Description="This is the second parent requirement in the requirement set.");

Ajoutez deux exigences enfants à la première exigence parent en transmettant l’objet slreq.Requirement en tant qu’entrée pour la méthode add.

childReq1 = add(parentReq1,Summary="Child Requirement 1.1");
childReq2 = add(parentReq1,Summary="Child Requirement 1.2");

Renvoyez le tableau des exigences parents de l’ensemble d’exigences en transmettant l’objet slreq.ReqSet en tant qu’entrée pour la méthode children.

parentReqs = children(myReqSet)
parentReqs=1×2 Requirement array with properties:
    Type
    Id
    Summary
    Description
    Keywords
    Rationale
    CreatedOn
    CreatedBy
    ModifiedBy
    IndexEnabled
    IndexNumber
    SID
    FileRevision
    ModifiedOn
    Dirty
    Comments
    Index

Renvoyez le tableau des exigences enfants pour la première exigence parent en transmettant l’objet slreq.Requirement en tant qu’entrée pour la méthode children.

childReqs = children(parentReq1)
childReqs=1×2 Requirement array with properties:
    Type
    Id
    Summary
    Description
    Keywords
    Rationale
    CreatedOn
    CreatedBy
    ModifiedBy
    IndexEnabled
    IndexNumber
    SID
    FileRevision
    ModifiedOn
    Dirty
    Comments
    Index

Enregistrez l’ensemble d’exigences.

save(myReqSet)

Importer des exigences

La spécification des exigences MyRequirementSpecification.docx est un document Microsoft Word qui contient six exigences organisées selon une hiérarchie de base.

There is a requirement specification with two parent requirements. Each parent requirement has two child requirements.

Importez les exigences en tant que références aux exigences externes, appelées exigences référencées, au moyen de la fonction slreq.import. En important les exigences en tant qu’exigences référencées, vous pourrez continuer de gérer les exigences dans Microsoft Word.

[count,filePath,myImportedReqSet] = slreq.import("MyRequirementSpecification.docx", ...
    AsReference=true);

La fonction renvoie le nombre d’exigences référencées importées, le chemin d’accès à l’ensemble d’exigences et l’objet slreq.ReqSet de l’ensemble d’exigences. Pour obtenir un handle vers le nœud d’importation de l’ensemble d’exigences, transmettez l’objet slreq.ReqSet en tant qu’entrée pour la méthode children.

topRef = children(myImportedReqSet);

Le nœud d’importation est renvoyé en tant qu’objet slreq.Reference. Renvoyez le tableau des exigences parents de l’ensemble d’exigences en transmettant l’objet slreq.Reference en tant qu’entrée pour la méthode children.

parentRefs = children(topRef)
parentRefs=1×2 Reference array with properties:
    Id
    CustomId
    Artifact
    ArtifactId
    Domain
    UpdatedOn
    CreatedOn
    CreatedBy
    ModifiedBy
    IsLocked
    Summary
    Description
    Rationale
    Keywords
    Type
    IndexEnabled
    IndexNumber
    SID
    FileRevision
    ModifiedOn
    Dirty
    Comments
    Index

La méthode renvoie les exigences référencées sous le nœud d’importation en tant qu’objets slreq.Reference.

Ouvrez le document Word.

winopen("MyRequirementSpecification.docx")

Sous Parent Requirement 1, remplacez le texte existant par le texte suivant : This is the first parent requirement in the requirement set. Enregistrez le document Word, puis fermez-le.

Vérifiez si le document Word associé au nœud d’importation a été modifié depuis l’importation du document.

tf = hasNewUpdate(topRef)
tf = logical
   1

Mettez à jour l’ensemble d’exigences.

[status,changeList] = updateReferences(myImportedReqSet,topRef)
status = 
'Update completed. Refer to Comments on Import1.'
changeList = 
    'Updated: Parent Requirement 1. Properties: description
     '

Enregistrez l’ensemble d’exigences.

save(myImportedReqSet)

Créer des liens

Créez un lien entre les deux exigences présentant le résumé Parent Requirement 1 au moyen de la fonction slreq.createLink.

parentRef1 = parentRefs(1);
myLink = slreq.createLink(parentRef1,parentReq1);

La fonction renvoie le lien en tant qu’objet slreq.Link.

Lorsque vous créez des liens par le biais de l’interface Requirements Editor, Requirements Toolbox détermine l’élément qui constitue la source et celui qui constitue la destination. Lorsque vous créez des liens par le biais de la fonction slreq.createLink, vous devez indiquer vous-même l’élément qui constitue la source et celui qui constitue la destination. Lorsque vous créez des liens entre des exigences et que vous concevez ou testez des éléments, définissez l’exigence en tant que destination. Requirements Toolbox détermine le type de lien.

Renvoyez l’objet d’ensemble de liens pour le lien en transmettant l’objet slreq.Link en tant qu’entrée pour la méthode linkSet.

myLinkSet1 = linkSet(myLink);

La fonction renvoie l’objet d’ensemble de liens en tant qu’objet slreq.LinkSet.

Enregistrez l’ensemble de liens.

save(myLinkSet1);

Justifier les exigences

Si les exigences de votre ensemble ne sont pas destinées à être implémentées ni vérifiées, vous pouvez justifier leur exclusion de l’état d‘implémentation et de vérification.

Justifiez l’exigence qui présente le résumé Parent Requirement 1 en vue de l’implémentation.

Ajoutez une justification à l’exigence MyRequirementSet en transmettant l’objet slreq.ReqSet en tant qu’entrée pour la méthode addJustification. Créez un lien de type Implement entre l’exigence et la justification au moyen de la méthode justifyImplementation.

jt1 = addJustification(myReqSet);
implLink = justifyImplementation(parentReq1,jt1);

La méthode addJustification renvoie la justification en tant qu’objet slreq.Justification. Lorsque vous ajoutez des justifications de manière programmatique, Requirements Toolbox stocke la justification sous une justification parent. Si aucune justification parent n’existe, le logiciel en crée une. Renvoyez la justification parent en transmettant l’objet slreq.Justification en tant qu’entrée pour la méthode parent.

parentJust = parent(jt1);

Justifiez ensuite l’exigence qui présente le résumé Parent Requirement 1 en vue de la vérification.

Ajoutez une justification à l’ensemble d’exigences MyRequirementSet au moyen de la méthode addJustification. Créez un lien de type Implement entre l’exigence et la justification au moyen de la méthode justifyVerification.

jt2 = addJustification(myReqSet);
verifLink = justifyVerification(parentReq1,jt2);

Enregistrez l’ensemble d’exigences.

save(myReqSet)

Renvoyez le lien défini pour l’occasion, puis enregistrez-le.

myLinkSet2 = linkSet(verifLink);
save(myLinkSet2);

Trouver les objets Requirements Toolbox chargés

Vous pouvez trouver les objets Requirements Toolbox chargés en explorant tous les objets chargés ou les objets d’un ensemble d’exigences ou d’un ensemble de liens.

Trouvez les ensembles d’exigences chargés au moyen de la fonction slreq.find.

loadedReqSets = slreq.find(Type="ReqSet")
loadedReqSets=1×2 ReqSet array with properties:
    Description
    Name
    Filename
    Revision
    Dirty
    CustomAttributeNames
    CreatedBy
    CreatedOn
    ModifiedBy
    ModifiedOn

  Show all accessible properties of ReqSet

Trouvez les exigences chargées au moyen de la fonction slreq.find. Trouvez ensuite les exigences chargées dans l’ensemble d’exigences MyRequirementSet en transmettant l’objet slreq.ReqSet en tant qu’entrée pour la méthode find. Comparez les résultats.

loadedRequirements1 = slreq.find(Type="Requirement")
loadedRequirements1=1×4 Requirement array with properties:
    Type
    Id
    Summary
    Description
    Keywords
    Rationale
    CreatedOn
    CreatedBy
    ModifiedBy
    IndexEnabled
    IndexNumber
    SID
    FileRevision
    ModifiedOn
    Dirty
    Comments
    Index

  Show all accessible properties of Requirement

loadedRequirements2 = find(myReqSet,Type="Requirement")
loadedRequirements2=1×4 Requirement array with properties:
    Type
    Id
    Summary
    Description
    Keywords
    Rationale
    CreatedOn
    CreatedBy
    ModifiedBy
    IndexEnabled
    IndexNumber
    SID
    FileRevision
    ModifiedOn
    Dirty
    Comments
    Index

  Show all accessible properties of Requirement

Les résultats sont les mêmes étant donné que l’ensemble d’exigences MyRequirementSet est le seul ensemble d’exigences chargé qui contient des objets slreq.Requirement.

Trouvez les liens chargés au moyen de la fonction slreq.find. Trouvez ensuite les liens chargés dans le deuxième ensemble de liens en transmettant l’objet slreq.LinkSet en tant qu’entrée pour la méthode find. Comparez les résultats.

loadedLinks1 = slreq.find(Type="Link")
loadedLinks1=1×3 Link array with properties:
    Type
    Description
    Keywords
    Rationale
    CreatedOn
    CreatedBy
    ModifiedOn
    ModifiedBy
    Revision
    SID
    Comments

  Show all accessible properties of Link

loadedLinks2 = find(myLinkSet2)
loadedLinks2=1×2 Link array with properties:
    Type
    Description
    Keywords
    Rationale
    CreatedOn
    CreatedBy
    ModifiedOn
    ModifiedBy
    Revision
    SID
    Comments

  Show all accessible properties of Link

Les résultats sont différents étant donné que les deux objets slreq.LinkSet contiennent des objets slreq.Link.

Effacer et charger des ensembles d’exigences et de liens

Vous pouvez effacer de la mémoire des ensembles d’exigences individuels. Fermez l’ensemble d’exigences MyRequirementSpecification en transmettant l’objet slreq.ReqSet en tant qu’entrée pour la méthode close.

close(myImportedReqSet)

Lorsque vous fermez un ensemble d’exigences, Requirements Toolbox ferme également ses ensembles de liens enregistrés, à moins qu’un autre artefact contenant des sources de liens ou des destinations pour l’ensemble de liens ne soit encore chargé. Recherchez les ensembles de liens qui sont encore chargés.

loadedLinkSets = slreq.find(Type="LinkSet")
loadedLinkSets=1×2 LinkSet array with properties:
    Description
    Filename
    Artifact
    Domain
    Revision
    Dirty
    CustomAttributeNames

  Show all accessible properties of LinkSet

Vous ne pouvez pas effacer de la mémoire des ensembles de liens individuels. Au lieu de cela, effacez tous les ensembles d’exigences et de liens chargés au moyen de la fonction slreq.clear. Confirmez que les ensembles de liens ont été effacés de la mémoire au moyen de la fonction slreq.find.

slreq.clear
loadedLinkSets = slreq.find(Type="LinkSet")
loadedLinkSets = 

  0×0 LinkSet array with properties:

    Description
    Filename
    Artifact
    Domain
    Revision
    Dirty
    CustomAttributeNames

  Show all accessible properties of LinkSet

Lorsque vous effacez les exigences et les liens de la mémoire, les variables qui demeurent dans l’espace de travail ne sont plus utilisables. Effacez l’espace de travail avec clear.

clear

Chargez l’ensemble d’exigences MyRequirementSet au moyen de la fonction slreq.load.

myReqSet = slreq.load("MyRequirementSet");

Lorsque l’ensemble d’exigences est chargé, les ensembles de liens enregistrés pour lui le sont également.

loadedLinkSets = slreq.find(Type="LinkSet")
loadedLinkSets=1×2 LinkSet array with properties:
    Description
    Filename
    Artifact
    Domain
    Revision
    Dirty
    CustomAttributeNames

  Show all accessible properties of LinkSet

Voir aussi

Classes

Fonctions

Rubriques