Section 11.5. CONCLUSION


11.5. CONCLUSION

As we have argued elsewhere [4], Piccola lies somewhere between a scripting language, like Python or TCL, an architectural description language (ADL), like Wright [7] or Rapide [15], a coordination language, like Darwin [18] or Manifold [8], and a glue language, like Smalltalk or C.

A type system has been developed for Piccola [16], but it too is at the level of the process calculus. We would like to reason about higher-level types in terms of components and their composition. Ideally, we might like a type system that can express not only required and provided services, but even some more detailed dependencies [14, 20, 24].

In previous papers, we have presented the conceptual framework of components, scripts, and glue [27], the formal underpinnings of Piccola in terms of the Piccola-calculus [4, 17, 22], and a tour of the Piccola language features [6]. We have demonstrated how Piccola forms can model different notions of explicit namespaces [5], we have shown how different forms of coordination can be expressed as compositional styles [3], and we have argued that aspect-oriented programming [13] can be expressed as feature mixins in Piccola [1]. We have also argued that software systems can evolve gracefully only if they are designed in such a way as to cleanly separate stable and flexible aspects into components and scripts [21].

Here, we have argued that the mechanism of explicit namespaces provided by forms is crucial to achieving a clean separation of concerns.

Piccola is designed to be a composition language, good at expressing different kinds of compositional styles, each of which may be suitable for composing components for different application domains. We are still experimenting with applications of Piccola. Although we believe that Piccola provides the right abstractions needed to express applications as flexible compositions of software components, we still have to prove that these techniques can succeed in separating concerns for complex domains where other approaches have failed.

Our long-term goal is to develop a framework that supports the definition of higher-level composition operators and in which we can reason about properties of composite components. Piccola should serve as a platform to develop a composition environment hosting components and supporting the flexible scripting of components within user-defined architectural styles.



Aspect-Oriented Software Development
Aspect-Oriented Software Development with Use Cases
ISBN: 0321268881
EAN: 2147483647
Year: 2003
Pages: 307

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net