SG at CTU. 3sg.czacm.org. Cerny T., Chalupa V., Rychtecky L., Linhart T. 3sg-jf@googlegroups.com www.jformbuilder.org

Podobné dokumenty
KIV/PIA 2013 Jan Tichava

CASE. Jaroslav Žáček

Modelem řízený vývoj. SWI 1 Jan Kryštof

CASE nástroje. Jaroslav Žáček

Mobile application developent

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

2012 ET NETERA a.s. Wicket přehled technologie Martin Strejc

Analýza a Návrh. Analýza

Návrh softwarových systémů - architektura softwarových systémů

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Platformy / technologie. Jaroslav Žáček

Informační systém pro podporu řízení, správu a zjišťování aktuálního stavu rozvrhované výuky

Databázové a informační systémy

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Business Intelligence

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

Obsah. Zpracoval:

Architektura softwarových systémů

Vývoj informačních systémů. Přehled témat a úkolů

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

Generování uživatelských rozhraní pomocí UIP a JPA

Vývoj informačních systémů. Přehled témat a úkolů

Převod 4GL aplikací do webového prostředí. Ing. Jan Musil, IBM ČR Community of Practice for

Hiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control)

Anotace a Hibernate. Aleš Nosek Ondřej Vadinský Daniel Krátký

KOMPONENTY APLIKACE TreeINFO. Petr Štos ECM Business Consultant

ZÁVĚREČNÁ STUDIJNÍ PRÁCE dokumentace

Jiří Mašek BIVŠ V Pra r ha

Platformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz

Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová. 5. Statistica

Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

Spring framework 2.0. Roman Pichlík CZJUG

Projekt JetConf REST API pro vzdálenou správu

UŽIVATELSKÝ MANUÁL PERSONALIZACE MOJE SODEXO V

MBI - technologická realizace modelu

7 Jazyk UML (Unified Modeling Language)

UŽIVATELSKÝ MANUÁL PERSONALIZACE MOJE SODEXO V

Student s Life. Návrhová dokumentace (Design) Lukáš Barák, Jakub Ječmínek, Jaroslav Brchel, Jiří Zmeškal

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Obsah. Úvod 9. Úvod do Office Seznámení s Office Vylepšení programu Access XML 13 Inteligentní značky 14

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

Databáze EMS podacích lístků

BPC 10.1 on HANA Classic. Ondra Klouček

Integrace TechIS s ostatními podnikovými systémy. Ing. Josef Stromský PhD


Tvorba informačních systémů

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP

Co se chcete dozvědět?

Tvorba informačních systémů

A5M33IZS Informační a znalostní systémy. O čem předmět bude? Úvod do problematiky databázových systémů

Hardware Různé počítačové platformy (personální počítače, pracovní stanice, víceuživatelské systémy) Požadavek na konkrétní vstupní a výstupní zařízen

(Enterprise) JavaBeans. Lekce 7

Tvorba informačních systémů

Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links

PŘEHLED A MOŽNOSTI VYUŽITÍ WEBOVÝCH MAPOVÝCH SLUŽEB

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Michal Krátký, Miroslav Beneš

Integrované řešení pro správu informací - Microsoft

Novinky v oblasti SAP Mobility. Martin Zikmund, Presale Mobility Platforms Miroslav Řehoř, Account Executive

7 Jazyk UML (Unified Modeling Language)

Vladimír

Formy komunikace s knihovnami

1. Integrační koncept

1. Technická specifikace části B:

VERZE 1.1.1, 1.1.2, 1.2 VIVO.LUNDEGAARD.EU

Seznámení s prostředím dot.net Framework

PA165: Úvod do Java EE. Petr Adámek

Informační systém ozdravných pobytů zdravotní pojišťovny

První kapitola úvod do problematiky

Návrh softwarových systémů - architektura softwarových systémů

SPŠS Č.Budějovice Obor Geodézie a Katastr nemovitostí 4.ročník. ArcGIS ONLINE PROJEKT SBĚR DAT

Internet cvičení. ZS 2009/10, Cvičení 4., PHP. Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

Obsah. Úvod 11. Vytvoření emulátoru 20 Vytvoření emulátoru platformy Android 4.4 Wearable 22 Spouštění aplikací na reálném zařízení 23

Vývoj multiplatformní aplikace v Qt

Hlavní rysy produktu MapInfo Professional

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

PRODUKTY. Tovek Tools

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

Domino 10 nové komponenty a související témata (node.js, ES )

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

Stručný úvod pro programátory. Michal Kuchta

TÉMATICKÝ OKRUH Softwarové inženýrství

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

SUTOL Symposium 2014

Programátorská příručka

Platformy / technologie. Jaroslav Žáček

Připravte se na konjunkturu se systémem řízení údržby SGM. SGM moderní nástroj pro řízení údržby nejen výrobních zařízení

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

1 Webový server, instalace PHP a MySQL 13

Vývoj informačních systémů. Obecně o IS

Transkript:

SG at CTU 3 3sg.czacm.org Cerny T., Chalupa V., Rychtecky L., Linhart T. 3sg-jf@googlegroups.com www.jformbuilder.org

Vývoj enterprise aplikací Struktura aplikace Problémy s údržbou i tvořením GUI Závislosti 3 vrstev (coupling) Opakování informace a replikace rozhodnutí Generátory UI Automatizace skrze inspekci JFormBuilder (JFB) Co, kde, kdy, jak a proč Online tutoriál JFB Za hranice Javy MDD, XLS, XML, Aneb přátelství analytika a vývojáře Budoucí vize

Běžná aplikace je rozdělena na vrstvy To umožní oddělení zájmů Prezentace - JSF, Facelets, RichFaces.. EJB, (Spring) JPA - entity

Entita určuje persistentní data Ale také určuje co se bude sbírat od uživatele Jak budou data vypadat, či jaká mají omezení Služby pracují s entitami Pokud se změní název entity musí se to promítnout i zde Prezentace dat (entit) v uživatelském rozhraní Formuláře a Tabulky Provázání asosiací Tabulka formulář Navigace a menu Layout Akce

Vrstva prezentace defnuje zobrazení dat uživateli Vizualizace dat Motivace Údržba Software 65-75% životního cyklu aplikace Porozumění SW 40-60% z údržby SW Vývoj uživatelského rozhraní 50% celkového vývoje Formuláře a Tabulky Jsou nejvíce svázány s persistentní vrstvou Jsou koncepčně nejsložitější části UI (omezení a validace) Jak budou tyto vypadat je určeno Entitou Layoutem Rozhodnutím jaké pole tam má být a jaké ne Uživatelskými právy Volbou widgetu Kontextem (editace, čtení, hledání) [IEEE-CSAE, Cerny et al., 2011], [ACM-RACS, Cerny et al., 2011]

Entity Class View Table View Form

Entity Class View Table View Form

Perzistentní vrstva JPA Entita Zachycuje omezení každého atributu Povolený typ Informace o očekávaných datech Hibernate Validation Detailní informace o validních datech pro každý atribut Byznys vrstva Prezentace Form Dekoruje entitu a její atributy Přídává omezení pro validní data Tabulka Dekoruje entitu a její atributy

class Osoba { String jmeno; String prijmeni; String email; String pass; Pohlavy pohlavy; String narozen; } class Firma { Katg kategorie; String misto; String ulice; String mesto; String psc; String tel; Boolean souhlas; } Facebook UiWidgety InputText InputDoubleText InputSecret InputSelect InputCheckBox InputDate

class Osoba { String jmeno; String prijmeni; String email; String pass; Pohlavy pohlavy; Date narozen; } class Firma { Katg kategorie; String misto; String ulice; String mesto; String psc; String tel; Boolean souhlas; } UiWidgety InputText InputDoubleText InputSecret InputSelect InputCheckBox InputDate

class Osoba { String jmeno; String prijmeni; String email; String pass; Pohlavy pohlavy; Date narozen; } class Firma { Katg kategorie; String misto; String ulice; String mesto; String psc; String tel; Boolean souhlas; } UiWidgety InputText InputDoubleText InputSecret InputSelect InputCheckBox InputDate

class Osoba { String jmeno; String prijmeni; String email; String pass; Pohlavy pohlavy; Date narozen; } class Firma { Katg kategorie; String misto; String ulice; String mesto; String psc; String tel; Boolean souhlas; } UiWidgety InputText InputDoubleText InputSecret InputSelect InputCheckBox InputDate

GMail

InputText InputDoubleText InputSecret InputSelect InputCheckBox InputDate

ACM-ICPC This form is made by JFB

Vývojář opakuje svá rozhodnutí, pro použití UI Widgetů. Používá totožné komponenty, jen je jinak dekoruje. Musí replikovat nastavení již zachycené v entitě. Náchylnost k chybám Snadno přehlédnutá inkonzistence Nudná práce pro opice Otázka Jak jinak lze vytvořit UI něž manuálně?

<h:inputtext required= false Grafcké drag & drop formy @Column(nullable=false) String getname() {.. Složité přizpůsobení Stále replikace informací na dvou místech, neřeší údržbu Neřeší nekonzistenci informací mezi dat. vrstvou a prezentací XML Model formy Stále replikace informací na dvou místech (XML a Class), neřeší údržbu Neřeší nekonzistenci informací mezi dat. vrstvou a prezentací Inspekce zdrojového kódu a následná transformace Machine learning Vizualization

Speciální značky 2. Meta Model Konfgurace Šablony UI Widgetů Mapování 3. Visualizér 1. Inspektor

Inspekce entity a následné získání MetaModelu Enitita má speciální značky JPA, Hibernate Validator, JFormBuilder nebo cokoliv, co si nastavíme v konfguraci Značky lze vytvořit dle požadavků klienta v JFB frameworku Zjištěný MetaModel nezavisí na výstupu Inspektor sestaví meta model a identifkuje vlastnosti atributů Speciální značky Meta Model Inspektor

Konfgurace Kompatibilita s GUI widgety Šablony UI Widgetů Konfgurace umožní provázání UI Widgetů se skupinou atributů tříd String and length > 255 inputtextarea String and email inputemail Mapování Není nutné mít specifckou skupinu widgetů, ale lze adaptovat cokoliv HTML, RichFaces, JSF, ICEFaces, PrimeFaces, Tomahawk, Trinidad, ADF, XML.. :) Šablona UI Widgetu odkazuje na konkrétní použití widgetu bez identifkace specifcký hodnot Input Text Widget <h:inputtext onblur="validateinputtext(this,..);#{onblur}" styleclass="#{inputclass}" rendered="#{empty render$id? 'true' : render$id}" required= $notnull" id= $id" maxlength= $maxlength" size= $size" title= #{text[$entity.$name]}" value= #{$value}">

Vizualizér Visualizér Dle konfgurace spojí inspektovaný atribut třídy a UIWidget Bere v potaz Vybraný profl Search, Edit, Read Vybraná práva uživatele Layout Profl Editace Role s nižším právy

Snadné propagování validace do UI Snazší vyplnění formulářů User friendly usability Lze integrovat kontextovou nápovědu Není třeba AJAX - snadná integrace s JS

Layout Jak vysázet vstupní pole do výsledného výstupu (formuláře) One column, two column, custom Šablona Profl Generujeme fragment zaměřený na hledání, čtení, zápis, nebo něco jiného. Bezpečnost Statická a nebo lze i Third party / Role based access control (PicketLink, Spring) Uplný form Zamezení přístupu Jiny profl a jiný layout

Snadná změna poskytovatele UI Widgetů i cílové platformy Centralizace použití widgetu Vše je defnováno jednou a na jednom místě Možná Vám to připomíná Aspektové orientované programování Podpora údržby => Přenostitelnost Snadná migrace do jiného UI Téměř okamžitý přechod z RichFaces do ICEFaces Jen změna šablon pro UI Widgety

On-demand (run-time) generování Generování UI fragmentů na dotaz v produkci Možný contextový security framework jenž aplikuje run-time informace Zamezení běžně používaným kondicionálům v UI fragmentech Možné zlepšení výkonu načítání fragmentů (měřeno!) Možné další rozšíření Specifcké UI pro vybraného uživatele [2011 - IEEE cultural UI] Uživatel má možnost nastavení svého UI Možné rozlišovat mobilní zařízení a desktopy a ovlivnit výstup??

Údržba UI fragmentů Značná redukce Na místo psaní formů a tabulek jen defnice UI Widgetů a mapování mezi skupinou atributů String and length > 255 inputtextarea String and email inputemail Studie údržby Změna Změněných souborů Změna řádků JFormBuilder/Manuální vývoj Nový atribut 3 / 12 Nová třída 9 / Změna pořadí prvků 1 / Globální změna - internacionalizace 6 / 126 7 41 / 121 2 2 25 / 29 32 / 54 / 213

Quick Tour Václav Chalupa JFormBuilder.org/video

Inspektor nemusí jen inspektovat Javu Lze i XML, UML, XLS nebo cokoliv jiného Analytik si snadno napíše v Excelu spcifkaci UI a nechá si přes JFB vygenerovat HTML Ihned vidí co vytvořil a to prodiskutuje se zákazníkem Pošle vývojáři Excel XSL, ten použije jiné šablony a nechá přes JFB vygenerovat RichFaces UI nebo dokonce celý datový model v Javě a klidně i SQL databázi JFB dokáže daný meta model přeložit do jakékoliv textové podoby Android Speciální značky Další Frameworky a jazyky Meta Model Inspektor Java XLS XML

Tlustý datový model lze zachytit již na úrovni modelu Model-driven development UML Class model + UML Profly Z modelu lze generovat aplikaci obsahující vazbu na JFB

Java XML View

Vývoj enterprise aplikací Struktura aplikace (JPA, EJB, JSF, Facelets, RichFaces, ICEFaces, ADT, apod.) Problémy s údržbou i tvořením GUI Závislosti 3 vrstev (coupling) Opakování informace a replikace rozhodnutí JFormBuilder (JFB) Generátory UI Automatizace skrze inspekci Kompatibilita s GUI widgety On-demand generation Third party / Role based access control Profly Layouty Možné zrychlení načítání stranek Udržba = nulová investice Přenositelnost Online tutoriál JFB Za hranice Javy MDD, XLS, XML, Aneb přátelství analytika a vývojáře

Prototypování aplikací Android.NET a další platformy Reverse engineering vysosej metamodel převeď jinam

FormBuilder: A Novel Approach to Deal with View Development and Maintenance 2011, ČERNÝ T., DONAHOO M. J. In SofSem 2011 Proceedings of Student Research Forum. Bratislava: OKAT, 2011, p. 16-34. ISBN 978-80-88720-17-1. A Profle Approach to Using UML Models for Rich Form Generation 2010, ČERNÝ T., SONG E. In ICISA 2010 International Conference on Information Science and Applications (ICISA), 2010. New York: IEEE Computer Society Press, 2010, p. 635-342. ISBN 978-1-4244-5941-4. UML-Based Enhanced Rich Form Generation, 2011, Tomas Cerny and Eunjee Song ACM RACS 2011 recently published at http://oslab.ssu.ac.kr/cfp/racs2011/ Aspektově orientované programování [Kiczales 1997] Model Driven Architecture OMG.org Naked Objects MetaWidget

???