ABSTRACT
Despite patterns being reusable pieces of design knowledge, in current practice, software developers have no first-class support for their application and have to encode patterns manually in terms of low-level abstractions. We propose patterns to become explicit software system entities, both in design and implementation, by defining them as component model entities. Patterns would form high-level means for component composition. In this paper, we demonstrate the feasibility of the idea and identify research challenges that the approach raises.
- F. Arbab. What do you mean, coordination? In Bulletin of the Dutch Association for Theoretical Computer Science (NVTI, pages 11--22, 1998.Google Scholar
- F. Arbab. Reo: a channel-based coordination model for component composition. Mathematical Structures in Computer Science, 14(3):329--366, 2004. Google ScholarDigital Library
- A. Basu, M. Bozga, and J. Sifakis. Modeling heterogeneous real-time components in BIP. In SEFM, pages 3--12. IEEE Computer Society, 2006. Google ScholarDigital Library
- I. Bayley and H. Zhu. Formal specification of the variants and behavioural features of design patterns. Journal of Systems and Software, 83(2):209--221, 2010. Google ScholarDigital Library
- G. Booch. Back to the future. IEEE Software, 2008. Google ScholarDigital Library
- F. Buschmann, K. Henney, and D. C. Schmidt. Pattern-oriented Software Architecture: On Patterns and Pattern Languages, volume 5. John Wiley and Sons, 2007. Google ScholarDigital Library
- F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal. Pattern-oriented Software Architecture: A System of Patterns, volume 1. John Wiley and Sons, 1996. Google ScholarDigital Library
- N. Carriero and D. Gelernter. Coordination languages and their significance. Comm. of the ACM, 35(2):96, Feb. 1992. Google ScholarDigital Library
- J. Dong, P. Alencar, D. Cowan, and S. Yang. Composing pattern-based components and verifying correctness. Journal of Systems and Software, 80(11):1755--1769, 2007. Google ScholarDigital Library
- J. Dong, Y. Zhao, and T. Peng. A review of design pattern mining techniques. International Journal of Software Engineering and Knowledge Engineering, 19(6):823--855, 2009.Google ScholarCross Ref
- M. Elaasar, L. Briand, and Y. Labiche. A metamodeling approach to pattern specification and detection. Model Driven Engineering Languages and Systems, March:1-28, 2006. Google ScholarDigital Library
- R. B. France, D.-K. Kim, S. Ghosh, and E. Song. A UML-based pattern specification technique. IEEE Trans. on Soft. Eng., 30(3):193--206, 2004. Google ScholarDigital Library
- E. Gamma, R. Helm, J. Vlissides, and R. E. Johnson. Design Patterns. Addison-Wesley, 1995.Google ScholarDigital Library
- J. Gibbons. Design patterns as higher-order datatype-generic programs. In R. Hinze, editor, Proceedings of the ACM SIGPLAN Workshop on Generic Programming, pages 1--12. ACM, 2006. Google ScholarDigital Library
- A. L. Guennec, G. Sunyé, and J.-M. Jézéquel. Precise modeling of design patterns. In UML 2000, York, UK, volume 1939 of LNCS, pages 482--496. Springer, 2000. Google ScholarDigital Library
- J. Hannemann and G. Kiczales. Design pattern implementation in Java and AspectJ. ACM SIGPLAN Notices, 37(11):161--173, Nov. 2002. Google ScholarDigital Library
- A. W. Kamal and P. Avgeriou. Modeling architectural patterns' behavior using architectural primitives. In ECSA 2008, volume 5292, pages 164--179. Springer, 2008. Google ScholarDigital Library
- K.-K. Lau, I. Ntalamagkas, C. M. Tran, and T. Rana. (behavioural) design patterns as composition operators. In CBSE 2010, LNCS 6092, pages 232--251. Springer-Verlag, 2010. Google ScholarDigital Library
- K.-K. Lau and T. Rana. A taxonomy of software composition mechanisms. In Proc. 36th EUROMICRO Conference on Software Engineering and Advanced Applications, pages 102--110. IEEE, 2010. Google ScholarDigital Library
- K.-K. Lau, L. Safie, P. Štěpán, and C. Tran. A component model that is both control-driven and data-driven. In CBSE 2011, to appear. Google ScholarDigital Library
- K.-K. Lau, P. Velasco Elizondo, and Z. Wang. Exogenous connectors for software components. In CBSE 2005, LNCS 3489, pages 90--106, 2005. Google ScholarDigital Library
- K.-K. Lau and Z. Wang. Software component models. IEEE Trans. on Soft. Eng., 33(10), October 2007. Google ScholarDigital Library
- D. Manolescu, W. Kozaczynski, A. Miller, and J. Hogg. The growing divide in the patterns world. IEEE Software, 24(4):61--67, 2007. Google ScholarDigital Library
- D. Maplesden, J. G. Hosking, and J. C. Grundy. A visual language for design pattern modelling and instantiation. In HCC, pages 338--339. IEEE Computer Society, 2001. Google ScholarDigital Library
- N. R. Mehta and N. Medvidovic. Composing architectural styles from architectural primitives. In ESEC/SIGSOFT FSE, pages 347--350. ACM, 2003. Google ScholarDigital Library
- B. Meyer and K. Arnout. Componentization: The Visitor example. Computer, 39(7):23--30, July 2006. Google ScholarDigital Library
- T. Mikkonen. Formalizing design patterns. In ICSE '98, pages 115--124, 1998. Google ScholarDigital Library
- D. Schmidt. Model-driven engineering. IEEE Computer, 39(2):25--31, 2006. Google ScholarDigital Library
- M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. 1996. Google ScholarDigital Library
- T. Taibi and F. Taibi. Formal Specification of Design Patterns and Their Instances. IEEE Int. Conf. on Computer Systems and Applications, 2006., pages 33--36, 2006. Google ScholarDigital Library
Index Terms
- Design pattern solutions as explicit entities in component-based software development
Recommendations
Improvement of component selection process using Genetic Algorithm for Component-Based Software Development
Modern information systems are becoming more expensive to build and maintain. Software development management and software quality goals are necessary, but not sufficient for the needs of today's marketplace. Shorter cycle time, completed with fewer ...
A theoretical framework of component-based software development phases
Component-Based Software Development (CBSD) is considered by many as the next revolution in systems development. Its focus is on the integration of pre-fabricated software components to build systems that increase portability and flexibility. CBSD ...
Some observations on software processes for CBSE
Component-based development (CBD), an approach to develop a software system with the help of reusable software components, has its own challenges because its parallel development process, coding style, system life cycle, etc. are required to be ...
Comments