středa 23. února 2022

Analýza a design

 Pojďme se podívat, co je předmětem analýzy, kde končí analýza a co už je design.

Analýza zkoumá uživatelské požadavky na daný systém. Zabývá se primárně tím, co má systém dělat z pohledu uživatele. Může zahrnovat návrh uživatelského rozhraní, může také obsahovat návrh API pro daný systém. Analýza tedy popisuje co má nastat, za jakých podmínek. 

Příklad: dejme tomu, že vyvíjíme systém pro půjčování knih v knihovně. Jedním z požadavků je možnost zarezervovat si vybranou knihu pro pozdější vypůjčení. Analýza se bude zabývat tím, kdo může rezervaci provést (jaké uživatelské role), jakým způsobem se rezervace provádí, jestli mají existovat nějaká omezení (například rezervace maximálně 5 knih, doba vyzvednutí do 2 dnů atd.) a co se má stát, když si někdo knihu zarezervuje (např. počet dostupných exemplářů dané knihy se sníží o 1 kus).

Na analýzu by měl navázat design (česky návrh). Design popisuje, jak má být systém vytvořen z hlediska implementace. Design by měl respektovat analýzu a nepřidávat žádnou další funkcionalitu nad rámec analýzy. Měl by definovat, jak bude systém fungovat z technického pohledu.  Tj. jaké objekty budou použity, jak budou spolu komunikovat, kdy se co bude ukládat do databáze. 

Jaký nástroj pro modelování používám

Už delší dobu (od roku 2004)  používám Sparx Enterprise Architect, konkrétně Corporate Edition, licenci Standard v ceně 299 dolarů. To je zhruba 6 500 Kč bez DPH. Porovnání jednotlivých edic najdete na následující stránce: https://sparxsystems.com/products/ea/compare-editions.html

Licence je platná 1 rok, po dobu 1 roku můžete program bezplatně aktualizovat, pokud vyjde nová verze. Po uplynutí 1 roku je možné program i nadále používat bez omezení (jen přijdete o zmiňovanou možnost aktualizace a o podporu). Standard licence je pro 1 uživatele, program můžete využívat na více počítačích - tj. pokud používáte notebook a stolní počítač, můžete program nainstalovat na oba počítače.

Variantou k licenci Standard je možnost pořídit licenci Floating. Pokud máte ve firmě například 10 analytiků, ale současně bude pracovat s Enterprise Architektem jen 8 z nich, stačí 8 Floating licencí. Tato licence je o něco dražší, ale zase jich budete potřebovat méně. Nutností je u této licence využívat sdílený klíč.

Enterprise Architect se používá v mnoha IT firmách i IT oddělení velkých bank. Nevýhodou je  to, že nemá verzi pro Mac. 

sobota 12. února 2022

Nástroj pro vytváření diagramů

 Analytik vytváří v průběhu projektu model systému pomocí diagramů. Jaký software použít? V zásadě existují 2 skupiny nástrojů. 

První skupinou jsou nástroje, které umožňují vytvářet diagramy, ale jednotlivé elementy diagramu jsou použity právě jen v rámci daného diagramu. Pokud chcete daný element použít v rámci jiného diagramu, pak ho můžete zkopírovat, ale vazba na původní element není uložena. 

Druhou skupinou jsou nástroje, které udržují v úložišti (repository) celý  model a umožňují vytvářet pohledy na tento model prostřednictvím různých diagramů. Pokud se jedná o stejný element, je uložen v úložišti pouze jednou, ačkoliv může být použit na více diagramech. 

Příklad: mám use case digram a v něm use case Založení nového uživatele. V jiném diagramu chci ten to use case propojit s požadavky, které se k němu vztahují. Nástroje z druhé skupiny mi uloží vazby mezi use case a požadavky a use case v use case diagramu bude tyto vazby obsahovat i když je nebude přímo v diagramu zobrazovat.

Nástroje z první skupiny se dají použít v případech, kdy je diagram jen doprovodným obrázkem k textu a jedná se o analýzu menšího rozsahu. Pro profesionální použití v rámci většího projektu je třeba nástroj z druhé skupiny.

Co musí takový nástroj splňovat?

  • Podpora UML diagramů. UML diagramy jsou standardně využívány, pokud by je nástroj nepodporoval, nebo podporoval jen částečně - např. pouze některé diagramy - byl by pro práci analytika obtížně použitelný.
  • Možnost snadno exportovat jednotlivé diagramy. Možnost exportu je důležitá, business uživatel pravděpodobně bude vyžadovat dodání dokumentu, stránek na Atlassian Confluence atd. 
  • Snadné a intuitivní použití. Nikdo nechce trávit svůj čas neproduktivním hledáním, kam výrobce ukryl jakou funkci programu.
  • Podpora ze strany výrobce. Podpora je velmi důležitá, je třeba aby výrobce svůj program udržoval, rozvíjel ho a opravoval jeho chyby. 
  • Příznivá cena. Jako profesionál, který nástroj používá v rámci komerčního projektu,  se musíte koupit běžnou komerční licenci daného programu. A ačkoliv pro mě cena není tím nejdůležitějším kritériem, je důležitá. Je proto třeba, aby bylo možné zvolit vhodnou variantu dle předpokládaného použití a aby se jednalo v rámci možností o "rozumnou" cenu. 
V dalším příspěvku bych se chtěl věnovat konkrétnímu programu, který používám.

čtvrtek 10. února 2022

Co by měl analytik znát ještě před nástupem na projekt

Co by měl znát analytik, kromě své profese, před nástupem na nový projekt? Analytik spolupracuje jednak s vývojovým týmem a jednak s "businessem". Očekává se od něj, že bude mít znalosti z obou oblastí. Tedy z oblasti vývoje software, neboli softwarového inženýrství i z dané business domény.

V tomto příspěvku bych se chtěl zaměřit především na předpokládané znalosti z business domény. Předpokládejme, že cílem projektu je dodat systém pro podporu nějakého finančního produktu. O jaké znalosti se jedná?

Znalost trhu

  • Kdo jsou hlavní hráči na daném trhu?
  • Jak se daný trh aktuálně vyvíjí?
  • Jak je daný trh regulován?
  • Kdo je zákazníkem pro daný produkt?

Znalost produktu

  • Jaké produkty jsou nabízeny?
  • Jaké jsou jejich hlavní parametry?
  • Jaká jsou omezení těchto produktů?
  • Jaké služby jsou k danému produktu nabízeny?

Znalost procesů

  • Jaké procesy souvisí s daným produktem?
  • Kdo tyto procesy vykonává?

Znalost softwarových systémů pro podporu daných procesů

  • Jaké softwarové systémy (obecně) lze očekávat? Jaká je jich funkce?
  • Které softwarové systémy jsou interní a které externí?
  • Jaká data jsou zpracovávána?

Je jasné, že před začátkem projektu nebude mít analytik detailní informace z dané banky nebo pojišťovny. Co by ale měl mít je jasná představa o fungování daného "businessu", která mu pomůže rychle a efektivně se zapojit do nového projektu.