ABSTRACT

Software development is often a major cost in the total cost of

development and distribution of a new technology. Further, the

development of software is incremental and evolutionary in nature

with new requirements and features requested by users incorporated

into it over time. This in turn requires that the software model be

based on a reusable and extensible architecture that can be evolved

over time.