Tuesday, 23 December 2008

Software Development Life Cycle

My nephew wakes up today, he is getting ready to go to school. He have this cute teddy bear named Beary, each time My nephew goes to school he takes Beary with him. He is dragging Beary down the stares BOM BOM BOM on the back of his head. Beary thinks that this is the only way to go down the stares. But if only he had the chance to stop and think, he will find a lot easier way to go down the stares.

We ----Software Engineers---- are Beary the bear, always thinks that this is the only way to go down the stairs, because we are always under the pressure of a delivery time, a series of bugs, and to many details.We think that there is no other way to do what we do. We often don't have the time to stop and think that there might be another way.

Surprisingly, there are lots of ways to do what we do and in a much easier way. In this blog I'll start taking about tools in the SDLC process.

First the Build Tools, the build tools are the most fundamental tools in the SDLC process which if used right they become the cornerstones of your SDLC practice.

Stay tuned.

Sunday, 14 December 2008

Just a warm up

Hi there, this is my first entry in two years. Stay tuned, you will find some cool stuff.

As a warm up, something is kinda making me confused. We all know how sophisticated language java is. But I came across something which I believe is a design error.

If I have 2 separate classes in two different packages
package in;
public class Animal {
public Animal() {}//accessible only throw inheritance or throw the dot operator if the accessing class is in the same package
protected void eat(){System.out.println("animal");}}
--------------------------------------------------
package out;
public class Horse extends in.Animal {public Horse() {}/** Override the protected method eat*/
protected void eat(){System.out.println("horse");}}
-------------------------------------
package in;
import out.Horse;
public class BarnHorse{public BarnHorse()
{Animal a=new Horse();//calling polymorphiclly the eat method in the horse class a.eat();}}

the code compiles fine and calls the Horse version of eat and outputs "horse" although the calling class shouldn't know anything about the Horse eat version.

please share your opinion