Architecture-Centric Component-Based Development Needs a Three-Level ADL

Architecture-centric, component-based development intensively reuses components from repositories. Such development processes produce architecture definitions, using architecture description languages (Adls). This paper proposes a three step process. Architecture specifications first capture abstract and ideal architectures imagined by architects to meet requirements. Specifications do not describe complete component types but only component roles (usages). Architecture configurations then capture implementation decisions, as the architects select specific component classes from the repository to implement component roles. Finally, architecture assemblies define how components instances are created and initialized to customize the deployment of architectures in their own execution contexts. This development process is supported by a three-level Adl which enables the separate definition of these three representations. The refinement relationships between these architecture representations are also discussed.

[1]  Richard N. Taylor Software architecture: many faces, many places, yet a central discipline , 2009, ESEC/FSE '09.

[2]  Richard N. Taylor,et al.  A language and environment for architecture-based software development and evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[3]  Chouki Tibermacine,et al.  Automated architectural component classification using concept lattices , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[4]  Marianne Huchard,et al.  Search-based many-to-one component substitution , 2008 .

[5]  David Garlan,et al.  Using Gauges for Architecture-Based Monitoring and Adaptation , 2001 .

[6]  Ivica Crnkovic,et al.  Component-based development process and component lifecycle , 2005, 27th International Conference on Information Technology Interfaces, 2005..

[7]  Richard N. Taylor,et al.  A highly-extensible, XML-based architecture description language , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[8]  Arvinder Kaur,et al.  Component Based Software Engineering , 2010 .

[9]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[10]  Hans van Vliet,et al.  Software engineering - principles and practice , 1993 .

[11]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[12]  Bradley R. Schmerl,et al.  Using Architectural Style as a Basis for System Self-repair , 2002, WICSA.

[13]  Christelle Urtado,et al.  Architecture-centric development and evolution processes for component-based software , 2010, SEKE.

[14]  Jeff Magee,et al.  Dynamic structure in software architectures , 1996, SIGSOFT '96.

[15]  Frantisek Plasil,et al.  Behavior Protocols for Software Components , 2002, IEEE Trans. Software Eng..

[16]  Ivar Jacobson,et al.  Unified Modeling Language User Guide, The (2nd Edition) (Addison-Wesley Object Technology Series) , 2005 .

[17]  Marianne Huchard,et al.  Journal of Software Maintenance and Evolution: Research and Practice Search-based Many-to-one Component Substitution , 2022 .

[18]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[19]  Thierry Coupaye,et al.  The FRACTAL component model and its support in Java , 2006, Softw. Pract. Exp..

[20]  Thierry Coupaye,et al.  The FRACTAL component model and its support in Java: Experiences with Auto-adaptive and Reconfigurable Systems , 2006 .