Klaus Pohl

Basiswissen Requirements Engineering


Скачать книгу

werden. Das Ziel dieser Modelle ist es, bereits im Vorfeld der Umsetzung alle Anforderungen an das System zu ermitteln. Dies führt dazu, dass Requirements Engineering bei diesen Vorgehensmodellen als abgeschlossene, zeitlich befristete erste Phase der Systementwicklung durchgeführt wird.

       Agile EntwicklungLeichtgewichtige Vorgehensmodelle (z.B. eXtreme Programming [Beck 1999]) ermitteln die benötigten Anforderungen dagegen erst, wenn sie implementiert werden sollen, da »Hellsehen« bezüglich zukünftig gewünschter Funktionalität schwierig ist und Anforderungen sich auch im Laufe eines Projekts ändern. Hier wird Requirements Engineering als kontinuierlicher, phasenübergreifender Prozess in die Systementwicklung integriert.

      1.4 Requirements Engineering – Wie?

       Vier Haupttätigkeiten im Requirements Engineering

      Der Lehrplan [IREB-Lehrplan 2020] unterscheidet zwischen vier Hauptaufgaben eines Requirements Engineer:

       ErmittelnBeim Ermitteln der Anforderungen werden verschiedene Techniken genutzt, um die Anforderungen der Stakeholder und anderer Quellen zu gewinnen (siehe Abschnitt 4.2). Insbesondere werden bei der Ermittlung von Anforderungen auch Techniken angewandt, um Konflikte zwischen verschiedenen Stakeholdern aufzudecken und diese aufzulösen.

       DokumentierenDurch die Dokumentation werden erarbeitete Anforderungen adäquat beschrieben. Hierfür können unterschiedliche Techniken eingesetzt werden, um Anforderungen in natürlicher Sprache oder in Modellen zu dokumentieren (siehe Kapitel 3).

       ValidierenDokumentierte Anforderungen müssen frühzeitig geprüft werden, um zu gewährleisten, dass sie der geforderten Qualität genügen (siehe Abschnitt 4.4).

       VerwaltenDie Anforderungsverwaltung (Requirements Management) geschieht flankierend zu allen anderen Aktivitäten und umfasst alle Maßnahmen, die notwendig sind, um Anforderungen zu strukturieren, für unterschiedliche Rollen aufzubereiten sowie konsistent zu ändern (siehe Kapitel 6).

      image www.cpre-buch.de/pk1v1

      Diese Haupttätigkeiten können durch Prozesse, wie sie z. B. im Standard [ISO/IEC/IEEE 29148:2018] empfohlen werden, in eine Reihenfolge gebracht werden. Grundsätzlich gibt es allerdings nicht den einen Requirements-Engineering-Prozess. Vielmehr muss der Requirements Engineer abhängig vom jeweiligen Entwicklungsprojekt und vor allem den beteiligten Stakeholdern den geeigneten Requirements-Engineering-Prozess zusammenstellen. Dabei kann er sich der verschiedenen Tätigkeiten und Techniken des Requirements Engineering bedienen, die im weiteren Verlauf des Buches näher vorgestellt werden. Die Haupttätigkeiten können für Anforderungen auf unterschiedlichen Ebenen durchgeführt werden, wie z. B. System-, Software- oder Stakeholder-Anforderungen.

      1.5 Die Rolle und Aufgaben eines Requirements Engineer

      Der Requirements Engineer als Projektrolle steht oftmals im Mittelpunkt des Geschehens. Auch wenn in der Praxis die Rolle des Requirements Engineer häufig unterschiedlichen anderen Tätigkeitsprofilen zugeordnet wird: Business-Analysten, Anwendungsspezialisten, Product Ownern, Systemingenieuren, Entwicklern oder eben klassischen Requirements Engineers. Er pflegt in der Regel als Einziger direkten Kontakt zu allen Stakeholdern und hat die Chance und Verantwortung, sich ausreichend in das Fachgebiet der Stakeholder einzuarbeiten sowie die Sprache in den verschiedenen Fachgebieten zu erlernen und zu verstehen. Er ist derjenige, der die Bedürfnisse hinter den Aussagen der Stakeholder erkennen und so aufbereiten muss, dass Architekten und Entwickler sie verstehen und umsetzen können. Als solches fungiert der Requirements Engineer auch als ein Vermittler zwischen den verschiedenen Stakeholdern. Hierzu sollte der Requirements Engineer sowohl das Fachgebiet und dessen Sprache ausreichend kennen als auch über genug IT-Know-how verfügen. Der Requirements Engineer nimmt somit auf vielfältige Weise eine zentrale Rolle im Projekt ein.

       Fähigkeiten des Requirements Engineer

      Typische Fähigkeiten und Aufgaben des Requirements Engineer umfassen laut [IREB-Lehrplan 2020]:

       Anforderungen ermitteln, dokumentieren, validieren und verwalten.

       Über fundierte Kenntnisse im Requirements Engineering verfügen und diese aktiv einbringen.

       Die Lücke zwischen dem Problem und möglichen Lösungen überbrücken.

      Um allen Aufgaben gerecht werden zu können, benötigt der Requirements Engineer weit mehr als theoretisches Methodenwissen. Viele der benötigten Fähigkeiten setzen entsprechende praktische Erfahrungen voraus.

      Neben Methodenwissen und technischen Kenntnissen sind für einen guten Requirements Engineer zahlreiche Softskills wichtig. Hierzu zählen:

       Analytisches DenkenDer Requirements Engineer muss fähig sein, sich in unbekannte oder wenig bekannte Fachgebiete und Sachverhalte schnell einzuarbeiten und dabei komplizierte Probleme und Zusammenhänge verstehen und analysieren können. Da Stakeholder oft in konkreten Beispielen und (suboptimalen) Lösungen über das eigentliche Problem und die zugehörigen Anforderungen sprechen, muss der Requirements Engineer in der Lage sein, konkrete Aussagen der Stakeholder zu abstrahieren.

       EmpathieDer Requirements Engineer hat die schwierige Aufgabe zu erkennen, was ein Stakeholder tatsächlich benötigt. Hierfür ist ein ausgeprägtes Einfühlungsvermögen eine der zentralen Voraussetzungen. Zudem muss er problematische gruppendynamische Effekte unter den Stakeholdern erkennen und geeignet darauf reagieren können.

       KommunikationsfähigkeitUm die Anforderungen der Stakeholder zu erheben, richtig zu interpretieren und zu kommunizieren, muss der Requirements Engineer über hohe kommunikative Fähigkeiten verfügen. Er muss zuhören können, zur rechten Zeit die richtigen Fragen stellen, bemerken, wenn Aussagen nicht den gewünschten Informationsgehalt haben oder Unsicherheiten beinhalten, und dann rechtzeitig erforderliche Rückfragen stellen.

       KonfliktlösungsfähigkeitDurch unterschiedliche Meinungen der Stakeholder kommt es im Requirements Engineering häufig zu Konflikten. Der Requirements Engineer muss Konflikte erkennen, zwischen den Parteien vermitteln und schließlich durch den Einsatz geeigneter Techniken den Konflikt durch Konsensfindung oder per Entscheidung auflösen.

       ModerationsfähigkeitDer Requirements Engineer muss zwischen unterschiedlichen Meinungen vermitteln und Diskussionen leiten können. Dies gilt sowohl für Einzelbesprechungen als auch in Gruppengesprächen oder in Workshops.

       SelbstbewusstseinDa der Requirements Engineer häufig im Mittelpunkt steht und dabei gelegentlich auch Kritik ausgesetzt ist, benötigt er ein selbstbewusstes Auftreten und die Fähigkeit, sich auch durch hartnäckige Ablehnungen nicht aus dem Konzept bringen zu lassen. Er sollte Kritik niemals persönlich nehmen, denn diese gilt oftmals seiner Rolle und nicht ihm als Mensch.

       ÜberzeugungsfähigkeitDer Requirements Engineer ist u.a. eine Art Anwalt für die Anforderungen seiner Stakeholder. Er muss fähig sein, diese nach außen und in Besprechungen und Präsentationen überzeugend zu vertreten.

      1.6 Was über Requirements Engineering zu lernen ist

      Requirements Engineering ist ein intensiv erforschtes und weites Feld,