Като методика и обяснение за design patterns мога да препоръчам "Head First Design Patterns". Примерите са на Java, но са лесни за разбиране от всеки ползващ обектно ориентиран език. За софтуеърна архитектура на мен ми допадна "Software Architecture in Practice" Len Bass, Paul Clements, Rick Kazman , но не съм експерт.
@Warrior - ако искаш остави меил тук или на лични, за да ти изпратя тези книги ако те интересуват и още няколко по темата, които на теб може да ти се сторят интересни, на мен все не ми остава време да ги прочета.