"Software architecture refers to the high level structures of a software system and the discipline of creating such structures and systems." - WIkipedia The ultimate goal of software architecture is to minimize the total cost of ownership of a software system.