BEYOND DESIGN PATTERNS - Improving Software Design with Pluggable Units

Fernando Barros

2011

Abstract

Design patterns provide solutions to recurrent problems and they have been extensively used in software development. However, patterns favor a distinction based on small design differences leading to the creation of a large number of solutions. Additionally, patterns are often hard to integrate making it difficult to develop applications based in pattern composition. In this paper we exploit the ability of independent and pluggable software units (PUs) to provide a unifying representation of design patterns. Preliminary results demonstrate that patterns can effectively be represented by PUs using a reduced set of constructs. In particular we show that patterns considered to belong to different categories are the same using a representation based on PUs. This is the case of the Observer and Composite patterns, that are considered as belonging to the behavioral and structural category, respectively.

References

  1. Aldrich, J., Chambers, C., and Notkin, D. (2002). ArchJava: Connecting software architecture to implementation. In International Conference on Software Engineering, pages 187-197.
  2. Aldrich, J., Chambers, C., and Notkin, D. (2002). ArchJava: Connecting software architecture to implementation. In International Conference on Software Engineering, pages 187-197.
  3. Arbab, F. (2004). Reo: A channel-based coordination model for component composition. Mathematical Structures in Computer Science, 14(3):329-366.
  4. Arbab, F. (2004). Reo: A channel-based coordination model for component composition. Mathematical Structures in Computer Science, 14(3):329-366.
  5. Arnout, K. (2004). From Patterns to Components. PhD thesis, ETH Zürich.
  6. Arnout, K. (2004). From Patterns to Components. PhD thesis, ETH Zürich.
  7. Barros, F. (1997). Modeling formalisms for dynamic structure systems. ACM Transactions on Modeling and Computer Simulation, 7(12):505-515.
  8. Barros, F. (1997). Modeling formalisms for dynamic structure systems. ACM Transactions on Modeling and Computer Simulation, 7(12):505-515.
  9. Barros, F. (2005). System and method for programming using independent and reusable software units. US Patent 6851104 B1.
  10. Barros, F. (2005). System and method for programming using independent and reusable software units. US Patent 6851104 B1.
  11. Cacho, N., Sant'Anna, C., Figueiredo, E., Garcia, A., Batista, T., and Lucena, C. (2006). Composing Design Patterns: A Scalability Study of Aspect-Oriented Programming.
  12. Cacho, N., Sant'Anna, C., Figueiredo, E., Garcia, A., Batista, T., and Lucena, C. (2006). Composing Design Patterns: A Scalability Study of Aspect-Oriented Programming.
  13. Cellier, F. (1991). Continuous System Modeling. SpringerVerlag.
  14. Cellier, F. (1991). Continuous System Modeling. SpringerVerlag.
  15. Fiege, L., Mühl, G., and Gartner, F. (2002). Modular eventbased systems. The Knowledge Engineering Journal, 17(4):359-388.
  16. Fiege, L., Mühl, G., and Gartner, F. (2002). Modular eventbased systems. The Knowledge Engineering Journal, 17(4):359-388.
  17. Freeman, E. and Freeman, E. (2004). Head First Design Patterns. O'Reilly.
  18. Freeman, E. and Freeman, E. (2004). Head First Design Patterns. O'Reilly.
  19. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995). Design Patterns. Addison-Wesley.
  20. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995). Design Patterns. Addison-Wesley.
  21. Hannemann, J. and Kiczales, G. (2002). Design Pattern Implementation in Java and AspectJ. OOPSLA.
  22. Hannemann, J. and Kiczales, G. (2002). Design Pattern Implementation in Java and AspectJ. OOPSLA.
  23. Hoare, C. (1985). Communicating Sequential Processes. Prentice Hall.
  24. Hoare, C. (1985). Communicating Sequential Processes. Prentice Hall.
  25. Kahn, G. (1974). The Semantics of a Simple Language for Parallel Programming.
  26. Kahn, G. (1974). The Semantics of a Simple Language for Parallel Programming.
  27. Luckham, D. and Vera, J. (1995). An event-based architecture definition language. IEEE Transactions on Software Engineering, 21(9):717-734.
  28. Luckham, D. and Vera, J. (1995). An event-based architecture definition language. IEEE Transactions on Software Engineering, 21(9):717-734.
  29. Milner, R., Parrow, J., and Walker, D. (1989). A Calculus of Mobile Processes, Part I/II. Number ECS-LFCS-89- 85/86.
  30. Milner, R., Parrow, J., and Walker, D. (1989). A Calculus of Mobile Processes, Part I/II. Number ECS-LFCS-89- 85/86.
  31. Molkentin, D. (2007). The Book of Qt 4: The Art of Building Qt Applications. Open Source Press.
  32. Molkentin, D. (2007). The Book of Qt 4: The Art of Building Qt Applications. Open Source Press.
  33. Odersky, M. and Zenger, M. (2005). Scalable component abstractions. In Object-Oriented Programming Systems Languages and Applications, pages 41-57.
  34. Odersky, M. and Zenger, M. (2005). Scalable component abstractions. In Object-Oriented Programming Systems Languages and Applications, pages 41-57.
  35. Pawlak, R., Seinturier, L., and Retaillé, J.-P. (2006). Foundations of AOP for J2EE Development. A-Press.
  36. Pawlak, R., Seinturier, L., and Retaillé, J.-P. (2006). Foundations of AOP for J2EE Development. A-Press.
  37. Shaw, M. and Garlan, D. (1996). Software Architecture. Prentice Hall.
  38. Shaw, M. and Garlan, D. (1996). Software Architecture. Prentice Hall.
  39. Sreedhar, V. (2002). Mixin'up Components. International Conference on Software Engineering.
  40. Sreedhar, V. (2002). Mixin'up Components. International Conference on Software Engineering.
  41. Taylor, R., Medvidovic, N., and Dashofy, E. (2010). Software Architecture. Wiley.
  42. Taylor, R., Medvidovic, N., and Dashofy, E. (2010). Software Architecture. Wiley.
  43. Wymore, A. (1967). A Mathematical Theory of Systems Engineering. Krieger.
  44. Wymore, A. (1967). A Mathematical Theory of Systems Engineering. Krieger.
Download


Paper Citation


in Harvard Style

Barros F. (2011). BEYOND DESIGN PATTERNS - Improving Software Design with Pluggable Units . In Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT, ISBN 978-989-8425-77-5, pages 123-128. DOI: 10.5220/0003466001230128


in Harvard Style

Barros F. (2011). BEYOND DESIGN PATTERNS - Improving Software Design with Pluggable Units . In Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT, ISBN 978-989-8425-77-5, pages 123-128. DOI: 10.5220/0003466001230128


in Bibtex Style

@conference{icsoft11,
author={Fernando Barros},
title={BEYOND DESIGN PATTERNS - Improving Software Design with Pluggable Units},
booktitle={Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT,},
year={2011},
pages={123-128},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0003466001230128},
isbn={978-989-8425-77-5},
}


in Bibtex Style

@conference{icsoft11,
author={Fernando Barros},
title={BEYOND DESIGN PATTERNS - Improving Software Design with Pluggable Units},
booktitle={Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT,},
year={2011},
pages={123-128},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0003466001230128},
isbn={978-989-8425-77-5},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT,
TI - BEYOND DESIGN PATTERNS - Improving Software Design with Pluggable Units
SN - 978-989-8425-77-5
AU - Barros F.
PY - 2011
SP - 123
EP - 128
DO - 10.5220/0003466001230128


in EndNote Style

TY - CONF
JO - Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT,
TI - BEYOND DESIGN PATTERNS - Improving Software Design with Pluggable Units
SN - 978-989-8425-77-5
AU - Barros F.
PY - 2011
SP - 123
EP - 128
DO - 10.5220/0003466001230128