Design & Generate Industrielle Software-Fertigung mit SW Process Engine von der qinet SW Factory powered by SW ProEngine Verfahrensweise für eine effektive und kostensensitive Realisierung 02/2010 qinet Folie 1 Agenda / Folienpräsentation qinet / SW ProEngine GmbH - Firmenprofil Herausforderung und Zielsetzung Motivation Kundennutzen Übersicht SW ProEngine Vorgehensweise im Projekt Funktionsumfang Vorteile und USP´s Beispiel – Anwendungen 02/2010 qinet Folie 2 Referenzen Agenda / Meeting ► Einleitung und Vorstellung Teilnehmer / Firma SW ProEngine GmbH ► Präsentation SW ProEngine Herausforderung und Zielsetzung in SW Projekten Motivation Kundennutzen Übersicht „SW Process Engine /SPE 3.1“ Vorgehensweise (Design & Generate / Round-Trip Verfahren) Funktionsumfang (was liefert das Framework 2.0 + J2EE Template-Satz) Vorteile und USP‘s Eine Beispiel-Anwendung Referenzen ► Diskussion Zusammenarbeit 02/2010 qinet Folie 3 ► Weitere Vorgehensweise Die SW ProEngine GmbH ► Gründung: gegründet 2004 aus einer wissenschaftlichen Kooperation mit dem Fraunhofer Institut ► Unternehmensanteile: ► ► ► 80 % im Eigenbesitz 10% bei Fraunhofer Institut 10 % Sonstige Beteiligung ► Partnerschaft: 02/2010 qinet Folie 4 ► ISST Fraunhofer Institut ► qinet GmbH Herausforderung und Zielsetzung I Die Herausforderung für moderne Softwareprojekt-Ansätze besteht aus: ▶ der inhaltlichen Trennung von - fachlicher Konzeption / Geschäftsprozess-Definition (Design) - und deren technischer Umsetzung (Generate) 02/2010 qinet Folie 5 ▶ der definierten Überleitung aus fachlichen Definitionen in technischen Architekturen ▶ der Wiederverwendung von Programmfunktionen, Algorithmen und Codeschnipseln ▶ und einem flexiblen, iterativen Vorgehensmodell, das auch zu fortgeschrittenen Zeitpunkten Änderungen an technischen und fachlichen Themen zulässt Herausforderung und Zielsetzung II Der von SW-ProEngine GmbH verwendete Verfahrensweg löst diese Aufgabenstellungen, durch eine Zusammenführung von Design & Generate bei der Projektrealisierung – in einem ganzheitlichen Verfahrensweg – mit einer iterativen Vorgehensweise Die Zielsetzung ist: Verbesserung von Qualität, Geschwindigkeit und Flexibilität sowie • 02/2010 qinet Folie 6 Reduzierung der Kosten Motivation I Es ist gängige Praxis, für neue Programme ein vorhandenes, ähnliches Programm zu kopieren und manuell anzupassen Wird nachträglich ein Fehler im „Vorlage-Programm“ gefunden, muss die Korrektur manuell auch in allen daraus entstandenen Programmen durchgeführt werden. Was oft nicht mehr oder nur schwer nachvollziehbar ist. Für moderne 3-Schicht-Anwendungen muss viel Code geschrieben werden. Davon ist zu 70-90% Standard-Code ohne Geschäftsprozess-Intelligenz. Dieser Code muss aber geschrieben werden, sonst funktioniert nichts. 02/2010 qinet Folie 7 Motivation II Soll die fertige Anwendung durch ein neues Feld ergänzt werden, muss dies manuell und konsistent zueinander geschehen In der Detail-Maske und der tabellarischen Anzeige In den HTML / JSP-Formularen bei Web-Anwendungen In der Kommunikations-Schicht Frontend<>Application-Server Im Objekt-Model auf den Application-Server In der Datenbank-Zugriff-Schicht In der Datenbank selbst (SQL) etc. Das ist mit viel Aufwand verbunden und sehr fehleranfällig! 02/2010 qinet Folie 8 Kundennutzen I Durchgängige Einhaltung der Programmiervorgaben führt zu hoher Qualität, besserer Wartbarkeit und Investitionsschutz Produzierter Code ist wie „von Hand geschrieben“ und einfach lesbar Transformation der Objekt-Modelle in lauffähige Programme ohne Medienbrüche (MDA) Interaktive und iterative Abstimmungszyklen mit den Fachabteilungen basierend auf einer lauffähige Basisanwendung. Entwickler fängt seine Tätigkeit mit einer laufenden Anwendung an (kein „leeres Blatt“), die gemäß Fachvorgaben maschinell erzeugt wurde. Ergebnis: Erhöhte Produktivität (90-98% des Codes ist maschinell erzeugt), dadurch schnelles „Time-to-market“ und Kostenreduzierung 02/2010 qinet Folie 9 Kundennutzen II Einsparung externer Ressourcen Mehr Projekte im eigenen Haus mit gleich bleibenden Ressourcen Sichern des Personalbestandes – Weniger Programmierung, höhere Produktivität – Mehr Projekte realisierbar mit eigenen Personal (Business Analysten) Code-Wiederverwendung, modularer Aufbau, Mandantenfähigkeit, Mehrsprachenfähig, Service Orientierte Architektur SOA SW ProEngine ist unabhängig von Programmier-Sprachen Templates (Schablonen) können für jede beliebige Sprache gepflegt und für die Code-Generierung verwendet werden Templates sind auch für Online-Hilfe, Programmdokumentation und Fachkonzepte vorhanden Ausbauen der internationalen Wettbewerbsfähigkeit durch Onshore 02/2010 qinet Folie 10 Sie sind konkurrenzfähig zu Off- und Nearshore Angeboten Übersicht I Die „SW Process Engine / SPE 3.1“ ist ein „Roboter“, der ▶ auf Knopfdruck ▶ anhand eines Bauplans (Geschäftsprozess-Definition) und ▶ ihm zur Verfügung stehenden Bauteile (Templates und Framework) eine ablauffähige Anwendung in hoher Fertigungstiefe erstellt! 02/2010 qinet Folie 11 Übersicht II PluginImport Pflege durch Fachberater und ObjektModellierer XMIImport (UML,…) ModelRepository Data-Dictionary Verwaltung von mehreren Projekten GeneratorEngine Source Code Anpassungen, durch Entwickler API Pflege durch SystemArchitekt 02/2010 qinet Folie 12 Plugins TemplateRepository Pflege von Templates (Java, C++, C#, Cobol, XML, SQL, Visual Basic, et al.) Übersicht III 02/2010 qinet Folie 13 Architektur Vorgehensweise I Round-Trip Verfahrensmodell Auswahl eines Beispiels, das vertikal Auswahl eines Beispiels, das vertikal durch alle Architektur-Schichten geht durch alle Architektur-Schichten geht Erstellung der Code-Templates durch Erstellung der Code-Templates durch Verwendung des Beispiel-Codes Verwendung des Beispiel-Codes der Templates: Validierung Validierung der Templates: Code-Generierung, Kompilierung und Code-Generierung, Kompilierung und Test der generierten BeispielTest der generierten BeispielAnwendungen Anwendungen Festlegung des Daten Festlegung des DatenundObjekt-Models Objekt-Models und Erfassung des Daten Erfassung des Datenund Objekt-Models im Generator und Objekt-Models im Generator Code-Generierung Code-Generierung Abstimmung mit Fachabteilung Abstimmung mit Fachabteilung Manuelle Anpassung, Ergänzung Manuelle Anpassung, Ergänzung des generierten Codes: Geschäftsdes generierten Codes: Geschäftsprozess-Abbildung, Maskendesign, … prozess-Abbildung, Maskendesign… Modul-Test Kompilieren, Kompilieren, Modul-Test und Fehlerkorrekturen 02/2010 qinet Folie 14 und Fehlerkorrekturen einmalig pro einmalig pro ArchitekturArchitekturDesign Design (System(Systemarchitekt) architekt) pro pro Projekt/ Projekt/ Teilprojekt Teilprojekt (Fachberater/ (Fachberater/ ObjektObjektModellierer) Modellierer) pro pro FunktionsFunktions-block block (Entwickler) (Entwickler) Anpassungen, Anpassungen, Verbesserungen Verbesserungen im Architekturim ArchitekturDesign Design Änderungen, Änderungen, Anpassungen im Anpassungen im Daten-und und DatenObjekt-Model Objekt-Model Bei erneuter Programmierung Übernahme des vorhandenen manuell erstellten Codes Vorgehensweise II 02/2010 qinet Folie 15 Vorgehen (Organisation) Factory (Fertigungsstraße) Repository (Bauplan) Design & Generate Geschäftsprozess-analyse GeschäftsprozessModellierung Generator Anpassungen (anhand lauffähiger Anwendung) BasisAnwendung Roll Out Produktivbetrieb Wiederholungen Architekturkonzept Anpassung an Templates Technische Anpassungen Projektmanagement / Projektcontrolling / Qualitätsmanagement Funktionsumfang I Allgemein Generierung von hochskalierbare Enterprise Anwendungen bis kleine Installationen mit gleichem architektonischen Aufbau Hohe Wiederverwendung von Code Bereitstellung allgemeiner Funktionen: Mandantenfähigkeit Multisprache Multiuser Fähigkeit, Locking-Mechanismen Verwaltung von User, Rollen und Rechte und Stellen Berichtswesen / Reports Prozessorientierte Bedienung, Workflow-Unterstützung Wiedervorlage-Funktion Online Help 02/2010 qinet Folie 16 Verwaltung und Anzeige von Meldungen (Fehler,Warnung,Info) Funktionsumfang II Framework SW ProEngine Architekturen ▶ Swing-Client Datenbank ▶ Swing-Client J2EE App. Server Datenbank ▶ HTML-Server / Servlet Container Datenbank ▶ HTML-Server / Servl.Ct.J2EE App.ServerDB Generierung ▶ alle Fachkonzepte, ▶ Programmdokumentationen (JavaDoc), ▶ Applikationen, Deskriptoren, ▶ Ini-Dateien, Masken, ▶ Datenbank-Strukturen etc. Performance Optimierungen für: Maskenaufbau Datenbankzugriffe Client-Server-Kommunikation 02/2010 qinet Folie 17 Funktionsumfang III Framework / Client 02/2010 qinet Folie 18 ▶ Frontend für Swing und HTML ▶ Weitere Frontend-Typen modular abbildbar ▶ Hohe Flexibilität in der Masken-Gestaltung und Benutzer-Interaktion in einem standardisierten Aufbau ▶ Abbildung des MVC Design Patterns ▶ Nur View unterschiedlich zwischen Swing und HTML: ▶ Controller und Model werden wieder verwendet ▶ Menüführung ▶ Multi-Workflow / Multi-Task mit ein Frontend-Rahmen ▶ Hierarchische Präsentation und Pflege der Daten ▶ Eingabe-Workflow / Assistenten (Wizzard) ▶ Kommunikation mit dem Server gekapselt, ersetzbar und modular erweiterbar ▶ Klare Trennung von der Business-Implementierung ▶ Zentrale Customizing der Maskengestaltung mit Styles Funktionsumfang IV Framework / Server ▶ Implementierung von Business-Logik in einer serviceorientierte und wieder verwendbare Form ▶ Trennung zwischen Business-Services und Business-Modell ▶ Prüfung der Datenkonsistenz ▶ Transaktionsmanagement wahlweise: ▶ In Server, pro Business-Service oder Serviceklammer ▶ Alternativ auch Steuerung der Transaktionsklammer über Client möglich ▶ Datenhaltung: 02/2010 qinet Folie 19 ▶ Multidatenbank und Multidatenbank-Typ Zugriffe ▶ Zugriff auf weitere Datenbanktypen modular abbildbar ▶ Multiuser-Steuerung ▶ Connection-Pooling (= Performance und Ressourcen sparen) ▶ Automatische Erstellung und Anpassung der Datenbank-Strukturen ▶ Protokollierung / Logging Vorteile und USP´s I Erhöhte Produktivität (> 90% des Codes ist generiert) Einfache Erhaltung der Programmierungs-Styleguides Code-Wiederverwendung Entwickler fängt seine Tätigkeit mit einer laufenden BasisAnwendung an (kein „leeres Blatt“) Direkte Verwendung des Objekt-Models im Code 02/2010 qinet Folie 20 Vorteile und USP´s II Unabhängig von Sprache Templates können für jede beliebige Sprache gepflegt und für die Code-Generierung verwendet werden Templates sind auch für Online-Hilfe und Fachkonzepte vorhanden Klare Trennung von Generator und Templates Templates werden ohne zusätzliche Skriptsprachen durch einfache Verwendung von Eingabemasken gepflegt für Code-Generierung in beliebigen Programmiersprachen ist keine Anpassung der Generator-Engine notwendig Templates-Werk und Objekt-Model werden in einem Repository gespeichert, das für die Datenkonsistenz sorgt 02/2010 qinet Folie 21 Vorteile und USP´s III ► Programme, Programm-Doku, Online-Hilfe und Fachkonzept werden zueinander konsistent aus einer Modellquelle erzeugt ► Richtlinien und Namenskonventionen werden Architekturund Endkundenkonform beibehalten ► Round-Trip Verfahren garantiert maximale Flexibilität und minimale Reaktionszeit ► Templates / Framework für ► Mandanten, Multi-User Fähigkeit ► Mehsprachigkeit ► Datenhandling und Schnittstellen ► Reports ► Import/Export ► …….. 02/2010 qinet Folie 22 Vorteile und USP´s Zusammenfassung Durch Modellierung und Generierung mit SW Process Engine SWPE 3.1 entstehen: Qualität direkt lauffähige Anwendungen in der gewünschten Zielsprache und Architektur Applikationen inkl. Rollen und Rechte Online Hilfe Anwendungs-Dokumentation Zeit Reports 02/2010 qinet Folie 23 in einem hohen Automatisierungsgrad Kosten Erfolg durch SW ProEngine Struktur Nähe Skalierbare Architektur Kein Offshoring oder Nearshoring Aufwandsreduzierung bei „Change Requests“ Kurze Wege schnelle Reaktion 02/2010 qinet Folie 24 Technologie Flexible Technologie Zero-Failure Ansatz Minimierte Wartungskosten“ Geringe Kosten Kurze Entwicklungszeit Investitionssicherheit Qualität ▶▶ Gesicherter Projekterfolg! Beispiel – Anwendungen I Kunde 0-N 1 Kundenart 1 0-N Konto 1 0-N Buchung 0-N 1 Kontotyp 02/2010 qinet Folie 25 Einzahlung Überweisung Beispiel – Anwendungen II Workflow: Neu Konto-Lebenszyklus neu erfassen Erfasst freigeben Aktiv löschen aktivieren sperren Gesperrt löschen 02/2010 qinet Folie 26 bearbeiten Gelöscht anzeigen Beispiel – Anwendungen III Workflow-Dialog: Konto-Erfassung 02/2010 qinet Folie 27 Kunde auswählen Kontodaten erfassen Überweisung erfassen Ende Start Kunde erfassen Beispiel – Anwendungen IV Workflow-Kollaboration: Kontotyp bearbeiten 02/2010 qinet Folie 28 Referenzen (Auszug) 02/2010 qinet Folie 29 Referenzen (Auszug) dbde Deutsche Bildung AG: Softwareplattform für die gesamte Prozesssteuerung (Fondmanagement) GEVA GmbH: Internet Frontend für internationaler Zahlungsverkehr (SEPA) ESCADA AG: Vertragsmanagement agentes AG: Zeiterfassungssystem, Versicherungsmakler Plattform SinnLeffers GmbH: Personalbedarfsplanung bäurer GmbH: Entwicklung der ERP-Standardlösung Nöll+ Partner Architekten: Facilitymanagementsystem 02/2010 qinet Folie 30 Romservice Telecommunication: ERP-System 30 Referenzen (Auszug) Fraunhoferinstitut: diverse interne und externe Projekte Soltrx (Tochter der Commerzbank AG): - Ticket Management für den Wertpapier-Handel - CWP (companyworld payment) Kaiser‘s Tengelmann AG: - Warenwirtschaft Stammdaten Migrationsystem Konfigurationsmanagement Projektmanagement Personaleinsatzplanung für über 700 Filialen Wüstenrot & Württembergische AG: Beraterarbeitsplatz FORMAXX AG: CRM System für Versicherungsmakler Großer Einzelhändler: Gesamte Warenwirtschaft Plattform INVERTO AG: Ausschreibungsplattform, Vertragsmanagement, 02/2010 qinet Folie 31 Rohstoffrechner 31 qinet / SW ProEngine Expertise 02/2010 qinet Folie 32 Kontakt qinet GmbH Ansprechpartner : Peter Habla Director Business Development Telefon +49 (0) 6723 628 904 Mobil +49 (0) 172 6511796 [email protected] www.qinet.de 02/2010 qinet Folie 33 [email protected] Peter Habla, Director Business Development & Marketing (Banken/Finanzdienstleister) +491726511796 [email protected] Werner Jost, Director Sales & Marketing (Industrie / Handel und Mittelstand) +4915115548421 [email protected] Michael Hartmann, Director Finance & Services [email protected] Jörg Krautmacher, Director Business Management