Different types of Software Architecture