Java is a powerful object oriented programming language. But the fact that you develop your applications in Java does not mean you have adopted an object oriented approach to systems development. An object oriented approach models an application around real world objects such as car, customers, and products etc.
Object oriented systems development has three distinct parts namely;
- Object Oriented Analysis – this is concerned with determining the functionality of the application. Some of the end results of this stage include use case descriptions and use case diagrams.
- Object Oriented Design – this is concerned with the architectural design of the system and how it will support the system functionality. One of the key end results of this stage is the class diagram
- Object Oriented Programming – this is concerned with the actual implementation of the system
Below are the six (6) reasons why you should adopt this approach
- Easy to communicate with non technical users – design artifacts such as use cases descriptions and use case diagrams can be easily understood by both technical and non technical users
- Easy to maintain – since the OO approach paradigm favors re-usability, you can make changes in one class and the effects will be distributed to all the objects that are based on the modified class
- Increased productivity – since the programming paradigm favors code re-usability, the programmer can complete developing applications faster as they will write less repetitive code
- Flexibility – it is possible to change the class implementation of methods without affecting the application code that uses the class.
- Scalability – scalability is the ability of an application to meet new business requirements.
- Source Code Generation – if you analyze and design your application using standard UML tools such as Star UML, you can use the application to generate skeleton code of your interfaces and classes with methods and properties already defined for you
The class diagram below shows the application design of mobile phones HERE,
- Mobile is the parent class that defines the properties of the mobile object, a constructor and one method getModel
- Android is the child class that inherits from Mobile class
- Blackberry is the child class that inherits from Mobile class
For a practical tutorial on the implementation of the above design, visit the URL below. Feel free to ask questions via the comments section if you are stuck with the practical tutorial or you would like some clarifications.