Design a simple UML hierarchy including three entities:
1. An entity, called Pair, to get and set two values a and b
2. An entity, called Rational, to represent a rational number
and all operations with rational numbers.
3. An entity, called Complex, to represent a complex number a+i·b and all
operations with complex numbers
Specify and implement in Java the entities in the UML hierarchy and their relations:
1. Decide if entity Pair should be an interface, an abstract class or a concrete class
and write it in Java.
2. Implement Rational class in Java to construct rational numbers and to operate
§ a and b should be integer values (b different from 0).
§ The fraction a/b
should be a simplified one.
§ Whenever necessary use exception handling.
§ Include a main method in class Rational to test the correctness of the
class (unit testing)
Implement Complex class in Java to construct complex numbers and to operate
with them. Make the class as complete as possible by including all possible
operations with complex numbers. Include a main method in Complex class to
test the correctness of the class (unit testing)
Use Complex class to implement a remote calculator for complex numbers:
1. Specify a remote interface for a remote calculator of complex numbers
2. Implement the remote interface of the calculator
3. Implement a server class
4. Implement a client class
5. Test the implementation by running the server and then running one or more