pflichtenheft.sty 3.55 KB
Newer Older
Andreas Zwinkau's avatar
Andreas Zwinkau committed
1
\ProvidesPackage{pflichtenheft}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
2
\RequirePackage{xcolor}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
3
4
5
\RequirePackage{rdfref-user,rdfref-query}

% cross referencing
Andreas Zwinkau's avatar
Andreas Zwinkau committed
6
7
8
9
10
11
\newcommand\tests[1]{%
  \AddTripleEx{#1}{pfl:is-tested}{yeah}
  \AddProperty{pfl:tests}{#1}}
\newcommand\fulfills[1]{%
  \AddTripleEx{#1}{pfl:is-fulfilled}{yeah}
  \AddProperty{pfl:fulfills}{#1}}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
12
\newcommand\testlink[1]{\hyperref[#1]%
Pavel Zwerschke's avatar
Pavel Zwerschke committed
13
  {\GetProperty{#1}{pfl:tstid}}}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
14
\newcommand\functionalitylink[1]{\hyperref[#1]%
Pavel Zwerschke's avatar
Pavel Zwerschke committed
15
  {\GetProperty{#1}{pfl:fncid}}}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
16
\newcommand\criteriumlink[1]{\hyperref[#1]%
Pavel Zwerschke's avatar
Pavel Zwerschke committed
17
  {\GetProperty{#1}{pfl:crtid}}}
18
\newcommand\marginid[1]{\marginpar{\centering\textbf{#1}}}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
19

Andreas Zwinkau's avatar
Andreas Zwinkau committed
20
21
22
23
24
25
26
\newcommand\PrefixMussKriterium{M}
\newcommand\PrefixKannKriterium{K}
\newcommand\PrefixAbgrenzungsKriterium{A}
\newcommand\PrefixFunktional{F}
\newcommand\PrefixNichtFunktional{N}
\newcommand\PrefixTest{T}

Andreas Zwinkau's avatar
Andreas Zwinkau committed
27
\newcounter{criterium}
28
29
\newcounter{criteriumOpt}
\newcounter{criteriumNot}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
30
\newcounter{functionality}
31
\newcounter{nonfunctionality}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
32
\newcounter{test}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
33
\newcounter{teststep}[test]
Andreas Zwinkau's avatar
Andreas Zwinkau committed
34
35

% document macros
Andreas Zwinkau's avatar
Andreas Zwinkau committed
36
37
\newcommand\criterium[2]{
  \stepcounter{criterium}
38
  \par\textbf{#1}\rdflabel{#2}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
39
  \marginid{\PrefixMussKriterium\arabic{criterium}}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
40
  \AddPropertyEx{pfl:crtname}{#1}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
41
  \AddPropertyEx{pfl:crtid}{\PrefixMussKriterium\arabic{criterium}}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
42
  \IfProperty{#2}{pfl:is-fulfilled}{%
Andreas Zwinkau's avatar
Andreas Zwinkau committed
43
44
    \\ Implementiert durch: \Bind{?f}{pfl:fulfills}{#2}{ \functionalitylink{\GetVal{?f}} }
  }{{\color{red}{NICHT IMPLEMENTIERT}}}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
45
  \par}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
46

47
48
\newcommand\criteriumOptional[2]{
  \stepcounter{criteriumOpt}
49
  \par\textbf{#1}\rdflabel{#2}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
50
  \marginid{\PrefixKannKriterium\arabic{criteriumOpt}}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
51
  \AddPropertyEx{pfl:crtname}{#1}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
52
  \AddPropertyEx{pfl:crtid}{\PrefixKannKriterium\arabic{criteriumOpt}}
53
54
55
56
57
58
59
  \IfProperty{#2}{pfl:is-fulfilled}{%
    \\ Implementiert durch: \Bind{?f}{pfl:fulfills}{#2}{ \functionalitylink{\GetVal{?f}} }
  }{{\color{red} keine entsprechende Anforderung}}
  \par}

\newcommand\criteriumNot[2]{
  \stepcounter{criteriumNot}
60
  \par\textbf{#1}\rdflabel{#2}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
61
  \marginid{\PrefixAbgrenzungsKriterium\arabic{criteriumNot}}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
62
  \AddPropertyEx{pfl:crtname}{#1}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
63
  \AddPropertyEx{pfl:crtid}{\PrefixAbgrenzungsKriterium\arabic{criteriumNot}}
64
65
  \par}

Andreas Zwinkau's avatar
Andreas Zwinkau committed
66
67
\newcommand\functionality[2]{
  \stepcounter{functionality}
68
  \par\textbf{#1}\rdflabel{#2}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
69
  \marginid{\PrefixFunktional\arabic{functionality}}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
70
  \AddPropertyEx{pfl:fncname}{#1}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
71
  \AddPropertyEx{pfl:fncid}{\PrefixFunktional\arabic{functionality}}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
72
  \IfProperty{#2}{pfl:is-tested}{%
Andreas Zwinkau's avatar
Andreas Zwinkau committed
73
74
75
    \\ Getestet durch: \Bind{?t}{pfl:tests}{#2}{ \testlink{\GetVal{?t}} }
  }{{\color{red}{NICHT GETESTET}}\\}
  Implementiert: \Bind{#2}{pfl:fulfills}{?c}{ \criteriumlink{\GetVal{?c}} }
Andreas Zwinkau's avatar
Andreas Zwinkau committed
76
77
  \par}

78
79
\newcommand\nonFunctionality[2]{
  \stepcounter{nonfunctionality}
80
  \par\textbf{#1}\rdflabel{#2}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
81
  \marginid{\PrefixNichtFunktional\arabic{nonfunctionality}}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
82
  \AddPropertyEx{pfl:fncname}{#1}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
83
  \AddPropertyEx{pfl:fncid}{\PrefixNichtFunktional\arabic{nonfunctionality}}
84
85
  \par}

Andreas Zwinkau's avatar
Andreas Zwinkau committed
86
87
\newcommand\test[2]{
  \stepcounter{test}
88
  \par\textbf{#1}\rdflabel{#2}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
89
  \marginid{\PrefixTest\arabic{test}}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
90
  \AddPropertyEx{pfl:tstname}{#1}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
91
  \AddPropertyEx{pfl:tstid}{\PrefixTest\arabic{test}}
Andreas Zwinkau's avatar
typos    
Andreas Zwinkau committed
92
  \\ Testet: \Bind{#2}{pfl:tests}{?f}{ \functionalitylink{\GetVal{?f}} }
Andreas Zwinkau's avatar
Andreas Zwinkau committed
93
  \par}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
94
95

\newcommand\teststep[3]{\stepcounter{teststep}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
96
{\PrefixTest\arabic{test}.\arabic{teststep}}
Andreas Zwinkau's avatar
Andreas Zwinkau committed
97
98
99
100
101
102
\begin{minipage}[t]{0.8\textwidth}\raggedright
\textbf{Stand:} #1\par
\textbf{Aktion:} #2\par
\textbf{Reaktion:} #3\par
\end{minipage}
\par}
103
104
105
106
107
108
109
110

\newcommand\teststepnostate[2]{\stepcounter{teststep}
{\PrefixTest\arabic{test}.\arabic{teststep}}
\begin{minipage}[t]{0.8\textwidth}\raggedright
	\textbf{Aktion:} #1\par
	\textbf{Reaktion:} #2\par
\end{minipage}
\par}