Font Size: a A A

FGP fine-grained persistence for user-structured data: A tool and its software design

Posted on:2002-06-11Degree:Ph.DType:Dissertation
University:University of Illinois at ChicagoCandidate:Schwartzman, LeslieFull Text:PDF
GTID:1468390011996217Subject:Computer Science
Abstract/Summary:
This tool, a substantial piece of software having well-understood functionality, was written as a case study in software design. It provides automated fine-grained persistence functionality to application programs written in versions of standard C++ which do not have that capability. Its development was informed by the concern to write a program which accomplishes the designated task and can be modified relatively easily for related tasks. It became a case study for, and an exploration of, the software design process.; Code for the tool has two components: an awk language program to generate class-specific code for each application class, and multiple C++ language routines to implement persistence. The generating code operates as a formal grammar. Each class-specific persistence routine is formed as the union of the code generated for its class and a persistence infrastructure code shared among all application classes. As a prelude to development of related software, the collection of awk generating program and C++ persistence routines was expanded conceptually to the set of all programs accomplishing tasks based on simple persistence. The need for ease of composability and decomposability to enable adding and removing functionality to or from this expanded program set suggested a mathematical framework. Because some of that new functionality to be composed is not yet known, the expanded set could not be organized by content. Instead, it was organized by structure, using as a conceptual model the algebra of the natural numbers under multiplication. The algebra's infinite set of prime generators, and the rich and dense collection of its subuniverses with a complex partial order relationship among them, make a good analogy for some of the desirable properties of the expanded program set and its individual members.; FGP's structure as a collection of related but separate, single-purpose persistence-based programs, and its role as a case study in software design and as an opportunity to explore various conceptualization schemes defined its contribution.
Keywords/Search Tags:Software design, Case study, Persistence, Tool, Functionality
Related items