Facilitating Software Reuse Through Design Characteristics in Object-Oriented Paradigm
DOI:
https://doi.org/10.26713/cma.v13i2.2033Keywords:
Software reuse, Object-oriented, Design characteristics, Modularity, Cohesion, Coupling, Information hidingAbstract
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
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
How to Cite
Issue
Section
License
Authors who publish with this journal agree to the following terms:
- Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under a CCAL that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this journal.
- Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal.
- Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work.