Your browser does not support JavaScript!
http://iet.metastore.ingenta.com
1887

access icon openaccess Towards a reference process for software architecture reconstruction

Nowadays, software systems remain useful and competitive; entail the inevitable need to change over time and to be adapted to new technologies, platforms, and architectures. These quick changes imply following systematic, automated, or standardised processes that provide recommendations and guidelines to architects during software architecture reconstruction. Considerable research work on architecture reconstruction has been conducted. However, it needs to be studied thoroughly to determine what are the common activities and elements to reconstruct software architectures, and to define a reference process for systematically guiding the evolution of software architectures. This work addresses the need for defining a process for software architecture reconstruction called software improvement in the reconstruction of architectures (SIRA). This process has been rigorously designed from the results of a systematic literature review and a small survey of related work. As a result, SIRA integrates and extends previous research and can be conceived as a reference process to reconstruct software architectures in a semi-automated way. In addition, this work also determines the common elements of the architecture reconstruction process: (i) techniques and activities; (ii) architectural elements, patterns, and attributes; (iii) mechanisms and strategies; and (iv) the automation and recommendation tasks of the process.

References

    1. 1)
      • 68. Maqbool, O., Babri, H.: ‘Hierarchical clustering for software architecture recovery’, IEEE Trans. Softw. Eng., 2007, 33, (11), pp. 759780.
    2. 2)
      • 48. Von Detten, M., Meyer, M., Travkin, D.: ‘Reverse engineering with the reclipse tool suite’. The 32nd ACM/IEEE Int. Conf. on Software Engineering-Volume 2, Cape Town, South Africa, 2010, pp. 299300.
    3. 3)
      • 57. Hunt, J.: ‘Gang of four design patterns’, in ‘Scala design patterns’ (Springer, Basel, Switzerland, 2013), pp. 135136.
    4. 4)
      • 67. Ball, T.: ‘The concept of dynamic analysis’. Software Engineering – ESEC/FSE'99, Toulouse, France, 1999, pp. 216234.
    5. 5)
      • 10. Tilley, S.: ‘A reverse-engineering environment framework’, 1998.
    6. 6)
      • 22. Arias, T.B.C., Avgeriou, P., America, P., et al: ‘A top-down strategy to reverse architecting execution views for a large and complex software-intensive system: an experience report’, Sci. Comput. Program., 2011, 76, (12), pp. 10981112.
    7. 7)
      • 80. Beck, K., Fowler, M., Beck, G.: ‘Bad smells in code’, in ‘Refactoring: improving the design of existing code’ (Addison-Wesley Professional, United States1999), pp. 7588.
    8. 8)
      • 45. van Heesch, U., Avgeriou, P., Zdun, U., et al: ‘The supportive effect of patterns in architecture decision recovery – a controlled experiment’, Sci. Comput. Program., 2012, 77, (5), pp. 551576.
    9. 9)
      • 69. Storey, M.-A., Fracchia, F.D., Müller, H.A.: ‘Cognitive design elements to support the construction of a mental model during software exploration’, J. Syst. Softw., 1999, 44, (3), pp. 171185.
    10. 10)
      • 5. Ebert, C., Gallardo, G., Hernantes, J., et al: ‘Devops’, IEEE Softw., 2016, 33, (3), pp. 94100.
    11. 11)
      • 14. De Silva, L., Balasubramaniam, D.: ‘Controlling software architecture erosion: a survey’, J. Syst. Softw., 2012, 85, (1), pp. 132151.
    12. 12)
      • 51. Belle, A.B., El Boussaidi, G., Kpodjedo, S.: ‘Combining lexical and structural information to reconstruct software layers’, Inf. Softw. Technol., 2016, 74, pp. 116.
    13. 13)
      • 13. Breivold, H.P., Crnkovic, I., Larsson, M.: ‘A systematic review of software architecture evolution research’, Inf. Softw. Technol., 2012, 54, (1), pp. 1640.
    14. 14)
      • 32. Koziolek, H., Goldschmidt, T., de Gooijer, T., et al: ‘Assessing software product line potential: an exploratory industrial case study’, Empir. Softw. Eng., 2016, 21, pp. 441448.
    15. 15)
      • 6. Erl, T.: ‘SOA: principles of service design’, vol. 1, (Prentice Hall, Upper Saddle River, 2008).
    16. 16)
      • 77. Murphy, G.C., Notkin, D., Sullivan, K.: ‘Software reflexion models: bridging the gap between source and high-level models’, ACM SIGSOFT Softw. Eng. Notes, 1995, 20, (4), pp. 1828.
    17. 17)
      • 82. ‘Software & Systems Process Engineering Metamodel (SPEM)’. Available at http://www.omg.org/spec/SPEM/.
    18. 18)
      • 1. Chikofsky, E.J., Cross, J.H.: ‘Reverse engineering and design recovery: a taxonomy’, IEEE Softw., 1990, 7, (1), pp. 1317.
    19. 19)
      • 59. Zimmer, W.: ‘Relationships between design patterns’, Design, 1995, 1, pp. 345364.
    20. 20)
      • 28. Constantinou, E., Kakarontzas, G., Stamelos, I.: ‘An automated approach for noise identification to assist software architecture recovery techniques’, J. Syst. Softw., 2015, 107, pp. 142157.
    21. 21)
      • 19. Kitchenham, B.: ‘Procedures for performing systematic reviews’, Keele UK Keele Univ., 2004, 33, (2004), pp. 126.
    22. 22)
      • 21. Ivarsson, M., Gorschek, T.: ‘A method for evaluating rigor and industrial relevance of technology evaluations’, Empir. Softw. Eng., 2011, 16, (3), pp. 365395.
    23. 23)
      • 42. Ramírez, A., Romero, J.R., Ventura, S.: ‘An approach for the evolutionary discovery of software architectures’, Inf. Sci., 2015, 305, pp. 234255.
    24. 24)
      • 9. Namiot, D., Sneps-Sneppe, M.: ‘On micro-services architecture’, Int. J. Open Inf. Technol., 2014, 2, (9), pp. 2427.
    25. 25)
      • 46. Vasconcelos, A., Werner, C.: ‘Evaluating reuse and program understanding in ArchMine architecture recovery approach’, Inf. Sci., 2011, 181, (13), pp. 27612786.
    26. 26)
      • 40. Pashov, I., Riebisch, M., Philippow, I.: ‘Supporting architectural restructuring by analyzing feature models’. Eighth European Conf. on Software Maintenance and Reengineering, Tampere, Finland, 2004, pp. 2534.
    27. 27)
      • 35. Lungu, M., Lanza, M., Gîrba, T.: ‘Package patterns for visual architecture recovery’. The 10th European Conf. on Software Maintenance and Reengineering (CSMR), Bari, Italy, 2006.
    28. 28)
      • 73. Abi-Antoun, M.: ‘Static extraction and conformance checking of the runtime architecture of object-oriented systems’. Companion to the 23rd ACM SIGPLAN Conf. on Object-oriented programming systems languages and applications, Nashville, TN, United States, 2008, pp. 911912.
    29. 29)
      • 47. Vidal, S.A., Marcos, C., Díaz-Pace, J.A.: ‘An approach to prioritize code smells for refactoring’, Autom. Softw. Eng., 2016, 23, pp. 501532.
    30. 30)
      • 53. Fontana, F.A., Mäntylä, M.V., Zanoni, M., et al: ‘Comparing and experimenting machine learning techniques for code smell detection’, Empir. Softw. Eng., 2016, 21, (3), pp. 11431191.
    31. 31)
      • 63. Gamma, E.: ‘Applying Design Patterns in Java’, Java Gems: Jewels from Java Report, Cambridge University Press, 1998, pp. 105114.
    32. 32)
      • 37. Maffort, C., Valente, M.T., Terra, R., et al: ‘Mining architectural violations from version history’, Empir. Softw. Eng., 2016, 21, pp. 854895.
    33. 33)
      • 12. Ali, N., Baker, S., O'Crowley, R., et al: ‘Architecture consistency: state of the practice, challenges and requirements’, Empir. Softw. Eng., 2018, 23, (1), pp. 224258.
    34. 34)
      • 76. Kruchten, P., Nord, R.L., Ozkaya, I.: ‘Technical debt: from metaphor to theory and practice’, IEEE Softw., 2012, 29, (6), pp. 1821.
    35. 35)
      • 52. Shatnawi, A., Seriai, A.D., Sahraoui, H., et al: ‘Reverse engineering reusable software components from object-oriented APIs’, J. Syst. Softw., 2017, 131, pp. 442460.
    36. 36)
      • 30. Haitzer, T., Zdun, U.: ‘Semi-automatic architectural pattern identification and documentation using architectural primitives’, J. Syst. Softw., 2015, 102, pp. 3557.
    37. 37)
      • 15. Laguna, M.A., Crespo, Y.: ‘A systematic mapping study on software product line evolution: from legacy system reengineering to product line refactoring’, Sci. Comput. Program., 2013, 78, (8), pp. 10101034.
    38. 38)
      • 4. Miorandi, D., Sicari, S., De Pellegrini, F., et al: ‘Internet of things: vision, applications and research challenges’, Ad Hoc Netw., 2012, 10, (7), pp. 14971516.
    39. 39)
      • 20. Dybå, T., Dingsøyr, T.: ‘Strength of evidence in systematic reviews in software engineering’. Proc. Second ACM-IEEE Int. Symp. on Empirical Software Engineering and Measurement, Kaiserslautern, Germany, 2008, pp. 178187.
    40. 40)
      • 71. Lung, C.-H.: ‘Software architecture recovery and restructuring through clustering techniques’. Proc. Third Int. Workshop on Software Architecture, Orlando, FL, United States, 1998, pp. 101104.
    41. 41)
      • 64. Schauer, R., Keller, R.K.: ‘Pattern visualization for software comprehension’. 6th Int. Workshop on Program Comprehension, IWPC'98, Washington, DC, United States, 1998, pp. 412.
    42. 42)
      • 36. Lungu, M., Lanza, M., Nierstrasz, O.: ‘Evolutionary and collaborative software architecture recovery with softwarenaut’, Sci. Comput. Program., 2014, 79, pp. 204223.
    43. 43)
      • 24. Carrière, S.J., Woods, S., Kazman, R.: ‘Software architectural transformation’. Sixth Working Conf. on Reverse Engineering, Atlanta, United States, October 1999, pp. 1323.
    44. 44)
      • 38. Maqbool, O., Babri, H.A.: ‘The weighted combined algorithm: a linkage algorithm for software clustering’. Eighth European Conf. on Software Maintenance and Reengineering, 2004. CSMR 2004. Proc., Tampere, Finland,, 2004, pp. 1524.
    45. 45)
      • 50. Zapalowski, V., Nunes, I., Nunes, D.J.: ‘Revealing the relationship between architectural elements and source code characteristics’. The 22nd Int. Conf. on Program Comprehension, Hyderabad, India, 2014, pp. 1425.
    46. 46)
      • 60. Avgeriou, P., Zdun, U.: ‘Architectural patterns revisited-a pattern language’, 2005.
    47. 47)
      • 65. Vanhilst, M., Fernandez, E.B.: ‘A multi-dimensional classification for users of security patterns’, 2009, 41, (2), pp. 8797.
    48. 48)
      • 3. Ducasse, S., Pollet, D.: ‘Software architecture reconstruction: a process-oriented taxonomy’, IEEE Trans. Softw. Eng., 2009, 35, (4), pp. 573591.
    49. 49)
      • 26. Chen, L., Wang, J., Xu, M., et al: ‘Reengineering of java legacy system based on aspect-oriented programming’. Second Int. Workshop on Education Technology and Computer Science (ETCS), Wuhan, China, March 2010, vol. 3, pp. 220223.
    50. 50)
      • 29. Díaz-Pace, J.A., Soria, Á., Rodríguez, G., et al: ‘Assisting conformance checks between architectural scenarios and implementation’, Inf. Softw. Technol., 2012, 54, (5), pp. 448466.
    51. 51)
      • 2. O'Brien, L., Stoermer, C., Verhoef, C.: ‘Software architecture reconstruction: practice needs and current approaches’, 2002.
    52. 52)
      • 7. Overbeek, S., Klievink, B., Janssen, M.: ‘A flexible, event-driven, service-oriented architecture for orchestrating service delivery’, IEEE Intell. Syst., 2009, 24, (5), pp. 3141.
    53. 53)
      • 27. Chong, C.Y., Lee, S.P., Ling, T.C.: ‘Efficient software clustering technique using an adaptive and preventive dendrogram cutting approach’, Inf. Softw. Technol., 2013, 55, (11), pp. 19942012.
    54. 54)
      • 16. Clements, P., Northrop, L.: ‘Software product lines’ (Addison-Wesley, Boston, United States, 2002).
    55. 55)
      • 72. Sartipi, K.: ‘Software architecture recovery based on pattern matching’. Int. Conf. on Software Maintenance, 2003 (ICSM 2003) Proc., Amsterdam, Netherlands, 2003, pp. 293296.
    56. 56)
      • 78. Hofmeister, C., Nord, R., Soni, D.: ‘Applied software architecture’ (Addison-Wesley Professional, Boston, United States, 2000).
    57. 57)
      • 23. Bauer, M., Trifu, M.: ‘Architecture-aware adaptive clustering of OO systems’. CSMR Eighth European Conf. on Software Maintenance and Reengineering, Tampere, Finland, March 2004, pp. 314.
    58. 58)
      • 79. Schwanke, R.W.: ‘An intelligent tool for re-engineering software modularity’.  Proc. 13th Int. Conf. on Software Engineering, 1991, Austin, TX, United States, 1991, pp. 8392.
    59. 59)
      • 8. Mell, P., Grance, T.: ‘The NIST definition of cloud computing’, 2011.
    60. 60)
      • 75. Jansen, A., Bosch, J., Avgeriou, P.: ‘Documenting after the fact: recovering architectural design decisions’, J. Syst. Softw., 2008, 81, (4), pp. 536557.
    61. 61)
      • 34. Lindvall, M., Stratton, W.C., Sibol, D.E., et al: ‘Connecting research and practice: an experience report on research infusion with software architecture visualization and evaluation’, Innov. Syst. Softw. Eng., 2012, 8, (4), pp. 255277.
    62. 62)
      • 31. Hasheminejad, S.M.H., Jalili, S.: ‘Design patterns selection: an automatic two-phase method’, J. Syst. Softw., 2012, 85, (2), pp. 408424.
    63. 63)
      • 17. Pohl, K., Böckle, G., van Der Linden, F.J.: ‘Software product line engineering: foundations, principles and techniques’ (Springer Science & Business Media, Berlin, Germany, 2005).
    64. 64)
      • 33. Kumar, K., Prabhakar, T.V.: ‘Pattern-oriented knowledge model for architecture design’. 17th Conf. on Pattern Languages of Programs, Reno Nevada, United States, 2010.
    65. 65)
      • 18. Shahin, M., Liang, P., Babar, M.A.: ‘A systematic review of software architecture visualization techniques’, J. Syst. Softw., 2014, 94, pp. 161185.
    66. 66)
      • 43. Riva, C., Rodriguez, J.V.: ‘Combining static and dynamic views for architecture reconstruction’. Sixth European Conf. on Software Maintenance and Reengineering, Budapest, Hungary, 2002, pp. 4755.
    67. 67)
      • 81. Kruchten, P.B.: ‘The 4 + 1 view model of architecture’, IEEE Softw., 1995, 12, (6), pp. 4250.
    68. 68)
      • 83. Tricco, A.C., Tetzlaff, J., Sampson, M., et al: ‘Few systematic reviews exist documenting the extent of bias: a systematic review’, J. Clin. Epidemiol., 2008, 61, (5), pp. 422434.
    69. 69)
      • 58. Buschmann, F., Henney, K., Schmidt, D.C.: ‘Pattern-oriented software architecture, on patterns and pattern languages’, vol. 5, (John Wiley & Sons, Hoboken, New Jersey, United States, 2007).
    70. 70)
      • 74. Maqbool, O., Babri, H.A.: ‘Bayesian learning for software architecture recovery’. Int. Conf. on Electrical Engineering, 2007 (ICEE'07), Lahore, Pakistan, 2007, pp. 16.
    71. 71)
      • 39. Pashov, I., Riebisch, M.: ‘Using feature modeling for program comprehension and software architecture recovery’. The 11th IEEE Int. Conf. and Workshop on the Engineering of Computer-Based Systems, Brno, Czech Republic, 2004, pp. 406417.
    72. 72)
      • 62. Kazman, R., Klein, M., Barbacci, M., et al: ‘The architecture tradeoff analysis method’. 4th IEEE Int. Conf. on Engineering of Complex Computer Systems, ICECCS'98, Monterey, CA, United States, 1998, pp. 6878.
    73. 73)
      • 54. García, J., Ivkovic, I., Medvidovic, N.: ‘A comparative analysis of software architecture recovery techniques’. 28th IEEE/ACM Int. Conf. on Automated Software Engineering (ASE'13), Clayton, Australia, 2014, pp. 486496.
    74. 74)
      • 70. Beydeda, S., Book, M., Gruhn, V., et al: ‘Model-driven software development’, vol. 15, (Springer, Berlin, Germany, 2005).
    75. 75)
      • 41. Porras, G.C., Guéhéneuc, Y.G.: ‘An empirical study on the efficiency of different design pattern representations in UML class diagrams’, Empir. Softw. Eng., 2010, 15, (5), pp. 493522.
    76. 76)
      • 11. Herold, S., Blom, M., Buckley, J.: ‘Evidence in architecture degradation and consistency checking research: preliminary results from a literature review’. 10th European Conf. on Software Architecture Workshops, Copenhagen, Denmark, 2016, p. 20.
    77. 77)
      • 66. Tichy, W.F.: ‘A catalogue of general-purpose software design patterns’. Proc. of TOOLS USA 97 Int. Conf. on Technology of Object Oriented Systems and Languages, Santa Barbara, CA, United States, January 1997.
    78. 78)
      • 44. Savić, M., Rakić, G., Budimac, Z., et al: ‘A language-independent approach to the extraction of dependencies between source code entities’, Inf. Softw. Technol., 2014, 56, (10), pp. 12681288.
    79. 79)
      • 25. Chang, C.H., Lu, C.W., Hsiung, P.A.: ‘Pattern-based framework for modularized software development and evolution robustness’, Inf. Softw. Technol., 2011, 53, (4), pp. 307316.
    80. 80)
      • 49. Wierda, A., Dortmans, E., Somers, L.: ‘Using version information in architectural clustering-a case study’. The 10th European Conf. on Software Maintenance and Reengineering (CSMR), Bari, Italy, 2006.
    81. 81)
      • 55. Koschke, R.: ‘Architecture reconstruction’. Software Engineering, Salerno, Italy, 2009 (LNCS, 5413), pp. 140173, http://dx.doi.org/10.1007/978-3-540-95888-8_6.
    82. 82)
      • 61. Mens, T., Wermelinger, M., Ducasse, S., et al: ‘Challenges in software evolution’. 8th Int. Workshop on Principles of Software Evolution, Lisbon, Portugal, 2005, pp. 1322.
    83. 83)
      • 56. Shtern, M., Tzerpos, V.: ‘Clustering methodologies for software engineering’, Adv. Softw. Eng., 2012, 2012, pp. 118.
http://iet.metastore.ingenta.com/content/journals/10.1049/iet-sen.2019.0246
Loading

Related content

content/journals/10.1049/iet-sen.2019.0246
pub_keyword,iet_inspecKeyword,pub_concept
6
6
Loading
This is a required field
Please enter a valid email address