Component-based software design with Petri nets door