Proč je analytický model IS nutným předpokladem pro zabránění tvorbě molochálních systémů



Podobné dokumenty
Šumperský efekt rozmnožení případů užití

Jak správně psát scénáře k případům užití?

Třetí část odpovědi na mail ohledně zpracování případů užití, aneb jak je to s číslováním pořadí případů užití

Odpověď na dotaz ohledně asociační třídy v modelu měření

NAUČTE SE MALOVAT SI INSTANCE!

VYHLEDÁVÁNÍ PRVKŮ ACTOR A PROCESNÍ MODELOVÁNÍ

Druhá část odpovědi na mail ohledně zpracování případů užití

S KONFIGURACÍ POVOLENÝCH KOMBINACÍ DĚDICŮ

Nutnost použití vzoru OBSERVER pro zamezení nepříjemných efektů zpětných funkcionálních vazeb mezi objekty

Jedna z velmi častých a závažných chyb při návrhu IS aneb jak vznikají tzv. molochální systémy

Návrh informačních systémů pomocí UML, OOP a vzorů

Jak funguje element deep history v UML

ROZDÍL MEZI VZTAHEM EXTEND A INCLUDE V USE CASE DIAGRAMECH

Kurz Postupy návrhu IS pomocí UML a OOP (5 dnů, in-house)

Čtvrtá část odpovědi aneb jak je to vlastně s interakcí <<include>>

Problém identity instancí asociačních tříd

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

JEDNODUCHÁ A PRAKTICKÁ METODA ODHADU PRACNOSTI PROJEKTU (S UTILITOU KE STAŽENÍ ZDARMA)

Objektové modelování pomocí UML v praxi, 2005

Návrh IS - UML. Jaroslav Žáček

Návrh IS - UML. Jaroslav Žáček

Analytické modelování informačních systémů

JE TŘEBA DBÁT NA ANONYMITU KLIENTA NEBO NE?

RUP - Disciplíny. Jaroslav Žáček jaroslav.zacek@osu.cz

Principy OOP při tvorbě aplikací v JEE. Michal Čejchan

Unity a Objekty (NMIN102) RNDr. Michal Žemlička, Ph.D.

Rady pro tvorbu USE CASE MODELU, rada první: Jak pracovat s pojmy ve scénářích UC

O JEDNÉ ČASTÉ CHYBĚ PŘI ROZKLADU PROCESŮ PODNIKU ANEB KDY MÁME UKONČIT ROZKLAD PROCESŮ PODNIKU?

Úvod do principů objektově orientovaného programování

POŘÍZENÍ A IMPLEMENTACE INFORMAČNÍCH SYSTÉMŮ

Příloha A - Dotazník průběhu procesu vyhledávání informací

VÍŠ, CO JE TO BANKA?

Specializace Návrhář software na základě analýzy vytváří návrh softwarových aplikací ve formě schémat a diagramů.

Odpověď na dotaz ohledně asociační třídy v modelu měření

Vizuální programování

Objektově orientované technologie Dynamický náhled Sekvenční diagram (Realizace UC) Daniela Szturcová

ČMSZP. Vnitřní směrnice. Českomoravského svazu zemědělských podnikatelů. (dále také Svaz)

INTERNETOVÉ BANKOVNICTVÍ ARTESA IDEAL

8 Přehled OO metodik (metod, metodologií)

8 Přehled OO metodik (metod, metodologií)

10 Balíčky, grafické znázornění tříd, základy zapozdření

Úvod do objektově orientovaného programování s použitím jazyka C# pro střední školy

Webová grafika, struktura webu a navigace, použitelnost a přístupnost

financnasprava.sk Portál Technologie Microsoft zjednodušují komunikaci občanů s Finanční správou SR a činí výběr daní transparentnějším.

Programování II. Abstraktní třída Vícenásobná dědičnost 2018/19

Tento dokument je třeba brát jako dokumentační nástroj a instituce nenesou jakoukoli odpovědnost za jeho obsah

Objektově orientované programování v jazyce Python

Výukový materiál zpracován v rámci projektu EU peníze školám

Vytvoření.NET komponenty (DLL) ve Visual Studiu

Architektura v organizaci

Ing. Jiří BERKOVEC Ing. Jan DROZEN MARBES CONSULTING s.r.o. Brojova Plzeň

OOT Objektově orientované technologie

Práce s bankovními výpisy

Úvodem... 4 Co je to vlastně formulář Co je to šablona dokumentu Jak se šablona uloží Jak souvisí formulář se šablonou...

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Školní kolo soutěže Baltík 2011, kategorie C

Základy analýzy. autor. Jan Novotný února 2007

MS SQL Server 2008 Management Studio Tutoriál

Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda

Analýza a modelování dat. Helena Palovská

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

4.2.3 Orientovaný úhel

PŘÍLOHA C Požadavky na Dokumentaci

Zrakové postižení a mobilní telefony (smartphony)

Vnitřní směrnice. 1. Stanovy MAS Svatojiřský les 2. Potvrzení o registraci v rejstříku MV 3. Potvrzení o registraci u FÚ 4.

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Usage of modular scissors in the implementation of FEM

JÁ DĚLÁM TO SEO DOBŘE,

Algoritmizace. 1. Úvod. Algoritmus

Metodika pro dosažení souladu s GDPR pro

Podstata Peněžního deníku

Jak najít své EW? Proč a jak budovat svou EW skupinu?! Jednoduše a efektivně

Business Intelligence

Novinky v UML 2.5 a agilní modelování

Implementace A* algoritmu na konkrétní problém orientace v prostoru budov

Primární klíč, cizí klíč, referenční integrita, pravidla normalizace, relace

Vize. Thang Do. Adam Papoušek.

Pokročilé schopnosti OOP

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Převodový můstek

Rozdílová dokumentace k ovládání IS KARAT.net

Logo je značka, která firmu nebo váš produkt pomůže jasně identifikovat

Objektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová

FINANČNÍHO PLÁNU. Ing. Aleš Koubek Koubek & partner

Manuál SQL Ekonom 2018 verze MANUÁL SQL Ekonom 2018 verze

Služba Rychlý výpis umožňuje on-line službám získat elektronický a snadno zpracovatelný výpis z bankovního účtu klienta.

Multimediální prezentace MS PowerPoint I

KAPITOLA 8: KOMERČNÍ BANKOVNICTVÍ, VÝZNAM A FUNKCE

Dodatečné informace č. 4

Ukázka knihy z internetového knihkupectví

Docházka 3000 přenos dat do Abra FlaxiBee

Případy užití (use case) Projektování SW systémů

Vzor OBSERVER a jeho zajímavá varianta v kombinaci se vzorem ADAPTER Část 2

Setkání s Daňovkou MIBCON - ERP HCM: zlepšení , Praha, Pavel Janoušek

Modelování webových služeb v UML

Informatika / file system KIT.PEF.CZU

Algoritmus pro hledání nejkratší cesty orientovaným grafem

Analýza a Návrh. Analýza

Transkript:

Proč je analytický model IS nutným předpokladem pro zabránění tvorbě molochálních systémů Část 1 autor RNDr. Ilja Kraval, http://www.objects.cz březen 2007 firma Object Consulting s.r.o. Úvod V reakci na články o molochálních systémech (viz předešlé články na našem Serveru objektových technologií) jsem obdržel tento mail: Dobrý den, pane Kraval, chtěl bych Vám moc poděkovat za seriál o molochálních systémech. Je pro mne moc užitečný! Vaše myšlenky se snažím praktikovat do praxe, ale vrtá mě hlavou, jak prolinkovat dvě komponenty (dll) v případě, že pracuju v.netu a nastane situace, kdy komponenta č.1 využívá objekt komponenty č. 2, a komponenta č. 2 využívá komponentu č. 1. Je to cyklická reference. Musím to provést pomocí referencí na dll (assembly), protože Projektová reference.netu mi tuto operaci neumožní. Není tato cyklická reference znakem molochu? Nebo je tato operace běžně používaná ve Vámi jmenovaném trendu "Rozděl kód na menší části a linkuj je."?

Totiž v naší firmě je zavedená štábní kultura, kdy jsou úlohy rozděleny do logických celků: personalistika, účto, mzdy, atd. Problémy si myslím skoro vždy můžou nastat například teď, když chci implementovat organizační strukturu (pomocí vzoru Composite), část objektů patří do personalistiky (organizační jednotka, pracovní místo) a část do jiného modulu. Chci se vyhnout zacyklené referenci. Zatím to řeším pomocí interface tak, že mám společný balíček, kde jsou uvedeny interfaci a pokud například v nějakém modulu chci použít třídu osoba tak nepoužívám přímo modul Personalistika ale společný balíček, kde se nachází interface s osobou (IOsoba). Nevím jestli je to čisté, navíc je problém, že pokud předělám třídu Osoba, tak musím předělávat i interface. Předem děkuji za chystaný další díl seriálu. Tento mail je natolik charakteristický, že je třeba na něj náležitě odpovědět a o tom pojednává tento článek. strana 2

Metoda TUNEL a rozdělení prací v něm Existuje několik možných způsobů, jak tvořit SW. Mezi opravdu nedoporučované postupy patří metoda zvaná TUNEL. Podstata tvorby IS pomoci metody TUNEL je následující: TUDY NE ÚSPĚCH TUDY NE obrázek 1 Metoda tvorby IS zvaná TUNEL Na počátku projektu se vstupuje do černého tunelu (viz zelená šipka), kterým se prochází poslepu tunelem od stěny ke stěně. Cestou se díky nárazům do stěn tunelu zjišťuje, kudy cesta nevede (viz červené šipky s nápisy TUDY NE ), tj. co se nemá dělat resp. co se nemělo udělat, když už je něco naprogramováno a špatně. Vedoucí projektu se operativními zásahy snaží projekt uřídit a najít světýlko na konci tunelu (žluté světélko s nápisem ÚSPĚCH). Mnohdy se projekt s odřenýma ušima dokončí a jakýs takýs informační systém se zákazníkovi nakonec odevzdá. Bohužel velmi často nastane případ, že se nadějné světélko na konci tunelu promění ve světla protijedoucího vlaku a celý projekt skončí katastrofickým scénářem, tj. krachem. Podstatou fungování metody TUNEL je velmi nevhodný a nedoporučovaný způsob průchodu fázemi tvorby IS, tj. analýzou IS, technologickým návrhem IS a kódováním. strana 3

Při použití metody tvorby SW zvané TUNEL se pro průchod fázemi projektu použije tento postup: Mezi pracovníky (původně programátory) se rozdělí práce tak, že se jednoduše systém pomyslně rozčlení na části, nazvěme je agendy a pracovníci je dostanou na starost. Každý z nich potom provádí všechny práce od analýzy, přes design po kódování. Každý pracovník v TUNELU se stává analytikem, technologem a programátorem současně, jinak řečeno si svoji část řešení sám zanalyzuje, sám navrhne v technologii a sám naprogramuje. O průchod fázemi se tak stará každý pracovník sám ve své vlastí režii, tj. jinak řečeno, každý projde sám fázemi tak, jak každý z nich umí. Rozdělení rolí v projektu tedy není podle fází projektu (tj. analytik, technolog, programátor), ale je učiněno podle agend, tedy podle oblastí řešení. Vedoucí to má při takto nastaveném mechanismu jednodušší: Rozdělí práci mezi pracovníky podle agend a poté si každý tuto agendu řeší sám od A až do Z. Od vedoucího zaznívají již jenom pokyny typu dělejte rychleji. Zažil jsem kdysi tuto metodu několikrát na vlastní kůži jako zaměstnanec. Například dodnes si vzpomínám na vývoj rozsáhlého informačního systému pro banky, kde byly práce rozděleny přesně podle agend a nikoliv podle fází projektu, tj. každý programátor byl současně i analytikem a technologem bankovního systému. Ještě dnes po X letech se mi pod rozdělenými agendami vybavují bývalí kolegové: pokladna - to byl Martin, termínované vklady - to byl Jura, úvěry - to byl Břéťa atd. Rozdělení prací v TUNELU Co se týče samotného SW tvořeného v TUNELU, tak i on má své charakteristické rysy. Mezi ně patří mimo jiné i tvorba molochů, tj. systémů s příliš velkými komponentami, kusisiyk kódu (detailněji co je molochální systém - viz předešlé články). Naskýtá se otázka, proč je TUNEL zárukou pro vytvoření molocha? Mimochodem odpovědi na tuto otázku je skryta odpověď na otázku kolegy v mailu. Všimněme si blíže, jak vypadá rozložení prací v TUNELU: strana 4

vedoucí A D K A D K A D K analytici programátoři obrázek 2 Jak se pracuje v TUNELU Na obrázku je znázorněna klasická situace, kdy analytici-programátoři mají svůj výsek práce a provádějí na něm práce jak analytické, tak designu a kódování. Tento způsob řízení je ve firmách bohužel velmi častý a je oblíben pro svou jednoduchost, přesněji pro jednoduchost z pozice vedoucího, nikoliv pracovníků. Stačí prostě rozdělit práci a potom kontrolovat, jak se pracovníci snaží podat výkony. Přestože se jedná o velmi rozšířený model řízení, je vřele nedoporučován. Má totiž své natolik vážné nedostatky, že může vést k velmi špatným až fatálně chybným výsledkům zejména u větších projektů. Otázkou je, jak vlastně postupovat, abychom se těmto problémům vyhnuli? Mezi opravdu důležité znalosti, které musíme mít pro opouštění tohoto způsobu tvorby SW pomocí TUNELU a rozdělení prací podle agend, je znalost modelování v UML. Důvod je jasný: pracovník v roli analytik nebo designér musí výsledky své práce předat druhému pracovníkovi a k tomu potřebuje nějaký vyjadřovací jazyk a tím nejlepším jazykem je opravdu modelovací jazyk UML. Poznámka: Mimochodem školení Pobytový kurz UML a OOP je z toho důvodu zaměřeno nejenom na syntaxi UML, ale i na doporučené postupy prácí jak rozsvítit v TUNELU, což se probírá velmi detailně i to s prostorem pro dotazy účastníků strana 5

školení a konzutlacemi. Dá se říci, že to je vlastně i cíl tohoto školení - jazyk UML je pouze velmi kvalitní nástroj napomáhající tomuto rozsvícení v TUNELU. Vrátíme se nyní k dotazu v mailu. Evidentně je vidět, že to, co kolega nazývá štábní kulturou ve firmě, kdy jsou úlohy rozděleny do logických celků: personalistika, účto, mzdy, atd, tak to je charakteristické pro TUNEL a rozdělení prací v něm podle agend. A z toho plynou i následné problémy. Jako jeden z nepříjemných důsledků prací v TUNELU můžeme jmenovat na prvním místě velmi nízkou až katastroficky špatnou transparenci systému. To je sice opravdu velmi nepříjemný efekt (mimochodem kdo někdy opravoval SW ve tmě TUNELU, ví, o čem hovořím ). Tato metoda má však i další neméně nepříjemné důsledky, my se soustředíme na jeden z nich, který s souvisí s dotazem v mailu: Platí, že metoda TUNEL je zaručeným receptem, jak tvořit molochy. Otázkou je, proč při rozdělení prací podle agend se nakonec potýkáme s problémy molochů? Mimochodem v mailu od kolegy je velmi výstižně popsán důsledek takto navrženého systému, a to v těch odstavcích, kde popisuje práci s cirkulárními referencemi. Ukážeme si v další části článku, jak vlastně rozdělení prací v TUNELU vede nutně k návrhu molochů a jak se tomuto efektu vyvarovat správnými a doporučenými postupy. Konec 1. části článku strana 6