Branching/Merging Support Component Management Support Und Mehr
Was ist Impact CM? Impact CM ist ein CM Service AddOn zur Steuerung des Software Configuration Managements in Entwicklungsprojekten über Werkzeuggrenzen hinweg. Entwicklungsmanager werden durch Visualisierungen auf abstrakterem Level und werkzeugübergreifende Abfragemöglichkeiten bei ihren CM-Aktivitäten in einer ganz neuen Qualität unterstützt. Der Trend im Bereich Software Configuration- und Change Management geht hin zum Einsatz von Open Source Werkzeugen in Kombination mit leichtgewichtigen kommerziellen Werkzeugen. Bisher fehlt allein der Integrationsgrad, um anspruchsvolle CM-Fragestellungen unproblematisch zu beantworten. Impact CM vereint Daten der einzelnen Werkzeuge mit ihren unterschiedlichen Formaten, Strukturen und Bedeutungen in einer ganzheitlichen Sicht. Grundlage für diese ganzheitliche Sicht ist ein offenes CM Domänen-Modell, das aus etablierten Standards und Praxiserfahrung heraus entwickelt wurde. Über die vorhandenen Schnittstellen der verwendeten Werkzeuge werden mittels Modelltransformation wesentliche Daten in das werkzeugunabhängige CM Modell überführt. Die Modellsynchronisation mit den Daten der verschiedenen Werkzeuge und deren Aufbereitung, sowie die Visualisierung erfolgt automatisiert. Aus dem visualisierten Modell heraus können auch andersherum werkzeugübergreifende Aktionen direkt ausgeführt werden. Abbildung 1: Werkzeugneutrales Impact CM Modell 2013 www.alm4enterprises.com Phone +49 (0)89 7167182-40 2/7
Einsatzgebiet von Impact CM Die aktuelle Version von Impact CM integriert zunächst eine erste Auswahl von Werkzeugen und bietet ein Basisfunktionsset. Impact CM in der Basisversion lässt sich schon für eine ganze Reihe interessanter Anwendungsfälle einsetzen. Zudem kann Impact CM leicht hinsichtlich der konkreten Anforderungen innerhalb eines Unternehmens angepasst werden und für eine deutliche Arbeitserleichterung sorgen. Um den Nutzern von Impact CM die Möglichkeit zu geben, entsprechende Anpassungen selbst vorzunehmen und ggf. von Verbesserungen Anderer zu profitieren, wird Impact CM als Open Source Software unter der LGPL V2.1 Lizenz zur Verfügung gestellt. Verwendung mit Subversion & Co. Mit dem modellbasierten Ansatz von Impact CM lässt sich Subversion in Verbindung mit weiteren Werkzeugen wie ein hochintegriertes CM-Werkzeug einsetzen. Zudem können einige derzeit noch in Subversion fehlende Konzepte ergänzt, Konzeptschwächen ausgeglichen und unterschiedlichste Visualisierungen für eine sehr gute Transparenz der Konfigurationsentwicklung und strukturierung angeboten werden. Grafische Branching/Merging Unterstützung Nehmen wir an, es wird im Zusammenspiel mit einem Change Management Werkzeug taskbasiert gearbeitet. Dann steht bei automatischer Synchronisation aller relevanten Daten mit dem CM-Modell auf Knopfdruck eine Visualisierung aller Entwicklungslinien inkl. Merge- Historie und der in Beziehung stehenden Tasks zur Verfügung. Abbildung 2: Visualisierung Development Lines inkl. Merges und Tasks 2013 www.alm4enterprises.com Phone +49 (0)89 7167182-40 3/7
Finden von Change Sets über Entwicklungslinien hinweg Mit jedem Bugfix stellen sich die gleichen wichtigen Fragen: Mit welchem Change ist der entsprechende Bug entstanden? Auf welchen anderen Entwicklungslinien findet sich derselbe fehlerhafte Code? Auf welchen Entwicklungslinien ist der Fehler schon behoben? Mit Hilfe der im CM-Modell zusätzlich mitgeführten Informationen lassen sich solche Fragestellungen leicht beantworten. Ausblick: Component Management Support Neben der Development-Line-Sicht bietet Impact CM die Assembly-Sicht zur Darstellung einer Produktkonfiguration an. Mithilfe des Assembly-Modells werden die Produkt-Artefakte in einer Gesamtprodukt-Hierachie strukturiert, die sich am Vorgang des Zusammenbaus des Produkts aus Einzelteilen orientiert. Produkt-Artefakte sind in diesem Kontext alle Konfigurationselemente, die zum Bau des Gesamtprodukts notwendig sind. Dazu gehören von außen bezogene Libraries, genauso wie eigene Libraries, Source-Files, Elemente einer Programmiersprache (Class, Interface, etc), aber auch beschreibende Elemente wie Modelle, Dokumentation, GUI, etc. Das Assembly-Modell definiert die Eigenschaften, Beziehungen und Abhängigkeiten der Produkt-Artefakte in einem werkzeugneutralen Format, das zusätzlich die konkrete physikalische Repräsentation im Repository (Subversion: SVNURL und SVNRevision) innerhalb der Baseline manifestiert. Mit dem Assembly-Modell werden auch Subversion-Metadaten synchronisiert, die das Sourcecode-Komponentenmanagement via SVN-Externals vereinfachen. Auf Produktebene können die einzelnen Komponenten visualisiert und deren Versionen, Tasks und Releases komfortabel verwaltet werden: Abbildung 3: Komponentenmanagement via Assembly-Modell 2013 www.alm4enterprises.com Phone +49 (0)89 7167182-40 4/7
Technologische Grundlagen Das Eclipse-Modeling-Framework (EMF) bietet die Basistechnologie zur Realisierung des modellbasierten Repositories von Impact CM. Das EMF unterliegt wie die Eclipse IDE auch einer Open Source Lizenz. Folgende auf Object Management Group (OMG) Standards basierende Technologien und Frameworks werden verknüpft und integriert: EMF QVT OCL GMF EMF Compare Teneo Zest Eclipse Modeling Framework, Open-Source-Java-Implementierung (Ecore) der Meta-Object-Facility (MOF bzw. EMOF) Modell-zu-Modell-Transformation, Implementierung der zum MOF-Standard gehörenden Sprach-Spezifikation Query View Transformation (QVT) der OMG Modellvalidierung, Implementierung der Object Constrained Language (OCL) der OMG Grafische Modellierung, Bereitstellung einer generischen Komponenten- und Runtime Infrastruktur durch das Graphical Modeling Framework (GMF) zur Entwicklung grafischer Editoren Modellvergleich, stellt den generischen Support für den Vergleich und den Merge von Modellen bereit Modell-Persistierung, DB-Persistenz-Lösung unter Nutzung von Hibernate Modell-Visualisierung, Visualisierungs-Library für Eclipse basierte Komponenten 2013 www.alm4enterprises.com Phone +49 (0)89 7167182-40 5/7
Wesentliche Elemente des Impact CM Domänen-Modells Das Impact CM Domänen-Modell beinhaltet u.a. die folgenden grundlegenden Modellelemente: Artifact (dt. Artefakt) Configuration Item (dt. Konfigurationselement) Ein File (Quellcode, Library, Dokument, ). Ein Artefakt, das unter Configuration Management gestellt ist. Configuration (dt. Konfiguration) Component (dt. Komponente) Product (dt. Produkt) Version Release Baseline (dt. Bezugskonfiguration) Change Set Task (dt. Aufgabe) Development Line (dt. Entwicklungslinie) Mainline Release Branch Product Release Eine Menge von ausgewählten Konfigurationselementen. Ein Konfigurationselement kann selbst auch eine Konfiguration sein. Bezeichnung für eine entwurfstechnisch abgetrennte Teilkonfiguration. Bezeichnung für eine komplette System- bzw. Produktkonfiguration. Ausführungsstand eines Konfigurationselements zu einem bestimmten Zeitpunkt. Versionen sind zeitlich nacheinander liegende Ausprägungen eines Konfigurationselements. Freigabestand einer Konfiguration. Eine bestimmte für die Steuerung des Entwicklungsprozesses ausgewählte Konfiguration, die gezielt geplant, gesichert und bei entsprechender Qualität freigegeben wird. Während der Planung der Baseline bis hin zur Sicherung sprechen wir auch von der Target Baseline. Menge von Änderungen an einer Konfiguration, im Zuge eines unteilbaren Entwicklungsschritts. Ist ein Änderungsauftrag in Bezug auf ein Produkt. Tasks sind Auslöser für eine neue Baseline. Repräsentiert die Entwicklung einer Softwarekonfiguration über einen bestimmten Zeitraum. Hauptentwicklungslinie für die Erstellung eines Produkts (in Subversion auch Trunk). Separate Entwicklungslinie, um ein Release zu stabilisieren, auszuliefern und zu pflegen. Eindeutige Identifikation eines Product Release (Mittel hierfür in Subversion ist ein Tag). 2013 www.alm4enterprises.com Phone +49 (0)89 7167182-40 6/7
Impact CM im Überblick Impact CM ermöglicht die werkzeugunabhängige Integration von Version Control und Change Management (standardmäßige Unterstützung von zunächst Subversion in Kombination mit Bugzilla, CollabNet TeamForge, JIRA oder Trac), die kontinuierliche Synchronisation der Informationen aus Version Control und Change Management über ein zentrales Produktmodell, die Ergänzung von fehlenden Konzepten einzelner Werkzeuge auf Modellebene, die Bereitstellung einer integrierten Baseline für alle Systembestandteile, die Sicherstellung der Traceability für komplette Systemkonfigurationen; Transparenz für Entwicklungssteuerung, Fehlervermeidung und Zeitersparnis durch Visualisierung von Entwicklungslinien mit all ihren Änderungen, durch Visualisierung von vollständigen Produktkonfigurationen, als hilfreiche Diskussionsgrundlage von Änderungen, Erweiterungen und deren Auswirkungen, Klärung von Architekturfragen, Varianten, etc. durch Werkzeugunterstützung der CM-Aktivitäten auf Produktlevel, durch die Automatisierung von bisher manuellen CM-Aktivitäten; Offenheit und Zukunftssicherheit durch die Nutzung von Open Source Eclipse-Technologie aufbauend auf Standards der OMG, durch Hersteller- und Werkzeugunabhängigkeit sowie offene Schnittstellen; Kostenersparnis und Flexibilität durch die Ablösung teurer monolithischer Werkzeuge per Integration preiswerter flexibler Einzelwerkzeuge bei gleichwertigem Funktionsumfang, bzw. auch durch Weiternutzung der schon im Einsatz befindlichen Einzelwerkzeuge; da keine Lizenzen anfallen, sondern ein auf die Kundenanforderungen zugeschnittener Support für die via Impact CM integrierten Werkzeuge angeboten wird. 2013 www.alm4enterprises.com Phone +49 (0)89 7167182-40 7/7