Benefits of The Object-Oriented Development

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

Benefits of the Object-Oriented Development 1. Exploits the expressive power of the object-oriented programming languages. 2.

Encourages the re-use of software components. 3. Leads to systems that are more resilient to changes. 4. Reduces development risk. 5. Reduction in development time and the size of the resulting source code. 6. Appeals to the working of human cognition. Risks of Object-Oriented Development There could be Performance Risks and Start-up Cost Risks. Performance Risks: There is a performance cost for sending a message from one object to another. A call to another function has an overhead on the run-time to handle stack management activities. Inheritance hierarchies can also add to the performance cost of an object-oriented system. Every time an object of a derived class is created, the constructor of that class and all its base classes are called. Thus, if the inheritance structure is very deep or very wide, there can be a significant drop in the performance. Polymorphism adds further to the performance cost of a system. Dynamic lookup that is required to determine the method defined for the class of the receiving object can take significantly longer time than a simple, statically bound function call. Often object-oriented system is defined in a manner whose components are built in layers of abstraction. On the positive side, such layering helps in the comprehending a complex system. It may be impossible ever to get a complex system working without starting with a layered design. On the negative side, sometimes methods must be written to gain protected access to the otherwise encapsulated fields of an object. This plethora of methods means that we can end up with a glut of method invocations. Invoking a method at a high level of abstraction usually results in a cascade of methods invocations involving lower levels.

Another source of performance bottlenecks is due to the paging behaviour of running applications. Most compilers allocate object code in segments, with the code for each compilation unit (usually a single file) placed in one or more segments. If an operating system funds physical memory bottlenecks and uses the virtual memory concept, then it may result in a higher number of page swapping activities, as most of the function calls in object-oriented applications are across source file boundaries. Dynamic allocation and destruction of objects also contributes to performance costs. Allocating an object on a heap is a dynamic action as opposed to statically allocating an object either globally or on a stack frame. For time-critical applications, the cycles needed for completing a heap allocation may be too costly. A commonly used solution to this problem is to pre-allocate such objects during elaboration of the program. Start-up Cost Risks: Using the object-oriented technology for the first time requires capitalization of the software development tools. If an organization is using a particular object-oriented language for the first time, they usually have no established base of domain-specific software to re-use. A first attempt to use the object technology is usually a failure without the appropriate knowledge and training. An object-oriented language is not just another programming language that can be mastered in a short time period. The mindset shift for object-oriented design may take a long time in most cases.

Basic activities of OOAD:


Object oriented analysis: Analysis is the first stage of the development process. It is also the first step in producing high-performance software. Analysis is central to the performance tuning process. The analysis part having these below steps

OOA process consists of the following steps:


Identify the actors Develop a simple business process model using UML Activity diagram Develop the usecase Develop interaction diagrams Identify classes

Steps involved in OOA process: 1. Actors identification 2. Using UML activity diagram develop a simple business process 3. Develop the use case 4. Prepare interaction diagram 5. Classification-develop static UML class diagram 6. Iterate and refine

You might also like