Next: 2 Position
Up: Architectural Issues in Component-Based
Previous: Architectural Issues in Component-Based
The field of software architectures deals with the design, construction, maintenance, and structure of large software systems, and an increasing proportion of such systems are constructed by assembling existing software components. Architectural issues can therefore be expected to play a significant role in component-based software engineering. The study of component-based software design raises problems analogous to those which motivated the development of data structures, with components playing the role of data types. First, finding useful architectural principles for assembling components is analogous to finding ways in which data structures such as lists, stacks, and trees can be formed from the underlying data types. The importance of identifying such ``architectural styles'' is now widely recognized [AAG95]. Second, devising architectural description notations that are appropriate for component-based software development is analogous to developing high level programming languages for describing and using data structures. This critical issue has received far less attention. Until recently, most research efforts have developed component-based software systems for building architectures within a specific domain, rather than providing a domain-independent architectural framework for component-based software design. While some current research projects have adopted a more general approach, they are generally either informal [Del96,BBK+97] or have not introduced sufficiently powerful abstractions [Wil96]. In our view, a notion of ``abstract software types'' can provide a formal basis for describing component-oriented architectural styles, just as abstract data types do for data structures. These software types serve as the foundation for a domain-independent approach to comparing different ways of constructing software systems from components. We have recently developed a formalism and methodology that uses software types to describe software architectural styles. Our approach is summarized in an architectural style description language called ASDL [RS96b] that has been used as the basis for a description of the Naval Research Laboratory's PGM [KS95,RS96a] component-based signal processing software architectural style.
Michael D. Rice and Stephen B. Seidman