diff --git a/images/anforderungen.drawio b/images/anforderungen.drawio index c2f81a178ddf9519830b5ec1847c9a77f1912b6c..3fda3a610d7673ea561490b038da9e39854c7f6e 100644 --- a/images/anforderungen.drawio +++ b/images/anforderungen.drawio @@ -1 +1 @@ -<mxfile host="app.diagrams.net" modified="2021-06-18T10:54:37.739Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36" etag="CbMnW_Yl6oEYN3M-BnzR" version="14.8.0" type="device"><diagram id="EDEgkUB7I-RHyl0mDD5X" name="Page-1">7Vxbk6I4FP41PPYWAQV9dBi3Zx+ma3bcrdmZl60IESgxcUMYtX/9QhMEEmgdxCbdbZVlkRNu+fKdW3JUM53N/p7CbfCZeCjSDN3ba+ZHzTDAyDC07KN7h1xiW1zg09DjJ5WCRfiIuFDn0iT0UFw7kRESsXBbF7oEY+SymgxSSnb101Ykqj91C30kCRYujGTpt9BjQS6dGHYp/4RCPyieDKxp3rOBxcl8JHEAPbKriMy5ZjqUEJYfbfYOijLwClzy635v6T2+GEWYnXNBPL7fkge4BaY/JZ/tf//89vDjjt/lJ4wSPuDZ0kPuOsF+JiY4/V4cYoY2EK8I9RBNexDmI2KHAiZKEuyh7ElAMz/sgpChxRa6We8uJUYqC9gm4t3ymxevgShD+4qIj+QekQ1i9JCewnuNMUeV08qY8PaunCRQIB9UJsjiMsh54R9vXUKXHnD0fgFJQ0LyK9pS4iWPIaJLSNcoZEdI/0IxiwcH0TTrIILp0CCaEoiLNYyqAA4M2WiiGmQjWYOT1Q5ib3CsLOXoNZawmmO2C911lFq1GCqC29hSzbZZEm4SSAh7s8zdpi03gnEcunVc0D5k/6TH+m9j3vpe6fmYDV0vGoeigdOXr1yUNb9X+8rLnlrFda1zEJOEuui0MjFIfcROEwl5teBBntHKjI0bJqyQURRBFv6shxxNs8if8IWEmJWEmep1woyAQIR83Pyqaogg3kjwqqbIqBwY6UZPpDoOuzvPbNmW0WVq9pVRzREY1QGyh1bNiQTZjxQwVfASTdnweE3fiykbn2nK7Jspu4YpK977RjTBUt2I1jPRGlL4JF5pjql9cAJlEidbVy2oBXLGPksY2aSsihXKOEXghnehQM7Sv0AKowhFSiE3GSmHnJysv1GnUFilk16h0MKbW+jZLchrHe+eauaNaleh2m15qIWSN6b1zLSGBSIMo0Mt6tA9RNPvefomSxzGMRo8EJkqt2kA5GWjRegGiAYqBm4K4CUvG83W64RCpgRgACi31WLIaWm+j6wAWBNQA2v4VLRwmBWw/t7sUKQAs3TlkihDTj8lmN5GuFFYnZPxhqFWvDERwoSR2TXeELcPxBtdOd4w+sjXO9KmC0VbqXaaQc1p+NkkHYpqQDfqFDka81/mmrjOJt7o2lyTE/ZVgtcsJDgrRjP0mVIFWEA9vyCnoTiNadmdyjAaE+VglHOst+pez7WNalV7WIJT7JzNSyr80t5VTkLfqne1OnvXQZ3rtCffagOBaddbN7LuDg+JT8cBteaOE60+3f+nP1/lfLkHkMx9A0vaHemQi0ONaLUno3qS1RTpf2CGKHzyqf240MsABC0sHQzAV5mgSrbphEt9TtGqBrGdYkOZNXFHfWR0NGtmW03DC5m1V7nFdy2eqec+e+OZLW672C/Ls4b9PcfUps4yNdsU+j3We1zkCMTi3OEdQZ+pVEU9S2U9oaCgpp6ltvaqoOcWBbZT66agFypoQyJVKOgOuoEqCiru6w2voD1Wg4MuCqoPpqBNVTPt3Lpp6KUZqFwO/jUv0XXXqU6tSORXfiOKaITYI3uqY7jSr28vUmSxoGF4RW6ogu7uapWNhZ8tijmpyTkHlVFlvS9VHr+wKsvrI++GapNX6TS6Mk3cEuwvv0+b5R8/5KeXf59hzv8H</diagram></mxfile> \ No newline at end of file +<mxfile host="app.diagrams.net" modified="2021-07-04T17:25:26.321Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" etag="Uxa_n9Nu9DTKBKNlNK_y" version="14.8.4" type="device"><diagram id="EDEgkUB7I-RHyl0mDD5X" name="Page-1">7Vxdk5o8GP01XO47QET00lq77XS609Z2ut2bToQIrJjYEKrur39hIQoJfqyjJus6s+OQBwhwOM/HScIaoD9d3FI4C78QH8WGbfoLA7w3bNtq2baR/5n+srC4plMYAhr55UFrwzB6QqXRLK1p5KOkdiAjJGbRrG70CMbIYzUbpJTM64eNSVy/6gwGSDIMPRjL1l+Rz8LC2rHdtf0jioKQX9lqd4s9U8gPLp8kCaFP5hUTGBigTwlhxdZ00UdxDh7HpTjvw4a9qxujCLN9Tkic2xm5gzMLBF3yxf3z7dfdw03Zyz8Yp+UD90Y+8iYpDnIzwdnvcJkwNIV4TKiPaLYH4fKJ2JLDREmKfZRfyTLAu3kYMTScQS/fO8+IkdlCNo3L3fKd89tAlKFFxVQ+yS0iU8ToMjuk3AvMEtWSVla7bM/XL8niyIeVF8SPgyUvglXXa+iyjRK9FyBpS0h+RzNK/PQpQnQE6QRFbAXpD5SwRDmIlgDiyumUgQgkEIcTGFcB1AwyoByyluzB6XgOsa8dVi3lWDkSVgPM5pE3ibOolkBNcBNjG1Ae29oSbhJICPu9PN1mLS+GSRJ5dVzQImL3le3f2bb5n1O23uePbvLGkjdwdvP31UblrLy5Pu25xc/b+A4SklIP7XYmBmmA2G4iIb9WPMhvtPLGnIYXxm0UxZBF/+olR9NbLK/wlUSYrQnT3eRovIviucuzqiWC0BFobYhuvKMCGKmjZ1KtHvtwnrlyLKOjLOxr45oOaNUzpqvaNTsSZA8ZYLritSKYMry6byWUOXuGMvcyQ1nX2ZBEzxTK+H1fiSZEqivRjky0BgmfJmOjD4x3/VAb4SQWtS3lRa0lK/Zeysg0Y1WikeIUU2iroxw4WaV/hRTGMYr1Rk65/rRksX6hSYFHpZ1ZgXvhNS0cOS3IYx0vp9qBtDmEouegGtCKaqsMyKlmv1aqNch2DONlLReYPqLZ7yC7kxGOkgQpTw/i8GRbfXqQxfww8kJEQx3SqYiXox4vWcz3JpOUQqYlYK5ywGxZKxSTe8qxEms1V7k84PmygtXP6RzF6nklYtXuKsdKVgQSShdS15YhZ2exwXvUpNjoCDVCCxxYbDh2vaOO2NGJiw37GBLqddS1e1NNLwllmQJF7M6hha04ESp2dGquyRpqnOIJiwjO1wfZZk+rNTFiXnCUpwV53hhn9Sy7eU0oWkA5jLK+utTsum/E02v+vS0q+UMHjSxx/v3cyVUWoJeaXPdlWlsrplndI6XWlRY9/ZhR+2Z5lwbUCWl70O/H44+3f83t60410+3WOXV7I1qbpaiZ5qs8zE+YIQqfc6oGKVSc6zunlm/E7xjyVLewts2tqmFtG6E0iWqrKCY63IvXr4kLmk8nGBphPcaci26F2r4825ZmNeGZK07uHTrj4oozLu55edawHrcPjG5/lIVoCgNdJ+BtU3UieDNKqmFR1jYmXR30uA7aoKO4g86hF+rqoM45h4wagXszy3ObVi1so9LVQ48sQOX1ud+LNZPeJHOgMYmDykd7iMaIPbHnJQw6fg4pTQnaqh25YVnqpXqyu6cnc8rp6srmsVzZObMry8Mjl0q1zmUkjUOZJk4InlDfB+bPb3fJZwAfnEln+Tgkj/ePr/SjDoEFp/0y0lI7ktTdUVXsPZIkxjSxzjmYaVlz/T8fisPX/zkDDP4H</diagram></mxfile> \ No newline at end of file diff --git a/images/anforderungen.pdf b/images/anforderungen.pdf deleted file mode 100644 index f071f3df0e5649fd69089c43cb801e1ddedc5c88..0000000000000000000000000000000000000000 Binary files a/images/anforderungen.pdf and /dev/null differ diff --git a/images/anforderungen.png b/images/anforderungen.png index ecf48bcc3b73409b7ef01d766741b95f81275ce0..43e9abaca267128701f659cafbc2548f93d0f37e 100644 Binary files a/images/anforderungen.png and b/images/anforderungen.png differ diff --git a/images/anforderungen.svg b/images/anforderungen.svg deleted file mode 100644 index daf19d0c80f0c3be49ae4f12658b57f4dd86f320..0000000000000000000000000000000000000000 --- a/images/anforderungen.svg +++ /dev/null @@ -1,3 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1192px" height="241px" viewBox="-0.5 -0.5 1192 241" content="<mxfile host="app.diagrams.net" modified="2021-06-18T10:58:22.748Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36" etag="7z1CNP0ir72fenljZpXn" version="14.8.0" type="device"><diagram id="EDEgkUB7I-RHyl0mDD5X" name="Page-1">7Vxbk6I4FP41PPYWAQV9dBi3Zx+ma3bcrdmZl60IESgxcUMYtX/9QhMEEmgdxCbdbZVlkRNu+fKdW3JUM53N/p7CbfCZeCjSDN3ba+ZHzTDAyDC07KN7h1xiW1zg09DjJ5WCRfiIuFDn0iT0UFw7kRESsXBbF7oEY+SymgxSSnb101Ykqj91C30kCRYujGTpt9BjQS6dGHYp/4RCPyieDKxp3rOBxcl8JHEAPbKriMy5ZjqUEJYfbfYOijLwClzy635v6T2+GEWYnXNBPL7fkge4BaY/JZ/tf//89vDjjt/lJ4wSPuDZ0kPuOsF+JiY4/V4cYoY2EK8I9RBNexDmI2KHAiZKEuyh7ElAMz/sgpChxRa6We8uJUYqC9gm4t3ymxevgShD+4qIj+QekQ1i9JCewnuNMUeV08qY8PaunCRQIB9UJsjiMsh54R9vXUKXHnD0fgFJQ0LyK9pS4iWPIaJLSNcoZEdI/0IxiwcH0TTrIILp0CCaEoiLNYyqAA4M2WiiGmQjWYOT1Q5ib3CsLOXoNZawmmO2C911lFq1GCqC29hSzbZZEm4SSAh7s8zdpi03gnEcunVc0D5k/6TH+m9j3vpe6fmYDV0vGoeigdOXr1yUNb9X+8rLnlrFda1zEJOEuui0MjFIfcROEwl5teBBntHKjI0bJqyQURRBFv6shxxNs8if8IWEmJWEmep1woyAQIR83Pyqaogg3kjwqqbIqBwY6UZPpDoOuzvPbNmW0WVq9pVRzREY1QGyh1bNiQTZjxQwVfASTdnweE3fiykbn2nK7Jspu4YpK977RjTBUt2I1jPRGlL4JF5pjql9cAJlEidbVy2oBXLGPksY2aSsihXKOEXghnehQM7Sv0AKowhFSiE3GSmHnJysv1GnUFilk16h0MKbW+jZLchrHe+eauaNaleh2m15qIWSN6b1zLSGBSIMo0Mt6tA9RNPvefomSxzGMRo8EJkqt2kA5GWjRegGiAYqBm4K4CUvG83W64RCpgRgACi31WLIaWm+j6wAWBNQA2v4VLRwmBWw/t7sUKQAs3TlkihDTj8lmN5GuFFYnZPxhqFWvDERwoSR2TXeELcPxBtdOd4w+sjXO9KmC0VbqXaaQc1p+NkkHYpqQDfqFDka81/mmrjOJt7o2lyTE/ZVgtcsJDgrRjP0mVIFWEA9vyCnoTiNadmdyjAaE+VglHOst+pez7WNalV7WIJT7JzNSyr80t5VTkLfqne1OnvXQZ3rtCffagOBaddbN7LuDg+JT8cBteaOE60+3f+nP1/lfLkHkMx9A0vaHemQi0ONaLUno3qS1RTpf2CGKHzyqf240MsABC0sHQzAV5mgSrbphEt9TtGqBrGdYkOZNXFHfWR0NGtmW03DC5m1V7nFdy2eqec+e+OZLW672C/Ls4b9PcfUps4yNdsU+j3We1zkCMTi3OEdQZ+pVEU9S2U9oaCgpp6ltvaqoOcWBbZT66agFypoQyJVKOgOuoEqCiru6w2voD1Wg4MuCqoPpqBNVTPt3Lpp6KUZqFwO/jUv0XXXqU6tSORXfiOKaITYI3uqY7jSr28vUmSxoGF4RW6ogu7uapWNhZ8tijmpyTkHlVFlvS9VHr+wKsvrI++GapNX6TS6Mk3cEuwvv0+b5R8/5KeXf59hzv8H</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="140" y="90" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 120px; margin-left: 141px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Abdeckung von Systemanforderungen</div></div></div></foreignObject><text x="200" y="124" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Abdeckung von System...</text></switch></g><rect x="220" y="0" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 30px; margin-left: 221px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Reproduzierbarkeit von Tests</div></div></div></foreignObject><text x="280" y="34" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Reproduzierbarkeit v...</text></switch></g><rect x="370" y="0" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 30px; margin-left: 371px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Skalierbarkeit</div></div></div></foreignObject><text x="430" y="34" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Skalierbarkeit</text></switch></g><rect x="520" y="0" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 30px; margin-left: 521px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Aufwand</div></div></div></foreignObject><text x="580" y="34" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Aufwand</text></switch></g><rect x="450" y="90" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 120px; margin-left: 451px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Entwicklungsaufwand</div></div></div></foreignObject><text x="510" y="124" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Entwicklungsaufwand</text></switch></g><path d="M 580 60 L 515.85 87.49" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 511.03 89.56 L 516.08 83.59 L 515.85 87.49 L 518.84 90.02 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="304" y="180" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 210px; margin-left: 305px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Arbeitsaufwand</div></div></div></foreignObject><text x="364" y="214" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Arbeitsaufwand</text></switch></g><rect x="450" y="180" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 210px; margin-left: 451px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Zeitaufwand</div></div></div></foreignObject><text x="510" y="214" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Zeitaufwand</text></switch></g><path d="M 510 150 L 370.24 178.72" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 365.1 179.77 L 371.25 174.94 L 370.24 178.72 L 372.66 181.79 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 510 150 L 510 173.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 510 178.88 L 506.5 171.88 L 510 173.63 L 513.5 171.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="590" y="90" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 120px; margin-left: 591px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Ausführbarkeit</div></div></div></foreignObject><text x="650" y="124" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Ausführbarkeit</text></switch></g><rect x="590" y="180" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 210px; margin-left: 591px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Automatisierbarkeit</div></div></div></foreignObject><text x="650" y="214" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Automatisierbarkeit</text></switch></g><rect x="730" y="180" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 210px; margin-left: 731px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Parallelisierbarkeit</div></div></div></foreignObject><text x="790" y="214" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Parallelisierbarkeit</text></switch></g><path d="M 650 150 L 650 173.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 650 178.88 L 646.5 171.88 L 650 173.63 L 653.5 171.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 650 150 L 783.77 178.67" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 788.91 179.77 L 781.33 181.72 L 783.77 178.67 L 782.8 174.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 580 60 L 644.15 87.49" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 648.97 89.56 L 641.16 90.02 L 644.15 87.49 L 643.92 83.59 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="870" y="0" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 30px; margin-left: 871px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Analysierbarkeit der Ergebnisse</div></div></div></foreignObject><text x="930" y="34" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Analysierbarkeit der...</text></switch></g><rect x="730" y="0" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 30px; margin-left: 731px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Sicherheit</div></div></div></foreignObject><text x="790" y="34" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Sicherheit</text></switch></g><rect x="1020" y="0" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 30px; margin-left: 1021px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Akkuratheit</div></div></div></foreignObject><text x="1080" y="34" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Akkuratheit</text></switch></g><rect x="1071" y="90" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 120px; margin-left: 1072px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">System</div></div></div></foreignObject><text x="1131" y="124" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">System</text></switch></g><rect x="930" y="180" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 210px; margin-left: 931px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Umwelt</div></div></div></foreignObject><text x="990" y="214" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Umwelt</text></switch></g><path d="M 1080 60 L 1125.51 86.77" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1130.04 89.43 L 1122.23 88.9 L 1125.51 86.77 L 1125.78 82.87 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1080 60 L 993.82 174.91" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 990.67 179.11 L 992.07 171.41 L 993.82 174.91 L 997.67 175.61 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="30" y="180" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 210px; margin-left: 31px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">funktionale Anforderungen</div></div></div></foreignObject><text x="90" y="214" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">funktionale Anforder...</text></switch></g><rect x="170" y="180" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 210px; margin-left: 171px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">nicht-funktionale Anforderungen</div></div></div></foreignObject><text x="230" y="214" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">nicht-funktionale An...</text></switch></g><path d="M 200 150 L 96.14 178.32" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 91.08 179.71 L 96.91 174.49 L 96.14 178.32 L 98.75 181.24 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 200 150 L 225.5 175.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 229.21 179.21 L 221.78 176.73 L 225.5 175.5 L 226.73 171.78 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="70" y="0" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 30px; margin-left: 71px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Abdeckung</div></div></div></foreignObject><text x="130" y="34" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Abdeckung</text></switch></g><rect x="0" y="90" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 120px; margin-left: 1px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Umwelt und Interaktionen</div></div></div></foreignObject><text x="60" y="124" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Umwelt und Interakti...</text></switch></g><path d="M 130 60 L 65.85 87.49" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 61.03 89.56 L 66.08 83.59 L 65.85 87.49 L 68.84 90.02 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 130 60 L 194.15 87.49" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 198.97 89.56 L 191.16 90.02 L 194.15 87.49 L 193.92 83.59 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="304" y="90" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 120px; margin-left: 305px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Übertragbarkeit</div></div></div></foreignObject><text x="364" y="124" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Übertragbarkeit</text></switch></g><path d="M 450 120 L 430.37 120" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 425.12 120 L 432.12 116.5 L 430.37 120 L 432.12 123.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="730" y="90" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 120px; margin-left: 731px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Überwachbarkeit</div></div></div></foreignObject><text x="790" y="124" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Überwachbarkeit</text></switch></g><path d="M 710 120 L 723.63 120" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 728.88 120 L 721.88 123.5 L 723.63 120 L 721.88 116.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="870" y="90" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 120px; margin-left: 871px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Rückverfolgbarkeit verletzter Systemanforderungen</div></div></div></foreignObject><text x="930" y="124" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Rückverfolgbarkeit v...</text></switch></g><path d="M 930 60 L 930 83.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 930 88.88 L 926.5 81.88 L 930 83.63 L 933.5 81.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 790 60 L 790 83.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 790 88.88 L 786.5 81.88 L 790 83.63 L 793.5 81.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Viewer does not support full SVG 1.1</text></a></switch></svg> \ No newline at end of file diff --git a/images/konzept.svg b/images/konzept.svg deleted file mode 100644 index 26bb8fda42f4e1e78bc613b0935aa435bc3cbd2c..0000000000000000000000000000000000000000 --- a/images/konzept.svg +++ /dev/null @@ -1,3 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="641px" height="181px" viewBox="-0.5 -0.5 641 181" content="<mxfile host="app.diagrams.net" modified="2021-06-26T12:12:43.262Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" etag="ku7JttpDox93Vf9c3W14" version="14.8.0" type="device"><diagram id="BvBVtmby5S5bfYz1Z3JI" name="Page-1">7VjbcpswEP0aP9aDxMXwmDip25nmMnGaxo8qKIaOjBghxzhfXxHERQgcmuB00umT2UW7ls6eo5WYmPNNtmAoCS9ogMkEGkE2Mc8mEALDNMVP7tkXHgsYhWPNokAOqh3L6AmXkdK7jQKcKgM5pYRHier0aRxjnys+xBjdqcMeKFH/NUFrrDmWPiK690cU8LDwunBW+7/gaB2W/wwcr3izQeVguZI0RAHdNVzm+cScM0p58bTJ5pjk4JW4FHGfe95WE2M45kMC7hbe3J/R++uLy8Xqa3h7dfcw/ySzPCKylQu+vbm6lBPm+xKFdBdtCIqFdSoDMOM4650JqNYniIHpBnO2F0NkgCsRkZRwpLmr8YWW9IVNbMs4JGu6rjLXyxYPcuV/gALUUPieJAjlcc+MJhogjG7jAOc5gcBkF0YcLxPk5293QgjCF/INka8HQdZfnl4coa3gaOk4ArsLxzJudBxnGo4acDgOTnJZCssnKE0jX8UKZxG/F8/GVMyyMFe5KZ/PsqaxL41YzP6+aawaKXK7jnu2ysBiejjQ9oAWlcUS6Jb5+MDaLbk5IbbGh0rqdpe0UbSumpU+hgni0aM63a46yn+4ppFYSMUY01OlV3GmTFEsU0Y1N5NWIqulYWC25lLgoCV6plW17NczzdWYdnO1fAeVHhakBSwFFc+dWjNdlLBTlO7UcI6kS28EXVYSm85sRWUvSKwSdFPNMkevoEfUpTtQl9a/oUurpUuvlejIurQ0pp0EKOGYvU2bjHIBL42F6RnjaLU6dlQ7GJzaHVp19KI7xzqH2KPqFCo6BQN1ChSdwnfTKfwIOoW23SKN9TF16ozINKC0g0Z7eKkj1F1g1SDe0Zk29KQG/3eEEZhWXuSbzBJVXEqTMh7SNY0ROa+9p3VzyGtfj/lGaSKp8gtzvpffC9CW075rxF+h2NBDR89lYDB33tRtgH75X6An/JO+rVeP0JsdMKg3gw75Ha03A/0jgYZTGqIkf3wgOJN752nnNpoKZvBB92C1HR/uxn3X4He8BQ8lPughQLO8Rtc1yRhpe22d/jTeDN5e28fIdqJXb6/CrD8OFsPrT6zm+W8=</diagram></mxfile>"><defs/><g><path d="M 0 23 L 0 0 L 240 0 L 240 23" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 0 23 L 0 180 L 240 180 L 240 23" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 0 23 L 240 23" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><g fill="#000000" font-family="Helvetica" font-weight="bold" pointer-events="none" text-anchor="middle" font-size="12px"><text x="119.5" y="16">TRON</text></g><rect x="25" y="40" width="150" height="125" rx="18.75" ry="18.75" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 103px; margin-left: 26px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">Uppaal Modell</div></div></div></foreignObject><text x="100" y="106" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Uppaal Modell</text></switch></g><path d="M 273 71 L 327.63 70.54" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 332.88 70.49 L 325.91 74.05 L 327.63 70.54 L 325.85 67.05 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="334" y="38.47" width="120" height="128.06" rx="18" ry="18" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 103px; margin-left: 335px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">ROS</div></div></div></foreignObject><text x="394" y="106" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">ROS</text></switch></g><path d="M 334 134.51 L 279.37 134.05" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 274.12 134.01 L 281.15 130.57 L 279.37 134.05 L 281.09 137.57 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="180" y="72.5" width="126" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" transform="rotate(90,243,102.5)" pointer-events="none"/><g transform="translate(-0.5 -0.5)rotate(90 243 102.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 124px; height: 1px; padding-top: 103px; margin-left: 181px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">Adapter</div></div></div></foreignObject><text x="243" y="106" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Adapter</text></switch></g><path d="M 175 71.25 L 206.63 71.04" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 211.88 71.01 L 204.91 74.55 L 206.63 71.04 L 204.86 67.55 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 213 134 L 181.37 133.79" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><path d="M 176.12 133.76 L 183.14 130.3 L 181.37 133.79 L 183.09 137.3 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/><rect x="530" y="72.5" width="110" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 103px; margin-left: 531px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">Gazebo</div></div></div></foreignObject><text x="585" y="106" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Gazebo</text></switch></g><path d="M 473.5 107.5 L 473.5 118 L 454.5 102.5 L 473.5 87 L 473.5 97.5 L 510.5 97.5 L 510.5 87 L 529.5 102.5 L 510.5 118 L 510.5 107.5 Z" fill="none" stroke="#000000" stroke-linejoin="round" stroke-miterlimit="10" pointer-events="none"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Viewer does not support full SVG 1.1</text></a></switch></svg> \ No newline at end of file diff --git a/images/tron_konfigurierung.drawio b/images/tron_konfigurierung.drawio new file mode 100644 index 0000000000000000000000000000000000000000..5999374ab241c227b48b1c6ac446a4751270bcde --- /dev/null +++ b/images/tron_konfigurierung.drawio @@ -0,0 +1 @@ +<mxfile host="app.diagrams.net" modified="2021-07-04T15:48:35.214Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" etag="yscNUE4UDWNlkbHFPzsu" version="14.8.1" type="device"><diagram id="VdpEpaqEMz-mNJss-KDH" name="Page-1">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</diagram></mxfile> \ No newline at end of file diff --git a/images/tron_konfigurierung.png b/images/tron_konfigurierung.png new file mode 100644 index 0000000000000000000000000000000000000000..20495cdd82b32e9d5356ce2ba20c45d640390008 Binary files /dev/null and b/images/tron_konfigurierung.png differ diff --git a/literatur.bib b/literatur.bib index 9f0b09ab836f9db914b9da5a2b31c6c9fea0f3ed..cf2867a7278cca6bf9d30a629d3a8f6fdca809e5 100644 --- a/literatur.bib +++ b/literatur.bib @@ -368,4 +368,15 @@ readstatus = {read}, } +@Misc{TronManual, + author = {Kim G. Larsen and Marius Mikucionis and Brian Nielsen}, + month = oct, + title = {Tron User Manual}, + year = {2007}, + file = {:Uppaal_tron_user_manual.pdf:PDF}, + ranking = {rank5}, + readstatus = {read}, + school = {Aalborg University}, +} + @Comment{jabref-meta: databaseType:bibtex;} diff --git a/sections/grundlagen.tex b/sections/grundlagen.tex index bd407eaa63905213dd82be96ac539e1c7d5cf96c..9e736f61f05b68aef41f78a7bf652c1a207490f4 100644 --- a/sections/grundlagen.tex +++ b/sections/grundlagen.tex @@ -36,13 +36,13 @@ Bei Mensch-Roboter-Interaktionen stellen technische Fehler neben schlechten Umwe Daher ist bei Cyber-Physischen Systemen Sicherheit als äußerst relevante Anforderung in den Fokus der Industrie gerückt. Besonders kollaborativ arbeitende Systeme müssen diesbezüglich ausreichend getestet werden, um Unfällen vorzubeugen. Bei diesen sollte zunächst in einer Simulation und darauf folgend in einer kontrollierten Umgebung getestet werden, bevor Tests im Einsatzumfeld stattfinden. Die Anzahl an Unfällen im Zusammenhang mit einem System kann als Indikator für die Sicherheit dienen. Ein hauptsächliches Problem hierbei ist herauszufinden, ob die Unfälle durch das System oder durch den Menschen verursacht wurden.\cite{Antao2018} \subsection{Übersicht} +Die Anforderungen an die Testmethodiken cyber-physischer und insbesondere Robotik-Systeme stellen für die Forschung momentan eine Herausforderung dar. Simulationen, die in \cref{grundlagen:simulationen} diskutiert werden, können das Erfüllen vieler Anforderungen erleichtern, stellen dabei aber selbst einige Hürden. Die Abdeckung sowie der Aufwand müssen vor allem im Rahmen der Testentwicklung beachtet und umgesetzt werden. \cref{grundlagen:testanforderungen:uebersicht} gibt einen Überblick über die geforderten Eigenschaften. \begin{figure}[h] \centering - \includegraphics[scale=0.37]{./anforderungen.png} + \includegraphics[scale=0.6]{./anforderungen.png} \caption{Übersicht über die Anforderungen an die Testmethodik} \label{grundlagen:testanforderungen:uebersicht} \end{figure} -Die Anforderungen an die Testmethodiken cyber-physischer und insbesondere Robotik-Systeme stellen für die Forschung momentan eine Herausforderung dar. Simulationen, die in \cref{grundlagen:simulationen} diskutiert werden, können das Erfüllen vieler Anforderungen erleichtern, stellen dabei aber selbst einige Hürden. Die Abdeckung sowie der Aufwand müssen vor allem im Rahmen der Testentwicklung beachtet und umgesetzt werden. \cref{grundlagen:testanforderungen:uebersicht} gibt einen Überblick über die geforderten Eigenschaften. \section{Simulationen}\label{grundlagen:simulationen} Simulationen ermöglichen Entwicklern eine einfachere Umsetzung der in \cref{grundlagen:testanforderungen} gestellten Anforderungen, da das System nicht in seinem Einsatzumfeld getestet werden muss. Neben Kosten und Zeit der Testausführung wird insbesondere bei kollaborativen Robotiksystemen eine größere Sicherheit sowie Reproduzierbarkeit gewährleistet. Allerdings sind als Trade-off bezüglich der Akkuratheit Einbußen anzunehmen.\cite{Sarhadi2014} diff --git a/sections/konzept.tex b/sections/konzept.tex index 27b723047ecdc8666c624c5741391f891b5c9023..5a64019e9b2ab6a34292db05ff06be2c6945f12c 100644 --- a/sections/konzept.tex +++ b/sections/konzept.tex @@ -13,11 +13,12 @@ Allerdings können komplexe Zusammenhänge, auch abhängig von der gewünschten \end{figure} \section{Modell in Uppaal} -Ein System in Uppaal besteht aus einem oder mehreren Automaten. Sogenannte Channel und global deklarierte Variablen sorgen für eine Synchronisation dieser. Die Automaten selbst sind als erweiterte endliche nicht-deterministische Automaten einzuordnen. Durch Guards kann festgelegt werden, wann eine Kante verfügbar ist. Beim Entlanggehen einer Kante, welches auch durch die erwähnten Channel ausgelöst werden kann, können Variablen (global oder lokal) angepasst werden. Invarianten können global oder nur in bestimmten Zuständen angegeben werden. \cref{konzept:uppaal_tor} zeigt beispielhaft ein modelliertes System. +Ein System in Uppaal besteht aus einem oder mehreren Automaten. Sogenannte Channel und global deklarierte Variablen sorgen für eine Synchronisation dieser. Die Automaten selbst sind als erweiterte endliche nicht-deterministische Automaten einzuordnen. Durch Guards kann festgelegt werden, wann eine Kante verfügbar ist. Beim Entlanggehen einer Kante, welches auch durch die erwähnten Channel ausgelöst werden kann, können Variablen (global oder lokal) angepasst werden. Channel bieten sich als Modellierung der ROS Topics an. +Invarianten können global oder nur in bestimmten Zuständen angegeben werden. \cref{konzept:uppaal_tor} zeigt beispielhaft ein modelliertes System eines automatischen Tores mit einem dazugehörigen Schlüssel. Beim probabilistischen Auslösen dieses Schlüssels (mit einer Wahrscheinlichkeit von 1:101) wird das Tor über den Channel \textit{auslösen} informiert, wechselt in den Zustand \textit{öffnend} und setzt die Variable "zeit" auf 0. Nach 10000 vergangenen Zeiteinheiten wechselt das Tor dann in den Zustand \textit{offen}. Das Schließen läuft analog dazu ab. \begin{figure}[h] \centering \includegraphics[scale=.4]{./uppaal_tor.png} - \caption{zeigt ein Modell eines automatischen Tores mit einem dazugehörigen Schlüssel. Beim probabilistischen Auslösen dieses Schlüssels (mit einer Wahrscheinlichkeit von 1:101) wird das Tor über den Channel "auslösen" informiert, wechselt in den Zustand "oeffnend" und setzt die Variable "zeit" auf 0. Nach 10000 vergangenen Zeiteinheiten wechselt das Tor dann in den Zustand "offen". Das Schließen läuft analog dazu ab.} + \caption{Beispiel-Modell in Uppaal} \label{konzept:uppaal_tor} \end{figure} @@ -26,4 +27,16 @@ Folglich kann das Systemverhalten modelliert werden. Da für die Testgenerierung auch ein Modell für die Inputs des Systems nötig ist, können die Modelle auch innerhalb von Uppaal verifiziert werden. Ebenso können formale Eigenschaften mithilfe des integrierten Verifiers überprüft werden. Wie in \cref{grundlagen:testentwicklung:modell-basiert} erwähnt können, falls schon eine Implementierung vorhanden ist, auch Modelle die zur Entwicklung verwendet werden zur Verifizierung beitragen. \section{TRON Adapter} -Channels, welche sowohl im modellierten Input als auch im System vorkommen stellen die Schnittstellen für den Adapter dar. Wird im Inputmodell ein Channel verwendet, so wird dieser sowohl im modellierten als auch im echten (oder simulierten) System über den Adapter ausgelöst. Asynchron dazu gibt das System den Output zurück an den Adapter, welcher dann mit den Gegebenheiten des Modells verglichen wird. Als built-in Adapter sind der sogenannte TraceAdapter, welcher über stdin/stdout kommuniziert, und der SocketAdapter, welcher zur Kommunikation eine TCP/IP-Verbindung aufbaut, verfügbar. Auch eigene Implementationen werden als dynamische C-Bibliothek ermöglicht. Für ROS bietet sich der SocketAdapter an, da die ROS-interne Kommunikation selbst auf TCP aufsetzt und so auch Übertragbarkeit gewährleistet wird. \ No newline at end of file +Channels, welche sowohl im modellierten Input als auch im System vorkommen stellen die Schnittstellen für den Adapter dar. Wird im Inputmodell ein Channel verwendet, so wird dieser sowohl im modellierten als auch im echten (oder simulierten) System über den Adapter ausgelöst. Asynchron dazu gibt das System den Output zurück an den Adapter, welcher dann mit den Gegebenheiten des Modells verglichen wird. Als built-in Adapter sind der sogenannte TraceAdapter, welcher über stdin/stdout kommuniziert, und der SocketAdapter, welcher zur Kommunikation eine TCP/IP-Verbindung aufbaut, verfügbar. Auch eigene Implementationen werden als dynamische C-Bibliothek ermöglicht. Für ROS bietet sich der SocketAdapter an, da die ROS-interne Kommunikation selbst auf TCP aufsetzt und so auch Übertragbarkeit gewährleistet wird. In \cite{Gummel2018} wird eine Erweiterung von TRON namens DTRON verwendet, um TRON für verteilte Systeme zu ermöglichen und mehrere ausgeführte Instanzen zugleich zu überprüfen. Diese Erweiterung ist zum aktuellen Zeitpunkt jedoch nicht verfügbar. Um den Adapter an da ROS-System anzuknüpfen, wird ein ROS-Node geschrieben, welcher die Pakete des Adapters annimmt und intern über die ROS Topics an das System weitergibt. Diese Übersetzung kann potentiell generisch implementiert werden, sodass zukünftig für ROS-Projekte beispielsweise nur eine Konfigurationsdatei erforderlich ist. Um die Umgebung in der Simulation auch für TRON verfügbar zu machen, müssen die dafür vorhandenen Daten folglich auch über ein ROS Topic im System veröffentlicht und dann durch den Adapter weitergereicht werden. Im Leitfaden zu TRON~\cite{TronManual} sind die verwendeten Pakete beschrieben und werden im Folgenden in den Kontext eingeordnet und erläutert wie diese verwendet werden. + +\subsection{Adapter-ROS-Node} +\subsubsection{Konfigurierungsphase} +Zunächst wird der SocketAdapter auf eine eingehende Verbindung warten. Folglich werden Konfigurationsdaten ausgetauscht. Strings werden dabei durch ein Byte mit der Länge des Strings gefolgt von dieser Anzahl an Bytes repräsentiert. Als erstes werden die verschiedenen Channel als Input beziehungsweise Output deklariert. Dazu wird ein Paket mit dem ersten Byte 1 beziehungsweise 2 und dem Namen des jeweiligen Channels im Uppaal Modell versendet. Als Antwort empfängt der Node einen 32-Bit Integer, der die ab diesem Zeitpunkt für diesen Channel genutzte ID widerspiegelt. Ist dieser kleiner oder gleich 0, so trat ein Fehler auf. Die Fehlermeldung kann dann mittels eines Pakets ermittelt werden (erstes Byte 64, dann Fehlercode). Nach erhalten der Channel IDs werden diese genutzt um die Namen der Variablen im Uppaal Modell den Channels zuzuordnen. Als letzter Schritt der Konfigurierungsphase werden mittels der Codes 5 und 6 die Zeiteinheiten sowie der Timeout zum Beenden des Tests gesetzt. \cref{konzept:tron_konfigurierung} skizziert den fehlerfreien Ablauf dieser Phase. Für Output-Channel müssen die dargestellten Bytecodes 1 und 3 durch 2 und 4 ersetzt werden. +\begin{figure}[h] + \centering + \includegraphics[scale=.6]{./tron_konfigurierung.png} + \caption{Fehlerfreier Ablauf der Konfigurierung von TRON} + \label{konzept:tron_konfigurierung} +\end{figure} +\subsubsection{Ausführung} +Nach erfolgreicher Konfiguration sendet der Node ein Byte mit dem Wert 127 um den Start des Tests anzufragen, als Antwort erhält er ein Byte mit dem Wert 0. Folglich werden Inputs und Outputs ausgetauscht, dabei bestehen die ersten 4 Byte der Nachricht aus den Channel Identifiern, worauf 2 Byte mit der Anzahl an verknüpften Variablen und schließlich die Variablen (je 4 Byte) folgen. Diese müssen dann innerhalb der ROS-Topics verbreitet werden. Als Antwort wird von beiden Seiten eine Bestätigung zurückgesendet, Inputs und Outputs können jedoch asynchron übertragen werden. \ No newline at end of file diff --git a/thesis.tex b/thesis.tex index 6bd0a9cae397c8a2dd56a5ffb3d2a89e4c6f8c6b..84a2f8f29edf37871f7a95f10e9f738c7a6fae00 100644 --- a/thesis.tex +++ b/thesis.tex @@ -84,8 +84,7 @@ \institute{Institut für Software- und Multimediatechnik} \chair{Lehrstuhl für Softwaretechnologie} \title{% - Entwicklung eines optimalen Verfahrens zur Eroberung des - Geldspeichers in Entenhausen + Systematisches Testen von Robotiksystemen } %% for a bachelor thesis @@ -93,29 +92,30 @@ %\graduation[B.Sc.]{Bachelor of Science} % for a master thesis -\thesis{master} -\graduation[M.Sc.]{Master of Science} +\thesis{Bachelor} +\graduation[B.Sc.]{Bachelor of Science} % for a diploma thesis %\thesis{diploma} %\graduation[Dipl.Inf.]{Diplom-Informatiker} -\author{Mickey Mouse} -\emailaddress[]{mickey.mouse@tu-dresden.de} -\matriculationnumber{12345678} -\matriculationyear{2016} -\dateofbirth{1.1.1990} +\author{Christoph Schröter} +\emailaddress[]{christoph.schroeter1@mailbox.tu-dresden.de} +\matriculationnumber{4814962} +\matriculationyear{2018} +\dateofbirth{29.6.1999} \placeofbirth{Dresden} %\discipline{Distributed Systems Engineering} -\course{Distributed Systems Engineering} +\course{Informatik} \supervisor{% - Dipl.-Inf. ABC XYZ% - \and Dr. Sebastian Götz% + Dipl.-Inf. Sebastian Ebert% + \and Dipl.-Inf. Johanney Mey + \and Dr.-Ing. Sebastian Götz% } \professor{Prof. Dr. rer. nat habil. Uwe Aßmann} -\date{10.10.2018} +\date{15.8.2021} \maketitle \newpage