In modern application development, there're various problems to be solved. Most patterns we apply (from a high level perspective) are meant to benefit maintainability and extensibility, or in short: To cope with change.
can someone suggest me the current problems in software engineering
and the research links for it?
There're plenty problems to be solved in software engineering. The whole profession is about solving problems. I'll list a few of the current problems:
OOP brought up the object-relational impedance mismatch because we traditionally use relational databases. There're various solutions to this problem. Object relational mapping can be used to work around it, but there're object-relational databases as well (see Postgres).
Reuse/Extensibility/Maintainability: How to communicate between UI and logic? Traditional patterns to solve this problem are MVVM or MVC.
I'd argue that future problems/current research topics involve mostly concurrency problems, as our software routines need to be parallelized more and more to take advantage of the hardware.
In any case, if you want to learn about software architecture patterns, then I'd recommend to visit Martin Fowler's website and then buy his books (Patterns of Enterprise Architecture for example). He has assembled a nice catalogue of patterns which are all meant to solve specific problems that arise in software engineering, probably the best reference out there today.
However, these patterns mostly try to provide solutions for architectural and fundamental technical problems. If you want to know more about design patterns, which are meant to provide solutions for technical/structural problems then you should read Head First Design Patterns as an introduction.