DE102005042129A1 - Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes - Google Patents
Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes Download PDFInfo
- Publication number
- DE102005042129A1 DE102005042129A1 DE102005042129A DE102005042129A DE102005042129A1 DE 102005042129 A1 DE102005042129 A1 DE 102005042129A1 DE 102005042129 A DE102005042129 A DE 102005042129A DE 102005042129 A DE102005042129 A DE 102005042129A DE 102005042129 A1 DE102005042129 A1 DE 102005042129A1
- Authority
- DE
- Germany
- Prior art keywords
- quality
- source code
- distance
- sequence
- refactoring
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Abstract
Die Erfindung betrifft ein Verfahren und eine Vorrichtung (1) zum automatisierten Bewerten der Qualität eines Software-Quellcodes (10), bei dem ein Qualitätsziel für die Qualität des Quellcodes vorgegeben ist (12). Dabei werden eine aktuelle Qualität des Quellcodes (10) und eine Distanz der aktuellen Qualität des Quellcodes (10) zu dem vorgegebenen Qualitätsziel für die Qualität des Quellcodes ermittelt (16). Aufgrund der Erfindung können vorteilhafterweise große Mengen an Quellcode automatisiert hinsichtlich ihrer Qualität bewertet und insbesondere auch verbessert werden.
Description
- Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes.
- Die Verbesserung der Qualität von Softwarecode ist ein ständiges Bestreben bei der Entwicklung von Software, d. h. Programmen für Computer. Dies gilt nicht nur in Bezug auf das Sicherstellen der Funktionalität der Software, sondern beispielsweise auch in Bezug auf deren Wartbarkeit und Verständlichkeit. Eine ausreichend gute Qualität von Software ist insbesondere dann schwierig zu erreichen, wenn der Umfang der Software, d. h. die Menge des Quellcodes, groß ist, um insbesondere die gewünschte Funktionalität abzudecken. Darüber hinaus ist häufig eine große Menge an expliziten und impliziten informellen Anforderungen vorhanden, die den beteiligten Entwicklern nicht in gleichem Maße bekannt sind und daher bei der Entwicklung nicht ausreichend berücksichtigt werden. Weiterhin ist häufig der Zeitdruck groß, um die Software fertig zu stellen und auszuliefern.
- Zum Beurteilen der Qualität der Software wurden bereits Qualitätsmodelle entwickelt, mit denen sich die Qualität nach vorgegebenen Kriterien beurteilen lässt. Ein solches Qualitätsmodell enthält beispielsweise die Deutsche Industrie Norm, DIN, ISO 9126, Informationstechnik – Beurteilen von Softwareprodukten, Qualitätsmerkmalen und Leitfaden zu deren Verwendung, 1991. In dieser Norm werden Metriken definiert, mit denen die Qualität der Software gemessen und angegeben werden soll. Über diese Norm hinaus sind im Folgenden Beispiele für Objekt-orientierte Metriken aufgeführt: Depth of Inheritance Tree, DIT, Number of Children, NOC, Coupling between Objects, CBO, Weighted Methods per Class, WMC, Re sponse for Class, RFC, Message Passing Coupling, MPC, Lack of Cohesion in Methods, LCOM, etc. Mit diesen Metriken lassen sich Eigenschaften von Objekt-orientierter Software auf der Ebene von Klassen und Methoden messen.
- Metriken sind Indikatoren für in der Software enthaltene Fehler und häufig nur beschränkt aussagekräftig. Sie sind sehr stark abhängig von den technischen Randbedingungen der verwendeten Computersysteme, wie Speicherkapazitäten, Reaktionszeiten, Durchsätzen, Wiederanlaufmöglichkeiten nach einem Stoppen des Ablaufes, Möglichkeiten, Updates einzuspielen, etc. Es ist daher notwendig, die Qualität der Software zusätzlich von Experten beurteilen zu lassen, die zumindest Teile des Quellcodes mehr oder weniger strukturiert manuell durchlesen. Dabei werden potentielle Fehlerquellen erörtert, dokumentiert und Verbesserungsmöglichkeiten vorgeschlagen, die dann vorzugsweise zur Korrektur der Fehler in der Software führen. Dieses Vorgehen ist allerdings aufgrund von schnell wachsenden Mengen an Quellcode, hoher Vernetzung der Systeme mit ihrem jeweiligen Anwendungsumfeld, kurzen Entwicklungszeiten, häufig örtlich verteilten Entwicklungskapazitäten und nicht zuletzt Expertenmangel zunehmend unpraktikabel und fehleranfällig.
- Aus Martin Fowler, "Refactorings: Improving the design of Code", Addison-Wesley, New York, 1999, sind sogenannte Refactorings oder Refactoring-Schritte bekannt. Refactoring-Schritte sind funktionserhaltende Transformationen des Quellcodes, die zu einer Verbesserung der Verständlichkeit des Quellcodes führen können. Solche Refactoring-Schritte sind beispielsweise: Extract Method, um eine Methode (Unterprogramm) aus dem Code herauszunehmen; Inline Method, um eine Methode in den Code einzufügen; Move Method, um eine Methode von einer zu einer anderen Klasse zu verschieben; Move Attribute, um ein Attribut von einer zu einer anderen Klasse zu verschieben; Extract Class, um eine neue Klasse zu generieren und einige kohäsive Attribute und Methoden zu dieser neuen Klasse zu verschieben; Inline Class, um die Mitglieder einer Klasse in eine andere zu verschieben und die alte Klasse zu löschen, etc.
- Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ein automatisiertes Bewerten einer Qualität von Software-Quellcode auf technisch einfache Weise zu ermöglichen.
- Erfindungsgemäß wird diese Aufgabe durch ein Verfahren oder eine Vorrichtung mit den Merkmalen der Patentansprüche 1 bzw. 7 gelöst.
- Verfahrensseitig werden eine aktuelle Qualität des Quellcodes und eine Distanz der aktuellen Qualität des Quellcodes zu einem vorgegebenen Qualitätsziel für die Qualität des Quellcodes ermittelt. Vorrichtungsseitig sind ein Ermittlungsmittel zum Ermitteln einer aktuellen Qualität des Quellcodes und ein Steuermittel zum Ermitteln einer Distanz der aktuellen Qualität des Quellcodes zu einem vorgegebenen Qualitätsziel für die Qualität des Quellcodes vorhanden. Das Steuermittel ist dabei insbesondere so ausgestaltet, dass es ein Ausführen des erfindungsgemäßen Verfahrens ermöglicht. Durch die Ermittlung der Distanz kann ein Maß für den Aufwand festgestellt werden, der zu betreiben ist, um die durch das Qualitätsziel festgelegte gewünschte Qualität des Quellcodes zu erhalten. Der Aufwand kann vorteilhafterweise auf der Basis einer Beurteilung von vorgegebenen Kriterien zum Erreichen des Qualitätszieles, wie z. B. der aufzuwendenden Zeit und/oder dem aufzuwendenden Geld, angegeben werden. Das Ermitteln der Distanz zum Qualitätsziel kann auf der Grundlage einer Skala erfolgen. Eine solche Skala kann insbesondere eine Nominal-, Ordinal-, Intervall-, Verhältnis- und/oder Absolutskala umfassen. Aspekte, die sowohl für die Vorgabe des Qualitätszieles als auch für das Ermitteln der aktuellen Qualität des Quellcodes relevant sein können, können Wartbarkeit, Komplexität, Zuverlässigkeit, Benutzbarkeit, Effizienz, Übertragbarkeit, Verständlichkeit, Produk tivität, Sicherheit und/oder Effektivität des Quellcodes sein.
- Gemäß einer bevorzugten Weiterbildung der Erfindung wird automatisiert eine Sequenz von mehreren sogenannten Refactoring-Schritten festgelegt, mittels der die Distanz ermittelt werden kann. Eine solche Sequenz umfasst ein insbesondere sequentielles Ausführen von einzelnen Refactoring-Schritten. Die Refactoring-Schritte sind funktional äquivalente Transformationen des Quellcodes hin zu einem besseren Zustand des Quellcodes. Die Beurteilung des besseren Zustandes des Quellcodes ist insbesondere auf ein bestimmtes Qualitätsmodell bezogen. Die festgelegte Sequenz der Refactoring-Schritte zeigt darüber hinaus vorteilhafterweise einen Weg auf, auf dem das Qualitätsziel ausgehend von dem aktuellen Qualitätszustand des Quellcodes erreicht werden kann. Es wird somit gleichzeitig ein Vorschlag für eine Verbesserung der Qualität der Software aufgezeigt. Zusätzlich kann es für einen Entwickler oder Experten möglich sein, implizite Anforderungen und informelle Randbedingungen beim Festlegen der Sequenz zu deren Auswahl einzubringen und damit auf einfache Weise zur Verbesserung der Qualität des Quellcodes beizutragen. Vorteilhafterweise ist es somit möglich, insbesondere große Mengen an Quellcode automatisiert und effektiv zu verbessern. Die Beurteilung der Distanz mittels der Sequenz von Refactoring-Schritten stellt darüber hinaus einen Vorschlag für die automatisierte Verbesserung des Quellcodes mittels dieser Sequenz von Refactoring-Schritten dar. Ebenso ist die Ermittlung der Distanz als Qualitätsmaß nachvollziehbar, objektivierbar und reproduzierbar, da die Erklärung an Hand von Verbesserungsvorschlägen, d. h. der Sequenz von Refactoring-Schritten, angegeben wird.
- Gemäß einer weiteren vorteilhaften Ausgestaltung der Erfindung wird eine Menge von mehreren Sequenzen und für diese mehreren Sequenzen jeweils eine Distanz ermittelt. Dabei umfassen die mehreren Sequenzen jeweils mehrere Refactoring- Schritte. Mit dieser ermittelten Menge von Sequenzen lässt sich das Qualitätsziel auf geeignete Weise erreichen. Zumindest kann dem Qualitätsziel mit diesen Sequenzen hinreichend nahe gekommen werden. Das Zusammenstellen der Menge von Sequenzen kann vorteilhafterweise im Hinblick auf ein Qualitätsmodell und das Qualitätsziel erfolgen. Dadurch ist es möglich, auf besonders effektive Weise eine geeignete Grundlage zum Festlegen der Sequenz zu bilden.
- Besonders bevorzugt wird die festgelegte Sequenz von Refactoring-Schritten aus der ermittelten Menge von möglichen Sequenzen von Refactoring-Schritten ausgewählt. Diese Auswahl erfolgt vorteilhafterweise ebenfalls automatisiert. Dadurch kann sichergestellt werden, dass eine optimierte Sequenz von Refactoring-Schritten ausgewählt wird, die gleichzeitig eine besonders günstige Möglichkeit der Verbesserung der Qualität des Quellcodes angibt. Es ist möglich, die einzelnen Refactoring-Schritte in vielen unterschiedlichen Varianten miteinander zu einer Sequenz zu kombinieren, um dadurch die optimale Sequenz zu erhalten.
- In einer weiteren, besonders bevorzugten Ausgestaltung der Erfindung wird für einzelne Refactoring-Schritte eine Schritt-Distanz als Distanz der aktuellen Qualität des Quellcodes zu der Qualität des Quellcodes gemäß dem Qualitätsziel bezogen auf den einzelnen Refactoring-Schritt ermittelt. Die Summe der Schritt-Distanzen von einzelnen, zu der Sequenz zusammengeschlossenen Refactoring-Schritten bestimmt eine Sequenz-Distanz dieser Sequenz von Refactoring-Schritten. Bei mehreren Sequenz-Distanzen von mehreren Sequenzen entspricht dann vorteilhafterweise die günstigste dieser Sequenz-Distanzen der Distanz der aktuellen Qualität des Quellcodes zu dem vorgegebenen Qualitätsziel für die Qualität des Quellcodes. Zum Bestimmen der Schritt-Distanzen muss nicht der vollständige Quellcode transformiert werden. Vielmehr ist es ausreichend, die einzelnen Refactoring-Schritte auf einer übergeordneten Ebene auf solche Teile der Software anzuwenden, die insbesondere für ein Bestimmen einer oder mehrerer Metriken relevant sind. Das Bestimmen der Qualitätsmetriken kann vorteilhafterweise ebenfalls automatisiert erfolgen.
- Gemäß einer weiteren, bevorzugten Weiterbildung der Erfindung ist ein Qualitätsmodell vorgegeben. Weiterhin wird die Distanz in Abhängigkeit von diesem vorgegebenen Qualitätsmodell ermittelt. Dadurch kann die Erfindung geeignet an unterschiedliche Qualitätsansprüche angepasst werden. Ein solches Qualitätsmodell kann beispielsweise der DIN-Norm ISO 9126 entnommen werden. Es sind allerdings auch andere Qualitätsmodelle einsetzbar.
- Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung sind der Beschreibung unter Bezugnahme auf die Zeichnung entnehmbar.
- Die Erfindung wird nachfolgend anhand der in den schematischen Figuren der Zeichnung angegebenen Ausführungsbeispiele näher erläutert. Es zeigen dabei:
-
1 eine schematische Darstellung eines Ausführungsbeispieles einer erfindungsgemäßen Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes und -
2 eine schematische Darstellung eines Ausführungsbeispieles eines erfindungsgemäßen Verfahrens zum automatisierten Bewerten der Qualität eines Software-Quellcodes. -
1 zeigt schematisch ein Ausführungsbeispiel einer erfindungsgemäßen Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes. Diese erfindungsgemäße Vorrichtung ist hier ein Computer1 . Der Computer1 weist einen Bildschirm2 und ein Eingabemittel auf, das hier eine Tastatur3 ist. Der Computer1 enthält des Weiteren eine Steuereinrichtung4 , die mehrere Komponenten aufweist. Zwei dieser Komponenten sind ein Ermittlungsmittel5 und ein Steuermittel6 . Die Steuereinrichtung4 enthält insbesondere einen Prozessor und einen Speicher, in dem ein geeignetes Programm, d. h. eine Software, abgespeichert ist, das von dem Prozessor ausgeführt werden kann, um das erfindungsgemäße Verfahren durchzuführen. Die Steuereinrichtung4 enthält weiterhin einen Software-Speicher7 , in dem die Software abgespeichert ist, deren Qualität bewertet werden soll. Mit dem Computer1 und insbesondere der Ausgestaltung der Steuereinrichtung4 mitsamt ihrer Komponenten5 und6 kann das erfindungsgemäße Verfahren zum automatisierten Bewerten der Qualität des Software-Quellcodes durchgeführt werden. Dieses wird nun an Hand der2 beschrieben. -
2 zeigt schematisch ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens zum automatisierten Bewerten der Qualität eines Software-Quellcodes. Dieser Software-Quellcode ist in dem Speicher7 des Computers1 abgespeichert. Die Software, die den Ablauf des erfindungsgemäßen Verfahrens steuert, ist in der Steuereinrichtung4 enthalten. Ausgangspunkte für die Durchführung des Verfahrens sind der zu bewertende und zu verbessernde Quellcode, der in der2 durch die Verfahrenskomponente mit dem Bezugszeichen10 repräsentiert ist. Eine Verfahrenskomponente11 repräsentiert eine Menge von einzelnen Refactoring-Schritten, die für die Bewertung des Quellcodes eingesetzt werden können. Eine Verfahrenskomponente12 repräsentiert ein vorgegebenes Qualitätsziel, das eine gewünschte Qualität angibt, die die Software haben soll. Das Qualitätsziel basiert auf einem vorgegebenen Qualitätsmodell. Die Verfahrenskomponenten10 ,11 und12 repräsentieren vorgegebene Bedingungen zum Durchführen des erfindungsgemäßen Verfahrens. - Mittels dieser vorgegebenen Bedingungen Quellcode, Refactoring-Schritte und Qualitätsziel wird in einem Verfahrens schritt
13 wenigstens eine Metrik berechnet, die insbesondere Anhaltspunkte für die aktuelle Qualität des Software-Quellcodes gibt. Dies ist Grundlage für ein Zuweisen von einzelnen Distanzen, d. h. von Schritt-Distanzen, zu den einzelnen Refactoring-Schritten in einem Verfahrensschritt14 . Die Schritt-Distanzen entsprechen Abstandsmaßen der aktuellen Quellcodequalität zu der durch das Qualitätsziel definierten gewünschten Quellcodequalität bezogen auf die jeweiligen einzelnen Refactoring-Schritte. Das Berechnen der wenigstens einen Metrik im Verfahrensschritt13 ist ebenfalls Grundlage für ein Zusammenstellen von verschiedenen Sequenzen von Refactoring-Schritten in einem Verfahrensschritt15 . In einem Verfahrensschritt16 wird mittels der im Verfahrensschritt14 zugewiesenen Schritt-Distanzen zu den einzelnen Refactoring-Schritten und der im Verfahrensschritt15 zusammengestellten Sequenzen von Refactoring-Schritten eine geeignete Sequenz von Refactoring-Schritten ausgewählt. Dabei werden die jeweiligen Schritt-Distanzen der zu einer der Sequenzen zusammengestellten einzelnen Refactoring-Schritte zu Sequenz-Distanzen für die jeweiligen Sequenzen aufsummiert und miteinander verglichen. Die günstigste Sequenz wird dann ausgewählt. Die Sequenz-Distanz dieser ausgewählten Sequenz entspricht dabei der Distanz der aktuellen Qualität des Quellcodes zu dem vorgegebenen Qualitätsziel für die Qualität des Quellcodes. Ein Experte oder ein Entwickler, der den Quellcode verfasst hat und/oder weiter bearbeitet, hat die Möglichkeit, in einer Verfahrenskomponente17 manuell auf die Auswahl der Sequenz von Refactoring-Schritten Einfluss zu nehmen. Der Experte oder Entwickler kann insbesondere implizite Anforderungen und informelle Randbedingungen berücksichtigen. In einem Verfahrensschritt18 wird die ausgewählte Sequenz von Refactoring-Schritten in einem Refactoring-Editor auf den Quellcode angewendet. Der Refactoring-Editor kann beispielsweise ein Programm mit der Bezeichnung Eclipse sein. Dadurch entsteht dann ein fehlerbereinigter Quellcode, der gemäß des gewählten Qualitätsmodells gegenüber dem Quellcode, wie er gemäß der Verfahrens komponente10 vorhanden ist, eine verbesserte Qualität aufweist. Der fehlerbereinigte Quellcode ist in der2 durch eine Verfahrenskomponente19 repräsentiert. - Aufgrund der Erfindung ist es vorteilhafterweise möglich, eine Bewertung der aktuellen Qualität des Software-Quellcodes vorzunehmen, wie er gemäß der Verfahrenskomponente
10 vorhanden ist. Dies erfolgt mittels der Sequenz von Refactoring-Schritten, wie sie im Verfahrensschritt16 ausgewählt wird. Gleichzeitig dient diese Sequenz zur direkten und automatisierten Verbesserung der Qualität des Quellcodes, da die Sequenz direkt auf den Quellcode angewendet werden kann. - Die Steuereinrichtung
4 des Computers1 gemäß dem Ausführungsbeispiel nach1 ist hier so ausgestaltet, dass das Ermittlungsmittel5 zum Ermitteln der aktuellen Qualität des Quellcodes dient. Im Ermittlungsmittel5 wird somit insbesondere der Verfahrensschritt13 ausgeführt. Das Steuermittel6 dient zum Ermitteln der Distanz der aktuellen Qualität des Quellcodes zu dem vorgegebenen Qualitätsziel für die Qualität des Quellcodes. Im Steuermittel6 wird somit insbesondere der Verfahrensschritt18 ausgeführt. Das Steuermittel6 dient des Weiteren zum automatisierten Auswählen und Festlegen der Sequenz von Refactoring-Schritten aus der im Verfahrensschritt15 vorgegebenen Menge von möglichen Sequenzen von Refactoring-Schritten. Außerdem ermittelt das Steuermittel6 für die einzelnen Refactoring-Schritte die jeweilige Schritt-Distanz, wobei die Summe der Schritt-Distanzen der einzelnen, zu einer der Sequenzen zusammengeschlossenen Refactoring-Schritte die Sequenz-Distanz dieser Sequenz bestimmt. Insofern werden mittels des Steuermittels6 ebenfalls die Verfahrensschritte14 ,15 und16 durchgeführt. - Obgleich die vorliegende Erfindung vorstehend anhand bevorzugter Ausführungsbeispiele beschrieben wurde, ist sie dar auf nicht beschränkt, sondern auf vielfältige Art und Weise modifizierbar.
Claims (12)
- Verfahren zum automatisierten Bewerten der Qualität eines Software-Quellcodes (
10 ), bei dem ein Qualitätsziel für die Qualität des Quellcodes vorgegeben ist (12 ) und das Verfahren die folgenden Schritte aufweist: Ermitteln (13 ) einer aktuellen Qualität des Quellcodes (10 ) und Ermitteln (16 ) einer Distanz der aktuellen Qualität des Quellcodes (10 ) zu dem vorgegebenen Qualitätsziel für die Qualität des Quellcodes (10 ). - Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass automatisiert eine Sequenz von mehreren sogenannten Refactoring-Schritten festgelegt (
16 ) und die Distanz mittels der festgelegten Sequenz von Refactoring-Schritten ermittelt wird. - Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass eine Menge von mehreren Sequenzen ermittelt wird (
15 ) und für diese mehreren Sequenzen jeweils eine Distanz ermittelt wird (16 ), wobei die mehreren Sequenzen jeweils mehrere Refactoring-Schritte umfassen. - Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass die festgelegte Sequenz von Refactoring-Schritten aus der ermittelten Menge von Sequenzen von Refactoring-Schritten ausgewählt wird (
15 ,16 ). - Verfahren nach wenigstens einem der Ansprüche 2–4, dadurch gekennzeichnet, dass für einzelne Refactoring-Schritte eine Schritt-Distanz als Distanz der aktuellen Qualität des Quellcodes zu der Qualität des Quellcodes gemäß des Qualitätszieles bezogen auf den einzelnen Refactoring-Schritt ermittelt wird (
14 ) und die Summe von Schritt-Distanzen von einzelnen, zu der Sequenz zusammengeschlossenen Refactoring-Schritten eine Sequenz-Distanz dieser Sequenz von Refactoring-Schritten bestimmt (16 ). - Verfahren nach wenigstens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass ein Qualitätsmodell vorgegeben ist und die Distanz in Abhängigkeit von diesem vorgegebenen Qualitätsmodell ermittelt wird.
- Vorrichtung (
1 ) zum automatisierten Bewerten der Qualität eines Software-Quellcodes, wobei ein Qualitätsziel für die Qualität des Quellcodes vorgegeben ist und die Vorrichtung aufweist: ein Ermittlungsmittel (5 ) zum Ermitteln einer aktuellen Qualität des Quellcodes und ein Steuermittel (6 ) zum Ermitteln einer Distanz der aktuellen Qualität des Quellcodes zu dem vorgegebenen Qualitätsziel für die Qualität des Quellcodes. - Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass das Steuermittel (
6 ) so ausgestaltet ist, dass automatisiert eine Sequenz von mehreren sogenannten Refactoring-Schritten festlegbar und die Distanz mittels der festgelegten Sequenz von Refactoring-Schritten ermittelbar ist. - Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, dass das Steuermittel (
6 ) des Weiteren so ausgestaltet ist, dass es eine Menge von mehreren Sequenzen und für die mehreren Sequenzen jeweils eine Distanz ermittelt, wobei die mehreren Sequenzen jeweils mehrere Refactoring-Schritte umfassen. - Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, dass das Steuermittel (
6 ) des Weiteren so ausgestaltet ist, dass die festgelegte Sequenz von Refactoring-Schritten aus der ermittelten Menge von Sequenzen von Refactoring-Schritten auswählbar ist. - Vorrichtung nach wenigstens einem der Ansprüche 8–10, dadurch gekennzeichnet, dass das Steuermittel (
6 ) des Weiteren so ausgestaltet ist, dass für einzelne Refactoring-Schritte eine Schritt-Distanz als Distanz der aktuellen Qualität des Quellcodes zu der Qualität des Quellcodes gemäß des Qualitätszieles bezogen auf den einzelnen Refactoring-Schritt ermittelbar ist, wobei die Summe von Schritt-Distanzen von einzelnen, zu der Sequenz zusammengeschlossenen Refactoring-Schritten eine Sequenz-Distanz dieser Sequenz von Refactoring-Schritten bestimmt. - Vorrichtung nach wenigstens einem der Ansprüche 7–11, dadurch gekennzeichnet, dass ein Qualitätsmodell vorgegeben ist und das Steuermittel (
6 ) so ausgestaltet ist, dass die Distanz in Abhängigkeit von diesem vorgegebenen Qualitätsmodell ermittelbar ist.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102005042129A DE102005042129A1 (de) | 2005-09-05 | 2005-09-05 | Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes |
US11/512,177 US8037455B2 (en) | 2005-09-05 | 2006-08-30 | Method and device for the automated evaluation of software source code quality |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102005042129A DE102005042129A1 (de) | 2005-09-05 | 2005-09-05 | Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102005042129A1 true DE102005042129A1 (de) | 2007-03-15 |
Family
ID=37762919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102005042129A Ceased DE102005042129A1 (de) | 2005-09-05 | 2005-09-05 | Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes |
Country Status (2)
Country | Link |
---|---|
US (1) | US8037455B2 (de) |
DE (1) | DE102005042129A1 (de) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8881112B2 (en) * | 2007-12-19 | 2014-11-04 | International Business Machines Corporation | Quality measure tool for a composite application |
US20100218164A1 (en) * | 2008-03-19 | 2010-08-26 | National Central University | Pattern Quality Verification Model |
US20090271766A1 (en) * | 2008-04-29 | 2009-10-29 | International Business Machines Corporation | Methods, systems and computer program products for improving program performance by anti-refactoring |
US8347272B2 (en) * | 2008-07-23 | 2013-01-01 | International Business Machines Corporation | Call graph dependency extraction by static source code analysis |
US8566787B2 (en) * | 2008-09-15 | 2013-10-22 | Infosys Limited | System and method for improving modularity of large legacy software systems |
CN103793315B (zh) * | 2012-10-29 | 2018-12-21 | Sap欧洲公司 | 监视和改善软件开发质量方法、系统和计算机可读介质 |
CN108536591A (zh) * | 2018-03-27 | 2018-09-14 | 中国人民解放军海军大连舰艇学院 | 一种舰载指挥控制系统软件质量半量化动态评估方法 |
US10732962B1 (en) * | 2018-04-12 | 2020-08-04 | Amazon Technologies, Inc. | End-to-end deployment infrastructure |
CN112131122B (zh) * | 2020-09-27 | 2022-09-30 | 北京智联安行科技有限公司 | 一种源代码缺陷检测工具误报评估方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7669180B2 (en) * | 2004-06-18 | 2010-02-23 | International Business Machines Corporation | Method and apparatus for automated risk assessment in software projects |
US7788632B2 (en) * | 2005-06-02 | 2010-08-31 | United States Postal Service | Methods and systems for evaluating the compliance of software to a quality benchmark |
US7840944B2 (en) * | 2005-06-30 | 2010-11-23 | Sap Ag | Analytical regression testing on a software build |
US20070083859A1 (en) * | 2005-10-12 | 2007-04-12 | Velidom, Inc. | Software manufacturing factory |
-
2005
- 2005-09-05 DE DE102005042129A patent/DE102005042129A1/de not_active Ceased
-
2006
- 2006-08-30 US US11/512,177 patent/US8037455B2/en active Active
Non-Patent Citations (2)
Title |
---|
YU, Y. et al.: Software refactoring guided by multiple soft-goals. In: The First International Workshop of REFactoring, Nov. 13, 2003, British Columbia, Canada. <http://www.cs.toronto.edu/ APPROX yijun/GoalOrientedRefactoring.html> (recherchiert am 16.05.06) * |
YU, Y. et al.: Software refactoring guided by multiple soft-goals. In: The First International Workshop of REFactoring, Nov. 13, 2003, British Columbia, Canada. <http://www.cs.toronto.edu/~yiju n/GoalOrientedRefactoring.html> (recherchiert am 16.05.06) |
Also Published As
Publication number | Publication date |
---|---|
US20070055959A1 (en) | 2007-03-08 |
US8037455B2 (en) | 2011-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102005042129A1 (de) | Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes | |
DE19781804B4 (de) | Vorrichtung zur Simulation einer Echtzeit-Prozesssteuerung | |
DE102005042126A1 (de) | Verfahren und Vorrichtung zum automatisierten Bewerten der Qualität eines Software-Quellcodes | |
EP3082000B1 (de) | Verfahren und system zum testen eines mechatronischen systems | |
DE102004014290A1 (de) | Verfahren zur Erstellung von Abläufen zum Testen einer Software | |
DE10041072A1 (de) | Verfahren zur automatischen Erzeugung von Programmcode | |
DE10256990A1 (de) | Programmcodegenerator und Programm | |
WO2007068563A1 (de) | Verfahren zur verarbeitung und erzeugung von diagnosedaten in einem softwareentwicklungsprozess | |
DE102010021382A1 (de) | Verfahren und System zur Erzeugung eines Integrationsmodells | |
EP1505399B1 (de) | Verfahren zum Erzeugen von Testdaten zum Austesten der Funktionsfähigkeit einer datenverarbeitenden Schaltung | |
DE10322837A1 (de) | Verfahren zur Projektierung eines Automatisierungssystems | |
DE10325513B4 (de) | Verfahren und Vorrichtung zum Erstellen eines Verhaltensaspekts einer Schaltung zur formalen Verifikation | |
DE10242916A1 (de) | System zur Bereitstellung eines Standard-Frameworks für Automatisierungsgeräte | |
EP0708941B1 (de) | Verfahren zum test eines objektorientierten programms | |
WO1997003389A1 (de) | Verfahren zur erstellung eines anwenderspezifischen funktionsplanes für speicherprogrammierbare steuerungen (sps) | |
WO2018206522A1 (de) | Produktreifebestimmung eines technischen systems und insbesondere eines autonom fahrenden fahrzeugs | |
DE10233971A1 (de) | Verfahren und Vorrichtung zur Erzeugung von Software | |
DE10160957B4 (de) | Verfahren und Vorrichtung zur Änderung der Tarife von Telefondienstleistungen | |
DE19546173A1 (de) | Verfahren zum Testen einer Bedieneroberfläche in computergesteuerten Systemen | |
DE10254530A1 (de) | Verfahren und System zur wissensbasierten Transformation von textuellen Programmen, die sich auf die Softwarekonfiguration eines verteilten Leitsystems beziehen | |
DE102021211620A1 (de) | Verfahren und System zur automatischen Erzeugung eines eingebetteten Quellcodes für die elektronische Steuereinheit eines AD/ADAS-Strassenfahrzeugs | |
DE102019209541A1 (de) | Verfahren und Vorrichtung zum Erfüllen einer Entwicklungsaufgabe | |
DE102008052534A1 (de) | Softwareintegrationsprozess | |
DE102009033013A1 (de) | Verfahren zur Modifikation und/oder Generierung eines auf Basisaktivitäten basierenden Workflows, sowie Projektunterstützungstool und Projektunterstützungsframework | |
DE102018117510A1 (de) | Verfahren, Vorrichtung, Computerprogramm und Computerprogrammprodukt zum Ermitteln eines Wirknetzes eines Fahrzeuges |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |