Skip to main content
Log in

Software structure evaluation based on the interaction and encapsulation of methods

  • Research Paper
  • Progress of Projects Supported by NSFC
  • Published:
Science China Information Sciences Aims and scope Submit manuscript

Abstract

Software structure is the most important factor affecting the quality of a program. The evaluation of software structure is a foundational technique for software development. However, the traditional evaluation criteria, such as “high cohesion and low coupling”, are no longer appropriate for the new web applications, which are designed with a hierarchical framework. A novel approach is proposed in this paper to evaluate software quality based on the interaction and encapsulation of methods. In particular, two criteria for high quality software, the functional and hierarchical structure, are proposed to support widely used web applications. The cohesion and coupling and layer matching ratios between methods within a software package are calculated to determine whether the package is well implemented in terms of functional or hierarchical structure. This approach enables us to quantify the quality of a software system according to the structural types of its packages. Experiments were carried out on 18 versions of Struts and six open-source software packages. Our evaluation concurs with the intuition that minor upgrades, aimed at fixing bugs and adding minor functionality quickly, reduce software quality, whereas major upgrades, which normally clean up messy code and re-construct the software, improve software quality.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Chahal K K, Singh H. Metrics to study symptoms of bad software designs. ACM SIGSOFT Softw Eng Notes, 2009, 34: 1–4

    Article  Google Scholar 

  2. IEEE Computer Society. IEEE Std 1016-2009, IEEE Standard for Information Technology-Systems Design-Software Design Descriptions. 2009

  3. ISO/IEC. ISO/IEC 14598, Information technology — Software product evaluation. 1999

  4. Standardization Administration Of China. GB/T 16260.1-2006, Software engineering Product quality Part 1: Quality model. 2006

  5. McCabe T J. A complexity measure. IEEE Trans Softw Eng, 1976, 4: 308–320

    Article  MathSciNet  Google Scholar 

  6. Bobbio A, Garg S, Gribaudo M, et al. Compositional fluid stochastic Petri net model for operational software system performance. In: IEEE International Conference on Software Reliability Engineering, Seattle, 2008. 1–6

  7. Yang N H, Yu H Q, Sun H, et al. Modeling UML sequence diagrams using extended petri nets. In: International Conference on Information Science and Applications (ICISA), Seoul, 2010. 1–8

  8. Kalaji A, Hierons R M, Swift S. A search-based approach for automatic test generation from extended finite state machine (EFSM). In: Testing: Academic and Industrial Conference-Practice and Research Techniques, Windsor, 2009. 131–132

  9. Valverde S, Cancho R F, Sol R V. Scale-free networks from optimal design. Euro Phys Lett (EPL), 2002, 60: 512–517

    Article  Google Scholar 

  10. Valverde S, Solé R V. Hierarchical Small Worlds in Software Architecture. Working Paper of Santa Fe Institute SFI/03-07-44. 2003

  11. Myers C R. Software systems as complex networks: Structure, function, and evolve ability of software collaboration graphs. Phys Rev E, 2003, 68: 46116

    Article  Google Scholar 

  12. Ma Y, He K, Li B, et al. A hybrid set of complexity metrics for large-scale object-oriented software systems. J Comput Sci Technol, 2010, 25: 1184–1201

    Article  Google Scholar 

  13. Stahl T, Voelter M, Czarnecki K. Model-Driven Software Development: Technology, Engineering, Management. New York: John Wiley & Sons, 2006

    Google Scholar 

  14. Yourdon E, Constantine L L. Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design. Upper Saddle River: Prentice-Hall, Inc, 1979. 473

    MATH  Google Scholar 

  15. Shen C X, Zhang H G, Wang H M, et al. Research on trusted computing and its development. Sci China Inf Sci, 2010, 53: 405–433

    Article  Google Scholar 

  16. Praditwong K, Harman M, Yao X. Software module clustering as a multi-objective search problem. IEEE Trans Softw Eng, 2011, 37: 264–282

    Article  Google Scholar 

  17. Yu L, Schach S R, Chen K, et al. Categorization of common coupling and its application to the maintainability of the Linux kernel. IEEE Trans Softw Eng, 2004, 30: 694–706

    Article  Google Scholar 

  18. Marquis G P. Application of traditional system design techniques to web site design. Inf Softw Technol, 2002, 44: 507–512

    Article  Google Scholar 

  19. Gupta V, Chhabra J. Package level cohesion measurement in object-oriented software. J Brazil Comput Soc, 2012, 18: 251–266

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ting Liu.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Zheng, Q., Ou, Z., Liu, T. et al. Software structure evaluation based on the interaction and encapsulation of methods. Sci. China Inf. Sci. 55, 2816–2825 (2012). https://doi.org/10.1007/s11432-012-4542-4

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11432-012-4542-4

Keywords

Navigation