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 FrontendApplication-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