International Journal of Computer
& Organization Trends

Research Article | Open Access | Download PDF

Volume 12 | Issue 1 | Year 2022 | Article Id. IJCOT-V12I1P302 | DOI : https://doi.org/10.14445/22492593/IJCOT-V12I1P302

On Software Modular Architecture: Concepts, Metrics and Trends


Software, Software Architecture, Modular Architecture, Modularity Metrics.

Received Revised Accepted
10 Feb 2022 22 Mar 2022 26 Mar 2022

Citation :

Software, Software Architecture, Modular Architecture, Modularity Metrics., "On Software Modular Architecture: Concepts, Metrics and Trends," International Journal of Computer & Organization Trends (IJCOT), vol. 12, no. 1, pp. 3-10, 2022. Crossref, https://doi.org/10.14445/22492593/IJCOT-V12I1P302

Abstract

The emergence of digital computers at the tail end of the last century allowed for the evolution of computer languages from low-level languages of the 1940s to the object-oriented, scripting high-level languages of today. This evolution has, in effect, seen the size and complexity of computer programs increase by a large factor. The software industry has, in response, developed different styles for designing and developing these sophisticated computer programs. While the different styles have advantages and disadvantages and different application domains, modular architecture has stood out as an overarching architecture for designing complicated and enormous software systems of today's world. In this paper, we examine how modularity applies to software architecture design, the concepts of modularity, the metrics of modularity, and current trends in software modularization. We advance the position that modularity will keep influencing software design for the foreseeable future due to the flexibility and the several advantages to the discipline of software design.


Keywords

Software, Software Architecture, Modular Architecture, Modularity Metrics.

References

[1] (2021). Britannica T, Editors of Encyclopaedia, Software. Encyclopedia Britannica. [Online]. Available: https://www.britannica.com/technology/software

[2] Garlan D, & Shaw M, An Introduction to Software Architecture. In Advances in Software Engineering and Knowledge Engineering. (1993) 1-39.

[3] (2010). Chapter 3: Architectural Patterns and Styles. [Online]. Available:https://docs.microsoft.com/en-us/previous-versions/msp-n-p/ee658117(v=pandp.10)?redirectedfrom=MSDN

[4] (2014). Rengaiah P, On Modular Architectures. Medium. [Online]. Available:https://medium.com/on-software-architecture/on-modular-architectures-53ec61f88ff4.

[5] (2021). Accelerator (software) - Wikipedia. [Online]. Available: https://en.wikipedia.org/wiki/Accelerator_(software)

[6] Mehta M. R, Lee S, & Shah J. R, Service-Oriented Architecture: Concepts and Implementation. In Proceedings of the Information Systems Education Conference (ISECON). 23(2335) (2006) 1.

[7] Tutisani T, Effective Software Development for Enterprise Beyond DDD, Software Architecture, and XP 1st edition: Leanpub. (2020).

[8] Narduzzo A, & Rossi A, Modular Design and the Development of Complex Artefacts: Lessons from Free/Open Source Software, Quaderno, DISA. 78 (2003).

[9] Knoernschild K, Java Application Architecture: Modularity Patterns with Examples Using OSGi. Prentice-Hall Press. (2012).

[10] (2021). Tutorialspoint, Software Architecture & Design Tutorial - Tutorialspoint. [Online] Available: https://www.tutorialspoint.com/software_architecture_design/index.htm

[11] Giakoumidis N, Bak J. U, Gómez J. V, Llenga A, & Mavridis N, Pilot-Scale Development of a UAV-UGV Hybrid with Air-Based UGV Path Planning. In 2012 10th International Conference on Frontiers of Information Technology IEEE. (2012) 204-208.

[12] Schilling M. A, Toward a General Modular Systems Theory and its Application to Interfirm Product Modularity, Academy of Management Review. 25(2) (2000) 312-334.

[13] (2020). Mustafic A, Modular Application Architecture. [Online]. Available: Goetas.com https://www.goetas.com/modular-application-architecture-intro

[14] (2021). Package Development - Laravel - The PHP Framework for Web Artisans. [Online]. Available: https://laravel.com/docs/8.x/packages

[15] Soothram S, Efficient Techniques for Partitioning Software Development Tasks. (2010).

[16] (2021). Kibabii, Kibabii University. [Online]. Available: https://kibu.ac.ke/kibu-automation-dream-accomplished-in-2019-2020-academic-year.

[17] (2021). Moodle, Moodle Plugins Directory. [Online]. Available: Moodle.org https://moodle.org/plugins

[18] (2021). OpenMRS I, OpenMRS. [Online]. Available: Openmrs.org https://openmrs.org

[19] (2020). Brinkman S, & Delamore D, The 5 Essential Elements of Modular Software Design, Medium. [Online]. Available: https://shanebdavis.medium.com/the-5-essential-elements-of-modular-software-design-6b333918e543.

[20] Nesnas I. A. D, Simmons R, Gaines D, Kunz C, Diaz-Calderon A, Estlin T, Madison R, Guineau J, McHenry M, Shu I.-H, & Apfelbaum D, CLARAty: Challenges and Steps toward Reusable Robotic Software, International Journal of Advanced Robotic Systems. (2006). https://doi.org/10.5772/5766

[21] Sant’Anna C, Figueiredo E, Garcia A, & Lucena C. J, On the Modularity of Software Architectures: A Concern-Driven Measurement Framework. In European Conference on Software Architecture, Springer, Berlin, Heidelberg. (2007) 207-224.

[22] Santos D, de Resende A. M. P, Lima E. C, & Freire A. P, Software Instability Analysis Based on Afferent and Efferent Coupling Measures. J. Softw., 12(1) (2017).

[23] Budd T, Introduction to Object-Oriented Programming, Pearson Education India. (2008).

[24] Page-Jones M, The Practical Guide to Structured Systems Design. Yourdon Press. (1988).

[25] (2021). Coupling (computer programming) - Wikipedia. [Online]. Available: https://en.wikipedia.org/wiki/Coupling_(computer_programming)

[26] Northrop L, Trends and New Directions in Software Architecture, Carnegie-Mellon Univ Pittsburgh PA Software Engineering Inst. (2014)

[27] Woods E, Software Architecture in a Changing World, IEEE Software. 33(6) (2016) 94-97.

[28] Garlan D, Software Architecture: A Travelogue, In Future of Software Engineering Proceedings. (2014) 29-39.