Metodologie OOHDM, jazyk Lua a tvorba webových aplikací To insert your company logo on this slide From the Insert Menu Select “Picture” Locate your logo file Click OK To resize the logo Click anywhere inside the logo. The boxes that appear outside the logo are known as “resize handles.” Use these to resize the object. If you hold down the shift key before using the resize handles, you will maintain the proportions of the object you wish to resize. Metodologie OOHDM, jazyk Lua a tvorba webových aplikací Martin Molhanec ČVUT-FEL, K-313
Úvod Tvorba webových sídel jako inženýrský úkol - Tvorba software 2001 The Object-Oriented Hypermedia Design Model (OOHDM) - Objekty 2001
Lua Vyvinut na universitě PUC-Rio v Brasilii Skriptovací jazyk Embadded jazyk Object oriented jazyk Mnoho aplikací Aktivní rozvoj Přeložen pro mnoho platforem Free včetně zdrojových textů
Lua – datové typy Number String Function – podobně jako Javascript Nil Userdata – pro komunikaci např. s C++ Table – asociativní (objekty)
Lua – navratové hodnoty Function Pokus (par1, par2) Local Nasobeno = par1 * par2 Local Deleno = par1 / par2 Return Nasobeno, Deleno End X, Y = Pokus(20, 2)
Lua - pole Pole = {} Pole[”barva”] = ”zelena” X = pole.barva Y = pole[”barva”] Jine_pole = {barva = ”modra”}
Lua - objekty Zam1 = zamestnanec { parent = osoba{ RC=123456789, Vek=30, Jmeno=”John Novak” }, Telefon = 123456, Mistnost = ”450/B3” }
CGILua Aplikace jazyku Lua určená pro psaní CGI skriptů Koncovka souborů .lua Lua scripts HTML templates
CGILua cgilua.htmlheader() write('<html>') if cgi.language == 'english' then greeting = 'Hello World!' elseif cgi.language == 'portuguese' then greeting = 'Olá Mundo!' else greeting = '[unknown language]' end write('<head></head><body>') write('<b>'..greeting..'</b>') write('</body></html>')
HTML templates Expression fields Good Morning, <b>$|firstname|$</b> <input type="text" name="cor" value="$|cgi.cor|$"> <a href= "$|cgilua.mkurl("ajuda.html", cgi )|$" >Ajuda</a>
HTML templates Code fields <!--$$ function SubscriptionCharge() dofile( 'charges.lua') return value_subscription end $$--> <b>The value of the Subscription: $|SubscriptionCharge()|$ </b>
HTML templates Loop and If directives <table border=1><tr> <!--$$ LOOP start='i=1', test='i<10', action='i=i+1‚ $$--> <td>$|i|$</td> <!--$$ ENDLOOP $$--> </tr></table>
OOHDM 1. Konceptuální modelování (Conceptual Modeling) 2. Návrh navigace (Navigational Design) 3. Návrh abstraktního rozhraní (Abstract Interface Design) 4. Implementace (Implementation)
OOHDM konceptuální model
OOHDM konceptuální model
OOHDM schéma navigačních tříd
OOHDM schéma navigačních kontextů
OOHDM Abstract Interface Design Způsob, jak jsou jednotlivé prvky rozhraní strukturovány pomocí agregace a hierarchie Způsob, jak jsou staticky spojeny s navigačními objekty. V OOHDM se zde využívají tzv. Configuration Diagrams Jak se chovají na vnější události, například klik nebo dvojklik myší, atp. V OOHDM se využívají tzv. ADV-Charts nebo Petri-Net like notation
OOHDM Implementace Mapování informačních položek Implementace kontextu Jsou uloženy v databázi (OOER) Implementace kontextu Přenos stavové informace (cookies) Implementace rozhraní Dynamické stránky (ASP, PHP, JSP) OOHDM-Web (based on CGILua)
OOHDM-Web OOHDM analýza CGILua – skriptovací nástroj pro vytváření dynamických stránek Lua – jazyk skriptů
databázové tabulky odpovídají konceptuálnímu diagramu
databázové tabulky odpovídají diagramu kontextů 6 tabulek popisujících všechny kontexty Tabulka kontext Název, typ – kontextu 5 tabulek pro jednotlivé kontexty
Tabulka kontext
OOHDM-Web knihovna funkcí Index {context = ”build_alpha”, anchor = ”building_name”, function = ’Horizontal_Tab( col = 6, par_table = ”align-center cellspacing = 12”, par_cell = ”<center>” )’ }
OOHDM-Web
OOHDM-Web
OOHDM-Web
Závěr Praktické využití metodologie pro návrh webových sídel Navržena kompletní cesta od analýzy až po implementaci Jen tak dál !
Ing. Martin Molhanec, CSc. České vysoké učení technické Fakulta elektrotechnická Katedra elektrotechnologie Technická 2 166 27 PRAHA 6, Dejvice Česká republika mailto: molhanec@fel.cvut.cz phone: ++420 (2) 2435 2118 http://martin.feld.cvut.cz/~mmm http://k313.feld.cvut.cz