Software Architecture Understandability in Object-Oriented Systems

0*, Mamdouh Alenezi**
* College of Computer & Information Sciences, Prince Sultan University, Riyadh, Kingdom of Saudi Arabia.
** Chief Information and Technology Officer (CITO), Prince Sultan University, Riyadh, Kingdom of Saudi Arabia.
Periodicity:October - December'2017
DOI : https://doi.org/10.26634/jse.12.2.14062

Abstract

Software Architecture plays a vital role in the success or failure of software systems. Architecture understandability is a very important factor for managing and improving the system architecture. In this work, understandability of software architectures at the component-level will be explored. This study examines software structural properties of size, coupling, stability, and complexity against the effort spent by a developer to study a component. Number of software design metrics have been explored in the same context in the literature before, however, this work would explore a different combination of design metrics. A case study has been adopted from the literature that used an open source software system, which comprises of seven components. Analyses of Correlation, Collinearity, and Multivariate regression have been performed. The results of the statistical analyses indicate a correlation between most of the metrics used and the required effort needed to understand a component.

Keywords

Software Engineering, Software Architecture, Understandability, Object Oriented, Size, Coupling, Stability, Complexity, Software Design Metrics, Number of Methods, Loose Class Coupling, Tight Class Coupling, McCabe's Cyclomatic Complexity.

How to Cite this Article?

Alshammary, F., and Alenezi, M. (2017). Software Architecture Understandability in Object-Oriented Systems. i-manager’s Journal on Software Engineering, 12(2), 1-14. https://doi.org/10.26634/jse.12.2.14062

References

[1]. Alenezi, M. (2016). Software Architecture Quality Measurement Stability and Understandability. International Journal of Advanced Computer Science and Applications (IJACSA), 7(7), 550-559.
[2]. Almousa, H., & Alenezi, M. (2017). Measuring Software Architecture Stability Evolution in Object-Oriented Open Source Systems. Journal of Engineering and Applied Sciences, 12(2), 353-362.
[3]. Architecture Working Group of the Software Engineering Committee. (2000). Recommended Practice for Architectural Description of Software Intensive Systems. IEEE Standards Department, Piscataway, New Jersey, USA.
[4]. Azim, A., Ghani, A., Koh Tieng, W. G., Muketha, M., & Wen, W. P. (2008). Complexity metrics for measuring the understandability and maintainability of business process models using Goal-Question-Metric. International Journal of Computer Science and Network Security, 8(5), 219-225.
[5]. Bansiya, J., & Davis, C. G. (2002). A hierarchical model for object-oriented design quality assessment. IEEE Transactions on Software Engineering, 28(1), 4-17.
[6]. Bass, L., Clements, P., & Kazman, R. (1998). Software Architecture in Practice. Addisson.
[7]. Chidamber, S. R., & Kemerer, C. F. (1994). A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20(6), 476-493.
[8]. Correlation Analysis - Market Research. (n.d.). Retrieved from http://www.djsresearch.co.uk/glossary/ item/Correlation-Analysis-Market-Research
[9]. Elish, M. O. (2010, June). Exploring the relationships between design metrics and package understandability: A case study. In Program Comprehension (ICPC), 2010 IEEE 18th International Conference on (pp. 144-147). IEEE.
[10]. Garlan, D. (2000, May). Software architecture: a roadmap. In Proceedings of the Conference on the Future of Software Engineering (pp. 91-101). ACM.
[11]. Gomaa, H. (2011). Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures. Cambridge University Press.
[12]. Gupta, V., & Chhabra, J. K. (2009). Package coupling measurement in object-oriented software. Journal of Computer Science and Technology, 24(2), 273-283.
[13]. Hart, J. D. (n.d.). Collinearity of independent variables. Retrieved from http://www.stat.tamu.edu/~ hart/652/collinear.pdf on October 21 2016.
[14]. Hwa, J., Lee, S., & Kwon, Y. R. (2009, December). Hierarchical understandability assessment model for large-scale OO system. In Software Engineering Conference, 2009. APSEC'09. Asia-Pacific (pp. 11-18). IEEE.
[15]. International Organization for Standardization, & International Electrotechnical Commission. (2001). Software Engineering--Product Quality: Quality Model (Vol. 1). ISO/IEC.
[16]. Kaur, S., & Maini, R. (2016). Analysis of Various Software Metrics used to Detect Bad Smells. Int J Eng Sci (IJES), 5(6), 14-20.
[17]. Khaliq, M., Khan, R. A., & Khan, M. H. (2011). Significance of Design Properties in Object Oriented Software Product Quality Assessment. TECHNIA – International Journal of Computing Science and Communication Technologies, 3(2), 622-625.
[18]. Kitchenham, B. A., Pickard, L. M., MacDonell, S. G., & Shepperd, M. J. (2001). What accuracy statistics really measure [software estimation]. In IEE Proceedings - Software (Vol. 148, No. 3, pp. 81-85). doi: 10.1049/ipsen: 20010506
[19]. McCabe, T. J. (1976). A complexity measure. IEEE Transactions on Software Engineering, SE-2(4), 308-320.
[20]. Moody, D. L. (1998, November). Metrics for evaluating the quality of entity relationship models. In International Conference on Conceptual Modeling (pp. 211-225). Springer, Berlin, Heidelberg.
[21]. Niemeyer, P., & Knudsen, J. (2005). Learning Java. O'Reilly Media, Inc.
[22]. Oreizy, P., Gorlick, M. M., Taylor, R. N., Heimhigner, D., Johnson, G., Medvidovic, N., ... & Wolf, A. L. (1999). An architecture-based approach to self-adaptive software. IEEE Intelligent Systems and their Applications, 14(3), 54- 62.
[23]. Refaeilzadeh, P., Tang, L., & Liu, H. (2009). Crossvalidation. In Encyclopedia of Database Systems (pp. 532-538). Springer US.
[24]. Rosenberg, L. H., & Hyatt, L. E. (1997). Software quality metrics for object-oriented environments. Crosstalk Journal, 10(4), 1-6.
[25]. Sharma, H., & Chug, A. (2015, September). Dynamic metrics are superior than static metrics in maintainability prediction: An empirical case study. In Reliability, Infocom Technologies and Optimization (ICRITO) (Trends and Future Directions), 2015 4th International Conference on (pp. 1-6). IEEE.
[26]. Shaw, M. (1990). Toward higher-level abstractions for software systems. Data & Knowledge Engineering, 5(2), 119-128.
[27]. Statistical software and data analysis add-on for Excel | XLSTAT. (n.d.). Retrieved October 21, 2016, from https://www.xlstat.com/en/
[28]. Stevanetic, S., & Zdun, U. (2014, May). Exploring the relationships between the understandability of components in architectural component models and th component level metrics. In Proceedings of the 18 International Conference on Evaluation and Assessment in Software Engineering (p. 32). ACM.
[29]. Stevanetic, S., & Zdun, U. (2014, October). Empirical Study on the Effect of a Software Architecture Representation's Abstraction Level on the Architecture- Level Software Understanding. In Quality Software (QSIC), 2014 14th International Conference on (pp. 359-364). IEEE.
[30]. Stevanetic, S., & Zdun, U. (2015, April). Software metrics for measuring the understandability of architectural structures: a systematic mapping study. In Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering (p. 21). ACM.
[31]. Stevanetic, S., & Zdun, U. (2016, April). Exploring the Understandability of Components in Architectural Component Models Using Component Level Metrics and Participants' Experience. In Component-Based Software Engineering (CBSE), 2016 19th International ACM SIGSOFT Symposium on (pp. 1-6). IEEE.
[32]. Stevanetic, S., Javed, M. A., & Zdun, U. (2015, September). The impact of hierarchies on the architecture -level software understandability-a controlled experiment. In Sof tware Engineering Conference (ASWEC), 2015 24th Australasian (pp. 98-107). IEEE.
[33]. Stevens, W. P., Myers, G. J., & Constantine, L. L. (1974). Structured design. IBM Systems Journal, 13(2), 115-139.
[34]. Warzocha, K. (2012, May 14). Source Code Metrics - NetBeans Plugin detail. Retrieved October 21, 2016, from http://plugins.netbeans.org/plugin/42970/sourcecodem etrics
[35]. Xu, Y., & Nicolaescu, A. (2015). Evolution of Object Oriented Software Coupling Metrics. Full-scale Software Engineering, 79.
[36]. Zar, J. H. (1984). Comparing simple linear regression equations. Biostatistical Analysis, 2, 292-305.

Purchase Instant Access

Single Article

North Americas,UK,
Middle East,Europe
India Rest of world
USD EUR INR USD-ROW
Pdf 35 35 200 20
Online 35 35 200 15
Pdf & Online 35 35 400 25

If you have access to this article please login to view the article or kindly login to purchase the article
Options for accessing this content:
  • If you would like institutional access to this content, please recommend the title to your librarian.
    Library Recommendation Form
  • If you already have i-manager's user account: Login above and proceed to purchase the article.
  • New Users: Please register, then proceed to purchase the article.