metodologie oohdm, jazyk lua a tvorba webových aplika cí
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
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