Kiczales, 2002; Pawlak et al., 2006). This solution,
however, closely follows the original definition, and
likewise Composite, it introduces aspects to repre-
sent the observer pattern, requiring a partitioning into
subjects an observers. The AOP representation did
not achieve unified representation of patterns like we
point in this work. The representation of Observer us-
ing software architectures was also proposed (Oder-
sky and Zenger, 2005; Sreedhar, 2002). These ap-
proaches, however, leads to a complex description of
the pattern that is quite similar to the original one.
Event-based programming has been used as the
basis for some software architectures (Luckham and
Vera, 1995; Taylor et al., 2010). However, EBP is
based on the Observer pattern, one star in the pattern
galaxy, being obviously unable to provide a unified
pattern representation.
5 CONCLUSIONS
Design patterns provide solutions to overcome some
limitations of object-oriented programming. Patterns
however, are not based on simple and sound princi-
ples, leading to an explosion of their number. This
was the case of Observer and Composite patterns that
albeit considered very different under OOP, are ex-
actly the same under the software topology paradigm.
Patterns provide no meaningful insight on how appli-
cations can be partitioned and organized becoming an
irrelevant construct for developing software topolo-
gies. Our current work has shown that most of the pat-
terns defined in (Gamma et al., 1995) are actually spe-
cific topologies with small differences between them.
Future research is required to extend our results to a
larger number of patterns.
ACKNOWLEDGEMENTS
This work was partially supported by the Portuguese
Foundation for Science and Technology under project
PTDC/EIA-EIA/100752/2008.
REFERENCES
Aldrich, J., Chambers, C., and Notkin, D. (2002). ArchJava:
Connecting software architecture to implementation.
In International Conference on Software Engineering,
pages 187–197.
Arbab, F. (2004). Reo: A channel-based coordination
model for component composition. Mathematical
Structures in Computer Science, 14(3):329–366.
Arnout, K. (2004). From Patterns to Components. PhD
thesis, ETH Z
¨
urich.
Barros, F. (1997). Modeling formalisms for dynamic struc-
ture systems. ACM Transactions on Modeling and
Computer Simulation, 7(12):505–515.
Barros, F. (2005). System and method for programming
using independent and reusable software units. US
Patent 6851104 B1.
Cacho, N., Sant’Anna, C., Figueiredo, E., Garcia, A.,
Batista, T., and Lucena, C. (2006). Composing De-
sign Patterns: A Scalability Study of Aspect-Oriented
Programming.
Cellier, F. (1991). Continuous System Modeling. Springer-
Verlag.
Fiege, L., M
¨
uhl, G., and Gartner, F. (2002). Modular event-
based systems. The Knowledge Engineering Journal,
17(4):359–388.
Freeman, E. and Freeman, E. (2004). Head First Design
Patterns. O’Reilly.
Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995).
Design Patterns. Addison-Wesley.
Hannemann, J. and Kiczales, G. (2002). Design Pattern
Implementation in Java and AspectJ. OOPSLA.
Hoare, C. (1985). Communicating Sequential Processes.
Prentice Hall.
Kahn, G. (1974). The Semantics of a Simple Language for
Parallel Programming.
Luckham, D. and Vera, J. (1995). An event-based architec-
ture definition language. IEEE Transactions on Soft-
ware Engineering, 21(9):717–734.
Milner, R., Parrow, J., and Walker, D. (1989). A Calculus of
Mobile Processes, Part I/II. Number ECS-LFCS-89-
85/86.
Molkentin, D. (2007). The Book of Qt 4: The Art of Building
Qt Applications. Open Source Press.
Odersky, M. and Zenger, M. (2005). Scalable component
abstractions. In Object-Oriented Programming Sys-
tems Languages and Applications, pages 41–57.
Pawlak, R., Seinturier, L., and Retaill
´
e, J.-P. (2006). Foun-
dations of AOP for J2EE Development. A-Press.
Shaw, M. and Garlan, D. (1996). Software Architecture.
Prentice Hall.
Sreedhar, V. (2002). Mixin’up Components. International
Conference on Software Engineering.
Taylor, R., Medvidovic, N., and Dashofy, E. (2010). Soft-
ware Architecture. Wiley.
Wymore, A. (1967). A Mathematical Theory of Systems
Engineering. Krieger.
ICSOFT 2011 - 6th International Conference on Software and Data Technologies
128