Metodologie OOHDM, jazyk Lua Metodologie OOHDM, jazyk Lua a tvorba webových aplikaa tvorba webových aplikacící
Martin Molhanec
ČVUT-FEL, K-313
ÚvodÚvod
• Tvorba webových sídel jako inženýrský úkol - Tvorba software 2001
• The Object-Oriented Hypermedia Design Model (OOHDM) - Objekty 2001
LuaLua
• 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é typyLua – datové typy
• Number
• String
• Function – podobně jako Javascript
• Nil
• Userdata – pro komunikaci např. s C++
• Table – asociativní (objekty)
Lua – navratové hodnotyLua – navratové hodnoty
Function Pokus (par1, par2)
Local Nasobeno = par1 * par2
Local Deleno = par1 / par2
Return Nasobeno, Deleno
End
X, Y = Pokus(20, 2)
Lua - poleLua - pole
Pole = {}
Pole[”barva”] = ”zelena”
X = pole.barva
Y = pole[”barva”]
Jine_pole = {barva = ”modra”}
Lua - objektyLua - objekty
Zam1 = zamestnanec { parent = osoba{ RC=123456789, Vek=30, Jmeno=”John Novak” }, Telefon = 123456, Mistnost = ”450/B3”}
CGILuaCGILua
• Aplikace jazyku Lua určená pro psaní CGI skriptů
• Koncovka souborů .lua
• Lua scripts
• HTML templates
CGILuaCGILuacgilua.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 templatesHTML templatesExpression fieldsExpression fields
Good Morning, <b>$|firstname|$</b>
<input
type="text" name="cor"
value="$|cgi.cor|$">
<a href=
"$|cgilua.mkurl("ajuda.html", cgi )|$"
>Ajuda</a>
HTML templatesHTML templates Code fieldsCode fields
<!--$$function SubscriptionCharge() dofile( 'charges.lua') return value_subscriptionend$$--><b>The value of the Subscription: $|SubscriptionCharge()|$</b>
HTML templatesHTML templatesLoop and If directivesLoop and If directives
<table border=1><tr>
<!--$$ LOOP
start='i=1', test='i<10',
action='i=i+1‚
$$-->
<td>$|i|$</td>
<!--$$ ENDLOOP $$-->
</tr></table>
OOHDMOOHDM
• 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)
OOHDMOOHDMkonceptuální modelkonceptuální model
OOHDMOOHDMkonceptuální modelkonceptuální model
OOHDMOOHDMschéma navigačních třídschéma navigačních tříd
OOHDMOOHDMschéma navigačních kontextůschéma navigačních kontextů
OOHDMOOHDMAbstract Interface DesignAbstract 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
OOHDMOOHDMImplementaceImplementace
• Mapování informačních položek– 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-WebOOHDM-Web
• OOHDM analýza
• CGILua – skriptovací nástroj pro vytváření dynamických stránek
• Lua – jazyk skriptů
databázové tabulkydatabázové tabulkyodpovídajíodpovídají konceptuálnímu diagramukonceptuálnímu diagramu
databázové tabulkydatabázové tabulkyodpovídajíodpovídají diagramudiagramu kontextů kontextů
• 6 tabulek popisujících všechny kontexty
– Tabulka kontext• Název, typ – kontextu
– 5 tabulek pro jednotlivé kontexty
Tabulka kontextTabulka kontext
OOHDM-WebOOHDM-Webknihovna funkcíknihovna funkcí
Index {context = ”build_alpha”, anchor = ”building_name”, function = ’Horizontal_Tab( col = 6, par_table = ”align-center cellspacing = 12”, par_cell = ”<center>” )’}
OOHDM-WebOOHDM-Web
OOHDM-WebOOHDM-Web
OOHDM-WebOOHDM-Web
ZávěrZá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.Ing. Martin Molhanec, CSc.
České vysoké učení technickéFakulta elektrotechnickáKatedra elektrotechnologieTechnická 2166 27 PRAHA 6, DejviceČeská republika
mailto: [email protected]
phone: ++420 (2) 2435 2118
http://martin.feld.cvut.cz/~mmm
http://k313.feld.cvut.cz
Top Related