(c) SQS AG, Raiffeisen Bausparkasse Ges.m.b.H Wien. Mai 2008. Regelkreis für Code- Quality-Management bei der Raiffeisen Bausparkasse GmbH Wien



Ähnliche Dokumente
Software- Qualitätsmanagement

Skills-Management Investieren in Kompetenz

Kompetenz. rund um. Ihren. Entwicklungsprozess. Über uns. Technische Software. Modellbasierter Test. Prüfplätze. Automatisierung.

ÜBERGABE DER OPERATIVEN GESCHÄFTSFÜHRUNG VON MARC BRUNNER AN DOMINIK NYFFENEGGER

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Setzen Sie die richtigen Prioritäten im Service Desk!


Einbindung einer ACT!12-16 Datenbank als Datenquelle für den Bulkmailer 2012

T-Systems Multimedia Solutions

Virtual Roundtable: Business Intelligence - Trends

IDV Assessment- und Migration Factory für Banken und Versicherungen

Release Automation für Siebel

ITSM-Lösungen als SaaS

Managementbewertung Managementbewertung

Übungsklausur vom 7. Dez. 2007

Taking RM Agile. Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum

Benchmark zur Kompetenzbestimmung in der österreichischen SW Industrie. Mag. Robert Kromer NCP / AWS Konferenz Wien,

Content Management System mit INTREXX 2002.

Messmittelfähigkeit. Andreas Masmünster, Quality Control Event, 30. Juni 2011

Entwicklungsoptimierung mit einem ALM Tool Positionierung mit Fallstudie

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

Comparison of Software Products using Software Engineering Metrics

Was sind Herausforderungen im Projektmanagement?

BI in der Cloud eine valide Alternative Überblick zum Leistungsspektrum und erste Erfahrungen

9.6 Korrekturmaßnahmen, Qualitätsverbesserung

Real-Time Collaboration Eine Kostprobe Workshop

PKI-Forum Schweiz, 15. Mai Erfahrungsbericht über den Aufbau der PKI der

Die Welt der SW-Qualität Ein Streifzug in 30 Minuten! Johannes Bergsmann Eigentümer

Wirtschaftlichkeit, Nachhaltigkeit und Umweltschutz durch ganzheitliche Vernetzung

Reporting Services und SharePoint 2010 Teil 1

Last- und Performancetests mit HP-PC / SaaS

ITIL und Entwicklungsmodelle: Die zwei Kulturen

DB Wesentlichkeitsanalyse 2014

DevOps bei den ID Build-Automatisierung statt Silo-Betrieb

Mobilität gemeinsam gestalten. Das Mobilitätsbudget als neuer Weg für Unternehmen

OpenProposal: Anwendervorschlägen für. 27. November 2008 WIR FORSCHEN FÜR SIE. Asarnusch Rashid Herbert Schäfler FZI Forschungszentrum

Executive Information. «Setup and forget it!» So automatisieren Sie Ihr Datacenter mit dem Microsoft System Center Orchestrator 2012.

Verborgene (verlorengeglaubte) Werte für die Gegenwart nutzbar machen

Big Data Projekte richtig managen!

Prozessunterstützung durch den Einsatz von QlikView bei RWE. Holger Schmitz, Leiter Business Intelligence. mit QlikView RWE IT

Modernes Vulnerability Management. Christoph Brecht Managing Director EMEA Central

FUTURE NETWORK REQUIREMENTS ENGINEERING

STRATEGIEN FÜR DAS NÄCHSTE JAHRZEHNT

Projekte für reale Herausforderungen Projektarbeit: Einleitung und Gliederung. Projekte für reale Herausforderungen

OPAQ Optimized Processes And Quality

Benötigen wir einen Certified Maintainer?

Der schnelle Weg zu Ihrer eigenen App

Projektmanagement in der Spieleentwicklung

Grundlagen für den erfolgreichen Einstieg in das Business Process Management SHD Professional Service

Test zur Bereitschaft für die Cloud

Intelligente Prozesse für das Kundenbeziehungsmanagement. Rainer Wendt, in der IHK Aachen,

ERP-Evaluation systematisch und sicher zum optimalen ERP-System

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

Effiziente Testautomatisierung in agilen Projekten

Leseprobe. Thomas Konert, Achim Schmidt. Design for Six Sigma umsetzen ISBN: Weitere Informationen oder Bestellungen unter

Interview zum Thema Management Reporting &Business Intelligence

Lean Management: der Weg zur Exzellenz in der Intralogistik


10. Fachtagung IT-Beschaffung 2014 Fachforum 6

Risikomanagement in der Praxis Alles Compliance oder was?! 1. IT-Grundschutz-Tag

Transparente SOA Governance mit Modellierung. OOP 2010 München, 28. Januar 2010, 12:30 Uhr Modeling Day

Theory of Constraints

Testen heute und in der Zukunft Ergebnisse der ersten unabhängigen Marktstudie für 6 Länder

Einreichung zum Call for Papers

Führungsgrundsätze im Haus Graz

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Requirements-Traceability in der industriellen Praxis Ziele und Einsatz

IT-Beratung: Vom Geschäftsprozess zur IT-Lösung

Thesaurusvisualisierung mit ICE-Map und SEMTINEL

Hotel-Ticker. Performance Analyse ausgewählter deutscher Städte August 2012

Ziel- und Qualitätsorientierung. Fortbildung für die Begutachtung in Verbindung mit dem Gesamtplanverfahren nach 58 SGB XII

NCDiff Testmanagement leicht gemacht

Bundeskanzlei BK Programm GEVER Bund. als Basis für GEVER. 29. November 2012

WollCo Wolfgang Kohl Consulting. Nachhaltige Projektumsetzung nicht nur in der Verantwortung von Geschäftsführen / Unternehmern

Projektsteuerung Projekte effizient steuern. Welche Steuerungsinstrumente werden eingesetzt?

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

München, Themenvorschläge für Abschlussarbeiten Zur Abstimmung mit Prof. Brecht

FRAGEBOGEN ANWENDUNG DES ECOPROWINE SELBSTBEWERTUNG-TOOLS

Barrierefreie Web Projekte Ein strategischer Ansatz

Persönliche Einladung. Zur IT Managers Lounge am 4. November 2009 in Köln, Hotel im Wasserturm.

MOBILE APPLIKATIONEN IM TRAVEL MANAGEMENT. Einführung Mobile Applikationen für Geschäftsreisen Eine Handlungsempfehlung VDR Fachausschuss Technologie

PS4B - Professional Solutions for Business. Geschäftsprozesse optimieren und realisieren

WIE WIRKLICH IST DIE WIRKLICHKEIT WIE SCHNELL WERDEN SMART GRIDS WIRKLICH BENÖTIGT? DI Dr.techn. Thomas Karl Schuster Wien Energie Stromnetz GmbH

ChangeManagement. Vom IT-Spezialisten zum Führungsexperten

Oracle GridControl Tuning Pack. best Open Systems Day April Unterföhring. Marco Kühn best Systeme GmbH

Ihre Fragen unsere Antworten rund um die Fusion der Sparkassen Wesel und Dinslaken-Voerde-Hünxe. Mehrwert der Fusion. Das Wichtigste vorab:

Six Sigma. der dynamische Qualitätsansatz bei der Messung und Optimierung Ihrer CVM Strategie. Weltweit führend in Customer Relationship Management

Cloud Architektur Workshop

Modul 3: Service Transition

Weniger Risiko, höhere Qualität, mehr Effizienz Der Einsatz von SASUnit in der Datenintegration bei der Fraport AG

Wie kann man Kreativität und Innovation fördern? Psychologische Ansätze zum Ideenmanagement

pro advise Konzept zur Evaluierung von Projektmanagementsystemen

Die Orgadata AG ist ein stark expandierendes Software-Unternehmen aus Leer. Mit unserem System LogiKal

Sicherheits-Audit-Erkenntnisse / Software-as-a-Service TeFo10, World Trade Center Zürich, 21. September 2010

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Web-basierte Benutzerschnittstellen für Embedded Systeme: Eine Benutzerschnittstelle drei Sichtweisen

Software-Entwicklungsprozesse zertifizieren

Transkript:

Regelkreis für Code- Quality- bei der Raiffeisen Bausparkasse GmbH Wien Andreas Madjari, Raiffeisen Bausparkasse Gesellschaft m.b.h. Dr. Daniel Simon, CC Application Intelligence, SQS AG Dr. Frank Simon, SQS Research & Innovation, SQS AG Bad Honnef / WSR, SQS Software Quality Systems AG Agenda. Einleitung SQS AG Application Intelligence / Research & Innovation Raiffeisen Bausparkasse Ges.m.b.H. Wien Regelkreis -Sensibilisierung Kriterienset abstimmen Umsetzung der Kriterien Feinjustage der Kriterien Visualisierung / Reporting Erfahrungen / Ergebnisse Bisher erreichtes Ausblick (c) SQS AG, Raiffeisen Bausparkasse Seite 2 1

Structure of SQS Research & Innovation Topic-related SQS-network brings experts together Innovation Groups Innovation Groups represent a virtual European organisation responsible for specific topics and their quality Service Innovation Groups (SIG) working on specific SQS services. functional testing, performance testing, application intelligence, test management, test automation, etc. 16 group-wide SIGs (March 2008) Technical Innovation Groups (TIG) Working on specific techniques that supplement service operation or are used in projects. SOAs, WEB 2.0, MDA/MDD, KPIs, SAP, etc. 8 group-wide TIGs (March 2008) Business Innovation Groups (BIG) Working on domain-specific knowledge (nomenclature, laws, norms, systems, requirements, market, competitors, etc.) Embedded systems, logistics, insurance, banking, telecommunications, etc. 11 group-wide BIGs (March 2008) SQS Research & Innovation manages Innovation Groups and supports them! (c) SQS AG, Raiffeisen Bausparkasse Seite 3 How-to of SQS Research & Innovation Research & Innovation provides infrastructure, gives sponsorship for innovative projects and maintain communication Research & Innovation has many possibilities to support Innovation Groups: Provide a group-wide platform as knowledge repository and for information exchange. Implemented in MS-SharePoint 2007. Separate budget for sponsoring activities and projects. Support work for publishing, conferences, research activities. Co operations with universities, preparing official fed research projects. Internal workshops, discussions, tutorials Recent event: SQS Champions Conference (heads of Innovation groups) (c) SQS AG, Raiffeisen Bausparkasse Seite 4 2

Application Intelligence Qualitätsmanagement Projektsteuerung auf der Basis messbarer Fakten in Applikationen Code-Quality- Licence- Compliance- Testgenerierung & Traceability Warehouse Wie wartbar zukunftsfähig ist mein Code? Wie kann ich sicherstellen, dass ich in meiner Software nicht die Rechte anderer verletze? Wie kann ich den Aufwand für Testen reduzieren, die Testabdeckung erhöhen Traceability schaffen? Architekturevaluierung & -verifikation Architekturarchäologie Kosten- Leistungs- Σ Analyse Vista- fähigkeits- Analyse Wie kann ich die Architektur meiner Software prüfen lassen Konformität sicherstellen? Welche Systemabhängigkeiten existieren welche Systeme werden nicht mehr benötigt? Wie teuer ist statistisch die Entwicklung meiner Software? Ist meine Anwendung Vista-fähig wo liegen ggfs. meine größten Hürden? (c) SQS AG, Raiffeisen Bausparkasse Seite 5 Einleitung Die Raiffeisen Bausparkasse ist das Spezialinstitut der Raiffeisen Bankengruppe in Österreich für Bausparen Marktführer in wesentlichen Geschäftsbereichen 300 Mitarbeiter hat eine eigene IT-Abteilung mit 45 Mitarbeitern entwickelt ihre Bankenanwendung IT++ selbst setzt als Serverplattform Sun Solaris 8 ein die Entwicklung erfolgt mit Sun Forte C++ unter Einsatz von Templates für den Datenbankzugriff als Utility-Sammlung kommt Rogue Wave Source Pro zum Einsatz Der C++-Code umfasst 1.284.000 Lines of Code (LOC) (c) SQS AG, Raiffeisen Bausparkasse Seite 6 3

Ein Regelkreis für Code Quality -Unterstützung Promotoren schaffen eine Basis zur nachhaltigen Verbesserung. engagierte anpassbare leistungsfähige Werkzeuge Vermessungsbasis (c) SQS AG, Raiffeisen Bausparkasse Seite 7 Ein Regelkreis für Code Quality -Sensibilisierung Erster Schritt ist der Nachweis des Nutzens von konstruktiver QS beim. - Gegebenenfalls ROI-Modelle Darlegung des wirtschaftlichen Nutzens konstruktiver Qualtitätssicherungsmaßnahmen Hausübungen: Was will man mit der QS erreichen? Im Rückblick: ca. 70% der Durchlaufzeit Die prinzipielle Bereitschaft in Qualität zu investieren muss kommuniziert werden. engagierte (c) SQS AG, Raiffeisen Bausparkasse Seite 8 4

Ein Regelkreis für Code Quality Die Einbindung der operativen Ebene in die Auswahl r Werkzeuge Verfahren erfolgt von Beginn an. Technische Anforderungen an Werkzeuge durch Entwicklung berücksichtigen Im Experiment nachgewiesene Detailtiefe am lebenden Objekt Durchstich am Code der RBSK Mit Bauhaus: Eignung zur Analyse von C++-Templates Herausforderung: SmartPointer-Template-Konzept Integration der Werkzeuge in bestehende Umgebung Entwicklungsprozess (Analyseabbrüche aufgr fragwürdiger C++- Konstrukte wurden als erste Q-Maßnahme vor Rollout umgesetzt) Einbindung Build-Mechanismus engagierte (c) SQS AG, Raiffeisen Bausparkasse Seite 9 Ein Regelkreis für Code Quality Das Kriterienset auf die Bedarfe der Entwicklung abstimmen. Aktuell werden folgende erhoben Problematische Konstrukte Deklaration von Native Pointern Direktverwendung der Speicherverwaltungsbefehle Direktzugriffe auf die Datenbank ohne Zugriffschicht Performance Cache-Syncs auf die Datenbank Defaultkonstruktoren der Datumsklasse engagierte (c) SQS AG, Raiffeisen Bausparkasse Seite 10 5

Ein Regelkreis für Code Quality Das Kriterienset auf die Bedarfe der Entwicklung abstimmen. Aktuell werden folgende erhoben Lesbarkeit Fehlende Source-Control-Header Statisch erkennbarer unerreichbarer Code Richtlinien Doppelte Tracing-Labels Service-Namenskonventionen engagierte (c) SQS AG, Raiffeisen Bausparkasse Seite 11 Ein Regelkreis für Code Quality Das Kriterienset mit dem gewählten Werkzeug umsetzen. Umsetzung erfolgt durch RBSK (Grobgranulare Metriken) RFG-Level-Metriken, d.h. Beziehungen zwischen globalen Entitäten der Software Klassen- Methodenverwendung Aufbau einer Cross-Reference SQS (Feingranulare Metriken) IML-Level-Metriken, d.h. zusätzliche Beziehungen zwischen lokalen Entitäten Kontroll- Datenfluss Feingranulare Modellierung der Typen engagierte (c) SQS AG, Raiffeisen Bausparkasse Seite 12 6

Analyseablauf Ressourcen-Bedarf cpp IML RFG RFG cpp IML RFG RFG cpp IML RFG RFG RFG 1 cpp IML RFG RFG 3200 3200 3200 350 CQM DB (c) SQS AG, Raiffeisen Bausparkasse Seite 13 Ressourcen-Anforderungen Analyse Zwei Hauptreleases pro Jahr, davor 8 bis 10 Iterationen, die vermessen werden Vermessung mit Bauhaus auf der Labormaschine Automatisierung des Durchlaufes über Shell-Script von 10 CPUs parallel Ergebnisse werden in eine Informix-DB geschrieben Der 24-stündige Analyselauf erzeugt 51 GB feingranulare IML 4,5 GB grobgranulare verdichtete RFG auf Modulebene. Das Gesamtmodell-RFG weist eine Größe von 210 MB auf (c) SQS AG, Raiffeisen Bausparkasse Seite 14 7

Ein Regelkreis für Code Quality Die Kriterien feinjustieren. Feinjustage in Bezug auf Nicht-Produktiv-Code Bibliotheken bewusst ausblenden Bewusste Definition von Ausnahmen bei technischen Constraints (z.b. Zulassung bestimmter new/delete-operatoren) Präzisierung von Indikatoren in der Zieltechnologie Was wird als Klasse gezählt? (-> Template-Instanzen, Umgang mit Präprozessor-Konstrukten) Festlegung von Teilbereichen der Software bezüglich ihrer Lebenszyklusphase engagierte (c) SQS AG, Raiffeisen Bausparkasse Seite 15 Ein Regelkreis für Code Quality Visualisierung Berichtswesen bezüglich der erlaubt Transparenz für die Entwicklung. engagierte (c) SQS AG, Raiffeisen Bausparkasse Seite 16 8

Ein Regelkreis für Code Quality Visualisierung Berichtswesen bezüglich der erlaubt Transparenz für die Entwicklung. engagierte (c) SQS AG, Raiffeisen Bausparkasse Seite 17 CQM als etablierter Teil der Entwicklung Bisherige Erfahrungen Erfolge. Beseitigung von fragwürdigen Konstrukten in C++ Identifikation von Fehlern Im POC konnten nicht alle C++-Sourcen mittels Bauhaus analysiert werden Ursache: Mehrdeutigkeiten im C++-Code, durchweg fragwürdiger Code Sun Forte C++ trifft implizite Annahmen bei der Auflösung Volle Integration von Bauhaus in den Build-Mechanismus Analysierbarkeit mit Bauhaus ist Mindest-Forderung (2nd opion über Code) Analyselauf ist in den produktiv -Build (in Form von Makefiles) eingebaut kann uniform ausgeführt werden (c) SQS AG, Raiffeisen Bausparkasse Seite 18 9

CQM als etablierter Teil der Entwicklung Bisherige Erfahrungen Erfolge. Akzeptanz der bei der Entwicklung Aus der Entwicklung getriebene haben unmittelbaren Nutzen Automatisierbare Erhebung lässt Trend-Betrachtung zu Resultate werden via Dashboard zugänglich gemacht Performance-Steigerungen Statische Identifikation von Performance-Fressern anschließende Beseitigung Beschleunigung auf ca. 70% der ursprünglichen Aufwände (c) SQS AG, Raiffeisen Bausparkasse Seite 19 CQM als etablierter Teil der Entwicklung Bisherige Erfahrungen Erfolge. Reduktion von Produktionsausfallzeiten Beurteilung der technischen Auswirkungen von Ausfällen Halbierung der Produktionsausfallzeiten Entflechtung der Abhängigkeiten beim Build 10% des Codes auf 10 Executables (von 230) eingeschränkt Reduktion der Build- Compilezeiten geschätzte Einsparung mit Tooling 80% Einsparung beim Behebungsaufwand absolut ca. 160 Personensten 10% geringerer Memory-Footprint nach erstem Entflechtungsschritt (c) SQS AG, Raiffeisen Bausparkasse Seite 20 10

CQM als etablierter Teil der Entwicklung Ausblick Nächste Schritte Erweiterung der Metriken der Vermessung zur direkten Architekturprüfung Weitere Verbesserung der Reportingapplikation Evaluierung: Ersetzen durch Bauhaus Dashboard (Verprobung im Sommer) Ziele der RBSK 2008 Verbesserung von zwei Metriken auf Sollstand der Vermessung zur schrittweisen Heranführung der Anwendung an die Sollarchitektur (c) SQS AG, Raiffeisen Bausparkasse Seite 21 Stollwerckstraße 11 51149 Köln, Deutschland Tel.: +49 22 03 91 54-0 Fax: +49 22 03 91 54-15 E-Mail: daniel.simon@sqs.de Internet: www.sqs.de Internet: www.sqs-group.com Vielen Dank für Ihre Aufmerksamkeit 11

Beispiel für einen Dependency-Graphen (c) SQS AG, Raiffeisen Bausparkasse Seite 25 Ausschnitt aus einem Shellscript [...] # --------------------------------------------------------- # Pythonscript für Shellmetriken starten # --------------------------------------------------------- rfgscript $PYDEVDIR/MetrikenShell.py $TRACERFILE $CQMOUTFILE $SVCFILE $SCLABELFILE $LOADFILE $NEUSATZNR $NEUVMBNR # --------------------------------------------------------- # Load durchführen # --------------------------------------------------------- dbaccess cqmdb@rsuned <<EOF 2>/dev/null >/dev/null BEGIN; LOCK TABLE cqm_auftreten IN EXCLUSIVE MODE; LOAD FROM $LOADFILE INSERT INTO cqm_auftreten; COMMIT; EOF [...] (c) SQS AG, Raiffeisen Bausparkasse Seite 26 12

Ausschnitt aus einem Python-Script if isinstance(rwdatedefkonstrnode, rfg.node): # en müssten alle Knoten sein, die diesen als Target haben # also die incoming Call-Edges nehmen def callmatcher(edge): if edge.is_of_subtype(etcall): return True zielsetkanten = rwdatedefkonstrnode.incomings(baseview,callmatcher) # Jetzt alle Knoten im Zielset verarbeiten aktsatznr = startsatz for curedge in zielsetkanten: curnode = curedge.source(the_rfg) filename = curedge.get_value(easourcefile) posline = curedge.get_value(easourceline) poscolumn = curedge.get_value(easourcecolumn) if curnode.has_value(nasourcename): satzstring = raibaurfg.datensatzvorkommen(aktsatznr, filename, posline, poscolumn, raibaurfg.qualifiziertermethodenname(the_rfg, curnode), 1,basisId, 1) outputfile.write(satzstring) aktsatznr += 1 (c) SQS AG, Raiffeisen Bausparkasse Seite 27 13