Taking Subversion to a Higher Level Branching/Merging Support Component Management Support And More
About Impact CM Impact CM is a Service AddOn that facilitates software configuration management (CM) by combined control across various tools. Abstracting visualisations and tool-independent query capabilities add an entirely new quality to the project management tool chain. The trend in software configuration management and change management goes towards the use of Open Source tools in combination with lightweight commercial tools. Today, this approach is only lacking a level of integration that would conveniently satisfy demanding CM requirements. Impact CM obtains data in various formats from the entire tool chain and combines their diverging structures into a single comprehensive view. This comprehensive view is built on an open CM domain model, which was developed from established standards as well as our professional experience. Using presently available interfaces to the tools employed, all data of consequence is obtained, and, via model transformation, added to the tool independent CM model. Synchronisation of various tools' data, processing and visualisation are fully automated. Notably, the visualised model also allows directly carrying out synchronised actions across the entire tool chain. Applications of Impact CM Fig. 1: Tool neutrality in the Impact CM model The current version of Impact CM so far integrates only few tools and provides just basic functionality. Although it can be productively applied to certain situations without further adjustment, it should be regarded as a basic technology that can be adjusted relatively easily to match concrete processes and requirements in a given enterprise or project, providing considerable reduction of work load. In order to enable users of Impact CM to realize appropriate adjustments and to benefit from each others' improvements, Impact CM will be available as Open Source software, licensed under the LGPL V2.1. 2011 elego Software Solutions GmbH www.elego.de Phone: +49 30 2345 8696 2/6
Use with Subversion & friends Due to the model based approach of Impact CM, Subversion can be integrated with various tools to provide a highly integrated CM tool. Furthermore, some concepts still entirely missing in Subversion can be provided by Impact CM, and conceptual weaknesses can be balanced out. Above all, Impact CM provides outstanding transparency of development and configuration structures by effectively visualizing the underlying model. Graphical branching and merging support Let's assume a task based operation method is applied via a given change management tool. An automatically synchronizing CM model can now visualize all lines of development as well as the complete merge history, based on the underlying tasks (see fig. 2). Locating change sets across development lines Fig. 2: Visualization of development lines, including merges and tasks. When bugs have been fixed on certain development lines, developers and managers face the same questions over and over: which change caused the bug? Which other development lines exhibit the same buggy code, and which development lines already have a fix for this problem? With the aid of the additional information available within the CM model, these questions can be answered easily. Prospects: Component Management Support Besides the concept of development lines, Impact CM also tracks the description of software products in an assembly structure. By means of the assembly model, product artifacts are structured within a complete product hierarchy which is guided by the actual process of assembling a product from components. In this context all configuration elements which are necessary for building the entire product become product artifacts. These include own as well as third-party libraries, source files, elements of a programming language (Class, Interface, etc.) as well as descriptive elements, such as models, documentation, GUI, etc. 2011 elego Software Solutions GmbH www.elego.de Phone: +49 30 2345 8696 3/6
The assembly model defines the features, relations, and dependencies of the product artifacts in a tool-independent format. It includes the concrete physical representation (e.g. Subversion URL and revision) within the baseline. The assembly model also synchronizes Subversion's metadata and uses it to streamline component management via SVN-Externals. Each product's components and their versions, tasks and releases can be visualized and configured comfortably (see fig. 3). Fig. 3: Component management via assembly model Technology The Eclipse platform and the Eclipse Modeling Framework (EMF) represent the basic technology for the realization of model based repositories. Both are released under Open Source licenses. Impact CM combines and integrates the following frameworks and technologies, which are based on Object Management Group (OMG) standards: EMF Eclipse Modeling Framework, Open Source Java implementation (Ecore) of the Meta Object Facility (MOF respectively EMOF) QVT model to model transformation of the OMG language specification Query View Transformation (QVT) which belongs to the MOF standard OCL Model validation, implementation of the OMG Object Constrained Language (OCL) GMF Graphical modeling, providing of a generic component and runtime infrastructure to develop graphical editors via the Graphical Modeling EMF Compare Model comparison, provides the generic support for the comparison and the merge of models. Teneo Model consistency, data base consistency solution via the use of Hibernate Zest Model visualization, visualization library for Eclipse based components 2011 elego Software Solutions GmbH www.elego.de Phone: +49 30 2345 8696 4/6
Impact CM domain model essentials The Impact CM domain model consists of the following basic elements -- among others: Artifact One file (source code, library, document ) Configuration Item Configuration Component An artifact that is put under configuration management. A set of selected configuration items. A configuration can be a configuration item itself. A configuration fragment set apart for design reasons. Product Version Release Baseline Change Set Task Development Line Mainline Release Branch Product Release A complete system or product configuration. The distinct state of a configuration item at a fixed point in time. Release of a configuration. A certain configuration that was chosen for managing the development process, which is purposefully designed, secured, and released when it attains appropriate quality. During the design phase, before being secured, a baseline is also often called a target baseline. A set of changes to a configuration in the course of an atomic step of development. A specific change request for a given product. Tasks trigger new baselines. Represents the development of a software configuration over a certain period of time. Main development line of product development (in Subversion often called trunk). Separate development line to stabilize up to a release, and then to maintain that release. Unique identification of a product release (in Subversion realized as tags). 2011 elego Software Solutions GmbH www.elego.de Phone: +49 30 2345 8696 5/6
Impact CM at a glance Impact CM enables... tool independent integration of version control and change management (so far out-ofthe-box support for Subversion combined with Bugzilla, CollabNet TeamForge, JIRA and Trac) continuous synchronization of information from version control and change management via a central product model bridging over missing concepts of individual tools on model level maintaining one integrated baseline for all system components secure traceability of entire system configurations Transparent project management, safer operation and time savings... by visualization of development lines and their changes by visualization of entire product configurations, as a basis for discussing changes, enhancements and their effect, to clarify architectural questions, variants, and so forth. because of proper tool support for CM activities on product level by automation of management steps previously taken manually Openness and long term robustness... by the use of Open Source Eclipse technology based on OMG standards by independence from tools and manufacturers via open interfaces Cost savings and flexibility... by avoiding expensive, monolithic tools for the benefit of cheap, flexible individual tools while maintaining the same scope of features, or by integrating individual tools that are already in use. because there are no license fees. Support for Impact CM and the tools that it integrates can be tailored to individual customers' needs. 2011 elego Software Solutions GmbH www.elego.de Phone: +49 30 2345 8696 6/6