{"id":1038,"date":"2016-06-14T08:00:05","date_gmt":"2016-06-14T06:00:05","guid":{"rendered":"https:\/\/formalmind.com\/?p=1005\/"},"modified":"2022-04-11T18:58:54","modified_gmt":"2022-04-11T16:58:54","slug":"what-is-a-requirements-model","status":"publish","type":"post","link":"https:\/\/www.formalmind.com\/de\/blog\/what-is-a-requirements-model\/","title":{"rendered":"Was ist ein Anforderungsmodell?"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Dies ist der zweite Teil der Miniserie \u201cRequirements Modeling\u201d. In diesem Artikel schaffen wir ein gemeinsames Verst\u00e4ndnis daf\u00fcr, was Modellierung im Allgemeinen und ein Anforderungsmodell im Besonderen ist.\n<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Modelle im Allgemeinen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Modelle werden \u00fcberall im Leben eingesetzt, nicht nur f\u00fcr Systeme und Anforderungen. Sie werden allgemein als \u201ckleine Kopie von etwas, das einige Merkmale des Originals aufweist\u201d betrachtet. Da kommen einem physische Objekte wie Schiffsmodelle in den Sinn.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es gibt auch formellere Definitionen eines Modells (<a href=\"https:\/\/web.archive.org\/web\/20160704213600\/http:\/\/d-nb.info\/986400602\/34\" target=\"_blank\" rel=\"noreferrer noopener\">Was ist ein Modell?<\/a>\n von Thomas K\u00fchne). Doch widmen wir uns zun\u00e4chst einem wichtigeren Aspekt:\nBereits mit der obigen einfachen Definition stellen alle Anforderungen ein Modell des zu bauenden Produkts dar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Anforderungen werden immer modelliert<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Anforderungen sind eine pragmatische Beschreibung des zu bauenden Systems. Sie sollten sich auf das Problem konzentrieren, das dieses System l\u00f6st (und nicht auf die spezifische Implementierung) und sind daher nur eine Teilbeschreibung. Aber per Definition ist dies ein Modell, auch wenn es nur ein paar Zeilen einfachem Text sind.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Modell hat \u00fcblicherweise eine Modellierungssprache, die textuell oder grafisch sein kann. Und wieder, mit ein paar Zeilen einfachem Text, ist die Modellierungssprache... Englisch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Im Kontext des Requirements-Engineerings stellt sich also nicht die Frage, ob modelliert wird oder nicht: Wir modellieren immer. Stattdessen stellen sich die Fragen:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Auf welcher Ebene die Modellierungssprache das Modell strukturiert.<\/li><li>Welche Modellierungssprache verwenden wir?<\/li><li>Wie f\u00f6rmlich soll das Modell sein?<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">An diesem Punkt sind wir bereit f\u00fcr eine einfache Definition:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Ein Anforderungsmodell ist eine strukturierte Darstellung von Anforderungen, die eine spezifische Modellierungssprache verwendet.<\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Schauen wir uns die drei Fragen einzeln an.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"level_of_modeling\">Modellierungsgrad<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Modellierung kann auf breiter Ebene auf drei Ebenen formeller angewendet werden:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Spezifikationsstufe:<\/strong> Die Struktur der Spezifikation als Ganzes kann formalisiert werden. Ein triviales, aber n\u00fctzliches Beispiel hierf\u00fcr ist die Kapitelstruktur. Diese wurde sogar standardisiert: <a href=\"https:\/\/web.archive.org\/web\/20160704213600\/https:\/\/standards.ieee.org\/findstds\/standard\/29148-2011.html\" target=\"_blank\" rel=\"noreferrer noopener\">IEEE 29148-2011<\/a> (formal nach IEEE 830-1998) liefert m\u00f6gliche Gliederungsstrukturen f\u00fcr Systemanforderungsspezifikationen (SRS).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Anforderungsstufe:<\/strong> Die einzelnen Anforderungen k\u00f6nnen als Ganzes Teil eines Anforderungsmodells werden, indem sie mit Metadaten angereichert werden. Beispielsweise k\u00f6nnte eine Anforderung als funktional oder nicht funktional klassifiziert werden. Ein ausgefeilteres Klassifikationsschema wurde vorgeschlagen von <a href=\"https:\/\/web.archive.org\/web\/20160704213600\/https:\/\/www.researchgate.net\/profile\/Alessandro_Cimatti\/publication\/220992809_From_Informal_Requirements_to_Property-Driven_Formal_Validation\/links\/09e41509015d221725000000.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Cimatti<\/a> oder Gunter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Anforderungstext-Ebene:<\/strong> Die tats\u00e4chlichen Anforderungen \nText kann auch modelliert werden, beispielsweise durch die Verwendung von Textvorlagen. Einige der bekannteren werden von der Sophist Group bereitgestellt (<a href=\"https:\/\/web.archive.org\/web\/20160704213600\/https:\/\/www.sophist.de\/fileadmin\/SOPHIST\/Puplikationen\/Broschueren\/SOPHIST_Broschuere_MASTeR.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Master-Schablonen<\/a>, Deutsch), aber es gibt noch viele andere zur Auswahl.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Modellierungssprachen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn das Thema Anforderungsmodellierung oder Systemmodellierung angesprochen wird, denken die Leute meist an grafische Sprachen wie UML oder SysML. Und tats\u00e4chlich k\u00f6nnen diese auch verwendet werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Grafische Sprachen nutzen die Tatsache aus, dass Menschen unglaublich gut darin sind, visualisierte Informationen zu erfassen. Es ist jedoch wichtig zu beachten, dass die Modelle typischerweise viele Informationen enthalten, die nicht auf den Bildern dargestellt sind. Die Bilder dienen als Orientierungskarte, die hilft, zus\u00e4tzliche Informationen zu finden. Diese Informationen finden sich normalerweise in den Tabellen, die die Bilder begleiten.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Formalit\u00e4tsgrade<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Unabh\u00e4ngig davon, ob eine textuelle oder grafische Darstellung verwendet wird, k\u00f6nnen die Anforderungen recht informell oder extrem formalisiert sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Umgangssprache (oder jede andere nat\u00fcrliche Sprache) ist informell, kann aber durch Textvorlagen formeller gestaltet werden. Je nach Raffinesse der Werkzeuge k\u00f6nnen recht viele Informationen automatisch aus dem Text extrahiert werden (z. B. automatische Glossarverwaltung).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Extreme sind spezifikationssprachen, die textuell sind, aber eher Programmiersprachen \u00e4hneln als Text. Beispiele f\u00fcr diese Kategorie sind <a href=\"https:\/\/web.archive.org\/web\/20160704213600\/http:\/\/formalmind.com\/success-story\/production-rodin-handbook\/\" target=\"_blank\" rel=\"noreferrer noopener\">Event-B<\/a>\n oder Z. Diese Sprachen haben ein so hohes Ma\u00df an Formalit\u00e4t, dass bestimmte\nEigenschaften der Beschreibung mathematisch bewiesen werden k\u00f6nnen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c4hnliches gilt f\u00fcr grafische Sprachen. Auf dem informellen Spektrum befinden sich \u201cK\u00e4stchen und Linien\u201d, die ad hoc gezeichnet werden. Aber auch diese k\u00f6nnen gro\u00dfartige Kommunikationswerkzeuge sein. Als n\u00e4chstes folgt UML, das \u201cnur als Zeichnung\u201d verwendet wird, d. h. nicht Teil eines gr\u00f6\u00dferen Modells.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Modellierung des Gesamtsystems ist formaler als der bisherige Ansatz und erlaubt die \u00dcberpr\u00fcfung der Modellintegrit\u00e4t. Und nat\u00fcrlich gibt es Modellierungssprachen, die formeller sind als UML und SysML, wie Petri-Netze oder der Scade-Dialekt der Lustre-Sprache.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Auch textuelle Anforderungen stellen ein Anforderungsmodell dar. Die Fragen, die man sich also stellen muss, sind:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Sollte ich zu einer grafischen Darstellung meiner Anforderungen wechseln?<\/li><li>Sollte ich meine textlichen Anforderungen formeller gestalten?<\/li><li>Sollte ich die Modellierung auf der Ebene der Spezifikation, der Anforderungen oder des Anforderungstextes anwenden?<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Bevor diese Fragen in Teil vier dieser Reihe beantwortet werden, werden wir uns im n\u00e4chsten Artikel mit den Vor- und Nachteilen einer formelleren Anforderungsmodellierung befassen.<\/p>","protected":false},"excerpt":{"rendered":"<p>Dies ist der zweite Teil der Miniserie \u201cRequirements Modeling\u201d. In diesem Artikel schaffen wir ein gemeinsames Verst\u00e4ndnis daf\u00fcr, was Modellierung im Allgemeinen und ein Requirements Model im Besonderen ist. Modelle im Allgemeinen Modelle werden \u00fcberall im Leben verwendet, nicht nur f\u00fcr Systeme und Anforderungen. Es wird allgemein als eine \u201ckleine Kopie von etwas, das\u2026\u201c betrachtet<\/p>","protected":false},"author":1,"featured_media":993,"comment_status":"open","ping_status":"open","sticky":false,"template":"single-no-separators","format":"standard","meta":{"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[13],"tags":[33,57,49,50,55],"class_list":["post-1038","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-modeling","tag-modeling-languages","tag-requirements","tag-requirements-modeling","tag-series"],"_links":{"self":[{"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/posts\/1038","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/comments?post=1038"}],"version-history":[{"count":0,"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/posts\/1038\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/media?parent=1038"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/categories?post=1038"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.formalmind.com\/de\/wp-json\/wp\/v2\/tags?post=1038"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}