I am looking for a free software to design a house (not interior) with specific roof types, windows, doors, porches etc.
You can use Sweet Home 3D to accomplish what you've requested. The application can be downloaded from its official website and it was developed with Java as base programming.