-
HINTERGRUND
-
Die vorliegende Erfindung bezieht sich in einigen ihrer Ausführungsformen auf die Software-Entwicklung und im Besonderen – jedoch nicht ausschließlich – auf das Überwachen der Integrität von Anforderungen und/oder Code-Elementen.
-
Bei großen Software-Entwicklungsprojekten kann leicht der Überblick über Anforderungen und ihre Umsetzung in dem Code verloren gehen. Nachdem eine Anforderung umgesetzt wird, entwickelt sich der Code weiter, und die Logik, auf der diese Anforderung beruht, kann geändert oder entfernt werden. Bei derartigen Software-Entwicklungsprojekten können Rückverfolgbarkeitsverknüpfungen verwendet werden, um eine Verknüpfung zwischen Anforderungen wie z. B. Produktdokumentationsanforderungen und Quellcode oder einer allgemeinen Darstellung des Quellcodes herzustellen. Rückverfolgbarkeitsverknüpfungen zwischen Quellcode und Anforderungen erleichtern das Durchführen verschiedener Aufgaben für die Software-Pflege, z. B. Wirkungsanalyse, Programmverständnis und Anforderungszusicherung bei hochwertigen Systemen. Ein Beobachter oder ein Textanalysemodul kann mit Hilfe dieser Verknüpfungen verstehen, warum eine bestimmte Funktion oder Klasse in dem Programm vorhanden ist.
-
In den vergangenen Jahren wurden verschiedene Systeme und Verfahren entwickelt. So beschreibt z. B. die
US-Patentschrift 7 640 532 eine Verbindung, die zwischen dem Quellcode und den Geschäftsanforderungen eines Software-Systems hergestellt wird. Mittels Ontologie und unter Verwendung eines Thesaurus werden benutzerdefinierte Schlüsselwörter erweitert, die für Geschäftsanforderungen stehen. Die erweiterte Liste von benutzerdefinierten Schlüsselwörtern wird mit dem automatisch kommentierten Quellcode verglichen. Aus den Ergebnissen des Vergleichs und dem Aufrufgraphen des Quellcodes werden Arbeitsabläufe erzeugt, die eine Abbildung des Quellcodes auf die Geschäftslogik bereitstellen.
-
US-Patentschrift 2008/0263504 beschreibt verschiedene Technologien und Techniken, die eine Zuordnung von Projektanforderungen zugrunde liegender Code-Elementen ermöglichen. Dabei wird ein bestimmtes Software-Projekt analysiert, um eine Liste von Code-Elementen zu erzeugen, die in dem bestimmten Software-Projekt enthalten sind. Von einem Benutzer einer Anwendung für die Anforderungsverwaltung wird eine Eingabe empfangen, eine oder mehrere Projektanforderungen einem oder mehreren Code-Elementen zuzuordnen. Die Projektanforderung und eine Zuordnung zu dem einen oder den mehreren Code-Elementen werden für einen späteren Abruf in einem Datenspeicher gespeichert. Anhand dieser Zuordnungen wird festgestellt, wenn an den zugrunde liegenden Code-Elementen Änderungen vorgenommen werden, die sich auf die Projektanforderung auswirken könnten. Eine Software-Entwicklungsanwendung ist imstande, mit dem Datenspeicher zu interagieren und einen Benutzer der Software-Entwicklungsanwendung darüber zu benachrichtigen, dass sich eine Änderung an einem bestimmten Code-Element des Software-Projekts auf eine oder mehrere Projektanforderungen auswirken wird.
-
ZUSAMMENFASSUNG
-
Gemäß einigen Ausführungsformen der vorliegenden Erfindung wird ein computergestütztes Verfahren zum Überwachen der Integrität eines Anwendungsentwicklungsprojekts mit einer Vielzahl von Code-Elementen und einer Vielzahl von Anforderungen bereitgestellt. Das Verfahren weist auf: das Berechnen einer ersten Stärke für jede aus einer Vielzahl von Rückverfolgbarkeitsverknüpfungen zwischen jeweils einem bestimmten Code-Element aus der Vielzahl von Code-Elementen in einer momentanen Software-Codeversion des Anwendungsentwicklungsprojekts und einer aus der Vielzahl von Anforderungen, das Berechnen einer zweiten Stärke für jede aus der Vielzahl von Rückverfolgbarkeitsverknüpfungen in einem neuen Software-Code, der eine Überarbeitung des bestimmten Code-Elements aus der momentanen Software-Version beinhaltet, und das Erzeugen einer Unstimmigkeitsbenachrichtigung auf der Grundlage einer Abweichung zwischen der zweiten und der ersten Stärke.
-
Das Verfahren weist optional des Weiteren das Analysieren des Anwendungsentwicklungsprojekts und der Vielzahl von Anforderungen auf, um die Vielzahl von Rückverfolgbarkeitsverknüpfungen automatisch zu identifizieren.
-
Das Verfahren weist optional des Weiteren das Empfangen einer manuellen Eingabe von einem Benutzer auf, welche die Vielzahl von Rückverfolgbarkeitsverknüpfungen angibt.
-
Das Verfahren weist optional des Weiteren das Bereitstellen eines Schwellenwerts für die Unstimmigkeitsbenachrichtigung auf; wobei das Erzeugen aufweist, dass die Unstimmigkeitsbenachrichtigung erzeugt wird, wenn die Abweichung größer als der Schwellenwert für die Unstimmigkeitsbenachrichtigung ist.
-
Das Verfahren weist optional des Weiteren das Bereitstellen eines Korrelationsschwellenwerts auf; wobei die neue Software-Codeversion eine neue Anforderung aufweist; wobei das Erzeugen das Berechnen einer dritten Stärke einer zusätzlichen Rückverfolgbarkeitsverknüpfung zwischen dem bestimmten Code-Element und der neuen Anforderung aufweist und das Erzeugen durchgeführt wird, wenn die dritte Stärke den Korrelationsschwellenwert überschreitet.
-
Die Unstimmigkeitsbenachrichtigung gibt zudem optional einen Konflikt zwischen der neuen Anforderung und mindestens einer aus der Vielzahl von Anforderungen an.
-
Das Berechnen wird optional gemäß einer semantischen Analyse des bestimmten Code-Elements durchgeführt.
-
Das Berechnen wird optional gemäß einer semantischen Analyse der Vielzahl von Anforderungen durchgeführt.
-
Sowohl die momentane Software-Codeversion als auch der neue Software-Code werden optional in einer gemeinsamen Datenbank gespeichert und durch mindestens einen Benutzer und eine automatische Analyse von Datensätzen in der Datenbank ausgewählt.
-
Optional werden das Berechnen einer ersten Stärke, das Berechnen einer zweiten Stärke und das Erzeugen für jedes aus einer Vielzahl von Code-Elementen in einer momentanen und einer neuen Software-Codeversion des Anwendungsentwicklungsprojekts durchgeführt.
-
Gemäß einigen Ausführungsformen der vorliegenden Erfindung wird ein System zum Überwachen eines Anwendungsentwicklungsprojekts mit einer Vielzahl von Code-Elementen und einer Vielzahl von Anforderungen bereitgestellt. Das System weist auf: einen Prozessor, ein Modul für die Stärke einer Rückverfolgbarkeitsverknüpfung, um eine erste Stärke für jede aus einer Vielzahl von Rückverfolgbarkeitsverbindungen zwischen einem bestimmten Code-Element aus der Vielzahl von Code-Elementen in einer momentanen Software-Codeversion des Anwendungsentwicklungsprojekts und einer aus der Vielzahl von Anforderungen und um eine zweite Stärke für jede aus der Vielzahl von Rückverfolgbarkeitsverknüpfungen in einem neuen Software-Code zu berechnen, der eine Überarbeitung des bestimmten Code-Elements aus der momentanen Software-Version enthält, sowie ein Alarmmodul, das auf der Grundlage einer Abweichung zwischen der zweiten Stärke und der ersten Stärke eine Unstimmigkeitsbenachrichtigung erzeugt.
-
Das System weist optional des Weiteren eine Schnittstelle auf, die auf die Vielzahl von Anforderungen und die Vielzahl von Code-Elementen zugreift, um die Vielzahl von Rückverfolgbarkeitsverknüpfungen zu identifizieren.
-
Die Schnittstelle empfängt optional zudem die Vielzahl von Anforderungen von einem Arbeitsbereich für die Software-Entwicklung.
-
Das System weist optional des Weiteren ein Modul für die Identifizierung einer Rückverfolgbarkeitsverknüpfung auf, das die Vielzahl von Anforderungen und die Vielzahl von Code-Elementen analysiert, um die Vielzahl von Rückverfolgbarkeitsverknüpfungen automatisch zu identifizieren.
-
Gemäß einigen Ausführungsformen der vorliegenden Erfindung wird ein computergestütztes Verfahren zum Identifizieren eines Anforderungskonflikts in einem Anwendungsentwicklungsprojekt mit einer Vielzahl von Code-Elementen und einer Vielzahl von Anforderungen bereitgestellt. Das Verfahren weist auf: das Bereitstellen eines Korrelationsschwellenwerts, das Bereitstellen einer Vielzahl von Rückverfolgbarkeitsverknüpfungen zwischen einem bestimmten Code-Element in einer momentanen Software-Codeversion des Anwendungsentwicklungsprojekts und einer aus der Vielzahl von Anforderungen, das Identifizieren einer neuen Rückverfolgbarkeitsverknüpfung zwischen dem bestimmten Code-Element in einer neuen Software-Codeversion des Anwendungsentwicklungsprojekts und mindestens einer neuen Anforderung, das Berechnen einer Stärke für die neue Rückverfolgbarkeitsverknüpfung; und das Erzeugen einer Benachrichtigung, die einen Anforderungskonflikt angibt, wenn die Stärke den Korrelationsschwellenwert überschreitet.
-
Optional wird der Korrelationsschwellenwert durch einen Benutzer von Hand gesetzt.
-
Sofern nicht anderweitig definiert, werden alle hier vorkommenden technischen und/oder wissenschaftlichen Begriffe in der Bedeutung verwendet, wie sie einem Fachmann der Technik, in dessen Bereich die Erfindung fällt, geläufig ist. Obwohl bei der praktischen Umsetzung oder Erprobung der Ausführungsformen der Erfindung auch Verfahren und Materialien verwendet werden können, die den hier beschriebenen ähnlich oder gleichwertig sind, werden im Folgenden beispielhafte Verfahren und/oder Materialien beschrieben. Im Konfliktfall ist der Patentschrift, einschließlich der Definitionen, Vorrang einzuräumen. Darüber hinaus dienen die Materialien, Verfahren und Beispiele lediglich zu Veranschaulichungszwecken und sind nicht notwendigerweise als Beschränkung zu verstehen.
-
KURZBESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNGEN
-
Im vorliegenden Dokument werden einige, lediglich als Beispiel zu verstehende Ausführungsformen der Erfindung mit Blick auf die beigefügten Zeichnungen beschrieben. Bezugnehmend auf die Zeichnungsdetails wird dabei betont, dass die gezeigten Einzelheiten beispielhaften Charakter haben und zur veranschaulichenden Erörterung von Ausführungsformen der Erfindung dienen. Durch die Beschreibung in Kombination mit den Zeichnungen kann der Fachmann somit erkennen, wie Ausführungsformen der Erfindung praktisch umgesetzt werden können.
-
In den Zeichnungen:
-
ist 1 ein Ablaufplan eines Verfahrens zum Überwachen der Anforderungsintegrität gemäß einigen Ausführungsformen der vorliegenden Erfindung;
-
ist 2 ist eine relationale Ansicht von Software- und Hardware-Komponenten eines Systems zum Überwachen der Anforderungsintegrität gemäß einigen Ausführungsformen der vorliegenden Erfindung;
-
ist 3 ein Ablaufplan eines Prozesses gemäß einigen Ausführungsformen der vorliegenden Erfindung, um die Stärke von Rückverfolgbarkeitsverknüpfungen zu messen, die Code-Elemente und Anforderungen in einem Anwendungsentwicklungsprojekt miteinander verbinden;
-
zeigen die 4 bis 6 Bildschirmauszüge eines Werkzeugs, das Code-Elemente eines beispielhaften Anwendungsentwicklungsprojekts darstellt;
-
ist 7 eine schematische Darstellung des Vergleichens der Stärke einer Rückverfolgbarkeitsverknüpfung in einer momentanen Software-Codeversion eines beispielhaften Anwendungsentwicklungsprojekts mit der Stärke derselben Rückverfolgbarkeitsverknüpfung in einer neuen Software-Codeversion des beispielhaften Anwendungsentwicklungsprojekts gemäß einigen Ausführungsformen der vorliegenden Erfindung;
-
ist 8 ein Ablaufplan gemäß einigen Ausführungsformen der vorliegenden Erfindung, um widersprüchliche Anforderungen von Software-Codeversionen eines Anwendungsentwicklungsprojekts auf der Grundlage der Stärke einer bzw. mehrerer Rückverfolgbarkeitsverknüpfung(en) zu identifizieren; und
-
ist 9 eine schematische Darstellung eines Prozesses gemäß einigen Ausführungsformen der vorliegenden Erfindung, der das Identifizieren widersprüchlicher Anforderungen mit dem Überwachen der Anforderungsintegrität verbindet.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die vorliegende Erfindung bezieht sich in einigen ihrer Ausführungsformen auf die Software-Entwicklung und im Besonderen – jedoch nicht ausschließlich – auf das Überwachen der Integrität von Anforderungen und/oder Code-Elementen.
-
Gemäß einigen Ausführungsformen der vorliegenden Erfindung werden Verfahren und Systeme bereitgestellt, um die Integrität eines Anwendungsentwicklungsprojekts mit einer Vielzahl von Anforderungen zu überwachen, indem Änderungen der Stärke einer oder mehrerer Rückverfolgbarkeitsverknüpfungen zwischen Software-Codeversionen des Anwendungsentwicklungsprojekts festgestellt werden.
-
So beruht das Verfahren beispielsweise auf dem Berechnen der Stärke einer jeden aus einer Vielzahl von Rückverfolgbarkeitsverknüpfungen zwischen Code-Elementen in jeder aus einer Anzahl von Software-Codeversionen des Anwendungsentwicklungsprojekts und dem Feststellen einer Änderung der Stärke einer oder mehrerer Rückverfolgbarkeitsverknüpfungen zwischen Software-Codeversionen. Auf der Grundlage dieser Änderung, die auch als Abweichung bezeichnet wird, können eine oder mehrere Unstimmigkeitsbenachrichtigungen erzeugt und ausgegeben werden, indem sie z. B. einem Benutzer eines Arbeitsbereichs für die Software-Entwicklung als Nachrichten vorgelegt werden. Das oben erläuterte und unten beschriebene Verfahren ermöglicht das Identifizieren einer Unstimmigkeit zwischen Code-Elementen und Anforderungen bei der Entwicklung eines Projekts und das automatische Warnen eines Benutzers auf der Grundlage einer Analyse von Rückverfolgbarkeitsverknüpfungen, wobei dies optional in Echtzeit erfolgen kann.
-
Gemäß einigen Ausführungsformen der vorliegenden Erfindung werden Verfahren und Systeme bereitgestellt, um Anforderungskonflikte in Anwendungsentwicklungsprojekten festzustellen, wenn eine bzw. mehrere Stärken einer oder mehrerer neuer Rückverfolgbarkeitsverknüpfungen in einer neuen Software-Codeversion des Anwendungsentwicklungsprojekts einen Korrelationsschwellenwert überschreiten, bei dem es sich optional um einen dynamischen Korrelationsschwellenwert handeln kann.
-
So beruht das Verfahren beispielsweise auf dem Berechnen der Stärke einer neuen Rückverfolgbarkeitsverknüpfung zwischen einem vorhandenen Code-Element und einer neuen Anforderung und dem Ermitteln, ob sie den Korrelationsschwellenwert überschreitet. Auf der Grundlage dieser Feststellung, können eine oder mehrere Unstimmigkeitsbenachrichtigungen erzeugt und ausgegeben werden, indem sie z. B. einem Benutzer eines Arbeitsbereichs für die Software-Entwicklung als Nachrichten vorgelegt werden.
-
Optional werden die Anforderungskonflikte festgestellt, wenn eine neue Rückverfolgbarkeitsverknüpfung, die mit einem bestimmten Code-Element in einer neuen Software-Codeversion verbunden ist, einen Korrelationsschwellenwert überschreitet und wenn sich die Stärke einer anderen Rückverfolgbarkeitsverknüpfung, die mit demselben bestimmten Code-Element in der neuen Software-Codeversion verbunden ist, gegenüber einer früheren Software-Codeversion des Anwendungsentwicklungsprojekts ändert.
-
Das oben erläuterte und unten beschriebene Verfahren ermöglicht das Feststellen von Anforderungskonflikten in einer Quellcodeversion des Entwicklungsprojekts und das Warnen eines Benutzers in Bezug auf Anforderungskonflikte auf der Grundlage einer Analyse von Rückverfolgbarkeitsverknüpfungen, wobei dies optional in Echtzeit erfolgen kann.
-
Bevor mindestens eine Ausführungsform der Erfindung im Detail erläutert wird, sollte klar sein, dass die Erfindung hinsichtlich ihrer Anwendung nicht notwendigerweise auf die Aufbau- und Anordnungsdetails der Komponenten und/oder Verfahren beschränkt ist, die in der folgenden Beschreibung dargelegt und/oder in den Zeichnungen und/oder den Beispielen veranschaulicht sind. Die Erfindung kann auch andere Ausführungsformen umfassen bzw. auf verschiedene Art und Weise umgesetzt oder durchgeführt werden.
-
Der Fachmann weiß, dass Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammprodukt ausgeführt werden können. Entsprechend können Aspekte der vorliegenden Erfindung in Gestalt einer vollständig in Hardware realisierten Ausführungsform, einer vollständig in Software realisierten Ausführungsform (z. B. Firmware, residente Software, Mikrocode usw.) oder in Gestalt einer Ausführungsform vorliegen, die Software- und Hardware-Aspekte vereint, welche zusammenfassend als „Schaltung”, „Modul” oder „System” bezeichnet werden können. Des Weiteren können Aspekte der vorliegenden Erfindung in Gestalt eines Computerprogrammprodukts vorliegen, das in einem oder mehreren computerlesbaren Medien ausgeführt ist, auf denen computerlesbarer Programmcode enthalten ist.
-
Dabei kann eine beliebige Kombination aus einem oder mehreren computerlesbaren Medien genutzt werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann z. B. ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem bzw. eine entsprechende Vorrichtung oder Einheit oder aber eine beliebige geeignete Kombination der vorgenannten Elemente sein, ohne jedoch auf diese beschränkt zu sein. Konkretere Beispiele des computerlesbaren Speichermediums würden Folgendes aufweisen (wobei dies eine nicht vollständige Liste darstellt): eine elektrische Verbindung mit einem oder mehreren Leitern, eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren, programmierbaren Nur-Lese-Speicher (EPROM- oder Flash-Speicher), einen Lichtwellenleiter, einen tragbaren CD-ROM, eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination der vorgenannten Elemente. In Verbindung mit diesem Dokument kann ein computerlesbares Speichermedium jedes physische Medium sein, das ein Programm enthalten oder speichern kann, welches von oder in Zusammenhang mit einem der Befehlsausführung dienenden System, einer Vorrichtung oder Einheit verwendet wird.
-
Ein computerlesbares Signalmedium kann ein weitergeleitetes Datensignal mit darin enthaltenem computerlesbarem Programmcode enthalten, z. B. als Basisband oder als Teil einer Trägerwelle. Ein derartiges weitergeleitetes Signal kann eine beliebige Vielfalt von unterschiedlichen Formen annehmen, einschließlich, ohne auf diese beschränkt zu sein, eine elektromagnetische Form, eine optische Form oder auch jede geeignete Kombination derselben. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm übermitteln, weiterleiten oder übertragen kann, welches für die Nutzung durch oder in Verbindung mit einem/einer der Befehlsausführung dienenden System, Vorrichtung oder Einheit vorgesehen ist.
-
Auf einem computerlesbaren Medium enthaltener Programmcode kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, einschließlich, ohne auf diese beschränkt zu sein, drahtlose, drahtgebundene, Lichtwellenleiterkabel-, HF- und andere Medien oder eine beliebige Kombination derselben.
-
Computerprogrammcode für das Ausführen von Arbeitsschritten für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination von einer oder mehreren Programmiersprachen geschrieben sein, unter anderem eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder ähnliche sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder aber vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Im letztgenannten Szenario kann der entfernt angeordnete Computer über eine beliebige Art von Netzwerk, unter anderem ein Nahbereichsnetz (LAN) oder ein Weitverkehrsnetz (WAN), mit dem Computer des Benutzers verbunden sein, oder die Verbindung kann mit einem externen Computer (z. B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
-
Im Folgenden werden Aspekte der vorliegenden Erfindung unter Bezugnahme auf Darstellungen von Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Dabei dürfte klar sein, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaubildern durch Computerprogrammbefehle realisiert werden kann/können. Diese Computerprogrammbefehle können einem Prozessor eines Universalcomputers, Spezialcomputers oder einer anderweitigen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Befehle, die über den Prozessor des Computers oder der anderweitigen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel erzeugen, mit dem die Funktionen/Handlungen realisiert werden können, die in dem Block bzw. den Blöcken des Ablaufplans und/oder Blockschaubilds angegeben sind.
-
Diese Computerprogrammbefehle können auch auf einem computerlesbaren Medium gespeichert werden, das einen Computer, eine anderweitige programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass die auf dem computerlesbaren Medium gespeicherten Befehle einen Gegenstand hervorbringen, der Befehle aufweist, mit denen die in dem Block bzw. den Blöcken des Ablaufplans und/oder Blockschaubilds angegebene Funktion/Handlung realisiert wird.
-
Die Computerprogrammbefehle können zudem in einen Computer, eine anderweitige programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um zu veranlassen, dass eine Reihe von Betriebsschritten auf dem Computer, der anderweitigen programmierbaren Datenvorrichtung oder den anderen Einheiten ausgeführt wird, so dass die Befehle, die auf dem Computer oder der anderweitigen Datenverarbeitungsvorrichtung ausgeführt werden, Prozesse bereitstellen, mit denen die in dem Block bzw. den Blöcken des Ablaufplans und/oder Blockschaubilds angegebenen Funktionen/Handlungen realisiert werden.
-
Im Folgenden wird auf 1 Bezug genommen, wobei es sich um einen Ablaufplan des Verfahrens 100 zum Überwachen der Integration von Entwicklungsanforderungen gemäß einigen Ausführungsformen der vorliegenden Erfindung handelt, die hier als Anforderungen bezeichnet werden. Das Überwachen erfolgt durch das Feststellen von Abweichungen zwischen der Stärke einer bzw. mehrerer Rückverfolgbarkeitsverknüpfungen in einer bestimmten Software-Codeversion eines Anwendungsentwicklungsprojekts und der Stärke dieser Rückverfolgbarkeitsverknüpfungen in einer neueren Software-Codeversion des Anwendungsentwicklungsprojekts. Dabei ist ein Anwendungsentwicklungsprojekt hier als ein Entwicklungsprojekt zu verstehen, das einem Software-Produkt und/oder einem Hardware-Produkt und/oder einem Dienst und/oder einem beliebigen Teil des Produkts und/oder Dienstes zugehörig ist.
-
Bezug genommen wird zudem auf 2, bei der es sich um eine relationale Ansicht von Software- und Hardware-Komponenten des Systems 200 gemäß einigen Ausführungsformen der vorliegenden Erfindung handelt, um die Anforderungsintegrität und/oder einen bzw. mehrere Anforderungskonflikte zu überwachen. Das System 200 beinhaltet die Datenbank 201, die eine oder mehrere Software-Codeversionen eines Anwendungsentwicklungsprojekts und/oder Überarbeitungen von Software-Codeversionen eines Anwendungsentwicklungsprojekts speichert. Die Datenbank 201 verwaltet optional einen Datensatz von Software-Codeversionen und/oder einen Datensatz von Überarbeitungen von Software-Codeversionen. So können z. B. ein oder mehrere Kennzahlen verwendet werden, die erkannte Überarbeitungen dokumentieren. Die Datenbank 201 kann zum Speichern verwendet werden, um die Software-Codeversion(en) einer Anzahl von verschiedenen Anwendungsentwicklungsprojekten zu speichern. Das System 200 beinhaltet des Weiteren die Schnittstelle 202, den Prozessor 203, das Modul 204 für die Verknüpfungsstärke und die Alarmeinheit 205. Der Kürze halber sollte erwähnt werden, dass die im weiteren Verlauf beschriebenen Datenverarbeitungsfunktionen unter Verwendung des Prozessors 203 durchgeführt werden können.
-
Wie in 101 gezeigt, bezieht die Schnittstelle 202 eine Vielzahl von Anforderungen für ein bestimmtes Anwendungsentwicklungsprojekt mit einer Vielzahl von Code-Elementen, wobei sie diese z. B. empfängt oder darauf zugreift. Die Anforderungen sind optionale Anforderungen, die aus einem Produktanforderungsdokument (Product Requirements Document, PRD) entnommen und/oder darin dargelegt werden, das ein Produkt oder einen Dienst oder Hinzufügungen zu einem Produkt oder einem Dienst definiert.
-
Die Vielzahl von Anforderungen kann als eine Datei empfangen, von einem Dokument eingelesen, durch eine Verknüpfung mit einer Datei kenntlich gemacht, durch eine Analyse wie z. B. eine Textanalyse aus einer Codequelle gewonnen, in einem Arbeitsbereich hervorgehoben oder ausgewählt und/oder auf ähnliche Art und Weise erhalten werden.
-
Wie in 102 gezeigt, können Software-Codeversionen der bestimmten Anwendungsentwicklung optional auch von der Datenbank 201 bereitgestellt werden.
-
Wie in 103 gezeigt, identifiziert und kennzeichnet das System 200 optional z. B. das Modul 204 für die Verknüpfungsstärke, eine Vielzahl von Rückverfolgbarkeitsverknüpfungen zwischen einem jeden Code-Element und einer jeden der Anforderungen des Anwendungsentwicklungsprojekts in einer oder mehreren der Software-Codeversionen in der Datenbank 201, z. B. zumindest in der neuesten Software-Codeversion des Anwendungsentwicklungsprojekts. Die Vielzahl von Rückverfolgbarkeitsverknüpfungen des Anwendungsentwicklungsprojekts kann von Hand durch einen Bediener und/oder automatisch anhand einer Analyse des Software-Codes durch den Abruf einer Rückverfolgbarkeitsverknüpfung und/oder durch eine Erkennungstechnik, ein Erkennungsmodul und/oder ein Erkennungswerkzeug identifiziert und gekennzeichnet werden, wie sie/es beispielsweise nach dem Stand der Technik bekannt ist.
-
Wie in 104 gezeigt, berechnet das System 200, wie z. B. das Modul 204 für die Verknüpfungsstärke für jede der Rückverfolgbarkeitsverknüpfungen in der momentanen Software-Codeversion eine Stärke der Rückverfolgbarkeitsverknüpfung, z. B. in der neuesten Software-Codeversion. Optional wird die momentane Software-Codeversion automatisch durch das System 200 identifiziert und/oder durch einen Benutzer eines Arbeitsbereichs und/oder Ähnliches ausgewählt.
-
Im Folgenden wird Bezug auf 3 genommen, bei der es sich um den Ablaufplan 300 eines Prozesses gemäß einigen Ausführungsformen der vorliegenden Erfindung handelt, um die Stärke von Rückverfolgbarkeitsverknüpfungen zwischen Code-Elementen und Anforderungen in einem Anwendungsentwicklungsprojekt wie z. B. den oben erwähnten Rückverfolgbarkeitsverknüpfungen zu messen. In diesem Prozess werden Anforderungen und Rückverfolgbarkeitsverknüpfungen automatisch identifiziert. Wie in 301 gezeigt, werden ein oder mehrere Anforderungsdokumente in Abschnitte unterteilt, wobei jeder Abschnitt eine einzige Anforderung enthält.
-
Wie in 302 gezeigt, wird danach jeder Abschnitt vorverarbeitet, wobei eine beliebige von verschiedenen Techniken wie z. B. Algorithmen zum Filter von Stoppwörtern und Rückführung auf die Normalform verwendet wird. Wie in 303 gezeigt, werden die Abschnitte anschließend indiziert und, wie in 304 gezeigt, an eine Suchmaschine weitergeleitet. Wie in 305 gezeigt, wird zusätzlich jedes Code-Element einer Software-Codeversion der bestimmten Anwendungsentwicklung in eine Abfrage umgewandelt, um eine oder mehrere Anforderungen zu identifizieren, die es erfüllen sollte. Wie in 306, 307 und 308 gezeigt, werden optional Wörter aus dem Code-Element herausgefiltert, erweitert und nach ihrer Rangfolge geordnet. So werden bei einer Java-Klasse z. B. Wörter aus einem oder mehreren der folgenden Felder herausgefiltert: Klassenname, Namen einer öffentlichen Funktion, Klassenkommentare, Argumente und Rückgabetypen einer öffentlichen Funktion, Namen und implementierte Schnittstellen von Superklassen sowie Kommentare einer öffentlichen Funktion. Die Wörter können gemäß der semantischen Bedeutung ihrer Quelle nach ihrer Rangfolge geordnet werden. So wird z. B. ein Klassenname höher eingestuft als ein Kommentar. Wie in 309 gezeigt, werden die herausgefilterten und nach ihrer Rangfolge geordneten Wörter optional vorverarbeitet, wobei z. B. eine beliebige von verschiedenen Techniken wie Algorithmen zum Filter von Stoppwörtern und Rückführung auf die Normalform verwendet wird. Während des Vorverarbeitens oder davor werden Wörter, die durch Kamelschreibweise (d. h. Schreibweise mit Binnenmajuskeln) oder Unterstreichungen miteinander verknüpft sind, optional getrennt.
-
Wie in 310 gezeigt, wird nun die Abfrage in die Suchmaschine eingegeben, welche die zugehörigen Anforderungen abruft, die aus dem bzw. den Anforderungsdokumenten herausgefiltert wurden. Bei einer derartigen Ausführungsform kann eine Rückverfolgbarkeitsverknüpfung zwischen dem betreffenden Code-Element und jeder abgerufenen Anforderung gekennzeichnet und auf der Grundlage der Rangfolge der Abfragewörter mit einer Rückverfolgbarkeitsverknüpfung bewertet werden.
-
Der in 305 bis 309 beschriebene Prozess wird für jedes Code-Element wiederholt.
-
Im Folgenden wird auf eine beispielhafte Ausführung des in 3 abgebildeten Prozesses in einem Werkzeug mit kontextsensibler Rückverfolgbarkeitstechnologie (Context Aware Traceability Technology, CATT) Bezug genommen. 4 zeigt einen Bildschirmauszug eines CATT-Werkzeugs, das ein bestimmtes Code-Element (die Klasse CVSProjectSetCapability) des Eclipse-Projekts darstellt. 5 zeigt einen vergrößerten Ausschnitt der Klasse mit einer spezifischen Funktion, die sich auf das Auschecken eines Projekts aus dem Versionsverwaltungssystem (Concurrent Versions System, CVS) bezieht. Links oben in 4 ist eine mit einem Kreis 401 gekennzeichnete Verknüpfung zu sehen, die Dokumente abruft, welche mit dem Code-Element in Zusammenhang stehen. 6 zeigt ein Ergebnis, das mit dem oben erwähnten Prozess für die Klasse CVSProjectSetCapability erhalten wurde. Offensichtlich handelt es sich dabei um ein relevantes Ergebnis, da es sich – ebenso wie die in der betreffenden Klasse vergrößert dargestellte Funktion – auf das Auschecken eines Projekts aus dem CVS bezieht.
-
Wie in 105 gezeigt, wird eine neue Software-Codeversion empfangen, indem sie z. B. durch einen Benutzer eines Arbeitsbereichs und/oder einen Benutzer der Datenbank 201 ausgewählt wird, als eine Software-Codeversion identifiziert wird, die zur Kompilation weitergeleitet wird, und/oder in einen Arbeitsbereich und/oder Ähnliches hochgeladen wird. In der neuen Software-Codeversion wurden ein oder mehrere Code-Elemente gegenüber der neuesten Software-Codeversion überarbeitet, die hier auch als die momentane Software-Codeversion bezeichnet wird, wobei dies z. B. während des Implementierungsvorgangs des Anwendungsentwicklungsprojekts erfolgen kann.
-
Wie in 106 gezeigt, wird nun die Stärke von Rückverfolgbarkeitsverknüpfungen zumindest des überarbeiteten Code-Elements in der neuen Software-Codeversion berechnet. Dabei wird z. B. die Stärke berechnet, wie dies wie weiter oben mit Blick auf 104 beschrieben ist.
-
Wie in 107 gezeigt, wird eine Stärkeabweichung zwischen der Stärke einer bestimmten Rückverfolgbarkeitsverknüpfung in der momentanen Software-Codeversion und in der neuen Software-Codeversion identifiziert. Dieser Prozess lässt sich für eine Vielzahl von Rückverfolgbarkeitsverknüpfungen wiederholten, die überarbeitete Code-Elemente miteinander verknüpfen.
-
Wie in 108 gezeigt, wird auf der Grundlage der identifizierten Stärkeabweichung(en) eine Unstimmigkeitsbenachrichtigung erzeugt. Die Unstimmigkeitsbenachrichtigung kann eine Notiz, ein Kommentar und/oder eine Nachricht sein, die in einem Entwicklungsarbeitsbereich gezeigt und/oder als eine Anmerkung zu dem Quellcode hinzugefügt wird, und/oder sie kann eine Nachricht sein, die an einen Vertreter des Anwendungsentwicklungsprojekts gesendet wird. Die Unstimmigkeitsbenachrichtigung beinhaltet optional eine Beschreibung der Unstimmigkeit, z. B. Textzusammenhang, der die Anforderung und/oder das betreffende Code-Element angibt. Optional wird eine Unstimmigkeitsbenachrichtigung nur dann erzeugt, wenn die Abweichung einen bestimmten Schwellenwert und/oder Schwellenwertbereich überschreitet.
-
Im Folgenden wird auf 7 Bezug genommen, bei der es sich um eine schematische Darstellung des Vergleichens der Stärke einer Rückverfolgbarkeitsverknüpfung zwischen einer Anforderung k und einer Code-Elementklasse i in einer momentanen Software-Codeversion 1.0, die als v1 bezeichnet wird, und der Stärke derselben Rückverfolgbarkeitsverknüpfung in einer neuen Software-Codeversion 2.0 handelt, die als v2 bezeichnet wird. Bei diesem Vergleich wird eine Unstimmigkeitsbenachrichtigung erzeugt, wenn für eine der Rückverfolgbarkeitsverknüpfungen der neuen Software-Codeversion gilt: t(v2) > t(v1); und link_v1(i, k) > link_v2(i, k) wobei link_ eine Funktion für die Stärkemessung für eine bestimmte Rückverfolgbarkeitsverknüpfung wie z. B. der oben erwähnte Prozess für die Stärkemessung ist und wobei t(x) für eine Zeitfunktion steht, die sicherstellt, dass die neue Software-Codeversion v2 aktueller als die momentane Version v1 ist.
-
Optional wird die neue Software-Codeversion in der Datenbank 201 gespeichert und für künftige Durchläufe zum Überwachen der Anforderungsintegrität bei neueren Software-Codeversionen des Anwendungsentwicklungsprojekts als die momentane Software-Codeversion gekennzeichnet.
-
Im Folgenden wird darüber hinaus auf 8 Bezug genommen, bei der es sich um den Ablaufplan 800 gemäß einigen Ausführungsformen der vorliegenden Erfindung handelt, um widersprüchliche Anforderungen in Software-Codeversionen eines Anwendungsentwicklungsprojekts auf der Grundlage der Stärke einer bzw. mehrerer Rückverfolgbarkeitsverknüpfung(en) zu identifizieren. Die Blöcke 101 bis 103 und 105 bis 106 sind optional wie weiter oben beschrieben. Darüber hinaus enthält 8 die Blöcke 801 bis 804. Wie in 801 gezeigt, wird zusätzlich zu der neuen und der momentanen Software-Codeversion des Anwendungsentwicklungsprojekts in den Blöcken 101 bis 103 und 105 bis 106 ein Korrelationsschwellenwert empfangen. Danach wird, wie in 802 gezeigt, die neue Software-Codeversion analysiert, um eine oder mehrere neue Rückverfolgbarkeitsverknüpfungen zu identifizieren, die in der momentanen Software-Codeversion z. B. aufgrund einer neuen Anforderung nicht beschrieben sind. Die Stärke einer oder mehrerer der neuen Rückverfolgbarkeitsverknüpfungen wird mit dem Korrelationsschwellenwert verglichen. Wenn eine der Stärken über dem Korrelationsschwellenwert liegt, wird eine Benachrichtigung über eine widersprüchliche Anforderung wie z. B. die oben erwähnte Unstimmigkeitsbenachrichtigung erzeugt und ausgegeben. Andernfalls endet der Prozess und/oder wird mit einer bzw. mehreren neuen Rückverfolgbarkeitsverknüpfungen einer bzw. mehrerer weiteren neuen Software-Codeversionen wiederholt.
-
Optional wird der oben erwähnte Prozess zum Identifizieren widersprüchlicher Anforderungen mit dem oben erwähnten Prozess zum Überwachen der Anforderungsintegrität kombiniert, indem Abweichungen bei der Stärke der Rückverfolgbarkeitsverknüpfungen identifiziert werden. Im Folgenden wird hierfür z. B. auf 9 Bezug genommen, bei der es sich um eine schematische Darstellung eines solchen kombinierten Prozesses handelt. Wie in 9 beispielhaft dargestellt, wird die Stärke einer Rückverfolgbarkeitsverknüpfung zwischen einer Anforderung k und einer Code-Elementklasse i in einer momentanen Software-Codeversion 1.0, die als v1 bezeichnet wird, mit der Stärke derselben Rückverfolgbarkeitsverknüpfung in einer neuen Software-Codeversion 2.0 verglichen, die als v2 bezeichnet wird. Der Vergleich ist ähnlich dem mit Blick auf 7 beschriebenen Vorgang. Der Prozess beinhaltet des Weiteren zu überprüfen, ob die Stärke einer neuen Rückverfolgbarkeitsverknüpfung, die eine neue Anforderung j mit der Code-Elementklasse i verbindet, einen beispielhaften Korrelationsschwellenwert von 0,5 innerhalb von 1 überschreitet. Wie in 9 gezeigt, wird optional eine Unstimmigkeitsbenachrichtigung ausgegeben, wenn der kombinierte Prozess sowohl feststellt, dass die Anforderungsintegrität beeinträchtigt ist, indem er die Abweichungen der Stärke der Rückverfolgbarkeitsverknüpfungen identifiziert, als auch, dass gemäß einer Ausnahme von dem Korrelationsschwellenwert ein Anforderungskonflikt besteht. Die Unstimmigkeitsbenachrichtigung kann auch ausgegeben werden, wenn nur die Anforderungsintegrität beeinträchtigt ist oder nur ein Anforderungskonflikt festgestellt wird.
-
Die oben beschriebenen Verfahren werden zur Herstellung von IC-Chips verwendet. Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und den Betrieb möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Somit kann jeder Block der Ablaufpläne oder Blockschaubilder ein Modul, Segment oder einen Code-Teil darstellen, der einen oder mehrere ausführbare Befehle aufweist, mit denen sich die angegebene(n) logische(n) Funktion(en) realisieren lässt/lassen. Zu beachten ist ferner, dass bei manchen alternativen Ausführungsformen die in dem Block erwähnten Funktionen in einer anderen Reihenfolge als der in den Figuren genannten auftreten können. So können zwei aufeinanderfolgend dargestellte Blöcke tatsächlich im Wesentlichen gleichzeitig stattfinden, oder die Blöcke können mitunter in umgekehrter Reihenfolge ausgeführt werden, wobei dies abhängig von der betreffenden Funktionalität ist. Ebenfalls erwähnenswert ist, dass jeder Block der Blockschaubilder und/oder der Ablaufplan-Darstellung sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplan-Darstellung durch Spezialsysteme auf der Grundlage von Hardware, welche die angegebenen Funktionen oder Handlungen oder Kombinationen hiervon ausführen, oder durch Kombinationen von Spezial-Hardware- und Computerbefehlen realisiert werden kann/können.
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zwecke der Veranschaulichung vorgelegt und sind nicht als vollständig oder auf die offenbarten Ausführungsformen beschränkt zu verstehen. Der Fachmann weiß, dass zahlreiche Änderungen und Abwandlungen möglich sind, ohne von Umfang und Geist der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Begrifflichkeit wurde gewählt, um die Grundsätze der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber marktgängigen Technologien bestmöglich zu erläutern bzw. anderen Fachleuten das Verständnis der hier offenbarten Ausführungsformen zu ermöglichen.
-
Da davon auszugehen ist, dass während der Lebensdauer eines aus dieser Anmeldung erwachsenden Patents viele relevante Systeme und Verfahren entwickelt werden, soll der Umfang der Begriffe „Prozessor”, „Arbeitsbereich” und „Datenbank” von vornherein alle derartigen neuen Technologien beinhalten.
-
Der Begriff „ungefähr” soll hier ± 10% bedeuten.
-
Die Begriffe „weist auf”, „aufweisend”, „enthält”, „enthaltend”, „mit” und ihre Ableitungen bedeuten „einschließlich, ohne darauf beschränkt zu sein”. Dieser Begriff umfasst die Begriffe „bestehend aus” und „im Wesentlichen bestehend aus”.
-
Der Ausdruck „im Wesentlichen bestehend aus” bedeutet, dass die Zusammenstellung oder das Verfahren zusätzliche Komponenten und/oder Schritte beinhalten kann, sofern die zusätzlichen Komponenten und/oder Schritte die grundlegenden und neuartigen Merkmale der beanspruchten Zusammenstellung oder des Verfahrens nicht wesentlich ändern.
-
Die Singularformen „ein/eine/eines” und „der/die/das” beinhalten hier auch den Plural, sofern der Kontext dem nicht eindeutig entgegensteht. So kann der Begriff „eine Verbindung” oder „mindestens eine Verbindung” auch eine Vielzahl von Verbindungen einschließlich Mischungen hiervon beinhalten.
-
Das Wort „beispielhaft” bedeutet hier „als Beispiel oder zur Veranschaulichung dienend”. Eine als „beispielhaft” beschriebene Ausführungsform ist nicht notwendigerweise als gegenüber anderen Ausführungsformen bevorzugt oder vorteilhaft bzw. so zu verstehen, dass sie die Einbindung von Merkmalen anderer Ausführungsformen ausschließt.
-
Das Wort „optional” bedeutet hier „wird in manchen Ausführungsformen bereitgestellt, in anderen jedoch nicht”. Eine konkrete Ausführungsform der Erfindung kann eine Vielzahl von „optionalen” Merkmalen beinhalten, sofern derartige Merkmale nicht in Widerspruch zueinander stehen.
-
Innerhalb dieser Anmeldung können verschiedene Ausführungsformen dieser Erfindung in einem Bereichsformat dargelegt werden Dabei sollte klar sein, dass die Beschreibung in einem Bereichsformat lediglich aus Gründen der Bequemlichkeit und Kürze erfolgt und nicht als unveränderliche Beschränkung des inhaltlichen Umfangs der Erfindung zu werten ist. Entsprechend sollte die Beschreibung eines Bereichs so verstanden werden, dass sie ausdrücklich alle möglichen Teilbereiche sowie einzelne Zahlenwerte innerhalb des Bereichs offenbart. So soll eine Beschreibung eines Bereichs wie z. B. von 1 bis 6 so verstanden werden, dass sie ausdrücklich auch Teilbereiche z. B. von 1 bis 3, von 1 bis 4, von 1 bis 5, von 2 bis 4, von 2 bis 6, von 3 bis 6 usw. sowie einzelne Zahlen innerhalb des Bereichs wie z. B. 1, 2, 3, 4, 5 und 6 offenbart. Dies gilt unabhängig vom Umfang des Bereichs.
-
Wenn hier ein Zahlenbereich angegeben wird, soll er jede genannte Zahl (Bruch- oder Ganzzahl) innerhalb des angegebenen Bereichs beinhalten. Die Ausdrücke „liegend/liegen” zwischen einer ersten angegebenen Zahl und einer zweiten angegebenen Zahl sowie „reichend/reichen” von einer ersten angegeben Zahl „bis zu” einer zweiten angegebenen Zahl werden hier austauschbar verwendet und sollen die ersten und zweiten angegebenen Zahlen sowie alle dazwischenliegenden Bruch- und Ganzzahlen beinhalten.
-
Bestimmte Merkmale der Erfindung, die aus Gründen der Klarheit in Zusammenhang mit getrennten Ausführungsformen beschrieben sind, können zudem auch in einer einzigen Ausführungsform kombiniert bereitgestellt werden. Im Gegensatz dazu können verschiedene Merkmale der Erfindung, die aus Gründen der Kürze in Zusammenhang mit einer einzigen Ausführungsform beschrieben sind, auch getrennt, in einer beliebigen Teilkombination oder wie auch immer dies geeignet ist in einer beliebigen anderen beschriebenen Ausführungsform der Erfindung bereitgestellt werden. Bestimmte, in Zusammenhang mit verschiedenen Ausführungsformen beschriebene Merkmale sind nicht als wesentliche Merkmale dieser Ausführungsformen zu verstehen, sofern die Ausführungsform ohne diese Elemente nicht funktionsunfähig ist.
-
Obwohl die Erfindung in Verbindung mit spezifischen Ausführungsformen hiervon beschrieben wurde, dürfte dem Fachmann klar sein, dass viele Alternativen, Änderungen und Abwandlungen möglich sind. Somit soll die Erfindung alle derartigen Alternativen, Änderungen und Abwandlungen umfassen, die vom Geist und breit gefassten Umfang der beigefügten Ansprüche abgedeckt sind.
-
Alle in dieser Patentschrift genannten Veröffentlichungen, Patente und Patentanmeldungen werden in ihrer Gesamtheit durch Bezugnahme in eben dem Umfang in die Patentschrift mit einbezogen, als wäre jede einzelne Veröffentlichung, jedes Patent oder jede Patentanmeldung ausdrücklich und einzeln durch Bezugnahme hierin aufgenommen. Darüber hinaus ist ein Zitat oder eine Kenntlichmachung eines beliebigen Bezugs in dieser Anmeldung nicht so zu verstehen, als stünde ein derartiger Bezug der vorliegenden Erfindung als Stand der Technik zur Verfügung. Sofern Abschnittsüberschriften verwendet werden, sind diese nicht als notwendigerweise beschränkend zu verstehen.