Osoba posiadająca ekspercką wiedzę w zakresie oprogramowania,
tworzy wysokopoziomowy projekt oprogramowania. Identyfikuje podstawowe elementy
(komponenty) oraz ustala relacje pomiędzy nimi zarówno na poziomie logicznym jak
i fizycznym. Wybiera i podejmuje decyzje spośród dostępnych alternatyw.
Decyduje o zastosowaniu konkretnych rozwiązań np. bazy danych, frameworki, biblioteki itd. Bardzo istotnym aspektem jest to, że architekt musi widzieć system w szerszym kontekście, musi mieć wizję i kierunki rozwoju całego rozwiązania a w szczególności obszaru jakim się zajmuje.
Jednym z kluczowych zadań architekta oprogramowania jest
opracowanie dokumentacji architektury oprogramowania, tzw. Software
Architecture Description, uwzględniającej wymagania biznesowe z jednej strony
oraz technologiczną koncepcję ich realizacji z drugiej strony.
Otoczenie pracy Architekta Oprogramowania
W celu opracowania projektu architektury rozwiązania architekt musi pracować z analitykami systemowymi, których głównym zadaniem jest pozyskanie wymagań od Klienta czy Użytkownika. W praktyce bardzo często zachodzi potrzeba bezpośredniej pracy architekta z Klientem czy Użytkownikiem.
Architekt oprogramowania wytycza ramy technologiczne rozwiązania, w których pracują zespoły wytwarzające oprogramowanie oraz analitycy oprogramowania.
Na pracę architekta (kształt projektowanego przez niego rozwiązania) bardzo duży wpływ ma organizacja, w której pracuje dany architekt. Organizacja może narzucać pewnego rodzaju ograniczenia projektowe czy technologiczne, wizję rozwoju produktu itd.