K úvodním kapitolám, popisujícím frameworky, notace, normy a metodiky, jsem se vracel dvakrát - abych našel, jestli autory popisovaný způsob návrhu architektury je nějaký standard, nebo jestli je to jejich osvědčený způsob práce. Teprve napodruhé jsem uspěl a našel, že jde o kombinaci poznatků z frameworků 4+1, Zachman a Rozanski & Woods. Mělo to asi být více zdůrazněné. To je ale asi jediný nedostatek publikace, podtitul „Nepostradatelný průvodce návrhem softwarové architektury, která funguje“ nelže.
Nejprve bychom si měli říct, co je to architektura softwaru. Je to definice struktury a chování programu, soustředí se na zásadní prvky a potřeby investorů, zahrnuje podstatná rozhodnutí, ovlivňuje tým a je ovlivněna prostředím a stylem navrhování.
Je třeba rozlišovat softwarovou architekturu a podnikovou, enterprise architekturu. Podniková se zabývá integrací a jde napříč systémy, softwarová architektura řeší systém a zabývá se jím do hloubky.
Před lety se o architektuře a architektech příliš nemluvilo, návrhář systému byl zkrátka systémový analytik a když byl k projektu povolán (enterprise) architekt, bylo to kvůli podnikové integraci a dalekosáhlým infrastrukturním rozhodnutím. Dnes, jak ostatně dokládá tato kniha, se chápání posouvá. Myslím si, že je to rostoucí složitostí sofware, že i ten nejjednodušší online produkt musí řešit věci, o kterých se tvůrcům před lety ani nezdálo. Web, mobilní přístup, potenciální miliony zákazníků...
Softwarový architekt pak (cit. str. 32-37):
Jak vidno, práce je to komplexní. Metodika Eelese a Crippse popisuje role, výsledky práce, jednotlivé činnosti a úkoly, které je třeba v rámci iterativního procesu zpracovat. Autoři nejprve projdou základní pojmy a obecně platné principy (jak modelovat, jak dokumentovat, jak navrhovat opětovně použitelné prvky architektury), popíší případovou studii, na které metodiku demonstrují a pak už se do toho pustí pořádně - od definice požadavků, přes logickou a fyzickou architekturu až po pokročilá témata jako je řízení projektů, zvládání distribuovaného týmu nebo systému systémů.
Zaujalo mě množství hledisek, kterými se dá na software hodnotit a především jejich maticové rozdělení. Některá hlediska jdou napříč jinými, což rozhodně analýzu nezjednodušuje a je třeba na to pamatovat (tabulka podle str. 69 a 78):
hledisko | požadavků | funkční | nasazení | ověření |
---|---|---|---|---|
aplikační | ... | ... | ... | ... |
infrastruktury | ... | ... | ... | ... |
správy systémů | ... | ... | ... | ... |
dostupnosti | ... | ... | ... | ... |
výkonu | požadavky na výkon | vazby mezi komp. | umístění komp. + specif. hardwaru + topologie distribuce | prvky ověření výkonu |
bezpečnosti | požadavky na zabezp. | zásady zabezp. + ověřování uživ. + autorizace uživ. | firewally | prvky ověření zabezp. |
Metodika je hodně podrobná, kdyby ji člověk chtěl využít zcela, zahltí se množstvím dokumentů, schémat a dalších artefaktů - to by ale bylo špatné pochopení knihy. Autoři musí svůj postup popsat v maximalistické variantě, aby sloužila jako vodítko, zatímco architekt si ji musí přizpůsobit a zjednodušit, vybrat věci, které při konkrétním rozsahu projektu dávají smysl.
Na konci najdete přehled pojmů, odkazů, rejstřík, ale především přílohy, které jsou klíčové a k nimž se pravděpodobně budete vracet:
V češtině mnoho knih o softwarové architektuře není - o to důležitější je, že tato je podařená.
nakladatelství Computer Press, Brno 2011, ISBN 978-80-251-3036-0, 497 Kč
Hodnocení hvězdičkami používá jako prevenci
opakovaného kliknutí anonymní cookie.
Pokud s tím nesouhlasíte, neklikejte.
Další podrobnosti k cookies zde.