In: Computer Science
Assignment Instructions:
Please respond with at least 100 words. Your initial post should address each of the topic below thoughtfully.
Topic: Many companies use internal programs that were implemented before object-oriented programming came into widespread use. What are the issues involved in moving their systems to an object-oriented approach?
Structured Programming is the type of programming in which the entire is designed.in a structured control flow form. The goal is to divide the program into variables, data structures and subroutines. This is intended to solve one particular problem. It is a top-to-down approach. It is an approach to develop one solution to one problem. The whole program is a single module. Now suppose we want to add additional modules to the program, it would be a complicated task as we have to change the entire code, data, dependencies and functionality,
Object Oriented Programming is the based on OOPs conceps of data and code together in a single Object. The data and the code are both encapsulated as a single unit. Object Oriented style of prgramming breaks down the program into modules inter-dependant on each other or not-dependant. Here to add a functionality is easy as we do not have to modify the entire code. Also each member of a software team can work independantly on every module. These independant modules can be used anywhere else in a different program. This helps in code reusability. The overall length of the code is reduced. Also we can connect different API's to each other though OOPs.
Object: Object is an basic entity with a behaviour and data. Every instance of a class is an Object. For ex. every single employee is an Object for a company.
Class: It is an user defined data type from which Objects are created. Instances of class are Objects. Ex. Class 'Employee' and its Object 'e1'.
Moving from structural to object-oriented approach:
1) The key difficulties are that we have to change the functions, dependancies, and it requires a lot of work, As in case of structured programming the whole program is a single module, so the changes to be affected require a hectic work. If we change a functionality, our entire program needs updation and changes.
2) The functional calls from one class to another class is done thorugh accessing objects of the class, Thus when shifting from structured programming to OOPs, the complexity of the code increases. When we have just a single functionality then the structuring of the code is easier as in case of structured programming. But when we have to understand in case of OOPs, we have to upgrade and understand all the technologies inside the different modules. Thus the inter-dependebility achievement is a harder task.
3)The core OOPs concepts are to be used (encapsulation, polymorphism, abstraction, inheritance). To convert from a simple structured format which supports tight-coupling, to a loose-coupled system is a challenge. Loose-coupling implies that the objects are loosely dependant of each other. Whereas tight coupling implies that objects are highly dependable on each other. Loose coupling can be achieved by use of Interfaces.
Conclusion: Though OOPs provides some benefits when related to traditional structured programming concepts, still it has some complexities. The approach used, whether structured, or OOPs related should be dependant on the problem.