Register
Process Type
Graphical expression
Mind Type
Structured expression
Note Type
Efficient expression

Diagram zahtevSintaksa

Diagram zahtev

Diagram zahtev omogoča vizualizacijo zahtev in njihovih medsebojnih povezav ter razmerij z drugimi elementi dokumentov.

Koda
                            
Kopiraj
Vdelava
requirementDiagram requirement test_req { id: 1 text: the test text. risk: high verifymethod: test } element test_entity { type: simulation } test_entity - satisfies -> test_req

Sintaksa

Diagram zahtev vsebuje tri vrste komponent: zahteve, elemente in razmerja.

Besede v ostrih oklepajih so ključne besede naštevanja, kot je , katerih možnosti so podrobno opisane v tabeli. user_defined... se uporablja povsod, kjer je potreben uporabniški vnos.

Pomembna opomba o uporabniškem besedilu: vse vnose je mogoče oviti v dvojne narekovaje ali pa tudi ne. Vendar mora biti uporabnik pri uporabi vnosov brez narekovajev previden. Če se zaznajo druge ključne besede, upodabljanje v urejevalniku ne uspe.

Zahteva

Definicija zahteve vsebuje vrsto zahteve, ime, ID, besedilo, tveganje in metodo preverjanja. Sintaksa je naslednja:

                            
Kopiraj
Vdelava
<type> user_defined_name { id: user_defined_id text: user_defined text risk: <risk> verifymethod: <method> }

Vrsta, tveganje in metoda so naštevanja, definirana v SysML.

Ključna beseda Možnosti
Vrsta zahteva, funkcionalna zahteva, vmesniška zahteva, zmogljivostna zahteva, fizična zahteva, oblikovna omejitev
Tveganje nizko, srednje, visoko
Metoda preverjanja analiza, pregled, preizkus, predstavitev

Element

Definicija elementa vsebuje ime elementa, vrsto in sklic na dokument, pri čemer so vsi trije uporabniško definirani. Funkcija elementa je zasnovana tako, da ostane lahka, hkrati pa omogoča povezovanje zahtev z deli drugih dokumentov.

                            
Kopiraj
Vdelava
element myElement { type: string docref: some/doc/path }

Oblika Markdown

Kjer je dovoljeno uporabniško prilagajanje besedila (kot so imena, besedilo zahtev, sklici na dokumente elementov itd.), lahko:

  • besedilo ovijete v dvojne narekovaje
  • znotraj dvojnih narekovajev uporabite obliko markdown
Koda
                            
Kopiraj
Vdelava
requirementDiagram requirement "__test_req__" { id: 1 text: "*italicized text* **bold text**" risk: high verifymethod: test }

Razmerje

Razmerje sestavljajo izvorno vozlišče, ciljno vozlišče in vrsta razmerja.

Sledi naslednji obliki definicije:

                            
Kopiraj
Vdelava
{name of source} - <type> -> {name of destination}

ali

                            
Kopiraj
Vdelava
{name of destination} <- <type> - {name of source}

"Izvorno vozlišče" in "ciljno vozlišče" morata biti imeni zahtev ali elementov, definiranih drugje.

Vrsta razmerja je lahko ena od: vsebuje, kopira, izhaja, izpolnjuje, preverja, izpopolnjuje ali sledi.

Podroben primer

Ta primer uporablja vse funkcije tega diagrama.

Koda
                            
Kopiraj
Vdelava
requirementDiagram requirement test_req { id: 1 text: the test text. risk: high verifymethod: test } functionalRequirement test_req2 { id: 1.1 text: the second test text. risk: low verifymethod: inspection } performanceRequirement test_req3 { id: 1.2 text: the third test text. risk: medium verifymethod: demonstration } interfaceRequirement test_req4 { id: 1.2.1 text: the fourth test text. risk: medium verifymethod: analysis } physicalRequirement test_req5 { id: 1.2.2 text: the fifth test text. risk: medium verifymethod: analysis } designConstraint test_req6 { id: 1.2.3 text: the sixth test text. risk: medium verifymethod: analysis } element test_entity { type: simulation } element test_entity2 { type: word doc docRef: reqs/test_entity } element test_entity3 { type: "test suite" docRef: github.com/all_the_tests } test_entity - satisfies -> test_req2 test_req - traces -> test_req2 test_req - contains -> test_req3 test_req3 - contains -> test_req4 test_req4 - derives -> test_req5 test_req5 - refines -> test_req6 test_entity3 - verifies -> test_req5 test_req <- copies - test_entity2

Smer

S stavkom direction lahko diagram upodobite v različnih smereh; veljavne vrednosti so:

  • TB - od zgoraj navzdol (privzeto)
  • BT - od spodaj navzgor
  • LR - od leve proti desni
  • RL - od desne proti levi
Koda
                            
Kopiraj
Vdelava
requirementDiagram direction LR requirement test_req { id: 1 text: the test text. risk: high verifymethod: test } element test_entity { type: simulation } test_entity - satisfies -> test_req

Slog

Zahteve in elemente lahko oblikujete z neposrednim slogom ali razredi. Na splošno pri uporabi sloga ali razreda sprejme seznam imen zahtev ali elementov in seznam imen razredov, kar omogoča dodelitev več razredov hkrati. Edina izjema je okrajšana sintaksa :::, pri kateri lahko operator dodeli več razredov, vendar le eni zahtevi ali elementu naenkrat.

Neposredni slog

Koda
                            
Kopiraj
Vdelava
requirementDiagram requirement test_req { id: 1 text: styling example risk: low verifymethod: test } element test_entity { type: simulation } style test_req fill:#ffa,stroke:#000, color: green style test_entity fill:pink,stroke:#333, color: blue

Definicija razreda je prikazana v spodnjem primeru:

Z classDef definirajte slog, ki ga je mogoče večkrat uporabiti:

Koda
                            
Kopiraj
Vdelava
requirementDiagram requirement test_req { id: 1 text: "class styling example" risk: low verifymethod: test } element test_entity { type: simulation } classDef important fill:#f96,stroke:#333,stroke-width:4px classDef test fill:#ffa,stroke:#000

Privzeti razred

Če je razred poimenovan default, se uporabi za vsa vozlišča. Posebne sloge in razrede je treba definirati za tem, da preglasijo že uporabljeni privzeti slog.

                            
Kopiraj
Vdelava
classDef default fill:pink,stroke:#333,stroke-width:4px;

Uporabi razred

Razrede je mogoče uporabiti na dva načina:

1. Z uporabo sintakse class:

                            
Kopiraj
Vdelava
class test_req,test_entity important

2. Z uporabo okrajšane sintakse operatorja ::: med definiranjem ali po njem:

                            
Kopiraj
Vdelava
requirement test_req:::important { id: 1 text: class styling example risk: low verifymethod: test }
                            
Kopiraj
Vdelava
element test_elem {} test_elem:::myClass

Primer kombinacije

Koda
                            
Kopiraj
Vdelava
requirementDiagram requirement test_req:::important { id: 1 text: "class styling example" risk: low verifymethod: test } element test_entity { type: simulation } classDef important font-weight:bold class test_entity important style test_entity fill:pink,stroke:#333