Nel moderno sviluppo di applicazioni, ci sono vari problemi da risolvere. La maggior parte dei modelli che applichiamo (da una prospettiva di alto livello) hanno lo scopo di favorire la manutenibilità e l'estensibilità, o in breve:  Per far fronte al cambiamento . 
  can someone suggest me the current problems in software engineering
  and the research links for it?
 Ci sono molti problemi da risolvere nell'ingegneria del software.  Tutta la professione riguarda la soluzione dei problemi.  elencherò alcuni dei problemi attuali: 
-  
 OOP ha evidenziato il  disadattamento dell'impedenza relazionale all'oggetto  perché usiamo tradizionalmente database relazionali. Esistono varie soluzioni a questo problema. La mappatura relazionale degli oggetti può essere utilizzata per aggirarla, ma esistono anche database relazionali agli oggetti (vedi Postgres). 
  
-  
 Riutilizzo / Estensibilità / Manutenibilità: come comunicare tra interfaccia utente e logica? I modelli tradizionali per risolvere questo problema sono MVVM o MVC. 
  
-  
 Problemi di scalabilità / distribuzione 
  
 Direi che i  problemi futuri / argomenti di ricerca attuali  implicano principalmente problemi di concorrenza, dal momento che le nostre routine software devono essere sempre più parallele per sfruttare l'hardware. 
 In ogni caso, se vuoi conoscere i modelli di architettura del software, ti consiglio di visitare  il sito web di Martin Fowler  e poi acquista i suoi libri ( Modelli di architettura aziendale  per esempio). Ha assemblato un bel catalogo di modelli che sono tutti pensati per risolvere problemi specifici che sorgono nell'ingegneria del software, probabilmente il miglior riferimento in circolazione oggi. 
 Tuttavia, questi schemi cercano principalmente di fornire soluzioni per problemi tecnici architettonici e fondamentali. Se vuoi saperne di più sui modelli di progettazione, che sono pensati per fornire soluzioni per problemi tecnici / strutturali, allora dovresti leggere  Head First Design Patterns  come introduzione.