Several central themes in object-oriented modeling and design have been
demonstrated with this work.
- Abstraction consists of focusing on essential behaviors of an object
or class of objects, while ignoring incidental properties. Abstraction, when applied
to the design of classes and objects, denotes the process of identifying the potential
uses and manipulations pertinent to a hypothetical object before considering how
implementation should occur. This approach was put to use in designing the String
class, since a number of potential class member functions were designed prior to the
class and any associated objects being implemented.
- Encapsulation is the process of separating the external
aspects of an object, which are accessible to operations outside the class, from the
internal workings of a class, which are hidden from all entities external to the class.
Encapsulation prevents code from becoming so interdependent that small changes can
have a ripple effect and impact far-flung portions of the program that were beyond
the designeržs intentions. The String class developed herein uses encapsulation to
good effect by providing class member functions that control access to object data,
while protecting the data most vital to each object (specifically, the memory location
and the string length).
- Polymorphism is the ability to use similar operations in
different contexts. For example, the String class defines an equality operator to be
used to compare two strings, and a concatenate operator (+=) that appends one
string to another in order to form one longer string.
- Inheritance is a property that was not needed for this single-
class system, but may be employed in future work that will build on that presented
- Reusability is related to encapsulation in that avoiding
interdependence of code allows portions of code to be used in new applications with
minimal editing. The importance of this property is evidenced by the code in the
Appendix having been adapted from previous applications, and from adaptation of
code from other object-oriented designs to future applications (Phillips, et
We find that work has broken new ground in applying principles of object-oriented
programming to semiotic modeling. The advantages of an object-oriented approach
are intertwined with those of using a word stack approach. There are a number of
benefits associated with the code in the Appendix relative to code developed for
string processing using previous approaches, most of which were procedural, as
opposed to object-oriented. Future work is expected to expand upon these benefits
and advantages, and apply them to even more challenging problems.