Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Simulating Software Evolution to Evaluate the Reliability of Early Decision-making among Design Alternatives toward Maintainability

Published: 26 April 2023 Publication History

Abstract

Critical decisions among design altern seventh atives with regards to maintainability arise early in the software design cycle. Existing comparison models relayed on the structural evolution of the used design patterns are suitable to support such decisions. However, their effectiveness on predicting maintenance effort is usually verified on a limited number of case studies under heterogeneous metrics. In this article, a multi-variable simulation model for validating the decision-making reliability of the derived formal comparison models for the significant designing problem of recursive hierarchies of part-whole aggregations, proposed in our prior work, is introduced. In the absence of a strict validation, the simulation model has been thoroughly calibrated concerning its decision-making precision based on empirical distributions from time-series analysis, approximating the highly uncertain nature of actual maintenance process. The decision reliability of the formal models has been statistically validated on a sample of 1,000 instances of design attributes representing the entire design space of the problem. Despite the limited accuracy of measurements, the results show that the models demonstrate an increasing reliability in a long-term perspective, even under assumptions of high variability. Thus, the modeling theory discussed in our prior work delivers reliable models that significantly reduce decision-risk and relevant maintenance cost.

References

[1]
L. Bass, P. Clements, and R. Kazman. 2012. Software Architecture in Practice, 3rd ed. Addison-Wesley Professional, Upper Saddle River, NJ.
[2]
ISO/IEC 25010. 2011. ISO/IEC 25010:2011—Systems and software engineering—Systems and software Quality Requirements and Evaluation (SQuaRE)—System and software quality models. Retrieved from http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=35733.
[3]
ISO/IEC 25023. 2016. ISO/IEC 25023:2016—Systems and software engineering—Systems and software Quality Requirements and Evaluation (SQuaRE)—Measurement of system and software product quality. Retrieved from http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=35747.
[4]
ISO/IEC/IEEE 24765. 2010. “ISO/IEC/IEEE 24765:2010—Systems and software engineering—Vocabulary, Retrieved from https://ieeexplore.ieee.org/document/5733835.
[5]
I. Sommerville. 2010. Software Engineering, 9th ed. Addison-Wesley, Boston.
[6]
R. L. Glass. 2002. Software Engineering: Facts and Fallacies. Addison-Wesley Longman Publishing, Boston, MA.
[7]
J. Bosch and P. Bengtsson. 2001. Assessing optimal software architecture maintainability. In Proceedings of the 5th European Conference on Software Maintenance and Reengineering. 168–175. DOI:
[8]
B. Srivastava. 2004. A decision-support framework for component reuse and maintenance in software project management. In Proceedings of the 8th European Conference on Software Maintenance and Reengineering (CSMR’04). 125–134. DOI:
[9]
R. Pressman. 2010. Software Engineering: A Practitioner's Approach, 7th ed. McGraw-Hill, New York, NY.
[10]
P. Kruchten, R. L. Nord, and I. Ozkaya. 2012. Technical Debt: From metaphor to theory and practice. IEEE Softw. 29, 6 (Nov. 2012), 18–21. DOI:
[11]
B. J. Williams and J. C. Carver. 2010. Characterizing software architecture changes: A systematic review. Inf. Softw. Technol. 52, 1 (Jan. 2010), 31–51. DOI:
[12]
L. Xiao, Y. Cai, R. Kazman, R. Mo, and Q. Feng. 2016. Identifying and quantifying architectural debt. In Proceedings of the IEEE/ACM 38th International Conference on Software Engineering (ICSE’16). 488–498. DOI:
[13]
M. Paixao, J. Krinke, D. Han, C. Ragkhitwetsagul, and M. Harman. 2017. Are developers aware of the architectural impact of their changes?. In Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering. 95–105. Retrieved from http://dl.acm.org/citation.cfm?id=3155562.3155578.
[14]
C. Karanikolas, G. Dimitroulakos, and K. Masselos. 2017. Early evaluation of implementation alternatives of composite data structures toward maintainability. ACM Trans. Softw. Eng. Methodol. 26, 2 (Oct. 2017), 8:1–8:44. DOI:
[15]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Pearson Education.
[16]
M. Riaz, E. Mendes, and E. Tempero. 2009. A systematic review of software maintainability prediction and metrics. In Proceedings of the 3rd International Symposium on Empirical Software Engineering and Measurement. 367–377. DOI:http://dx.doi.org/10.1109/ESEM.2009.5314233
[17]
M. Shepperd and S. MacDonell. 2012. Evaluating prediction systems in software project estimation. Info. Softw. Technol. 54, 8 (Aug. 2012), 820–827. DOI:
[18]
K.-J. Stol and B. Fitzgerald. 2018. The ABC of software engineering research. ACM Trans. Softw. Eng. Methodol. 27, 3 (Sep. 2018), 11:1–11:51. DOI:
[19]
W. B. Langdon, J. Dolado, F. Sarro, and M. Harman. 2016. Exact mean absolute error of baseline predictor, MARP0. Inf. Softw. Technol. 73, C (May 2016), 16–18. DOI:
[20]
U. Raja, D. P. Hale, and J. E. Hale. 2009. Modeling software evolution defects: A time-series approach. J. Softw. Maint. Evol. 21, 1 (Jan. 2009), 49–71.
[21]
H. Shariat Yazdi, L. Angelis, T. Kehrer, and U. Kelter. 2016. A framework for capturing, statistically modeling and analyzing the evolution of software models. J. Syst. Softw. 118, C (Aug. 2016), 176–207. DOI:
[22]
T. Arbuckle. 2011 Studying software evolution using artefacts’ shared information content. Sci. Comput. Program. 76, 12 (Dec. 2011), 1078–1097. DOI:http://dx.doi.org/10.1016/j.scico.2010.11.005
[23]
N. Chapin, J. E. Hale, K. Md. Khan, J. F. Ramil, and W.-G. Tan. 2001. Types of software evolution and software maintenance. J. Softw. Maint. Evol.: Res. Pract. 13, 1 (Jan. 2001), 3–30. DOI:http://dx.doi.org/10.1002/smr.220
[24]
S. Demeyer, T. Mens, and M. Wermelinger. 2001. Towards a software evolution benchmark. In Proceedings of the 4th International Workshop on Principles of Software Evolution. 174–177. DOI:
[25]
C. F. Kemerer and S. Slaughter. 1999. An empirical approach to studying software evolution. IEEE Trans. Softw. Eng. 25, 4 (Jul. 1999), 493–509. DOI:
[26]
M. M. Lehman and J. F. Ramil. 2002. Software evolution and software evolution processes. Ann. Softw. Eng. 14, 1–4 (Dec. 2002), 275–309. DOI:http://dx.doi.org/10.1023/A:1020557525901
[27]
T. Mens and S. Demeyer. 2001. Future trends in software evolution metrics. In Proceedings of the 4th International Workshop on Principles of Software Evolution. 83–86. DOI:
[28]
H. Gall, K. Hajek, and M. Jazayeri. 1998. Detection of logical coupling based on product release history. In Proceedings of the International Conference on Software Maintenance. 190–198. DOI:
[29]
J. F. Ramil and M. M. Lehman. 2000. Metrics of software evolution as effort predictors—A case study. In Proceedings in the International Conference on Software Maintenance. 163–172. DOI:
[30]
J. F. Ramil and M. M. Lehman. 2001. Defining and applying metrics in the context of continuing software evolution. In Proceedings of the 7th International Symposium on Software Metrics. 199–209. DOI:
[31]
H. Wu, L. Shi, C. Chen, Q. Wang, and B. Boehm. 2016. Maintenance effort estimation for open source software: A systematic literature review. In Proceedings of the IEEE International Conference on Software Maintenance and Evolution (ICSME’16). 32–43. DOI:
[32]
G. Antoniol, R. Fiutem, and L. Cristoforetti. 1998. Using metrics to identify design patterns in Object-Oriented software. In Proceedings of the International Software Metrics Symposium. 23–33. DOI:http://dx.doi.org/10.1109/METRIC.1998.731224
[33]
M. L. Bernardi and G. A. Di Lucca. 2010. Model-driven detection of Design Patterns. In Proceedings of the IEEE International Conference on Software Maintenance (ICSM’10). 1–5. DOI:http://dx.doi.org/10.1109/ICSM.2010.5609740
[34]
S. Dascalu, N. Hao, and N. Debnath. 2005. Design patterns automation with template library. In Proceedings of the 5th IEEE International Symposium on Signal Processing and Information Technology. 699–705. DOI:http://dx.doi.org/10.1109/ISSPIT.2005.1577183
[35]
R. K. Keller, R. Schauer, S. Robitaille, and P. Pagé. 1999. Pattern-based Reverse-engineering of design components. In Proceedings of the 21st International Conference on Software Engineering. 226–235. DOI:
[36]
D. Riehle. 2009. Design pattern density defined. In Proceedings of the 24th ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications. 469–480. DOI:
[37]
P. Bengtsson and J. Bosch. 1999. Architecture level prediction of software maintenance. In Proceedings of the 3rd European Conference on Software Maintenance and Reengineering. 139–147. DOI:
[38]
B. C. d. S. Oliveira, M. Wang, and J. Gibbons. 2008. The visitor pattern as a reusable, generic, type-safe component. In Proceedings of the 23rd ACM SIGPLAN Conference on Object-oriented Programming Systems Languages and Applications. 439–456. DOI:
[39]
J. Palsberg and C. B. Jay. 1998. Essence of the visitor pattern. In Proceedings of the IEEE Computer Society's International Computer Software and Applications Conference (COMPSAC’98 ). 9–15. DOI:http://dx.doi.org/10.1109/CMPSAC.1998.716629
[40]
J. Visser. 2001. Visitor combination and traversal control. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’01). 270–282. DOI:
[41]
A. Alexandrescu. 2001. Modern C++ Design: Generic Programming and Design Patterns Applied. Addison-Wesley Longman Publishing, Boston, MA.
[42]
D. L. Parnas. 1994. Software aging. In Proceedings of the 16th International Conference on Software Engineering. 279–287. Retrieved from http://dl.acm.org/citation.cfm?id=257734.257788.
[43]
A. E. Hassan. 2009. Predicting faults using the complexity of code changes. In Proceedings of the 31st International Conference on Software Engineering. 78–88. DOI:http://dx.doi.org/10.1109/ICSE.2009.5070510
[44]
I. Heitlager, T. Kuipers, and J. Visser. 2007. A practical model for measuring maintainability. In Proceedings of the 6th International Conference on Quality of Information and Communications Technology. 30–39. DOI:http://dx.doi.org/10.1109/QUATIC.2007.7
[45]
A. Aloysius and L. Arockiam. 2013. Maintenance effort prediction model using cognitive complexity metrics. Int. J. Adv. Res. Comput. Sci. Softw. Eng. 3, 11 (Nov. 2013), 1599–1608.
[46]
L. Aversano, L. Cerulo, and M. Di Penta. 2009. Relationship between design patterns defects and crosscutting concern scattering degree: an empirical study. IET Softw. 3, 5 (Oct. 2009), 395–409. DOI:http://dx.doi.org/10.1049/iet-sen.2008.0105
[47]
G. Canfora, L. Cerulo, M. D. Di Penta, and F. Pacilio. 2010. An Exploratory study of factors influencing change entropy. In Proceedings of the International Conference on Program Comprehension. 134–143. DOI:http://dx.doi.org/10.1109/ICPC.2010.32
[48]
J.-P. Ostberg and S. Wagner. 2014. On automatically collectable metrics for software maintainability evaluation. In Proceedings of the Joint Conference of the International Workshop on Software Measurement and the International Conference on Software Process and Product Measurement. 32–37. DOI:
[49]
T. Mens and A. H. Eden. 2005. On the evolution complexity of design patterns. Electr. Notes Theoret. Comput. Sci. 127, 3 (Apr. 2005), 147–163. DOI:http://dx.doi.org/10.1016/j.entcs.2004.08.041
[50]
M. Hills, P. Klint, T. Van Der Storm, and J. Vinju. 2011. A case of visitor versus interpreter pattern. In Proceedings of the 49th International Conference on Objects, Models, Components, Patterns. 228–243. DOI:http://dx.doi.org/10.1007/978-3-642-21952-8_17
[51]
M. M. Lehman, J. F. Ramil, P. D. Wernick, D. E. Perry, and W. M. Turski. 1997. Metrics and laws of software evolution-the nineties view. In Proceedings of the 4th International Software Metrics Symposium. 20–32. DOI:http://dx.doi.org/10.1109/METRIC.1997.637156
[52]
T. Bakota, Peter. Hegedűs, G. Ladányi, P. Körtvélyesi, R. Ferenc, and T. Gyimóthy. 2012. A cost model based on software maintainability. In Proceedings of the 28th IEEE International Conference on Software Maintenance (ICSM’12). 316–325. DOI:http://dx.doi.org/10.1109/ICSM.2012.6405288
[53]
C. K. S. C. H. Yuen. 1988. On analytic maintenance process data at the global and the detailed levels: A case study. In Proceedings of the Conference on Software Maintenance. 248–255. DOI:
[54]
C. R. Cook and A. Roesch. 1994. Real-time software metrics. J. Syst. Softw. 24, 3 (Mar. 1994), 223–237. DOI:
[55]
H. Gall, M. Jazayeri, R. R. Klosch, and G. Trausmuth. 1997. Software evolution observations based on product release history. In Proceedings of the International Conference on Software Maintenance. 160–166. DOI:
[56]
M. M. Lehman, D. E. Perry, and J. F. Ramil. 1998. On evidence supporting the FEAST hypothesis and the laws of software evolution. In Proceedings of the 5th International Software Metrics Symposium. 84–88. DOI:
[57]
M. Jazayeri. 2002. On architectural stability and evolution. In Proceedings of the Conference on Reliable Software Technologies—Ada-Europe. 13–23. DOI:
[58]
E. J. Barry, C. F. Kemerer, and S. A. Slaughter. 2007. How software process automation affects software evolution: A longitudinal empirical analysis. J. Softw. Maint. Evol.: Res. Pract. 19, 1 (Jan. 2007), 1–31. DOI:
[59]
J. H. Hayes, S. C. Patel, and L. Zhao. 2004. A metrics-based software maintenance effort model. In Proceedings of the 8th European Conference on Software Maintenance and Reengineering. 254–258. DOI:http://dx.doi.org/10.1109/CSMR.2004.1281427
[60]
J. H. Hayes and L. Zhao. 2005. Maintainability prediction: A regression analysis of measures of evolving systems.In Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM’05). 601–604. DOI:http://dx.doi.org/10.1109/ICSM.2005.59
[61]
M. A. P. Araújo, V. F. Monteiro, and G. H. Travassos. 2012. Towards a model to support in silico studies of software evolution. In Proceedings of the ACM-IEEE International Symposium on Empirical Software Engineering and Measurement. 281–289. DOI:
[62]
J. J. Dolado. 2001. On the problem of the software cost function. Info. Softw. Technol. 1, 43 (2001), 61–72.
[63]
R. Jabangwe, J. Börstler, D. Šmite, and C. Wohlin. 2015. Empirical evidence on the link between object-oriented measures and external quality attributes: A systematic literature review. Empir. Softw. Eng. 20, 3 (Jun. 2015), 640–693. DOI:
[64]
J. Zhang. 2008. The establishment and application of effort regression equation. In Proceedings of the International Conference on Computer Science and Software Engineering. 11–14. DOI:
[65]
L. C. Briand, W. L. Melo, and J. Wust. 2002. Assessing the applicability of fault-proneness models across object-oriented software projects. IEEE Trans. Softw. Eng. 28, 7 (Jul. 2002), 706–720. DOI:
[66]
C. Karanikolas, G. Dimitroulakos, and K. Masselos. MatLab macro of Modeling Framework implementation for CIBI vs. CVP general problem. Open Research Domain. Retrieved from http://www.chriskaranikolas.gr/CIBIvsCVP/MatLab_CIBIvsCVP.m.
[67]
C. Wohlin, P. Runeson, M. Höst, M. C. Ohlsson, B. Regnell, and A. Wesslén. 2012. Experimentation in Software Engineering. Springer Publishing Company. DOI:
[68]
B. B. N. de Fraça and G. H. Travassos. 2016. Experimentation with dynamic simulation models in software engineering: Planning and reporting guidelines. Empir. Softw. Eng. 21, 3 (2016), 1302–1345. DOI:
[69]
K.-J. Stol, M. Goedicke, and I. Jacobson. 2016. Introduction to the special section—General theories of software engineering: New advances and implications for research. Info. Softw. Technol. 70 (Feb. 2016), 176–180. DOI:
[70]
J. Hannay and M. Jørgensen. 2008. The role of deliberate artificial design elements in software engineering experiments. IEEE Trans. Softw. Eng. 34, 2 (Mar. 2008), 242–259. DOI:
[71]
V. R. Basili and H. D. Rombach. 1988. The TAME project: Towards improvement-oriented software environments. IEEE Trans. Softw. Eng. 14, 6 (Jun. 1988), 758–773. DOI:
[72]
M. L. Berenson, D. M. Levine, and K. C. Timothy. 2012. Basic Business Statistics, Concepts and Applications, 12th ed. Pearson.
[73]
R. Y. Rubinstein and D. P. Kroese. 2016. Simulation and the Monte Carlo Method, 3 ed. Wiley.
[74]
D. C. Montgomery. 2012. Design and Analysis of Experiments, 8th ed. John Wiley & Sons.
[75]
L. Briand, K. E. Emam, and S. Morasca. 1996. On the application of measurement theory in software engineering. Empir. Softw. Eng. 1, 1 (Jan. 1996), 61–88. DOI:
[76]
R. Guderlei, J. Mayer, C. Schneckenburger, and F. Fleischer. 2007. Testing randomized software by means of statistical hypothesis tests. In Proceedings of the 4th International Workshop on Software Quality Assurance (SOQUA’07). 46–54. DOI:
[77]
B. Stopford and S. Counsell. 2008. A framework for the simulation of structural software evolution. ACM Trans. Model. Comput. Simul. 18, 4 (Sep. 2008), 17:1-17:36. DOI:
[78]
M. D. O. Barros, C. M. L. Werner, and G. H. Travassos. 2004. Supporting risks in software project management. J. Syst. Softw. 70, 1–2 (Feb. 2004), 21–35. DOI:
[79]
P. Kelsen. 2004. A simple static model for understanding the dynamic behavior of programs. In Proceedings of the 12th IEEE International Workshop on Program Comprehension. 46–51. DOI:
[80]
M. Müller and D. Pfahl. 2008. Simulation methods. In Guide to Advanced Empirical Software Engineering, F. Shull, J. Singer, and D. I. K. Sjøberg, (Eds.). Springer, London, 117–152. DOI:
[81]
B. P. Zeigler, S. Mittal, and M. K. Traore. 2018. MBSE with/out Simulation: State of the art and way forward. Systems 6, 4, Art. no. 4 (Dec. 2018). DOI:
[82]
R. Meli. 1997. Early and extended function point: A new method for Function Points estimation. Presented at the IFPUG Fall Conference, Scottsdale Arizona, (Sep. 1997). https://www.academia.edu/32699278/Early_and_Extended_Function_Point_a_new_method_for_Function_Points_estimation.
[83]
G. Antoniol, C. Lokan, G. Caldiera, and R. Fiutem. 1999. A Function point-like measure for object-oriented software. Empir. Softw. Eng. 4, 3 (Sep. 1999), 263–287. DOI:
[84]
G. Caldiera, G. Antoniol, R. Fiutem, and C. Lokan. 1998. Definition and experimental evaluation of function points for object-oriented systems. In Proceedings of the 5th International Software Metrics Symposium. Metrics. 167–178. DOI:
[85]
B. W. Boehm et al. 2000. Software Cost Estimation with Cocomo II, 1st ed. Prentice Hall PTR, Upper Saddle River, NJ.
[86]
P. Musilek, W. Pedrycz, Nan Sun, and G. Succi. 2002. On the sensitivity of COCOMO II software cost estimation model. In Proceedings of the 8th IEEE Symposium on Software Metrics. 13–20. DOI:
[87]
B. Boehm, B. Clark, E. Horowitz, C. Westland, R. Madachy, and R. Selby. 1995. Cost models for future software life cycle processes: COCOMO 2.0. Ann. Softw. Eng. 1, 1 (Dec. 1995), 57–94. DOI:
[88]
M. Woolf. 2016. Visualizing how developers rate their own programming skills. Retrieved from http://minimaxir.com/2016/07/stack-overflow/.
[89]
R. Durrett, Probability: Theory and Examples, 4th ed. Cambridge University Press, Cambridge/New York.
[90]
R. N. Bhattacharya and E. C. Waymire. 2009. Stochastic Processes with Applications, Siam Classics. Society for Industrial and Applied Mathematics, Philadelphia, PA.
[91]
Q. K. Ye. 1998. Orthogonal column Latin hypercubes and their application in computer experiments. J. Am. Stat. Assoc. 93, 444 (Dec. 1998), 1430–1439.
[92]
C. Karanikolas, G. Dimitroulakos, and K. Masselos. 2021. Experimental Results of Formal and Simulated Models’ Outcomes for CIBI vs. CVP General Problem. Retrieved from http://www.chriskaranikolas.gr/CIBIvsCVP/Results_CIBI_CVP_7_SimulationState.xls.
[93]
G. Antoniol, G. Casazza, M. Di Penta, and E. Merlo. 2001. Modeling clones evolution through time series. In Proceedings of the IEEE International Conference on Software Maintenance. (ICSM’01). 273–280. DOI:
[94]
B. W. Boehm. 1984. Software engineering economics. IEEE Trans. Softw. Eng. SE-10, 1 (Jan. 1984), 4–21. DOI:
[95]
B. Boehm. 2008. Making a difference in the software century. Computer 41, 3 (Mar. 2008), 32–38. DOI:
[96]
P. Aroonvatanaporn, C. Sinthop, and B. Boehm. 2010. Reducing estimation uncertainty with continuous assessment: Tracking the cone of uncertainty. In Proceedings of the IEEE/ACM International Conference on Automated Software Engineering (ASE’10). 337–340. DOI:
[97]
J. L. Eveleens and C. Verhoef. 2009. Quantifying IT forecast quality. Sci. Comput. Program. 74, 11–12 (2009), 934–988. DOI:
[98]
T. D. Cook and D. T. Campbell. 1979. Quasi-experimentation: Design & Analysis Issues for Field Settings. Houghton Mifflin, Boston.
[99]
D. L. Parnas and B. Curtis. 2009. Point/Counterpoint: Are rigorous experiments realistic for software engineering? IEEE Softw. 26, 6 (Nov. 2009), 56–59. DOI:

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology  Volume 32, Issue 3
May 2023
937 pages
ISSN:1049-331X
EISSN:1557-7392
DOI:10.1145/3594533
  • Editor:
  • Mauro Pezzè
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 April 2023
Online AM: 31 October 2022
Accepted: 12 October 2022
Revised: 13 September 2022
Received: 10 December 2021
Published in TOSEM Volume 32, Issue 3

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Statistical validation
  2. maintainability quality attribute requirement
  3. software evolution
  4. design pattern

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 277
    Total Downloads
  • Downloads (Last 12 months)160
  • Downloads (Last 6 weeks)2
Reflects downloads up to 30 Aug 2024

Other Metrics

Citations

View Options

Get Access

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Full Text

View this article in Full Text.

Full Text

HTML Format

View this article in HTML Format.

HTML Format

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media