Link to home
Start Free TrialLog in
Avatar of AntoFreeman
AntoFreeman

asked on

Software Design Questions

Hi,

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

Cheers
Avatar of Mayank S
Mayank S
Flag of India image

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.
Avatar of Shinru
Shinru

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.
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
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).
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
>> didnt specifically mean "NO COM".

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

>> Have a nice day.

:-) same to you.
ASKER CERTIFIED SOLUTION
Avatar of Mayank S
Mayank S
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial