Are you an EPFL student looking for a semester project?
Work with us on data science and visualisation projects, and deploy your project as an app on top of Graph Search.
A major promise of component-based software engineering is the reduction of application development time and costs by reusing software components. The existence of and access to component libraries, as well as the ability to build such libraries in the first place, is therefore key in a component-based development infrastructure to facilitate the envisioned reuse. We believe that the future demand for component libraries will increase substantially because many companies are about to adopt the software product line ideas. Due to the lack of a general standard for component libraries and because of the restrictions of existing ones, it is very often the case that new reuse libraries are written from scratch to fit a user's specific requirements. An additional problem is the size and the focus of (existing) component libraries or component repositories. With an increasing size and a broadening focus of the library it becomes harder to retrieve the "right" components due to more complex classification structures, which hinders effective reuse. This will lead to a large number of specific libraries, rather than to the global all-encompassing single one. This work introduces a component library description language, which allows for the definition of a component library, its provided functionality, and its associated semantics on a high level of abstraction. The language compiler uses those definitions made in the (XML-based) language to automatically generate a component library, which is a user-defined, customized application, including a web-based user interface and a persistent storage facility to store the components handled by the library. The language approach allows for the rapid development of domain specific component libraries in a time and cost efficient manner and therefore supports the need for fast creation of reuse libraries with minimal up-front investment.