Facilitating Software Reuse Through Design Characteristics in Object-Oriented Paradigm

Authors

DOI:

https://doi.org/10.26713/cma.v13i2.2033

Keywords:

Software reuse, Object-oriented, Design characteristics, Modularity, Cohesion, Coupling, Information hiding

Abstract

Software are used to increases quality as well as productivity that could be associated with lower costs. Implementing software with capability for reuse is difficult without sufficient support. This paper includes tutorial represents four important design characteristics in object-oriented paradigm for facilitating the production of more reusable software. It reviews the concepts of modularity, cohesion, coupling and information hiding and provides a discussion about their effect on software reuse. Object-oriented approach is having wide attention both in research environments and in industry. This tutorial is prepared for newbie developers of reusable software assets and for everyone else interested in the subject.

Downloads

Download data is not yet available.

References

N. Barnes, D.P. Hale and J.E. Hale, The cohesion–based requirements set model for improved information system maintainability, Proceedings of the 2006 Southern Association for Information Systems Conference (2006).

P.K. Bhatia and R. Mann, An approach to measure software reusability of OO design, in: Proceedings of 2nd National Conference on Challenges & Opportunities in Information Technology (COIT-2008), RIMT-IET, Mandi Gobindgarh, March 29, 2008, pp. 26 – 30.

B.D. Bois, S. Demeyer and J. Verelst, Refactoring - improving coupling and cohesion of existing code, 11th Working Conference on Reverse Engineering, 2004, pp. 144 – 151, DOI: 10.1109/WCRE.2004.33.

N. Budhija and S.P. Ahuja, Review of software reusability, in: International Conference on Computer Science and Information Technology (ICCSIT’2011), Pattaya, Thailand (December 2011).

S.M. Chandrika, E.S. Babu and N. Srikanth, Conceptual cohesion of classes in object oriented systems, International Journal of Computer Science and Telecommunications 2(4) (2011), 38 – 44, URL: https://www.ijcst.org/Volume2/Issue4/p8_2_4.pdf.

B. Childs and J. Sametinger, Literate programming and documentation reuse, in: Proceedings of Fourth IEEE International Conference on Software Reuse, pp. 205 – 214, (1996), DOI: 10.1109/ICSR.1996.496128.

J.L. Cybulski, Introduction to Software Reuse, Technical Report TR 96/4, The University of Melbourne, Australia (1996).

D.J. Eck, Objects and object-oriented programming, Section 1.5, in: Introduction to Programming Using Java, Version 9.0, JavaFX Edition, (2022), http://math.hws.edu/javanotes/c1/s5.html.

J. Eder, G. Kappel and M. Schrefl, Coupling and cohesion in object-oriented systems, Technical Report, University of Klagenfurt, Austria (1994).

W.B. Frakes and K. Kang, Software reuse research: status and future, IEEE Transactions on Software Engineering 31(7) (2005), 529 – 536, DOI: 10.1109/TSE.2005.85.

E. Gamma, R. Helm, R. Johnson and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison Wesley, Reading, MA, USA (1995), URL: http://www.javier8a.com/itc/bd1/articulo.pdf.

A. Garcia, P. Greenwood, G. Heineman, R. Walker, Y. Cai, H.Y. Yang, E. Baniassad, C.V. Lopes, C. Schwanninger and J. Zhao, ACM SIGSOFT Software Engineering Notes 32(5) (2007), 31 – 37, DOI: 10.1145/1290993.1291005.

A. Goethals, Use of 3d Program Visualization to Show Visibility, Cohesion, and Quality of Java Class Elements, Doctoral dissertation, University of Florida, Florida, USA (2002).

S. Gosch, A Short History of Programming Languages, YUMPU (2007), URL: https://www.yumpu.com/en/document/view/5443927/a-short-history-of-programming-languages-1-how-computers-and-.

L. Hardesty, Automatic code reuse: System makes modifications necessary to transplant code from one program into another, MIT New on Campus and Around the world, MIT News Office (September 19, 2017), URL: https://news.mit.edu/2017/automatic-code-reuse-0920.

R. Harmes and D. Diaz, Pro JavaScript Design Patterns, Apress, (2008), URL: https://pepa.holla.cz/wp-content/uploads/2016/08/Pro-JavaScript-Design-Patterns.pdf.

S. Harris, CISSP All-in-One Exam Guide, 5th edition, McGraw-Hill, Inc., New York, USA, 1008 pages, URL: https://dl.acm.org/doi/10.5555/1594805.

Y. Hassoun, Coupling, Code Reuse and Open Implementation in Reflective Systems, Doctoral dissertation, School of Computer Science and Information Systems, Birkbeck College, University of London, US (2005), URL: https://www.dcs.bbk.ac.uk/site/assets/files/1025/yhassoun.pdf.

I.M. Holland and K.J. Lieberherr, Object-Oriented Design, ACM Computing Surveys 28(1) (1996), 273 – 275, URL: https://dl.acm.org/doi/pdf/10.1145/234313.234421.

T. Husted, C. Dumoulin, G. Franciscus, D. Winterfeldt and C.R. McClanahan, Struts in Action: Building Web Applications With the Leading Java Framework, Manning Publications, 664 pages (2003), URL: https://ur.sa1lib.org/book/461946/506b86.

I. Jacobson, M. Christerson, P. Jonsson and G. Overgaard, Object-Oriented Software Engineering: A Use Case Driven Approach, Addison-Wesley, Wokingham, England (1992), URL: https://search.library.uq.edu.au/primo-explore/fulldisplay?vid=61UQ&tab=61uq_all&docid=61UQ_ALMA21113243750003131&lang=en_US&context=L&query=sub,exact,Image%20processing%20--%20Periodicals,AND&mode=advanced.

M. Jha and L. O’Brien, A comparison of software reuse in software development communities, 2011 Malaysian Conference in Software Engineering, 2011, pp. 313 – 318, DOI: 10.1109/MySEC.2011.6140690.

P. Jorgensen, D. Fernandez, A. Fischer, M. Greco, B. Hussey, S. Kuchta, H. Li, S. Overkamp, D. Rodenberger and R. VanderWal, Has the Object-Oriented Paradigm Kept Its Promise?, Report, Grand Valley State University, Allendale, USA (2002), URL: http://ddi.cs.uni-potsdam.de/HyFISCH/Informieren/Programmiersprachen/OOPromisesAndReality.pdf.

T. Lindner and A. Rüping, How Formal Object-Oriented Design Supports Reuse?, Report, Forschungszentrum Informatik (FZI), Karlsruhe, Germany (1995).

K.C. Louden, Programming Languages: Principles and Practice, 2nd edition, Cengage Learning (2003), UR: http://www.cs.sjsu.edu/~louden/pltext/plpp_ch01.pdf.

S. Parker, Building reusable software, in Proceedings of TOOLS Europe’99: Technology of Object Oriented Languages and Systems. 29th International Conference, Nancy, France (1999), pp. 409, DOI: 10.1109/TOOLS.1999.10002.

S.L. Pfleeger and J. Atlee, Software Engineering Theory and Practice, Prentice Hall (2001).

J. Radatz, IEEE Standard Glossary of Software Engineering Terminology, The Insitute of Electrical and Electronics Engineers, New York, USA (1990), URL: http://www.mit.jyu.fi/ope/kurssit/TIES462/Materiaalit/IEEE_SoftwareEngGlossary.pdf.

H. Ramakrishnan, Analysis of Complexity and Coupling Metrics of Subsystems in Large Scale Software Systems, Doctoral dissertation, University of Central Florida, Orlando, Florida (2006), URL: https://stars.library.ucf.edu/cgi/viewcontent.cgi?article=1745&context=etd.

N. Singh and N.S. Gill, Aspect-oriented requirements engineering for advanced separation of concerns: a review, International Journal of Computer Science Issues 8(5) (2011), 288 – 297, URL: https://ijcsi.org/papers/IJCSI-8-5-2-288-297.pdf.

I. Sommerville, Software Reuse, Software Engineering, 9th edition, Addison-Wesley, Boston, 773 pages (2011).

Downloads

Published

17-08-2022
CITATION

How to Cite

Aljedebi, . W., & Al-Mutawa, R. (2022). Facilitating Software Reuse Through Design Characteristics in Object-Oriented Paradigm. Communications in Mathematics and Applications, 13(2), 775–782. https://doi.org/10.26713/cma.v13i2.2033

Issue

Section

Review Article