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.

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
slreq.ReqSet|slreq.Requirement|slreq.Reference|slreq.Justification|slreq.LinkSet|slreq.Link