A Three-level Versioning Model for Component-based Software Architectures

Software versioning is intrinsic to software evolution. It keeps history of previous software states (versions) and updates the software to the latest stable version. In the last twenty years, a lot of work was dedicated to software versioning. Many version control mechanisms were proposed to store and track software versions for different software forms (code, objects, models, . . . ). This paper addresses in particular software architecture versioning considering three abstraction levels: specification, implementation and deployment. In previous work, we proposed an approach that generates evolution plans for three-level component-based software architectures. The generated plans deal with a change initiated from one of the three abstraction levels and propagate it to the other levels in order to keep software descriptions consistent and coherent all along the software lifecycle. On this basis, we propose a versioning model that stores information about evolution and also keeps track of the right version of architecture descriptions at a given abstraction level. Keywords–architecture evolution, abstraction levels, versioning, component reuse.

[1]  Christelle Urtado,et al.  Complex Entity Versioning at Two Granularity Levels , 1998, Inf. Syst..

[2]  Matt Zandstra,et al.  Version Control with Subversion , 2010 .

[3]  Reidar Conradi,et al.  Impact of software engineering research on the practice of software configuration management , 2005, ACM Trans. Softw. Eng. Methodol..

[4]  Reidar Conradi,et al.  Version models for software configuration management , 1998, CSUR.

[5]  Marianne Huchard,et al.  An evolution management model for multi-level component-based software architectures , 2015, SEKE.

[6]  Mourad Oussalah,et al.  A generic model for managing software architecture evolution , 2005 .

[7]  Moshe Bar,et al.  Open Source Development with CVS , 1999 .

[8]  Marianne Huchard,et al.  A formal approach for managing component-based architecture evolution , 2016, Sci. Comput. Program..

[9]  Matt Zandstra,et al.  Version Control with Git , 2013 .

[10]  Motoshi Saeki,et al.  Generative technique of version control systems for software diagrams , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[11]  Richard N. Taylor,et al.  A comprehensive approach for the development of modular software architecture description languages , 2005, TSEM.

[12]  Marija Mikic-Rakic,et al.  Mae---a system model and environment for managing architectural evolution , 2004, TSEM.

[13]  Premek Brada,et al.  Component revision identification based on IDL/ADL component specification , 2001, ESEC/FSE-9.

[14]  Alexander Stuckenholz Component Updates as a Boolean Optimization Problem , 2007, Electron. Notes Theor. Comput. Sci..

[15]  Mary Shaw,et al.  "The Golden Age of Software Architecture" Revisited , 2009, IEEE Software.

[16]  Petr Hnetynka,et al.  SOFA 2.0: Balancing Advanced Features in a Hierarchical Component Model , 2006, Fourth International Conference on Software Engineering Research, Management and Applications (SERA'06).

[17]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[18]  Tien N. Nguyen,et al.  Multi-level Architectural Evolution Management , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

[19]  Christelle Urtado,et al.  Architecture-Centric Component-Based Development Needs a Three-Level ADL , 2010, ECSA.

[20]  Robert Englander Developing Java Beans , 1997 .