Product-line architecture for a visualization system
Permanent address of the item is
Tuoterunkoarkkitehtuuri visualisointi järjestelmälle
Software architecture is an important part of the software development process of any large and complex software project. In some cases, the same architecture is used to implement more than one software products using many common components. This enables and requires the designing of product line architecture (PLA) to keep it all under control. PLA provides variation points where new and different features can be safely implemented. It is a product platform that contains the commonalities of many software products of the same domain. This way the implementations are more robust as they are tested more thoroughly and time-to-market is decreased. This thesis is based on the design of 3D visualization software that grew to a product line for implementing few applications on the common components and architecture. The PLA is plug-in based system that has two underlying patterns it is built on, model/view and message dispatcher. These three architectural patterns are combined to form a modular, customizable and extensible PLA. This thesis describes the architecture as well as the architectural variation points. There are two kinds of variation points, internal and main. The internal variation points are meant for the developers integrating new features into the product-line or develop new software products. The main variation points are aimed at extending the applications, but may also be used to add completely new features to the application. The PLA also provides APIs and libraries to enable and make it easier to develop new plug-ins. In this case, the applications designed using this PLA work as test cases and they are used to evaluate the PLA. Testing the applications has shown they fulfil the quality requirements they were given. These test cases show PLA to be modifiable, extensible and efficient enough making it possible to build the applications and meet their requirements.