Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

zu besseren PL/SQL-Programmen

Ähnliche Präsentationen


Präsentation zum Thema: "zu besseren PL/SQL-Programmen"—  Präsentation transkript:

1 zu besseren PL/SQL-Programmen
TÜV für PL/SQL? Ein effizienter Weg zu besseren PL/SQL-Programmen Eschborn, Januar 2007 Klaus Borel , Peter Bug OPLAn

2 Wer macht den PL/SQL - TÜV für Sie?
Am besten Ihre eigenen Entwickler zusammen mit: itdoc24 Ltd. Chefentwickler itdoc24: Peter Bug Kfm. Ansprechpartner: Klaus Borel Techn. Ansprechpartner: Jörg Rauh

3 verständlich? laufsicher?
SW-Entwicklung bisher: Schwachstellen, Fehler Manager Ideen, Fremdsoftware, Änderungen Aufgabe, Projekt Programmierer Tabellen-Design, SQL, PL/SQL Code Anwender ? ? ? verständlich? laufsicher? erweiterbar? änderbar?

4 SW-Entwicklung jetzt: Gesicherte Software-Qualität
Programmierer Anwender OPLAn Code Sauberer Manager Aufgabe, Projekt Ideen, Fremdsoftware, Änderungen Tabellen-Design, Neues SQL, PL/SQL Fehlerart, Fehlerort, Listen, professionelle technische Dokumentation verständlich, laufsicher, erweiterbar, änderbar Pro-aktive Programm- Analyse

5 OPLAn TECHNIK OPLAn sichert Programmierrichtlinien
informiert über 80 Fehlerarten bietet Online-Hilfe mit Beispielen und liefert Listen und Dokumentation des Codes

6 OPLAn findet Schwachstellen wie:
Nicht erreichbare Anweisungen ( toten Code), Deklarierte, aber danach nicht mehr verwendete Objekte, Benutzerdefinierte Datentypen oder Savepoints, OPEN CURSOR ohne CLOSE CURSOR oder FOPEN ohne FCLOSE, Unzulässige Verwendung von Reserved Words, Insert-Statements ohne Spaltenliste, unlogische IF-Bedingung, Falsche Verwendung von Operatoren (z.B. ... =NULL), Unterdrückte Fehlerbehandlung z.B. WHEN OTHERS THEN NULL;, LOOPs ohne EXIT , unterschiedlich deklarierte Variable, Überschreiben von Objekten im Package STANDARD, Package-übergreifende globale Variable, ungenutzte Variable, Fehlende Deklaration von Konstanten, u.a.

7 OPLAn findet kritischen Code wie:
GOTO in Modulen, select mit distinct/unique ELSE-IF-Kaskaden oder CASE ohne ELSE-Zweige Hochkomplexe IF-, ELSIF- oder CASE- Bedingungen Fehlende (Bereichs-) Prüfung übernommener Parameter Module mit höherer als der eingestellten Komplexität Module mit hoher Schachtelungstiefe von Schleifen Präfixe, die nicht dem empfohlenen Wert entsprechen Zu kurze Namen, Auffallende Ähnlichkeit im Code Variable, die nie in einem Modul abgefragt werden Fehlende Initialisierung von Variablen Module ohne error logging oder ohne exception handler Rekursiver Aufruf von Modulen Rownum oder Function in Where-Condition

8 OPLAn findet weiteren kritischen Code wie:
LOCK TABLE . . ohne anschließendes COMMIT/ROLLBACK SELECT..FOR UPDATE und kein COMMIT/ROLLBACK VARCHAR anstelle von VARCHAR2, Nicht initialisierte Variable FETCH ohne %FOUND bzw. %NOTFOUND Unzureichende Kommentierung (Prozentzahl ist einstellbar) Identisch benannte Prozeduren und Funktionen in einem Package Verwendung der Pseudospalte ROWNUM in einer WHERE-Klausel Fehlerhafte Konstruktionen, z.B. group aggr.function m. %notfound Nichtssagende (z.B. zu kurze) benutzerdefinierte Namen Ähnliche Module, die evtl. zu einem Modul zusammenfassbar sind Variablen gleichen Namens mit unterschiedlichem Typ Fehlende Exception-Handler, fehlendes Error-Logging Select * anstelle einer column list

9 OPLAn listet auf: Den automatisch strukturierten Quellcode in HTML
Den ursprünglichen Quellcode in HTML Alle Fehlermeldungen mit Hinweis auf ihr Vorkommnis im Code Alle Module mit allen Zugriffen auf Objekte wie Packages, Types, Functions, Procedures, Trigger, Tables, Views und Files Alle updates auf Tabellen-Spalten Den call tree sowie die Schnittstellen zum Betriebssystem Ereignisse der Transaktionslogik (commit, rollback, savepoint) Alle Konstanten, Variablen, Parameter und Cursors und Eine Kosten/Nutzen-Berechnung der laufenden Analyse

10 Was sagen die Anwender ? OPLAn wurde fester Bestandteil bei PL/SQL-Code-Entwicklungen und bei der Abnahme von SQL- und PL/SQL-Fremdsoftware. OPLAn beschleunigt die Abnahme durch bessere Modularität, Lesbarkeit, Sicherheit und Erweiterbarkeit des Codes.   OPLAn wird bei der Abnahme zur „Dritten Instanz“ für die Qualität. Die Übersichtlichkeit der Analyseergebnisse fördert den Dialog der Qualitätsbeauftragten, Entwickler und Manager. Die Entwicklungs-, Prüf- und Wartungs-Kosten werden gesenkt.

11 Prototyping mit OPLAn performant Programmieren/ berichtigen
Automatisch analysieren erweiterbar sicher Testlauf durchführen Vollständigkeit bewerten lesbar

12 PL/SQL-Qualitätssicherung
Aufwand Nutzen Zeit Auswahl des PL/SQL-Codes OPLAn- Auftrag Korrekturen durch OPLAn + Fachpersonal Code-Abnahme Schwachstellenbereinigte Produktion

13 Zusammenfassung Frei erstellter, nicht automatisch geprüfter Code ist fast immer fehlerhaft, unstrukturiert, unübersichtlich und gefährlich. 2. Für SQL und PL/SQL gibt es jetzt ein professionelles Werkzeug zur automatischen vorausschauenden Analyse und Dokumentation. 3. Sauberer Code macht Programme erweiterbar, lesbar und sicher.

14 OPLAn macht Ihr Unternehmen erfolgreicher.

15 Drei Funktionen in einem Tool:
1. Automatische Überprüfung der Einhaltung unternehmensweit empfohlener Programmier-Standards, Qualitäts-Standards und Naming-Conventions 2. Maschinelle Erzeugung einer professionellen Dokumentation (incl. Darstellung des Kontrollflusses mit exakter logischer Einrückung) 3. Funktionalität: (OPLAn findet mehr Fehler und Schwachstellen als jedes andere Tool )

16 Stellschrauben für die Analyse mit OPLAn
limit_htm_output = '100000'; -- Limit for HTML-Output (in Lines-of-Code of the analyzed Application). oplan_control = 'ORACLE9i'; ORACLE9i or ORACLE10g -- Company, Project, Test-Team html_head_line_01 = ‘Bosch ABCX'; Your company, your project, html_head_line_02 = 'itdoc24-Team, Frankfurt/Main (+49(0) 69 / )'; -- your team, your name. -- Project-standards to be checked. pfx_local_var = 'v_'; -- Prefix for all variables declared locally. pfx_local_var2 = 'l_'; -- Prefix for all variables declared locally. pfx_global_var = 'g_'; -- Prefix for all variables declared globally. pfx_global_var2 = 'vg_'; -- Prefix for all variables declared globally. pfx_parameter = 'p_'; -- Prefix for all parameters. pfx_parameter2 = 'pi_'; -- Prefix for all parameters. pfx_constant = 'c_'; -- Prefix for all constants. pfx_constant = 'cp_'; -- Prefix for all constants. compl_mc_cabe = '7'; Treshold value for the compl. according to McGabe. compl_max_nes = '4'; Treshold value for the max. nesting of loops and conditions. compl_sql_dml = '9'; Treshold value for the compl. for SQL-Statements. compl_stm_cnt = '100'; Treshold value for the number of statements per module. comment_in_code = '20'; Percentage on comments in the source-code (characters within comments/all characters). limit_oper_in_if = '3'; Treshold value for the number of operators in IF/ELSIF/CASE-conditions. limit_short_name = '4'; Treshold value for min. length on user-defined names. limit_line_length = '80'; Max. line-length in the footer-window. -- suppress_msg = '(005W)(046W)'; -- Suppresses warning- and information-messages. spaces_for_tab = '8'; -- Number of spaces for one horizontal tab. in the HTML-output. -- Root for the call-tree (if available).

17 Erfahrungen in konkreten Projekten
Umfang der Analysen: 500 – Lines of code PL/SQL Fehler bezogen auf die Lines of Code: 10%-40% je nach Programmierer Davon 20% gravierende Fehler, 30% Warnungen, 50% Informationen Quelle und Ort der Fehler werden zeilengenau angezeigt Die Auswirkung der Fehler hängt von den Datenbereichen ab, deshalb Prüfung der Datenbereiche Die Abschätzung des Aufwandes für die Fehlerbeseitigung ist möglich Danach ist zu entscheiden, ob eine Neuprogrammierung erforderlich ist

18 Zu erwartender Nutzen für den Auftraggeber
Der Auftraggeber hat Probleme mit der Lauffähigkeit/Sicherheit Der Auftraggeber hat Probleme mit der Lesbarkeit Der Auftraggeber hat Probleme mit der Erweiterbarkeit Der Auftraggeber hat Probleme mit der Gefahr seiner Haftung Der Auftraggeber hat Probleme mit der Kundenfreundlichkeit Der Auftraggeber hat Probleme mit seinen Programmierern

19 Kreative Preisgestaltung
Master-Lizenz ( Euro) zum Start erforderlich Danach Mengenrabatte, da im Idealfall alle damit arbeiten

20 Vertrieblicher Approach
Traditioneller Vertrieb bei großen Firmen Hilfe durch Fa. Oracle Zu gegebener Zeit und nach Prüfung Speziallösung für den Hochschul- und Forschungsbereich Durchführung von Auftrags-Analysen Download einer Testversion Internet-Forum für PL/SQL-Programmierer


Herunterladen ppt "zu besseren PL/SQL-Programmen"

Ähnliche Präsentationen


Google-Anzeigen