Architectural Archipelagos: Technical Debt in Long-Lived Software Research Platforms

This paper identifies a model of software evolution that is prevalent in large, long-lived academic research tool suites (3L-ARTS). This model results in an "archipelago" of related but haphazardly organized architectural "islands", and inherently induces technical debt. We illustrate the archipelago model with examples from two 3L-ARTS archipelagos identified in literature.

[1]  Nenad Medvidovic,et al.  Identifying message flow in distributed event-based systems , 2013, ESEC/FSE 2013.

[2]  Nenad Medvidovic,et al.  Toward a Catalogue of Architectural Bad Smells , 2009, QoSA.

[3]  Yuanfang Cai,et al.  Titan: a toolset that connects software architecture with quality analysis , 2014, SIGSOFT FSE.

[4]  Nenad Medvidovic,et al.  EVA: A Tool for Visualizing Software Architectural Evolution , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering: Companion (ICSE-Companion).

[5]  Nenad Medvidovic,et al.  Software architecture and mobility: A roadmap , 2010, J. Syst. Softw..

[6]  Richard N. Taylor,et al.  ArchStudio 4: An Architecture-Based Meta-Modeling Environment , 2007, 29th International Conference on Software Engineering (ICSE'07 Companion).

[7]  Marija Mikic-Rakic,et al.  Adaptable Architectural Middleware for Programming-in-the-Small-and-Many , 2003, Middleware.

[8]  Sam Malek,et al.  Reconceptualizing a Family of Heterogeneous Embedded Systems via Explicit Architectural Support , 2007, 29th International Conference on Software Engineering (ICSE'07).

[9]  Richard N. Taylor,et al.  Architecture-based specification-time software evolution , 1999 .

[10]  Peyman Oreizy,et al.  Using object-oriented typing to support architectural design in the C2 style , 1996, SIGSOFT '96.

[11]  Nenad Medvidovic,et al.  A large-scale study of architectural evolution in open-source software systems , 2017, Empirical Software Engineering.

[12]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.

[13]  Nenad Medvidovic,et al.  An Empirical Study of Architectural Decay in Open-Source Software , 2018, 2018 IEEE International Conference on Software Architecture (ICSA).

[14]  Flavio Oquendo,et al.  Software Architecture , 2004, Lecture Notes in Computer Science.

[15]  Marija Mikic-Rakic,et al.  Architecture-Level Support for Software Component Deployment in Resource Constrained Environments , 2002, Component Deployment.

[16]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[17]  Peyman Oreizy,et al.  Open architecture software: a flexible approach to decentralized software evolution , 2000 .

[18]  Marija Mikic-Rakic,et al.  A Family of Software Architecture Implementation Frameworks , 2002, WICSA.

[19]  Joshua Garcia A Unified Framework for Studying Architectural Decay of Software Systems , 2014 .

[20]  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).

[21]  Richard N. Taylor,et al.  A Component- and Message-Based Architectural Style for GUI Software , 1995, 1995 17th International Conference on Software Engineering.

[22]  Marija Mikic-Rakic,et al.  A style-aware architectural middleware for resource-constrained, distributed systems , 2005, IEEE Transactions on Software Engineering.

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

[24]  Peyman Oreizy,et al.  xADL: enabling architecture-centric tool integration with XML , 2001, Proceedings of the 34th Annual Hawaii International Conference on System Sciences.

[25]  Jane Cleland-Huang,et al.  Archie: a tool for detecting, monitoring, and preserving architecturally significant code , 2014, FSE 2014.

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

[27]  Florian Deißenböck,et al.  Continuous quality control of long lived software systems , 2009 .

[28]  Nenad Medvidovic,et al.  ARCADE: an extensible workbench for architecture recovery, change, and decay evaluation , 2020, ESEC/SIGSOFT FSE.

[29]  Nenad Medvidovic,et al.  A comparative analysis of software architecture recovery techniques , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[30]  Roland J. Weiss,et al.  Sustainability guidelines for long-living software systems , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[31]  Nenad Medvidovic,et al.  Detecting event anomalies in event-based systems , 2015, ESEC/SIGSOFT FSE.

[32]  Peyman Oreizy,et al.  Architecture-based runtime software evolution , 1998, Proceedings of the 20th International Conference on Software Engineering.

[33]  Marija Mikic-Rakic,et al.  An Extensible Framework for Improving a Distributed Software System's Deployment Architecture , 2012, IEEE Transactions on Software Engineering.

[34]  Richard N. Taylor,et al.  PACE: an architectural style for trust management in decentralized applications , 2004, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[35]  Joseph W. Yoder,et al.  Big Ball of Mud , 1997 .