Friday, September 20, 2019
Object Oriented Technology in Software Design
Object Oriented Technology in Software Design Jose E. Laguardia Abstract This research paper explains the concepts of Object-oriented technologies. Explores the evolution of Object-oriented programming languages, from their introduction in the 1960s to languages that are still relevant today. It compares Object-oriented programming languages with Procedural programming languages and their structures. Explaining the advantages and disadvantages of using an Object-oriented programming approach over a Procedural programming approach. Supports why Object-oriented programming is more cost effective in comparison to Procedural programming. And finally, explains how developing in an Object-oriented programming language, increases reusability and productivity, which results in higher quality software. The results were taken from research conducted online (Internet) from six published articles and reports. The articles and reports explain, in depth, Object-oriented programming languages, its advantages and disadvantages, and how it differs from Procedural programm ing. This paper will help the reader understand why some developers prefer to develop their software using an Object-oriented programming language based on its benefits and reusability for future changes or projects. Object-oriented Technology in Software Design and Implementation Object-oriented programming is a method of programming based on hierarchy of classes, and well-defined cooperating objects (Essays, UK, 2013). Object-oriented programming is a type of programming language where the developer has to first, plan out the functions and operations to be applied to data structures before writing any code. By doing this, the data structure converts to an object that includes both data and functions. Among some of the most popular Object-oriented programming languages are Java, C++, Python, Ruby, Visual Basic .NET and Smalltalk. The first step in developing Object-oriented style programs is to identify all the objects to be manipulated and how they identify each other. This process is often called, data modeling. Once the object is identified the developer has to label it as an objects class, define the data contained in it, and the logical sequence of manipulation. A distinct logical sequence is known as a method. An instance of a class is called an object and the object runs in the machine where the instructions are provided by methods and the data is provided by the characteristics of the object. Object-oriented Programming is a methodology or paradigm to design a program using classes and objects. It simplifies the software development process and maintenance by providing six concepts. Object, class, inheritance, polymorphism, abstraction, and encapsulation. Object: any entity that has state and behavior is known as an object. For example, computer, desk, keyboard, pencil, etc. The object can be physical and logical. Class: a collection of objects. It is a logical entity. Inheritance: is when one object acquires all the properties and behaviors of a parent object. It provides code reusability and it is used to achieve runtime polymorphism. Polymorphism: when one task is performed in different ways. For example, the way everyone speaks. Abstraction: hiding internal details and showing functionality. In Java, abstract class and interface are used to achieve abstraction. Lastly, encapsulation: binding or wrapping code and data together into a single unit. In Java, class is an example of encapsulation. To be considered a totally Object-oriented language, the language must include inheritance, polymorphism, and encapsulation. The evolution of Object-oriented Technologies points back to the 1960s. Simula 67, a major revision of Simula 1, is considered the first Object-oriented language when it first introduced the concept of an object. Simula 67 was designed by Kristen Nygard and Ole-Johan Dahl at the Norwegian Computer Center in Oslo, Norway. The introduction of Simula 67 brought the first true programming object, classes, and a form of inheritance. That is why in discussing Object-oriented technologies, Simula its an important milestone. Simula had a different way of presenting the object, so that each object has its own behavior and data. Smalltalk language, considered by many the first truly Object-oriented language, was developed by Xerox at their Research Center in Palo Alto, California in the early 1970s. In Smalltalk everything is an object, it is virtually impossible to write a program that is not Object-oriented. Smalltalk is more than a programming language, is a programming interactive environment that allows you to change parameters and code while the program is running. Smalltalk supported inheritance and the concept of sending messages between objects. C++ brought wider acceptance of Object-oriented development in the marketplace. C++ may be considered the most important programming language. With the release of C++, Object-oriented programming became mainstream. C++ was introduced in 1982 under the name of C with classes. The class concept provided encapsulation, now a requisite of Object-oriented languages. In 1989, commercial C++ compilers began to appear and the ANSI C++ committee was formed. C++ is still widely used nowadays and a programmer can create very elegant Object-oriented programs with it. Javas origins are in consumer electronics. In 1991, a small group of Sun engineers called the Green Team believed that the next wave in computing was to unite computers and digital consumer devices. The team lead by James Gosling, demonstrated their new language with an interactive remote controller that was originally targeted at the digital cable television industry. Unfortunately, it did not end up working for the television industry, as the concept was much too advanced at the time. But it was just perfect for the internet, which was just starting to take off. In 1995, Java ran on SPARC Solaris, Windows NT, Windows 95, and Linux. The team also announced that the Netscape Navigator Internet browser would incorporate Java technology. Today, Java is the invisible force behind many of the devices and applications we use in our day-to-day lives. Other languages like C# .NET and Visual Basic .NET by Microsoft where created to respond to the popularity of Java. C# relied heavily on the success and failure of earlier programming languages. The C# platform builds upon many powerful features from Visual Basic and C++ environments. The .NET environment provides the ability to develop code in many different languages that can be integrated in the same application. Any objects developed in the .NET environment can be used together. Comparing Object-oriented programming to Procedural programming. Procedural programming is simple and straight forward. At times, it has been referred to as inline programming, it is more of a top down style of programming. Procedural programming takes on applications by solving problems from top to bottom. A program starts with a problem and then is broken down into smaller sub-procedures. These sub-procedures are continuously broken down in a process called functional decomposition until the problem is simple enough to be solved. The drawback about Procedural Programming is that if an edit is needed to the program, the developer has to edit every line of code related to the original change. It obviously becomes a very tedious task if many changes need to be made in the code. Procedural programming uses different methods all over the code than Object-oriented programming. Procedural programming uses procedures where Object-oriented programming uses methods. Procedural programming us es records where Object-oriented programming uses objects. Procedural programming uses modules where Object-oriented programming uses classes. Procedural programming uses procedure class where Object-oriented programming uses messages. The design process for each method differs in many ways. Object-oriented programming is designed to be reused and recycled throughout the program where Procedural programming is not. Also, the development process is different for both programing languages. Developing in Object-oriented programming begins with mapping and planning out the program. Classes are created and data fields are associated to help the developer in planning out the program. Functions and methods can be introduced as well in the planning process. Once the classes and objects have been planned out by the developer, the program can begin to take shape in a development environment. Planning out the program in Object-oriented programming is essential for the development process. It gives a basic blueprint of the program when building it. Developing in Procedural programming starts with the main functions or procedures, the main function is the main goal of the program. In Procedural programming the program is planned out in a storyboard pattern. The main function is decided and then broken down into individual and more manageable problems that can be solved. Procedural programming targets the main goal of a program first and then recognizes the smaller components to solve the main goal. Some of the benefits of using Object-oriented programming are its accuracy and sustainability across different platforms. A benefit of Object-oriented programming is the ease of debugging the code. Errors that could possibly exist during the development process can usually be traced to their point of origin and then edited, eliminating errors all over the program. Also, with the help of inheritance, a developer can eliminate redundant code and extend the use of available code. Data hiding is another benefit, with data hiding programs are designed not to be affected by code in other parts of the program, this provides greater system security and avoids unintended corruption. Also, multiple instances of an object can exist side-by-side without interfering with each other. Another benefit of Object-oriented programming is the ability to relate code to real world examples, this logical structure makes the process easier to code. A main benefit for developers is the ability to find errors when compiling rather than at runtime. All of these benefits help developers choose an Object-oriented programming approach over other programming styles while developing programs and software. A disadvantage of Object-oriented programming is the complexity of understanding how, objects, methods, classes, and actions correlate to each other. For developers who are used to Procedural programming this approach may be difficult to comprehend. Another disadvantage of Object-oriented programming is the necessity to have packages and libraries installed for the code to function correctly. These libraries are intended to make the coding process easier for developers but for some who are used to Procedural programming these libraries can cause confusion. Object-oriented programming is modular, this means that it provides separation of duties in object-based program development. Object-oriented programming is also extensible, objects can be extended to include new attributes and behaviors. Objects can also be reused within and across applications. Object-oriented programming provides improved software development productivity over traditional Procedural programming because of these three attributes: modularity, extensibility, and reusability. These three attributes also make software using Object-oriented programming easier to maintain. Due to the modular design, part of the system can be updated in case of issues without a need to make large changes. Reuse of code enables faster development process. Object-oriented programming comes with rich libraries of objects and code that can be reused in future projects. This reusability of software also lowers the cost of development. Faster development process, increased productivity, and low er cost of development allows the developer to spend more time and resources on the quality of the program, which results in higher quality software. Object-oriented programming works the way real world works. It is easy to map a real-world problem to a solution in Object-oriented programming. Programs can be built from the working modules which interact with one another, rather than starting the code again from scratch (Essays, UK, 2013). Its easier to break the work in parts based on objects. Code can be reused. Productivity is increased and costs are reduced, which helps in developing better quality software. All of these, are some of the benefits of Object-oriented programming over other styles of programming like Procedural. Object-oriented programming in its purest sense is implemented by sending messages to objects. Popular Object-oriented languages are used to code and develop a majority of software and applications we use in our daily life today. Languages like Java and C++, are used from instructors in classrooms to engineers and developers in the private sector and the government. To new adapters, Object-oriented progra mming may appear confusing, however, advocates of Object-oriented programming claim it actually results in simpler, cleaner, and more reliable code. References Eliason, K. (May 2016). Difference Between Object-oriented Programming and Procedural Programming Languages. Retrieved from https://neonbrand.com/website-design/procedural-programming-vs-object-oriented-programming-a-review/ Essays, UK. (November 2013). Object Oriented Programming What Is Object Information Technology Essay. Retrieved from https://www.ukessays.com/essays/information-technology/object-oriented-programming-what-is-object-information-technology-essay.php?cref=1 Jaiswal, S. (2011). Java OOPs Concepts. Retrieved from http://www.javatpoint.com/java-oops-concepts Oracle Technology Network. The History of Java Technology. Retrieved from http://www.oracle.com/technetwork/java/javase/overview/javahistory-index-198355.html The Saylor Foundation. (2013). Advantages and Disadvantages of Object-Oriented Programming (OOP). Retrieved from https://www.saylor.org/site/wp-content/uploads/2013/02/CS101-2.1.2-AdvantagesDisadvantagesOfOOP-FINAL.pdf Weisfeld, M. (March 2015). The Evolution of Object-Oriented Languages. Retrieved from http://www.developer.com/java/other/article.php/3493761/The-Evolution-of-Object-Oriented-Languages.htm
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment