|
Interaction-based Compositional Evolutionary Approach for Complex Software Systems
|
Software research community shifts the focus from lines-of-code to coarser-grained architectural elements and their overall interconnection structure. The prominent problem of consistently engineering complex software systems (CSS) is CSS' s composition from coarse-grained components under specific interconnection structure. The three levels for CSS development are architectural description, code design and executable support respectively. The key aspects of consistently engineering CSS are coarser-grained components from which systems are built and interaction among those components, patterns to guide their composition, and constraints on these patterns. And the effective solution toward CSS is system engineering that involves software composition and architecting, as well as support tools.A number of techniques, frameworks and approaches have recently emerged to address the problem of engineering CSS. The most widely embraced efforts have been component-based development (CBD), middleware (or software interoperability) platforms (MDW), architecture-based development (ABD), and C4ISR architecture framework (JTA). Although the above efforts present complementary, often overlapping approaches, they all focus on composing software systems from coarse-grained components. According to the levels for CSS development, two approach categories will cover above efforts: -- architecture-based approach (ABD/JTA) and component-based approach (CBD/MDW). The former pays more attention to architectural aspects while the latter to code design and executable supportWith synthesizing above research efforts, a new approach is presented in this paper, known as Interaction-based compositional evolutionary approach for complex software systems (ICE-CSS). ICE-CSS advocates explicit treatment of software composition and architecting to describe categorized interaction among components, explicit composition from them and evolution of system implementation. Architecting with multiple perspectives is introduced to