Software Design Questions

Hi,

When wanting to design a component, what questions should you ask yourself?

Cheers
AntoFreemanAsked:
Who is Participating?
 
Mayank SConnect With a Mentor Associate Director - Product EngineeringCommented:
Please proceed with that recommendation.
0
 
Mayank SAssociate Director - Product EngineeringCommented:
It should be easily re-usable. Moreover, it should be easily-usable. It should provide an easy-to-understand API (names of methods, etc). It should be configurable (for example - if you want to switch loggin on/ off), extensible, etc etc etc etc. It should be well planned, well designed, should take care of exception handling 'coz there are many fool-users in this world, who are very skilled at scrweing things up ;-) It should have a nice hierarchy and levels of abstraction, and should have some available documentation, help, user-tips, FAQ, etc.
0
 
ShinruCommented:
You would also want to ask yourself how exactly it will be used. List different scenarios that could happen. If it is going to offer a GUI, I usually like to draw up how exactly I want parts of it to look. If you're going to be writing it for other people (other than yourself) to use, think of what they plan to use it for, and like mayankeagle said, a nice list of exception handling, because people WILL find a way to screw something up and make you say "How did you manage that?". I'm not usually afraid to write down everything that may have some significance, but you want to have a lot of possibilities to give yourself when it comes to actual design time, and you'll end up going back and trimming off things here and there, and then adding on. Many times when jotting down different ways the component will be used, or different scenarios that may occur, you'll find that it can open up a whole new line of possibilities.
0
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 
Santino_kCommented:
Hi,

<in addition to what mayankeagle and Shinru have said >

if you refer to "Essential COM" book by Don Box or "Inside COM" of Microsoft publication... you will get a very broad and basic idea of what features make a good and efficient Component. [you can find this info in starting chapters itself ]
To this basic features you will be adding some of your component specific features.

Regards,
Santino
0
 
Mayank SAssociate Director - Product EngineeringCommented:
Yup, but let's not assume that its a .NET or a COM component. Since nothing is mentioned, let's keep it outside Microsoft, etc. It could well be an Enterprise Java Bean (EJB).
0
 
Santino_kCommented:
Ok mayankeagle.
You are right that it could be an EJB.
What i knew about COM i have specified... coz the question didnt specifically mean "NO COM".
Also the Books/Chapters i specified that may help AntoFreeman b'coz they are very general ones.

Have a nice day.

Regards,
Santino
0
 
Mayank SAssociate Director - Product EngineeringCommented:
>> didnt specifically mean "NO COM".

It also didn't specify "NO EJB" either ;-)

>> Have a nice day.

:-) same to you.
0
All Courses

From novice to tech pro — start learning today.