====== Seminář Analýza a návrh ====== Zúčastnil jsem se celodenního semináře ve firmě UNICORN, kde bylo hlavním cílem představit produkt //IBM Rational Software Architect// (dále jen RSA). Vše probíhalo v příjemném prostředí na Karlíně, UNICORN má v současné době reklamní kampaň plnou ratolestí a maminek („Tak se dělá software“), takže na každém rohu jste našli ležící hračky, plakáty s maminkami nebo jistě praktické baby-roomy. Zajímavé bylo, že na patře bylo velké množství žen, které obvykle v IT prostředí nepotkáváme tak často -– ženy stojící, bavící se, diskutující ve lounge roomu, vyplňující formuláře nebo probíhající meetingy za prosklenými dveřmi (dokonce v jednom případě žádní muži). UNICORN to zřejmě myslí vážně. ===== Analýza a návrh ===== V úvodu proběhlo představení metodiky RUP, poté proběhlo představení projektu Eclipse jako platformy a ukázka silné integrace v produktu RSA. Všechny prezentace měly trošku obchodní nádech a v podstatě se jednalo o shrnutí klíčových vlastností RSA produktu, k dispozici byly počítače s nainstalovaným nástrojem pro „proklikávání“ -– nejednalo se tedy workshop. Produkt RSA integruje téměř všechnu činnost potřebnou pro úspěšné vedení projektu v RUPu. Pro sběr požadavků se však používá speciální nástroj //IBM Rational RequisitePro//, který propojuje Word dokumenty, databázi a zaznamenávání změn v požadavcích. RRP obsahuje přednastavené šablony, ze kterých se vychází při psaní vlastních dokumentů s požadavky, dále hierarchickou strukturu požadavků a různé pohledy. Dokumenty jsou různých typů: slovníček, vize, supplementary specifikace a use case specifikace. Vše je integrováno s Wordem pomocí maker, metadata jsou uložena v databázi (Access nebo SQL databáze). Nad požadavky je možné vytvářet atributy, ty ukládat včetně historie do databáze a poté je analyzovat (tabulky, dotazy). Poté jsme se už věnovali produktu RSA, do kterého bude RRP integrováno až v dalších verzích. Na vytváření případů užití má RSA plnou podporu UML 2.0, bohužel však nelze k use-cases připojit scénář napsaný ve Wordu. Integrace s RRP je obousměrná a dobře řešená. Mezi hlavní výhody patří dobrá integrace všech potřebných nástrojů v jedno prostředí, například vývojář vůbec nemusí opouštět Eclipse a veškeré výstupy analytiků má k dispozici on-line přímo ve svém Eclipse IDE. Po obědě jsme se věnovali většině vlastností RSA z pohledu role architekta. Model driven development (business, use case, analysis, user experience, design, data a implementation model), model driven architecture (transformace modelů na konkrétní technologie jako je J2EE, CORBA, plain Java a podobně). Technologii MDA se lektor vůbec věnoval hodně, což bylo pro mne překvapením -– MDA je stále dost v plenkách. Lektor se zabýval také otázkou úrovně abstrakce při modelování softwaru a také důvod, proč modelujeme. Programátoři mají tendenci přiklánět se k názoru, že modelování zpomaluje a je zbytečné. Modelování nám ale umožňuje: * dekomponovat složité projekty * brzy detekovat chyby * efektivně komunikovat se zákazníkem * porozumět požadavkům * řídit proces implementace * zachycovat změny a jejich dopady Velmi pěkně jsou v RSA řešeny transformace (z UML do kódu a naopak). Jedná se o akce, které se integrují do Eclipse, takže je můžeme spouštět standardním způsobem (eventuelně i externě). V současné době začínají být v oblasti modelování velmi populární //návrhové vzory//. V podstatě žádný moderní modelovací nástroj by si nemohl dovolit luxus návrhové vzory nepodporovat, v RSA je k dispozici pattern explorer a práce s patterny je intuitivní a rychlá. Je zde možnost i patterny vyhledávat v již existujícím zdrojovém kódu. //Strukturální analýza// je další vlastností RSA, což je věc, které jsem se dotkl v předchozím paragrafu. Prostředí efektivně zobrazuje chyby v analýze na všech úrovních, a také různá varování (nalezené anti-patterns, příliš komplexní datové toky a podobně, složité struktury například „butterfly“). Structural control slouží k vynucování architektury a kontrole implementace, jestli se neodchyluje od návrhu. Detekce architektonických problémů spolu se silnou detekcí problémů na úrovni zdrojového kódu v Eclipse IDE chápu jako docela šikovné vlastnosti. ===== Závěr ===== RSA je silným produktem, který výborně integruje s Eclipse. Toto prostředí patří nejen v naší zemi mezi jedno z nejoblíbenějších pro vývoj softwaru v Javě, takže právě proto je RSA aktuálním a zajímavým produktem. V několika případech na nás dýchla ještě jistá nevyzrálost systému, protože verze 7 je poměrně nová (firma IBM přepisuje portfolio získané akvizicí firmy Rational na platformu Eclipse). Otázkou je samozřejmě nastavení ceny produktu, protože ta bude jistě výrazně vyšší, než u jiných (jednodušších) softwarů, jako je například Enterprise Architect, který ve firmě používáme. Po skončení semináře na mě čekalo před budovou UNICORNu nemilé překvapení... {{blog:blog:2007:porsche.jpg?250x|Nemilé překvapení}} //...a totiž -- zjistil jsem, že asi nestihnu vlak// :-) {{tag>java}} ~~DISCUSSION~~