Thursday, July 5, 2007

My Experience with Software Design

As per SSAD which i studied in my second year, more time has to be spent on the design of the software and not in the coding.....

I learnt the same in OOAD also in my third year.... I didnt know how much time will be really saved by spending more time in software design than in coding..... Over the last few months, i went crazy on software design and started reading articles and books and journals related to software design.

So, I thought, let me experiment it. So, I started my mobile computing package from SRS. I prepared SRS document, analysis document and then came to the design part. From December 22nd, till february 19th, i was working on the software design for my mobile computing package, the Multiplayer chess. I wasnt able to complete the overall design. The due date for the package was March 30. I was afraid i will not be able to finish the coding if design takes so long. So, i started coding with my partial design document as my base. To my surprise, i finished my coding for the designed portion of my package within 3 days with ease. I continued my coding to extend the features without continuing the design.

At the end of due date, i realized that, i have added just two small features in that one and a half months over the designed portion of the software which i coded in just 3 days. Moreover, in that one and a half month period, i never touched/modified the coding part which was done with design document as base. But those two small features underwent several changes in coding and still those two features work with some bugs in it....

Then i realized the importance of the Software Design. I did design for my software and reviewed it myself frequently and changed it. After a period of time, i froze my design document and i never came across a situation to change/modify the design document. The code from the design document was so stable and robust. It made coding a nothing factor. The latter part of the software which was coded without the design document consumed a lot of time and contained a lot of bugs and left me unsatisfied and my software incomplete.

So, if you are planning to develop a software, create a design document irrespective of programming languages. Do your coding based on the design document. Make your software, a stable and robust and flexible application.

1 comment:

Nick said...

good tip. I'm doing a course similar to you and definitely fall into this trap.