Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

can someone suggest me the current problems in software engineering and the research links for it?

i have some knowledge on MVVM being a pattern but i would like to know more about others and also current problems as to why people go for the patterns and how they help and what are still current problems involved and the research involved in this field

any help is greatly appreciated,

Thank you

share|improve this question

closed as not a real question by gnat, Martijn Pieters, MichaelT, Dynamic, Glenn Nelson Mar 2 '13 at 15:45

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

Not sure what you mean about current problems in software engineering.. There are a ridiculous amount of them. As for design patterns, should start out with the GoF book: – Demian Brecht Sep 8 '11 at 7:06
-1: question too vague. – dagnelies Sep 8 '11 at 9:29
up vote 1 down vote accepted

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.

  • Scalability/Distribution problems

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.

share|improve this answer

Use of "dynamically" typed languages is a big problem. It creates maintenance nightmares in form of lacking understandability because critical information (type informatione) is swept under the rug nor is it anywhere enforced that types match.

share|improve this answer
-1: unsupported opinion. Can you refer to a system development failure due to use of a dynamically typed language? – kevin cline Sep 8 '11 at 9:16
I cannot see how this answers the question at all. The OP clearly asked for problems involving patterns. Can you explain that? – Falcon Sep 8 '11 at 9:37
@kevin: there so many factors in software development, especially the people themselves, that it is impossible to prove that a project failed because of this or that specific technological detail. Only common sense can help to discern what helps and what introduces difficulties. – dagnelies Sep 8 '11 at 9:37

Not the answer you're looking for? Browse other questions tagged or ask your own question.