Złożone zagadnienia architektury oprogramowania. Jak analizować kompromisy i podejmować trudne decyzje