Layered Development with (Unix) Dynamic Libraries

  • Authors:
  • Yannis Smaragdakis

  • Affiliations:
  • -

  • Venue:
  • ICSR-7 Proceedings of the 7th International Conference on Software Reuse: Methods, Techniques, and Tools
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

Layered software development has demonstrably good reuse properties and offers one of the few promising approaches to addressing the library scalability problem. In this paper, we show how one can develop layered software using common Unix (Linux/Solaris) dynamic libraries. In particular, we show that, from an object-oriented design standpoint, dynamic libraries are analogous to components in a mixin-based object system. This enables us to use libraries in a layered fashion, mixing and matching different libraries, while ensuring that the result remains consistent. As a proof-of-concept application, we present two libraries implementing file versioning (automatically keeping older versions of files for backup) and application-transparent locking in a Unix system. Both libraries can be used with new, aware applications or completely unaware legacy applications. Further, the libraries are useful both in isolation, and as cooperating units.