can anyone explain uses of this model
Actually is pretty easy.
source_model usually is used in select and multiselect input types. You can create the class where will return the options of the select/multiselect.
frontend_model is a class that you create so you can manipulate your attribute on frontend, like classes, label (prefixes...), visibility, options nd etc. A really good way to understand better this is looking the function of the abstract class.
backend_model is a class that you create so you can manipulate your attribute on backend, like validations. A really good way to understand better this is also looking the function of the abstract class.
These abstract classes, you should always extend them and use them in your favor, calling the function you want and do what you got to do.