Skip to content
This repository was archived by the owner on Mar 31, 2019. It is now read-only.

Introduction

kovax edited this page Sep 11, 2014 · 34 revisions

History of Description-Driven Framework

The idea of Description-Driven Framework was originated from the system called Cristal which was developed at CERN to manage the construction of the CMS/ECAL detector. Due to the scientific nature and the extended time-scale of the construction (5+ years), the users (physicists) wanted to gradually define and change detector elements, their data structures, construction steps and scientific calculations in order to produce the best possible device. In order to meet these requirements the team had to develop a system which could cope with change by design. Such unique constraint has inspired the research and development teams at UWE/CERN to design and develop a so-called Description-Driven System in which all logic and data structures have “descriptions” which can be modified and versioned to reflect changes required by physicists.

The original Cristal software was a fully functional Description-Driven System, it had to be configured and installed so it could be used like a CRM or WFM system. On the other hand the current version of cristalise-kernel offers building blocks to build fully functional description-driven system hence the name Description-Driven Framework (DDF).

Building blocks of DDF (cristalise-kernel)

The Kernel has packages to implement the description-driven functionalities common to many software systems. It also has an instantiation mechanism to read descriptions to create objects.

Kernel packages supporting Descriptions

Entity - Item and Agent

Property

LifeCycle - Composite and Elementary Activity

Outcome - XSD : Document-Oriented persistency

Collection - Relation between Entities

The following paper explains the full concept of description-driven approach in great details:

Designing Reusable Systems that Can Handle Change - Description-Driven Systems : Revisiting Object-Oriented Principles

Guidelines to use the Description-Driven Approach for software development

Benefits

Clone this wiki locally