Object Oriented Programming and Software
Object Oriented Programming and Software
Abstract
Object-Oriented Programming (OOP) Software Development Paradigm, birthed some few
decades ago with provisions for a varied understanding of programming languages than the
primordial procedural programming parlance in software development (FORTRAN, Pascal,
C, and etcetera). The OOP ab-initio didn’t provide some resounding assurances and attrac-
tively structured codes to the users without the use of “goto” provisions. OOP at this point
has attained some feet as excellent programming practices are now guaranteed and be de-
fined. OOP is attributed as a methodology or a tactic that focused on such ways objects work
together to express data sharing. It has changed the procedural conception of programming
where vast attention is saddled on procedures and logic. There are seven essential concepts
in Object-Oriented Programming (OOP) Software Development. The first is an Object. An
Object is an encapsulated entity that provides sets of predetermined services at a given period.
It is also looked upon as anything that has existence and with some value. Subsequently is
Class; a class is the main body of a system. It creates the federating units of a system. We
also have Generalization, Inheritance, Abstraction, Polymorphism, and Encapsulation. Not
all programmers believe that OOP is a methodology.
Academia Letters, September 2021 ©2021 by the authors — Open Access — Distributed under CC BY 4.0
1
Keywords: Object-Oriented Programming, Procedural Programming, Object, Software De-
velopment Class, Inheritance, Polymorphism, Encapsulation, Abstraction, Generalization
1.0 Introduction
Software is termed a group of related programs that perform specific functions. The software
development life cycle is a process of building good software and in life cycle stages provides
quality and correctness of good software.[1] Object-Oriented Programming (OOP) is a pro-
gramming language that is designed within objects instead of procedures and emphasis on
data rather than logic. The Object-Oriented paradigms suggest we should model instructions
in a computer program with the data they manipulate and store these as components together.
One advantage of doing this is we get reusable software components.[2] In OOP, data is seen
as input which is processed for the resultant information.
Academia Letters, September 2021 ©2021 by the authors — Open Access — Distributed under CC BY 4.0
2
2.2 Procedure-Based programming
Procedural programming uses subroutines as functions. It is built on procedures and functions
other than objects and data. In procedural programming, codes are structured into smaller
units called procedures. As in software development, these functions accept inputs process
them, and display output. The vital information at this point is that there is no correlation
between the functions and the procedures with the data at which is being utilized. Function as
well as the procedure carry out their different assignments and produce the exact expectations
or results as long as the appropriate information is given. So in a procedural system, our
functions/procedures use data “given” to them (as parameters) but also directly access any
shared data they need.[4] It is trite to note that procedural programming gives some sets of
commands by informing the computer of the exact tasks in a stepwise refinement from the
foremost line of codes to the other lines. Examples of procedural programming languages are
Pascal, C, FORTRAN, and BASIC.
• Objects
• Classes
• Abstraction
• Encapsulation
Academia Letters, September 2021 ©2021 by the authors — Open Access — Distributed under CC BY 4.0
3
• Inheritance
• Polymorphism
3.1 Objects
Objects are the states and behaviors of entities in an Object-Oriented structure. An object is
an encapsulated entity that provides a set of services at a given time in software development.
In programming, problems are examined with regards to objects and their nature of commu-
nication amongst them. Objects are bound to interact with one another at the point of program
execution by sending messages and other communications without their precise knowledge of
individual details to data and code sequence.
3.2 Classes
A ‘class’ is a software design that describes the general properties of something which the
software is modeling.[5] Class is the main body of a program as it illustrates some specifics
during program initiation. A class is seen also as a set of objects with related types. If a
class is defined, it provides the creation of objects that belong to that particular class. Class
diagrams are vital in the description of system architecture.
3.4 Encapsulation
In OOP classes do encapsulation and the variables, methods, and functions are hidden inside
them and manage coding in software systems development.[8] The knowledge of an object is
no longer necessary once the object is created unlike in structural programming. The object
has some capabilities to conceal some vital parts of it from nosy and thrill-seekers to avert
Academia Letters, September 2021 ©2021 by the authors — Open Access — Distributed under CC BY 4.0
4
interference of its contents. Encapsulation allows us to focus on what something does without
considering the complexities of how it works.[9] In encapsulation, codes are combined and
operated as a distinct measure. This ensures security within the data from misuse and abuse.
3.5 Inheritance
Inheritance is a concept in Object Oriented Programming by which objects can acquire the
characteristics of objects in another class and ensures the reusability of codes without the
stress of creating them again. Inheritance gives any user the provision to utilize the same
code in his program just by changing the definition of its variables.[10] Inheritance allows the
reusability of codes between classes.
3.6 Polymorphism
In polymorphism, objects could be processed differently with the help of their data types and
classes. It is the aptitude at which dissimilar objects react to a message in different patterns
by taking more than a composition. It allows a single name or operator to be associated with
different operations.[11] Polymorphism gives the way to represent variables as a group or a
common way to represent the variables.[12]
Academia Letters, September 2021 ©2021 by the authors — Open Access — Distributed under CC BY 4.0
5
gives object-oriented programs ease to modification. For programmers can make do with
C++, Python, Java, and Smalltalk in an Object-Oriented paradigm.
The structured programming paradigm proposed that programs could be developed in sen-
sible blocks that make the program more understandable and easier to maintain. The Object-
Oriented paradigms suggest we should model instructions in a computer program with the
data they manipulate and store these as components together. One advantage of doing this is
we get reusable software components.[14]
Academia Letters, September 2021 ©2021 by the authors — Open Access — Distributed under CC BY 4.0
6
6.0 Object-Oriented Analysis and Design (OOAD)
This is an acceptable software development tool for analyzing and designing a computer ap-
plication using object-oriented programming to ensure good product quality in a development
life cycle. OOAD in modern software engineering is best conducted iteratively and incremen-
tally. Iteration by iteration, the outputs of OOAD activities, analysis models for OOA, and
design models for OOD respectively, will be refined and evolve continuously driven by key
factors like risks and business value.[18]
In the early days of object-oriented technology before the mid-1990s, there were many
different competing methodologies for software development and object-oriented modeling,
often tied to specific Computer-Aided Software Engineering (CASE) tool vendors. No stan-
dard notations, consistent terms, and process guides were the major concerns at the time,
which degraded communication efficiency and lengthened learning curves.[19] In 1994, the
Three Amigos of Rational Software started working together to develop the Unified Modeling
Language (UML).
Later, together with Philippe Kruchtenand Walker Royce, they have led a successful mis-
sion to merge their methodologies, OMT, OOSE, and Booch method, with various insights
and experiences from other industry leaders into the Rational Unified Process (RUP), a com-
prehensive iterative and incremental process guide and framework for learning industry best
practices of software development and project management. Since then, the Unified Pro-
cess family has become probably the most popular methodology and the reference model for
object-oriented analysis and design.[20]
The software life cycle is usually alienated in several stages from the planning to analysis
to design and next to integration after which the system is produced. The most basic stages
of the process are analysis and design. The analysis stage is also known as the “requirements
acquisition stage”.
7.0 Conclusion
The research paper has drawn out the essence of Object-Oriented Programming (OOP) in this
modern programming milieu. OOP is properly-suited as the most appropriate paradigm in
the complexities of software development. OOP presents some ways of seeing and solving
real-time problems and mustering solutions just like the human intelligence system.
Academia Letters, September 2021 ©2021 by the authors — Open Access — Distributed under CC BY 4.0
7
References
[1] S. Barbey, M. Ammann, and A. Strohmeier. Open issues in testing Object Oriented
software. In K. F. (Ed.), editor, ECSQ ’94 (European Conference on Software Quality),
pages 257–267, vdf Hochschulverlag AG an der ETH Z¨urich, Basel, Switzerland, October
1994.
[3] Boronczyk, Timothy (11 June 2009). “What’s Wrong with OBJECT ORIENTED PRO-
GRAMMING”, zaemis.blogspot.com.
[4] Kindler, E.; Krivy, I. (2011). Object-Oriented Simulation of systems with sophisticated
control. International Journal of General Systems. pp. 313– 343.
[10] Vedpal, N. Chauhan, and H. Kumar. A hierarchical test case prioritization technique
for object-oriented software. In Contemporary Computing and Informatics (IC3I), 2014
International Conference on. 2014.
[11] Milojkovic, N., et al. Polymorphism in the Spotlight: Studying Its Prevalence in Java and
Smalltalk. in Program Comprehension (ICPC), 2015 IEEE 23rd International Conference
on. 2015.
Academia Letters, September 2021 ©2021 by the authors — Open Access — Distributed under CC BY 4.0
8
[12] Boehm B, “A Spiral Model of Software Development and Enhancement”, IEEE Com-
puter, IEEE, 21(5):61-72, May 1988.
[14] Jacobsen, Ivar; Magnus Christerson; Patrik Jonsson; Gunnar Overgaard (1992). Object-
Oriented Software Engineering. Addison-Wesley ACM Press. pp. 15,199. ISBN 0-201-
54435-0.
[15] Jacobsen, Ivar; Magnus Christerson; Patrik Jonsson; Gunnar Overgaard (1992). Object-
Oriented Software Engineering. Addison-Wesley ACM Press. pp. 77–79. ISBN 0-201-
54435-0.
[16] Conallen, Jim (2000). Building Web Applications with UML. Addison Wesley. p. 147.
ISBN 0201615770.
[17] Jacobsen, Ivar; Magnus Christerson; Patrik Jonsson; Gunnar Overgaard (1992). Object-
Oriented Software Engineering. Addison-Wesley ACM Press. pp. 15,199. ISBN 0-201-
54435-0.
[18] Jacobsen, Ivar; Magnus Christerson; Patrik Jonsson; Gunnar Overgaard (1992). Object-
Oriented Software Engineering. Addison-Wesley ACM Press. pp. 77–79. ISBN 0-201-
54435-0.
[19] Jacobsen, Ivar; Magnus Christerson; Patrik Jonsson; Gunnar Overgaard (1992). Object-
Oriented Software Engineering. Addison-Wesley ACM Press. pp. 15, 199. ISBN 0-201-
54435-0.
[20] Paul A. Longley, Michael F. Goodchild, David J. Maguire, David W. Rhind (2005).
Geographic Information Systems and Science.2nd Edition. John Wiley & Sons.
Academia Letters, September 2021 ©2021 by the authors — Open Access — Distributed under CC BY 4.0
9
Figures
Academia Letters, September 2021 ©2021 by the authors — Open Access — Distributed under CC BY 4.0
10
Figure 2. Class Diagram of the University Information Management System
Academia Letters, September 2021 ©2021 by the authors — Open Access — Distributed under CC BY 4.0
11
Figure 3. Object Diagram of the Post Graduate Student Information System
Academia Letters, September 2021 ©2021 by the authors — Open Access — Distributed under CC BY 4.0
12