Software miniaturization is a form of software re-factoring focused on reducing an application to its bare bones. Porting an application on a hand-held device is likely to require a preliminary step of software miniaturization, plus the development of device drivers dedicated to the new environment and hardware architecture. This paper presents the process and lessons learned in re-factoring a large open source application to remove any excess, introduce shared libraries, remove circular dependencies among libraries and, more generally, to minimize inter-library dependencies. While the final goal was to fully exploit shared library capabilities, among the various possibilities we defined a process based on existing knowledge about the application, and aimed to minimize the maintenance effort required by miniaturization activities.
Published in:
Reverse Engineering, 2002. Proceedings. Ninth Working Conference on
Date of Conference: 2002