[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
research-article

Early Evaluation of Implementation Alternatives of Composite Data Structures Toward Maintainability

Published: 05 October 2017 Publication History

Abstract

Selecting between different design options is a crucial decision for object-oriented software developers that affects code quality characteristics. Conventionally developers use their experience to make such decisions, which leads to suboptimal results regarding code quality. In this article, a formal model for providing early estimates of quality metrics of object-oriented software implementation alternatives is proposed. The model supports software developers in making fast decisions in a systematic way early during the design phase to achieve improved code characteristics. The approach employs a comparison model related to the application of the Visitor design pattern and inheritance-based implementation on structures following the Composite design pattern. The model captures maintainability as a metric of software quality and provides precise assessments of the quality of each implementation alternative. Furthermore, the model introduces the structural maintenance cost metric based on which the progressive analysis of the maintenance process is introduced. The proposed approach has been applied to several test cases for different relevant quality metrics. The results prove that the proposed model delivers accurate estimations. Thus, the proposed methodology can be used for comparing different implementation alternatives against various measures and quality factors before code development, leading to reduced effort and cost for software maintenance.

References

[1]
Ian Sommerville. 2010. Software Engineering (9th ed.). Addison-Wesley, Boston.
[2]
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Pearson Education.
[3]
Roger Pressman. 2010. Software Engineering: A Practitioner's Approach (7th ed.). McGraw-Hill, New York.
[4]
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. ISO, March. Retrieved from http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=35733.
[5]
ISO/IEC/IEEE 24765. 2010. ISO/IEC/IEEE 24765:2010 - Systems and Software Engineering -- Vocabulary. ISO/IEC/IEEE, December, 1--418.
[6]
Robert L. Glass. 2002. Software Engineering: Facts and Fallacies. Addison-Wesley Longman Publishing Co., Boston.
[7]
Mark Hills, Paul Klint, Tijs Van Der Storm, and Jurgen Vinju. 2011. A case of visitor versus interpreter pattern. In Proceedings of the 49th International Conference on Objects, Models, Components, Patterns (TOOLS’11). Springer-Verlag, Berlin, 228--243.
[8]
Tom Mens and Amnon H. Eden. 2005. On the evolution complexity of design patterns. Electronic Notes in Theoretical Computer Science 127, 3, 147--163.
[9]
Mehwish Riaz, Emilia Mendes, and Ewan Tempero. 2009. A systematic review of software maintainability prediction and metrics. In Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement (ESEM’09). IEEE Computer Society, Washington, DC, 367--377.
[10]
Tibor Bakota, Peter Hegedűs, Gergely Ladányi, Peter Körtvélyesi, Rudolf Ferenc, and Tibor Gyimóthy. 2012. A cost model based on software maintainability. In 2012 28th IEEE International Conference on Software Maintenance (ICSM'12), 316--325.
[11]
Wei Liu, Mai Tong, Xiaoyun Wu, and George Lee. 2003. Object-oriented modeling of structural analysis and design with application to damping device configuration. Journal of Computing in Civil Engineering 17, 2, 113--122.
[12]
Gregory Fenves, Frank McKena, Michael Scott, and Yoshikazu Takahashi. 2004. An object-oriented software environment for collaborative network simulation. In Proceedings of the 13th World Conference on Earthquake Engineering. Vancouver, Canada.
[13]
Robert Ian Mackie. 2002. Object-Oriented Methods and Finite Element Analysis. Saxe-Coburg Publications, Kippen, Stirling, UK.
[14]
Norman Neff. 2004. Attribute based compiler implemented using visitor pattern. In Proceedings of the 35th SIGCSE Technical Symposium on Computer Science Education (SIGCSE’04). ACM, New York, 130--134.
[15]
Peter Heng and Ian Mackie. 2009. Using design patterns in object-oriented finite element programming. Computers 8 Structures, Computational Structures Technology 87, 15--16, 952--961.
[16]
Bruno C. d. S. Oliveira, Meng Wang, and Jeremy 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 (OOPSLA’08). ACM, New York, 439--456.
[17]
Sergiu Dascalu, Ning Hao, and Narayan Debnath. 2005. Design patterns automation with template library. In Proceedings of the 5th IEEE International Symposium on Signal Processing and Information Technology. 699--705.
[18]
Mario Luca Bernardi and Giuseppe Antonio Di Lucca. 2010. Model-driven detection of design patterns. In 2010 IEEE International Conference on Software Maintenance (ICSM’10). 1--5.
[19]
Dirk Riehle. 2009. Design pattern density defined. In Proceedings of the 24th ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA’09). ACM, New York, 469--480.
[20]
Giuliano Antoniol, Roberto Fiutem, and Luca Cristoforetti. 1998. Using metrics to identify design patterns in object-oriented software. In International Software Metrics Symposium, Proceedings, 23--33.
[21]
Shyam R. Chidamber and Chris F. Kemerer. 1994. A metrics suite for object oriented design. IEEE Transactions on Software Engineering 20, 6, 476--493.
[22]
Norman E. Fenton and Shari Lawrence Pfleeger. 1998. Software Metrics: A Rigorous and Practical Approach (2nd ed.). PWS Publishing Co., Boston.
[23]
Rudolf K. Keller, Reinhard Schauer, Sébastien Robitaille, and Patrick Pagé. 1999. Pattern-based reverse-engineering of design components. In Proceedings of the 21st International Conference on Software Engineering (ICSE’99). ACM, New York, 226--235.
[24]
Kannan P. Srinivasan and Nisha T. Devi. 2014. A complete and comprehensive metrics suite for object-oriented design quality assessment. International Journal of Software Engineering and Its Applications 8, 2, 173--188.
[25]
Lionel C. Briand, John Daly, Victor Porter, and Juergen Wuest. 1998. Comprehensive empirical validation of design measures for object-oriented systems. In International Software Metrics Symposium, Proceedings, 246--257.
[26]
Lionel C. Briand, John W. Daly, and Jürgen K. Wüst. 1998. A unified framework for cohesion measurement in object-oriented systems. Empirical Software Engineering 3, 1, 65--117.
[27]
Lionel C. Briand, John W. Daly, and Jürgen K. Wüst. 1999. A unified framework for coupling measurement in object-oriented systems. IEEE Transactions on Software Engineering 25, 1, 91--121.
[28]
Lionel C. Briand, Jürgen K. Wüst, Stefan V. Ikonomovski, and Hakim Lounis. 1999. Investigating quality factors in object-oriented designs: An industrial case study. In Proceedings - International Conference on Software Engineering (ICSE'99), 345--354.
[29]
Victor R. Basili, Lionel C. Briand, and Walcélio L. Melo. 1996. A validation of object-oriented design metrics as quality indicators. IEEE Transactions on Software Engineering 22, 10, 751--761.
[30]
Wei Li and Sallie Henry. 1993. Object-oriented metrics that predict maintainability. Journal of Systems and Software, Object-Oriented Software 23, 2, 111--122.
[31]
Rajendra K. Bandi, Vijay K. Vaishnavi, and Daniel E. Turk. 2003. Predicting maintenance performance using object-oriented design complexity metrics. IEEE Transactions on Software Engineering. 29, 1, 77--87.
[32]
James M. Bieman, Dolly Jain, and Helen J. Yang. 2001. OO design patterns, design structure, and program changes: An industrial case study. In IEEE International Conference on Software Maintenance, 2001, Proceedings. 580--589.
[33]
Jeremy Gibbons. 2006. Design patterns as higher-order datatype-generic programs. In Proceedings of the 2006 ACM SIGPLAN Workshop on Generic Programming (WGP’06). ACM, New York, 1--12.
[34]
Lov Kumar, Aneesh Krishna, and Santanu Ku Rath. 2016. The impact of feature selection on maintainability prediction of service-oriented applications. Service Oriented Computing and Applications 11, 2, 137--161.
[35]
Tibor Bakota, Peter Hegedűs, Peter Körtvélyesi, Rudolf Ferenc, and Tibor Gyimóthy. 2011. A probabilistic software quality model. In 2011 27th IEEE International Conference on Software Maintenance (ICSM’11). 243--252.
[36]
Ilja Heitlager, Tobias Kuipers, and Joost Visser. 2007. A practical model for measuring maintainability. In Proceedings of the 6th International Conference on Quality of Information and Communications Technology (QUATIC’07). IEEE Computer Society, Washington, DC, 30--39.
[37]
Tom Arbuckle. 2011. Studying software evolution using artefacts’ shared information content. Science of Computer Programming 76, 12, 1078--1097.
[38]
Sanjay Kumar Dubey and Ajay Rana. 2011. Assessment of maintainability metrics for object-oriented software system. SIGSOFT Software Engineering Notes 36, 5, 1--7.
[39]
Walter Bartosz and Martenka Pawel. 2010. Hierarchical model for evaluating software design quality. E-Informatica Software Engineering Journal 4, 1, 21--30.
[40]
Jane Huffman Hayes and Liming Zhao. 2005. Maintainability prediction: A regression analysis of measures of evolving systems. In 21st IEEE International Conference on Software Maintenance (ICSM’05). 601--604.
[41]
Jane Huffman Hayes, Sandip C. Patel, and Liming Zhao. 2004. A metrics-based software maintenance effort model. In Proceedings of the 8th European Conference on Software Maintenance and Reengineering, 2004 (CSMR’04). 254--258.
[42]
Yunsik Ahn, Jungseok Suh, Seungryeol Kim, and Hyunsoo Kim. 2003. The software maintenance project effort estimation model based on function points. Journal of Software Maintenance 15, 2, 71--85.
[43]
Rikard Land. 2002. Measurements of software maintainability. In Proceedings of ARTES Graduate Student Conference (Neither Reviewed nor Officially Published) (ARTES’02).
[44]
Meir M. Lehman and Juan F. Ramil. 2002. Software evolution and software evolution processes. Annals of Software Engineering 14, 1--4, 275--309.
[45]
Juan Carlos Granja-Alvarez, and Manuel José Barranco-García. 1997. A method for estimating maintenance cost in a software project: A case study. Journal of Software Maintenance 9, 3, 161--175.
[46]
Philip Wadler. 1998. The expression problem. Posted on the java genericity mailing list.
[47]
Matthias Zenger and Martin Odersky. 2005. Independently extensible solutions to the expression problem. In Workshop on Foundations of Object-Oriented Languages (FOOL’05).
[48]
Shriram Krishnamurthi, Matthias Felleisen, and Daniel P. Friedman. 1998. Synthesizing object-oriented and functional design to promote re-use. In Proceedings of the 12th European Conference on Object-Oriented Programming (ECCOP’98). Springer-Verlag, London, 91--113.
[49]
Bruno C. d. S. Oliveira and William R. Cook. 2012. Extensibility for the masses: Practical extensibility with object algebras. In Proceedings of the 26th European Conference on Object-Oriented Programming (ECOOP’12). Springer-Verlag, Berlin, 2--27.
[50]
Mads Torgersen. 2004. The expression problem revisited—four new solutions using generics. In Proceedings of the 18th European Conference on Object-Oriented Programming. Springer-Verlag, 123--146.
[51]
Bruno C. d. S. Oliveira. 2009. Modular visitor components. In Proceedings of the 23rd European Conference on—Object-Oriented Programming (ECOOP’09). Springer-Verlag, Berlin, 269--293.
[52]
Yanlin Wang and Bruno C. d. S. Oliveira. 2016. The expression problem, trivially! In Proceedings of the 15th International Conference on Modularity (MODULARITY’16). ACM, New York, 37--41.
[53]
Terence Parr. 2013. The Definitive ANTLR 4 Reference (2nd ed.). Pragmatic Bookshelf, Dallas.
[54]
Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman. 2006. Compilers: Principles, Techniques, and Tools (2nd ed.). Addison Wesley, Boston.
[55]
Doug Baldwin. 2003. A compiler for teaching about compilers. In Proceedings of the 34th SIGCSE Technical Symposium on Computer Science Education (SIGCSE'03), 220--223.
[56]
Norman Neff. 1999. OO design in compiling an oo language. SIGCSE Bulletin (Association for Computing Machinery, Special Interest Group on Computer Science Education) 31, 1, 326--330.
[57]
Keith Cooper and Linda Torczon. 2011. Engineering a Compiler (2nd ed.). Morgan Kaufmann, Boston.
[58]
Herbert Schildt. 2002. C++: The Complete Reference (4th ed.). McGraw-Hill Osborne Media, New York.
[59]
Bruno Cesar dos Santos Oliveira. 2007. Genericity, extensibility and type-safety in the VISITOR pattern. PhD Thesis, University of Oxford. Retrieved from http://www.cs.ox.ac.uk/people/bruno.oliveira/Thesis.pdf.
[60]
Jens Palsberg and Jay C. Barry. 1998. Essence of the visitor pattern. In Proceedings of the IEEE Computer Society's International Computer Software and Applications Conference (COMPSAC'98), 9--15.
[61]
Joost Visser. 2001. Visitor combination and traversal control. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’01). ACM, New York, 36, 11, 270--282.
[62]
Vijay S. Bidve and P. Sarasu. 2016. Tool for measuring coupling in object-oriented java software. International Journal of Engineering and Technology 8, 2, 812--820.
[63]
A. Aloysius and L. Arockiam. 2013. Maintenance effort prediction model using cognitive complexity metrics. International Journal of Advanced Research in Computer Science and Software Engineering 3, 11, 1599--1608.
[64]
Ramanath Subramanyam and M. S. Krishnan. 2003. Empirical analysis of CK metrics for object-oriented design complexity: Implications for software defects. IEEE Transactions on Software Engineering 29, 4, 297--310.
[65]
Lerina Aversano, Luigi Cerulo, and Massimiliano Di Penta. 2009. Relationship between design patterns defects and crosscutting concern scattering degree: An empirical study. IET Software 3, 5, 395--409.
[66]
Gerardo Canfora, Luigi Cerulo, Massimiliano Di Penta, and Francesco Pacilio. 2010. An exploratory study of factors influencing change entropy. In International Conference on Program Comprehension. IEEE Computer Society, Los Alamitos, CA, 134--143.
[67]
Ivar Jacobson. 1992. Object Oriented Software Engineering: A Use Case Driven Approach. Addison-Wesley Professional, New York.
[68]
Ahmed E. Hassan. 2009. Predicting faults using the complexity of code changes. In Proceedings of the 31st International Conference on Software Engineering (ICSE’09). IEEE Computer Society, 78--88.
[69]
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. ISO, June. Retrieved from http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=35747.
[70]
A. Aloysius and L. Arockiam. 2012. Coupling complexity metric: A cognitive approach. International Journal of Information Technology and Computer Science 4, 9, 29--35.
[71]
S. W. A. Rizvi and Raees A. Khan. 2010. Maintainability estimation model for object-oriented software in design phase (MEMOOD). Journal of Computing 2, 4. Retrieved from http://arxiv.org/abs/1004.4447.
[72]
Melis Dagpinar and Jens H. Jahnke. 2003. Predicting maintainability with object-oriented metrics-an empirical comparison. In Proceedings of the 10th Working Conference on Reverse Engineering (WCRE’03). 155--164.
[73]
Jagdish Bansiya and Carl G. Davis. 2002. A hierarchical model for object-oriented design quality assessment. IEEE Transactions on Software Engineering 28, 1, 4--17.
[74]
Fabrizio Fioravanti and Paolo Nesi. 2001. Estimation and prediction metrics for adaptive maintenance effort of object-oriented systems. IEEE Transactions on Software Engineering 27, 12, 1062--1084.
[75]
Wei Li. 1998. Another metric suite for object-oriented programming. Journal of Systems and Software 44, 2, 155--162.
[76]
Mark Lorenz and Jeff Kidd. 1994. Object-Oriented Software Metrics. Prentice Hall, Englewood Cliffs, NJ.
[77]
N. Kayarvizhy, S. Kanmani, and Rhymend V. Uthariaraj. 2013. High precision cohesion metric. WSEAS Transactions on Information Science and Applications 10, 3, 79--89.
[78]
Albert L. Baker, James M. Bieman, Norman Fenton, David A. Gustafson, Austin Melton, and Robin Whitty. 1990. A philosophy for software measurement. Journal of System and Software 12, 3, 277--281.
[79]
Norman Fenton and Austin Melton. 1990. Deriving structurally based software measures. Journal of System and Software 12, 3, 177--187.
[80]
Austin C. Melton, David A. Gustafson, James M. Bieman, and Albert L. Baker. 1990. A mathematical perspective for software measures research. Software Engineering Journal 5, 5, 246--254.
[81]
Jeff Offutt, Aynur Abdurazik, and Stephen R. Schach. 2008. Quantitatively measuring object-oriented couplings. Software Quality Journal 16, 4, 489--512.
[82]
Don Coleman, Dan Ash, Bruce Lowther, and Paul Oman. 1994. Using metrics to evaluate software system maintainability. Computer 27, 8, 44--49.
[83]
Paul Oman and Jack Hagemeister. 1994. Construction and testing of polynomials predicting software maintainability. Journal of Systems and Software 24, 3, 251--266.
[84]
Amnon H. Eden and Tom Mens. 2006. Measuring software flexibility. IEE Proceedings -- Software 153, 3, 113.
[85]
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. 2009. Introduction to Algorithms (3rd ed.). MIT Press, Cambridge, MA.
[86]
Edwin T. Jaynes. 2003. Probability Theory: The Logic of Science, edited by Larry G. Bretthorst. Cambridge University Press, Cambridge, UK ; New York, NY.
[87]
Lerina Aversano, Gerardo Canfora, Luigi Cerulo, Concettina Del Grosso, and Massimiliano Di Penta. 2007. An empirical study on the evolution of design patterns. In Proceedings of the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC-FSE’07). ACM, New York, 385--394.
[88]
Meir M. Lehman, Juan 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. IEEE Computer Society, 20--32.
[89]
Jeremy Gibbons and Bruno C. d. S. Oliveira. 2009. The essence of the iterator pattern. Journal of Functional Programming 19, 3--4, 377--402.
[90]
Robert E. Filman, Tzilla Elrad, Siobhán Clarke, and Mehmet Aksit. 2004. Aspect-Oriented Software Development. Addison-Wesley Professional, Harlow.
[91]
Tzilla Elrad, Robert E. Filman, and Atef Bader. 2001. Aspect-oriented programming: Introduction. Communications of the ACM 44, 10, 29--32.
[92]
Luigi Lavazza and Alberto Agostini. 2005. Automated measurement of UML models: An open toolset approach. Journal of Object Technology 4, 115--134.
[93]
Thomas VanDrunen and Jens Palsberg. 2004. Visitor-oriented programming. In Proceedings of the 11th ACM SIGPLAN International Workshop on Foundations of Object-Oriented Languages (FOOL’04).
[94]
Markus Völter. 2003. A catalog of patterns for program generation. In Proceedings of the 8th European Conference on Pattern Languages of Programms (EuroPLoP’03), 285--320. UVK - Universitätsverlag Konstanz.
[95]
Uwe Zdun and Mark Strembeck. 2009. Reusable architectural decisions for DSL design: Foundational decisions in DSL development. In Proceedings of 14th Annual European Conference on Pattern Languages of Programming (EuroPLoP’09). Irsee, Germany.

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology  Volume 26, Issue 2
April 2017
136 pages
ISSN:1049-331X
EISSN:1557-7392
DOI:10.1145/3129287
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 05 October 2017
Accepted: 01 August 2017
Revised: 01 July 2017
Received: 01 August 2016
Published in TOSEM Volume 26, Issue 2

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Composition
  2. Visitor

Qualifiers

  • Research-article
  • Research
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 315
    Total Downloads
  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)2
Reflects downloads up to 13 Dec 2024

Other Metrics

Citations

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media