Using Step-Wise Refinement to Build a Flexible Lightweight Storage Manager

In recent years the deployment of embedded systems has increased dramatically, e.g. in the domains of sensor networks or ubiquitous computing. At the same time the amount of data that have to be managed by embedded systems is growing rapidly. For this reason an adequate data management support is urgently needed. Current database technologies are not able to cope with the requirements specific to embedded environments. Especially the extreme resource constraints and the diversity of hardware plattforms and operating systems are challenging. To overcome this tension we argue that embedded database functionality has to be tailored to the application scenario as well as to the target platform. This reduces the resource consumption and customizes the data management to the characteristices of the plattform and the application scenarion. We show that component techniques and feature-oriented programming help to face the mentioned limitations without focusing on special-purpose software. We present the design and the implementation of a database storage manager family. We discuss how feature-oriented domain analysis and feature-oriented programming help to do this task. Our evaluation criteria are the number of features and the flexibility to combine these features in different valid variants.

[1]  Klaus R. Dittrich,et al.  Component Database Systems: Introduction, Foundations, and Overview , 2001, Compontent Database Systems.

[2]  André van der Hoek,et al.  Software Engineering and Middleware , 2002, Lecture Notes in Computer Science.

[3]  Jörgen Hansson,et al.  COMET: A Component-Based Real-Time Database for Automotive Systems , 2004, ICSE 2004.

[4]  Don S. Batory,et al.  Scaling step-wise refinement , 2004, IEEE Transactions on Software Engineering.

[5]  Alexander Sverdlov Review of David L. Parnas' "Designing Software for Ease of Extension and Contraction" , 2004 .

[6]  Jörgen Hansson,et al.  Application-tailored database systems: a case of aspects in an embedded database , 2004, Proceedings. International Database Engineering and Applications Symposium, 2004. IDEAS '04..

[7]  Thomas Leich,et al.  FeatureC++: Feature-Oriented and Aspect-Oriented Programming in C++ , 2005 .

[8]  Roberto Erick Lopez-Herrejon,et al.  Evaluating Support for Features in Advanced Modularization Technologies , 2005, ECOOP.

[9]  Klaus R. Dittrich,et al.  Component Database Systems , 2001, Morgan Kaufmann series in data management systems.

[10]  Don S. Batory,et al.  Feature-oriented programming and the AHEAD tool suite , 2004, Proceedings. 26th International Conference on Software Engineering.

[11]  Luc Bouganim,et al.  PicoDBMS: Scaling down database techniques for the smartcard , 2001, The VLDB Journal.

[12]  Gerhard Weikum,et al.  Rethinking Database System Architecture: Towards a Self-Tuning RISC-Style Database System , 2000, VLDB.

[13]  Guillermo A. Francia Embedded systems programming , 2001 .

[14]  Hamid Pirahesh,et al.  Extensibility in the Starburst Database System , 1986, OODBS.

[15]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[16]  Walter F. Tichy,et al.  Proceedings 25th International Conference on Software Engineering , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[17]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[18]  Andreas Geppert Methodical Construction of Database Management Systems , 1994, GI Datenbank Rundbrief.

[19]  Klaus R. Dittrich,et al.  KIDS: Construction of Database Management Systems based on Reuse , 1997 .

[20]  Ramesh Govindan,et al.  Networking support for query processing in sensor networks , 2004, CACM.

[21]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[22]  Deborah Estrin,et al.  An evaluation of multi-resolution storage for sensor networks , 2003, SenSys '03.

[23]  Margo I. Seltzer,et al.  Berkeley DB , 1999, USENIX Annual Technical Conference, FREENIX Track.

[24]  Don S. Batory,et al.  GENESIS: An Extensible Database Management System , 1988, IEEE Trans. Software Eng..

[25]  M. Weiser,et al.  Hot topics-ubiquitous computing , 1993 .

[26]  Thomas Leich,et al.  FeatureC++: on the symbiosis of feature-oriented and aspect-oriented programming , 2005, GPCE'05.

[27]  Don S. Batory,et al.  The design and implementation of hierarchical software systems with reusable components , 1992, TSEM.

[28]  Bernhard Seeger,et al.  A Status Report on XXL - a Software Infrastructure for Efficient Query Processing , 2003, IEEE Data Eng. Bull..

[29]  David Lorge Parnas,et al.  Review of David L. Parnas' "Designing Software for Ease of Extension and Contraction" , 2004 .

[30]  Don S. Batory,et al.  Creating reference architectures: an example from avionics , 1995, SSR '95.

[31]  David Maier,et al.  Readings in Object-Oriented Database Systems , 1989 .

[32]  Eugene Miya,et al.  On "Software engineering" , 1985, SOEN.

[33]  Calvin Lin,et al.  Using mixins to build flexible widgets , 2002, AOSD '02.

[34]  Jörgen Hansson,et al.  Embedded Databases for Embedded Real-Time Systems: A Component-Based Approach1 , 2002 .

[35]  Sven Apel,et al.  Towards the Development of Ubiquitous Middleware Product Lines , 2004, SEM.

[36]  Satoshi Matsuoka,et al.  ECOOP'97 — Object-Oriented Programming , 1997, Lecture Notes in Computer Science.

[37]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[38]  Yannis Smaragdakis,et al.  Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs , 2002, TSEM.

[39]  Mira Mezini,et al.  Variability management with feature-oriented programming and aspects , 2004, SIGSOFT '04/FSE-12.

[40]  David J. DeWitt,et al.  The Architecture of the EXODUS Extensible DBMS , 1986, On Object-Oriented Database System.

[41]  Michael A. Olson,et al.  Selecting and Implementing an Embedded Database System , 2000, Computer.

[42]  Radek Vingralek,et al.  GnatDb: A Small-Footprint, Secure Database System , 2002, VLDB.