The variation points in software architecture arise as a result of the availability of large number of filters and component libraries. An integration of different architectural styles is crucial and necessary in the development of large-scale software application systems to handle the variation points. This article proposes a composite software architectural style for building application systems involving data streams, user interactivity, and dynamic mode. It uses a pattern within a pattern approach for combining the architectural styles. This approach provides flexibility to add or delete any filter or component at run time. In addition, the changes in the order of processing of the different filters or components can also be incorporated. The software architectural specification for any combination of input components and their order of processing is generated automatically. This specification acts as a baseline for the subsequent design and implementation phases of the application system. This model is generic and has been successfully validated for a prototype application system involving all the three modes of operation.
The present-day software application systems require a high degree of agility during development and operational phases due to the advancements in software technologies and also because of the need to support the variation points in software architecture. A single architectural style will not be adequate for the architectural design of such application systems. This paper proposes a composite architectural style involving three different architectural styles, namely model view controller, pipes and filters and reflection architectural pattern. A metric to evaluate the extent to which the proposed architectural design is modifiable is defined and formulated. The number of direct connections between the components and their modes of operation are the various factors that will determine the extent to which the architectural design is modifiable. The model has been tested successfully for a prototype document processing application system. The composite architectural design is quite generic and it can be used for any real-time application system where the three modes of operation - data stream mode, user interaction and dynamic invocation mode exist together.
The development of a reliable and efficient software application system requires a competent software architecture which can attune to any design improvement opportunity in the early stages of software architectural design. An Architectural Description Language provides a description of all the component elements and their interactions. The proposed model determines all possible ways of connecting the components and connectors, after eliminating the transitive and symmetric conflicts among the connections, followed by the generation of the software architectural specification. An estimate on the maximum number of architectural specifications generated for a given number of components has been carried out. The syntax for specifying the components and the connectors has been formulated. The model proposed in the current work is generic and it will significantly help a software architect in building reliable, efficient and flexible software architecture, for any valid combination of components and connectors. It has been successfully tested for two prototype applications that involve processing of images and documents.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.