"Using Tabular Expression Input to Specify and Generate Program Family Members"

Mr. DeLiang Han


When one is to develop program families traditional, programming methods that are intended for the development of a single program are not appropriate. There are several different approaches available. For example, the Draco approach in [18] and the product line engineering process described in [23]. Here we will focus on the FAST process developed at Lucent [24]; because it is a reasonably systematic process for engineering families that has been used at Lucent Technologies for years and has proven successful.

Lucent/Bell Labs have had success in reducing programming costs and speeding up development times by using the FAST process. In the FAST process, after identifying the commonalities and parameters of variation in family of programs, a special purpose programming language is developed. This language is used by an "Application Engineer" only to create members of the family. The common features of the family are already built-in; only the differences need to be programmed.

McMaster University's Software Engineering Group (Hamilton, Ontario, Canada), is developing a set of tools to support the use of a broad class of tabular expressions (TTS). Using tabular expressions one may present complex conditional expression in a way that is more easily read, analyzed, and more likely to be correct than either conventional mathematics or conventional programs.

In this work I propose to combine these two technologies. I will enhance the FAST process using tabular notation and table-based tools. The results of the commonality analysis of the FAST process, as developed at Lucent, will be used to develop a set of incomplete tabular expressions. The completed parts represent the commonalities. The incomplete parts correspond to the parameters of variation. The application engineer must complete the tables in order for the Code Generator of TTS to generate a prototype family member.