[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE112012004331T5 - Verwenden der Stärke von Rückverfolgbarkeitsverknüpfungen zum Überwachen der Software-Entwicklungsintegrität - Google Patents

Verwenden der Stärke von Rückverfolgbarkeitsverknüpfungen zum Überwachen der Software-Entwicklungsintegrität Download PDF

Info

Publication number
DE112012004331T5
DE112012004331T5 DE112012004331.6T DE112012004331T DE112012004331T5 DE 112012004331 T5 DE112012004331 T5 DE 112012004331T5 DE 112012004331 T DE112012004331 T DE 112012004331T DE 112012004331 T5 DE112012004331 T5 DE 112012004331T5
Authority
DE
Germany
Prior art keywords
strength
code
software code
traceability
application development
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112012004331.6T
Other languages
English (en)
Inventor
c/o IBM Research Laboratory Simionovici Yahalomit
c/o IBM Israel Haifa Research Nisenson Mordechai
c/o IBM Israel Haifa Research Bnayanu Jonathan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112012004331T5 publication Critical patent/DE112012004331T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/77Software metrics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

Ein Verfahren zum Überwachen der Anforderungsintegrität. Das Verfahren weist auf: das Empfangen einer Vielzahl von Anforderungen für ein Anwendungsentwicklungsprojekt mit einer Vielzahl von Code-Elementen, das Berechnen einer ersten Stärke für jede aus 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. 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 enthält, und Erzeugen einer Unstimmigkeitsbenachrichtigung auf der Grundlage einer Abweichung zwischen der zweiten Stärke und der ersten Stärke.

Description

  • 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.

Claims (12)

  1. Computergestütztes Verfahren zum Überwachen der Integrität eines Anwendungsentwicklungsprojekts mit einer Vielzahl von Code-Elementen und einer Vielzahl von Anforderungen, aufweisend: 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; 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 enthält; und Erzeugen einer Unstimmigkeitsbenachrichtigung auf der Grundlage einer Abweichung zwischen der zweiten Stärke und der ersten Stärke.
  2. Verfahren nach Anspruch 1, aufweisend des Weiteren das Analysieren des Anwendungsentwicklungsprojekts und der Vielzahl von Anforderungen, um die Vielzahl von Rückverfolgbarkeitsverknüpfungen automatisch zu identifizieren.
  3. Verfahren nach Anspruch 1, aufweisend des Weiteren das Empfangen einer manuellen Eingabe von einem Benutzer, welche die Vielzahl von Rückverfolgbarkeitsverknüpfungen angibt.
  4. Verfahren nach Anspruch 1, aufweisend des Weiteren das Bereitstellen eines Schwellenwerts für die Unstimmigkeitsbenachrichtigung; wobei das Erzeugen aufweist, dass die Unstimmigkeitsbenachrichtigung erzeugt wird, wenn die Abweichung größer als der Schwellenwert für die Unstimmigkeitsbenachrichtigung ist.
  5. Verfahren nach Anspruch 1, aufweisend des Weiteren das Bereitstellen eines Korrelationsschwellenwerts; 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.
  6. Verfahren nach Anspruch 5, wobei die Unstimmigkeitsbenachrichtigung einen Konflikt zwischen der neuen Anforderung und mindestens einer aus der Vielzahl von Anforderungen angibt.
  7. Verfahren nach Anspruch 1, wobei das Berechnen gemäß einer semantischen Analyse des bestimmten Code-Elements durchgeführt wird.
  8. Verfahren nach Anspruch 1, wobei das Berechnen gemäß einer semantischen Analyse der Vielzahl von Anforderungen durchgeführt wird.
  9. Verfahren nach Anspruch 1, wobei sowohl die momentane Software-Codeversion als auch der neue Software-Code in einer gemeinsamen Datenbank gespeichert und durch mindestens einen Benutzer und eine automatische Analyse von Datensätzen in der Datenbank ausgewählt werden.
  10. Verfahren nach Anspruch 1, wobei 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 wird.
  11. System, aufweisend ein Mittel, welches so gestaltet ist, dass es alle Schritte des Verfahrens gemäß einem beliebigen voranstehenden Verfahrensanspruch durchführt.
  12. Computerprogramm, das Befehle zum Durchführen aller Schritte des Verfahrens gemäß einem beliebigen voranstehenden Verfahrensanspruch aufweist, wenn das Computerprogramm auf einem Computersystem ausgeführt wird.
DE112012004331.6T 2011-11-06 2012-10-24 Verwenden der Stärke von Rückverfolgbarkeitsverknüpfungen zum Überwachen der Software-Entwicklungsintegrität Pending DE112012004331T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/290,088 2011-11-06
US13/290,088 US9292410B2 (en) 2011-11-06 2011-11-06 Using traceability links strength for software development integrity monitoring
PCT/IB2012/055846 WO2013064939A1 (en) 2011-11-06 2012-10-24 Using traceability links strength for software development integrity monitoring

Publications (1)

Publication Number Publication Date
DE112012004331T5 true DE112012004331T5 (de) 2014-10-09

Family

ID=48191449

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012004331.6T Pending DE112012004331T5 (de) 2011-11-06 2012-10-24 Verwenden der Stärke von Rückverfolgbarkeitsverknüpfungen zum Überwachen der Software-Entwicklungsintegrität

Country Status (6)

Country Link
US (1) US9292410B2 (de)
JP (1) JP5961275B2 (de)
CN (1) CN103890722B (de)
DE (1) DE112012004331T5 (de)
GB (1) GB2511005A (de)
WO (1) WO2013064939A1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9292410B2 (en) * 2011-11-06 2016-03-22 International Business Machines Corporation Using traceability links strength for software development integrity monitoring
US9176937B2 (en) * 2012-04-05 2015-11-03 International Business Machines Corporation Ensuring user interface specification accurately describes user interface after updates to user interface
US9069899B2 (en) * 2012-06-27 2015-06-30 Microsoft Technology Licensing, Llc Integrating diagnostic information in development environment
US20160179868A1 (en) * 2014-12-18 2016-06-23 GM Global Technology Operations LLC Methodology and apparatus for consistency check by comparison of ontology models
IN2015CH03905A (de) * 2015-07-30 2015-08-14 Wipro Ltd
US9733927B2 (en) * 2015-11-11 2017-08-15 International Business Machines Corporation Detection of software or hardware incompatibilities in software packages
CN107368407B (zh) * 2016-05-11 2021-05-25 北京京东尚科信息技术有限公司 信息处理方法和装置
US10083029B2 (en) * 2016-11-09 2018-09-25 Red Hat, Inc. Detect application defects by correlating contracts in application dependencies
US10977156B2 (en) * 2018-10-10 2021-04-13 International Business Machines Corporation Linking source code with compliance requirements
US20200202265A1 (en) * 2018-12-21 2020-06-25 Microsoft Technology Licensing, Llc Automated parenting of work items in a resource management structure
US10860294B2 (en) * 2019-01-25 2020-12-08 Rockwell Collins, Inc. Requirements tracing precision validation tool
CN111831266A (zh) * 2019-04-22 2020-10-27 上海汽车集团股份有限公司 智能驾驶软件的集成与追溯系统及方法
CN110532019B (zh) * 2019-06-27 2021-03-12 北京大学 一种软件代码片段历史追溯的方法
CN110516722B (zh) * 2019-08-15 2023-08-22 南京航空航天大学 一种基于主动学习的需求与代码之间可追踪性的自动生成方法
CN113835960B (zh) * 2021-09-23 2024-07-02 中国人民解放军63920部队 一种航天测控软件研发状态监控标记方法及装置
CN115098062A (zh) * 2022-06-28 2022-09-23 平安银行股份有限公司 一种代码生成方法及装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182908A (ja) * 2000-12-15 2002-06-28 Mitsubishi Electric Corp S/w開発プロセス間のトレーサビリティ装置
DE10104394A1 (de) * 2001-01-19 2002-08-01 Salzenbrodt Gmbh & Co Kg Imprägniermittel
US7174348B1 (en) * 2002-11-26 2007-02-06 Unisys Corporation Computer program having an object module and a software development tool integration module which automatically interlink artifacts generated in different phases of a software project
US8225302B2 (en) * 2003-02-13 2012-07-17 Lawrence Taylor Waugh System and method for managing source code and acquiring metrics in software development
FR2852117A1 (fr) * 2003-03-03 2004-09-10 Thales Sa Procede de developpement automatise avec mise a jour
US7640532B2 (en) * 2004-08-25 2009-12-29 International Business Machines Corporation Mapping software code to business logic
US7735068B2 (en) * 2005-12-01 2010-06-08 Infosys Technologies Ltd. Automated relationship traceability between software design artifacts
US8429610B2 (en) * 2005-12-20 2013-04-23 International Business Machines Corporation Computer method and apparatus for providing version-aware impact analysis
US7908583B2 (en) * 2005-12-29 2011-03-15 International Business Machines Corporation Evidentiary enrichment of traceability links between software specification requirements
US8312415B2 (en) * 2007-04-17 2012-11-13 Microsoft Corporation Using code analysis for requirements management
CN101477467A (zh) * 2008-12-08 2009-07-08 山东浪潮齐鲁软件产业股份有限公司 一种项目代码发布的方法
US20100162215A1 (en) * 2008-12-18 2010-06-24 International Business Machines Corporation Enabling automated real-time metrics during the software development process
JP5247587B2 (ja) * 2009-05-20 2013-07-24 株式会社日立情報制御ソリューションズ 要求仕様トレーサビリティ管理装置
US8799869B2 (en) * 2011-10-03 2014-08-05 Accenture Global Services Limited System for ensuring comprehensiveness of requirements testing of software applications
US9292410B2 (en) * 2011-11-06 2016-03-22 International Business Machines Corporation Using traceability links strength for software development integrity monitoring

Also Published As

Publication number Publication date
JP5961275B2 (ja) 2016-08-02
JP2014534530A (ja) 2014-12-18
US9292410B2 (en) 2016-03-22
GB2511005A (en) 2014-08-20
US20130117725A1 (en) 2013-05-09
CN103890722B (zh) 2016-11-16
GB201408908D0 (en) 2014-07-02
CN103890722A (zh) 2014-06-25
WO2013064939A1 (en) 2013-05-10

Similar Documents

Publication Publication Date Title
DE112012004331T5 (de) Verwenden der Stärke von Rückverfolgbarkeitsverknüpfungen zum Überwachen der Software-Entwicklungsintegrität
DE102015212953B4 (de) Künstliche neuronale Netze zur Klassifizierung von medizinischen Bilddatensätzen
DE10300545B4 (de) Vorrichtung, Verfahren, Speichermedium und Datenstruktur zur Kennzeichnung und Speicherung von Daten
DE112018004946T5 (de) Kognitive datenanonymisierung
DE112018001996T5 (de) Systeme und verfahren zur modellgestützten kohortenauswahl
DE202014010910U1 (de) Vorgang zur Anzeige von Testabdeckungsdaten während der Codeüberprüfung
DE102014213036A1 (de) Datenqualitätsmonitore
DE112015000347T5 (de) Verarbeiten von Datensätzen in einer Ablage für große Datenmengen
DE102013209868A1 (de) Abfragen und Integrieren strukturierter und unstrukturierter Daten
DE102014211692A1 (de) Anhängeridentifizierung
DE102014113692A1 (de) Verdichtung von longitudinalen epa für eine verbesserte phänotypisierung
DE102012214196A1 (de) Erkennen nicht eindeutiger Namen in einer Gruppe von Namen
DE112017007530T5 (de) Entitätsmodell-erstellung
DE112013005993T5 (de) Verfahren, Vorrichtung und computerlesbares Medium für eine optimale Bestimmung von Daten-Teilmengen
DE102010042288A1 (de) Vorrichtung und Verfahren zum maschinellen Erstellen eines Prozessdiagramms
DE112012004169T5 (de) Überwachen der Ausführung von gespeicherten Prozeduren
Prakash et al. Chances and Challenges in Fusing Data Science with Materials Science: The working group “3D Data Science” is headed by Prof. Dr. Stefan Sandfeld.
DE102012216321A1 (de) Verfahren und System zur Nachkonstruktion von Protokollen
DE69512696T2 (de) Systemanalyseverfahren
DE112015000337T5 (de) Entwicklung von Informationen von gesundheitsbezogenen Funktionsabstraktionen aus intraindividueller zeitlicher Varianzheterogenität
DE102014116117B4 (de) Verfahren und System zum Mining von Mustern in einem Datensatz
DE102012210482A1 (de) Verfahren und System zum Migrieren von Geschäftsprozessinstanzen
EP1324218A1 (de) Kategorisierungsystem für Datenobjekte und Verfahren zum Prüfen der Konsistenz von Zuordnungen von Datenobjekten zu Kategorien
DE112022004468T5 (de) Metadaten-gesteuerte Datenaufnahme
DE202018006901U1 (de) Techniken zur dynamischen Definition eines Datensatzformats

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R409 Internal rectification of the legal status completed
R409 Internal rectification of the legal status completed
R012 Request for examination validly filed

Effective date: 20140430

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0009440000

Ipc: G06F0015160000

R016 Response to examination communication
R084 Declaration of willingness to licence