Click here to Skip to main content
15,889,877 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
Hi Sir,
in the ASP.net design pattern tutorial in this site, it is written that:

"First, identify the software design problem, then see how to address these problems using design patterns and find out the best suited design problem to solve the problem."


Sir, Kindly help me How I can identify the software design problem? Please Suggest..
Posted
Updated 6-Nov-15 4:51am
v2
Comments
Suvendu Shekhar Giri 6-Nov-15 10:51am    
Ask this question in the feedback section of the same article.
BillWoodruff 6-Nov-15 12:09pm    
I think if you spend your time studying specific design-patterns, and implement them yourself in code, and study their behavior, you will start to learn something. There is no "general" methodology to identify which design pattern is most suitable for a given task.

Get busy.

There are absolutely no any cookbook recipes to be used to identify design problems. Perhaps except one: take the whole problem to be solved from scratch and try to sketch some best designs you can invent. If your plan looks much better than existing design, that existing design flawed. But be careful: it's easy to make a mistake due different reasons, such as: you did not understand that design, underestimated the problem, and so on.

Don't make the worse mistake one can probably make: compare design in question with some set of known design patterns. Design patterns can be useful, but not for this purpose. Main thing to remember is: using design patterns is not one of the goals. Yes, they can be very useful, but in real-life practice I more often see the opposite situation: they distract inexperienced designers from understanding the real development goals. Remember: people share design pattern to help you with you project, it's not that your project has the purpose of pleasing the author of a design pattern.

Now, there are many indirect signs of bad design: poor reuse, strong coupling (as opposed to loose coupling), other issues of design rigidity leading to problems of maintainability, and a lot more.

I would say: why analyzing some bad design? Better create a good one. People collected a lot of knowledge of bad design. Here is my idea: before you get familiar with design patterns and design in general, learn design anti-patterns. Learn them, understand perfectly and try to avoid.

See also:
https://en.wikipedia.org/wiki/Anti-pattern#Software_design[^],
https://en.wikipedia.org/wiki/Loose_coupling[^] (but don't focus on just this aspect, there are many more).

—SA
 
Share this answer
 
v3
Was this on an article of this site? If so, the best place to ask is at the bottom of the article where you can add comments.

However, it seems to be saying that you need to identify the problem to be solved first. For example, if a customer comes to you and says they need to track their shipments from the warehouse then that is your problem and you start with identifying the customer's problem or need.
 
Share this answer
 
Comments
Kiran2401 6-Nov-15 11:01am    
Oh thanks sir, I thought as "A Software is Wrongly designed, and Identifying it., and correcting the design by applying design pattern."
ZurdoDev 6-Nov-15 11:09am    
I agree with you. It does not seem worded correctly. But I think that is what the author meant. Of course, to know what the author meant, best to ask them directly. ;)

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900