Creazione, importazione, collegamento e giustificazione dei requisiti in modo programmatico
È possibile utilizzare l'API di Requirements Toolbox™ per creare, importare, collegare e giustificare i requisiti in modo programmatico. L'API offre un'alternativa all'esecuzione in modo interattivo di queste azioni nell'Editor dei requisiti. Per maggiori informazioni sulla creazione, l'importazione, il collegamento e sulla giustificazione dei requisiti in modo interattivo, vedere Utilizzo dei requisiti per lo sviluppo e la verifica delle funzioni di MATLAB.
Gli elementi che è possibile creare, visualizzare e modificare nell'Editor dei requisiti, quali requisiti, collegamenti e giustificazioni, dispongono inoltre di oggetti equivalenti a cui è possibile accedere in modo programmatico nella finestra di comando MATLAB® utilizzando l'API di Requirements Toolbox.
Questo esempio mostra come creare requisiti, importare ulteriori requisiti da Microsoft® Word e quindi collegare e giustificare i requisiti in modo programmatico. È possibile eseguire questo esempio solo su piattaforme Microsoft Windows®.
Creazione dei requisiti
Creare un insieme di requisiti che contenga i requisiti utilizzando la funzione slreq.new.
myReqSet = slreq.new("MyRequirementSet");La funzione restituisce l'oggetto insieme di requisiti come oggetto slreq.ReqSet. Aggiungere un requisito principale all'insieme di requisiti passando l'oggetto slreq.ReqSet come input al metodo add.
parentReq1 = add(myReqSet);
Il metodo restituisce il requisito come oggetto slreq.Requirement. Aggiungere del testo alle proprietà Summary e Description. Accedere a queste proprietà utilizzando la notazione a punto.
parentReq1.Summary = "Parent Requirement 1"; parentReq1.Description = "This is the first parent requirement in the requirement set.";
Aggiungere un secondo requisito principale all'insieme di requisiti. Quando si aggiunge il requisito, specificare le proprietà Summary e Description.
parentReq2 = add(myReqSet,Summary="Parent Requirement 2", ... Description="This is the second parent requirement in the requirement set.");
Aggiungere due requisiti subordinati al primo requisito principale passando l'oggetto slreq.Requirement come input al metodo add.
childReq1 = add(parentReq1,Summary="Child Requirement 1.1"); childReq2 = add(parentReq1,Summary="Child Requirement 1.2");
Restituire un array di requisiti principali per l'insieme di requisiti passando l'oggetto slreq.ReqSet come input al metodo 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
Restituire un array dei requisiti subordinati per il primo requisito principale passando l'oggetto slreq.Requirement come input al metodo 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
Salvare l'insieme di requisiti.
save(myReqSet)
Importazione dei requisiti
La specifica dei requisiti MyRequirementSpecification.docx è un documento Microsoft Word che contiene sei requisiti organizzati in una gerarchia di base.

Importare i requisiti come riferimenti ai requisiti esterni, denominati requisiti referenziati, utilizzando la funzione slreq.import. L'importazione dei requisiti come requisiti referenziati consente di continuare a gestire i requisiti in Microsoft Word.
[count,filePath,myImportedReqSet] = slreq.import("MyRequirementSpecification.docx", ... AsReference=true);
La funzione restituisce il numero di requisiti referenziati importati, il percorso del file dell'insieme di requisiti e l'oggetto slreq.ReqSet per l'insieme di requisiti. Acquisire un handle al nodo di importazione dell'insieme di requisiti passando l'oggetto slreq.ReqSet come input al metodo children.
topRef = children(myImportedReqSet);
Il nodo di importazione viene restituito come oggetto slreq.Reference. Restituire un array di requisiti principali nell'insieme di requisiti passando l'oggetto slreq.Reference come input al metodo 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
Il metodo restituisce i requisiti referenziati nel nodo di importazione come oggetti slreq.Reference.
Aprire il documento Word.
winopen("MyRequirementSpecification.docx")In Parent Requirement 1, sostituire il testo esistente con questo testo: This is the first parent requirement in the requirement set. Salvare il documento Word, quindi chiuderlo.
Controllare se il documento Word associato al nodo di importazione è stato modificato dopo l'importazione.
tf = hasNewUpdate(topRef)
tf = logical
1
Aggiornare l'insieme di requisiti.
[status,changeList] = updateReferences(myImportedReqSet,topRef)
status = 'Update completed. Refer to Comments on Import1.'
changeList =
'Updated: Parent Requirement 1. Properties: description
'
Salvare l'insieme di requisiti.
save(myImportedReqSet)
Creazione dei collegamenti
Creare un collegamento tra i due requisiti che presentano il riepilogo Parent Requirement 1 utilizzando la funzione slreq.createLink.
parentRef1 = parentRefs(1); myLink = slreq.createLink(parentRef1,parentReq1);
La funzione restituisce il collegamento come oggetto slreq.Link.
Quando si creano collegamenti utilizzando l'interfaccia dell'Editor dei requisiti, Requirements Toolbox determina quale elemento è la sorgente e quale elemento è la destinazione. Quando si creano collegamenti utilizzando la funzione slreq.createLink, è necessario indicare quale elemento è la sorgente e quale elemento è la destinazione. Quando si creano collegamenti tra requisiti ed elementi di progettazione o di test, impostare il requisito come destinazione. Requirements Toolbox determina il tipo di collegamento.
Restituire l'oggetto insieme di collegamenti per il collegamento passando l'oggetto slreq.Link come input al metodo linkSet.
myLinkSet1 = linkSet(myLink);
La funzione restituisce l’oggetto insieme di collegamenti come oggetto slreq.LinkSet.
Salvare l'insieme di collegamenti.
save(myLinkSet1);
Giustificazione dei requisiti
Se i requisiti nell'insieme di requisiti non devono essere implementati o verificati, è possibile giustificare la loro esclusione dallo stato di implementazione e di verifica.
Giustificare il requisito che presenta il riepilogo Parent Requirement 1 per l'implementazione.
Aggiungere una giustificazione all'insieme di requisiti MyRequirementSet passando l'oggetto slreq.ReqSet come input al metodo addJustification. Creare un collegamento di tipo Implement tra il requisito e la giustificazione utilizzando il metodo justifyImplementation.
jt1 = addJustification(myReqSet); implLink = justifyImplementation(parentReq1,jt1);
Il metodo addJustification restituisce la giustificazione come oggetto slreq.Justification. Quando si aggiungono giustificazioni in modo programmatico, Requirements Toolbox memorizza la giustificazione sotto una giustificazione principale. Se non esiste una giustificazione principale, il software la crea. Restituire la giustificazione principale passando l'oggetto slreq.Justification come input al metodo parent.
parentJust = parent(jt1);
Quindi, giustificare il requisito che presenta il riepilogo Parent Requirement 1 per la verifica.
Aggiungere una giustificazione all'insieme di requisiti MyRequirementSet utilizzando il metodo addJustification. Creare un collegamento di tipo Implement tra il requisito e la giustificazione utilizzando il metodo justifyVerification.
jt2 = addJustification(myReqSet); verifLink = justifyVerification(parentReq1,jt2);
Salvare l'insieme di requisiti.
save(myReqSet)
Restituire l'insieme di collegamenti per il collegamento, quindi salvarlo.
myLinkSet2 = linkSet(verifLink); save(myLinkSet2);
Individuazione degli oggetti Requirements Toolbox caricati
È possibile individuare gli oggetti Requirements Toolbox caricati cercando tra tutti gli oggetti caricati o cercando gli oggetti in un insieme di requisiti o in un insieme di collegamenti.
Individuare gli insiemi di requisiti caricati utilizzando la funzione 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
Individuare i requisiti caricati utilizzando la funzione slreq.find. Quindi, individuare i requisiti caricati nell'insieme di requisiti MyRequirementSet passando l'oggetto slreq.ReqSet come input al metodo find. Confrontare i risultati.
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
I risultati sono gli stessi perché l'insieme di requisiti MyRequirementSet è l'unico insieme di requisiti caricato che contiene oggetti slreq.Requirement.
Individuare i collegamenti caricati utilizzando la funzione slreq.find. Quindi, individuare i collegamenti caricati nel secondo insieme di collegamenti passando l'oggetto slreq.LinkSet come input al metodo find. Confrontare i risultati.
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
I risultati sono diversi perché entrambi gli oggetti slreq.LinkSet contengono oggetti slreq.Link.
Eliminazione e caricamento di insiemi di requisiti e insiemi di collegamenti
È possibile eliminare singoli insiemi di requisiti dalla memoria. Chiudere l'insieme di requisiti MyRequirementSpecification passando l'oggetto slreq.ReqSet come input al metodo close.
close(myImportedReqSet)
Quando si chiude un insieme di requisiti, Requirements Toolbox chiude anche gli insiemi di collegamenti registrati, a meno che non sia ancora caricato un altro artefatto che contiene sorgenti o destinazioni per l'insieme di collegamenti. Cercare gli insiemi di collegamenti ancora caricati.
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
Non è possibile eliminare singoli insiemi di collegamenti dalla memoria. Eliminare invece tutti gli insiemi di requisiti e gli insiemi di collegamenti caricati utilizzando la funzione slreq.clear. Confermare che gli insiemi di collegamenti siano stati eliminati dalla memoria utilizzando la funzione 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
Quando si eliminano i requisiti e i collegamenti dalla memoria, le variabili che rimangono nel workspace non sono più utilizzabili. Eliminare il workspace utilizzando clear.
clear
Caricare l'insieme di requisiti MyRequirementSet utilizzando la funzione slreq.load.
myReqSet = slreq.load("MyRequirementSet");Il caricamento dell'insieme di requisiti carica anche gli insiemi di collegamenti registrati per l'insieme di requisiti.
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
Vedi anche
Classi
slreq.ReqSet|slreq.Requirement|slreq.Reference|slreq.Justification|slreq.LinkSet|slreq.Link