Liideste loomise vahendid Magistriseminar “Kasutajaliideste loomine” Janno Veldemann Tartu 2007
Visuaalne redigeerimine Süsteemi välimuse kohene hindamine + manipulatsioon Mitmeplatvormilisus Veebilehitsejatugi Mittetöölaua platvormidel visuaalse redigeerimise tugi madal
Liideste kavandamise vahendid Paber + pliiats Tekstiredaktor Slaidiseanss Multimeedia vahendid Visuaalarendusvahendid
Tarkvaratehnika vahendid Tarkvara kihid Visuaalsed vahendid Näited 4 Rakendus Mudelipõhised ehitusvahendid Microsoft Access, Sybase PowerDesigner 3 Rakendusraamistik, spetsiaalne keel Kontseptuaalsed ehitusvahendid Macromedia Director, Tcl/Tk, Microsoft MFC 2 GUI tööriistakomplekt Liidese ehitaja Eclipse, Borland JBuilder Microsoft Visual Studio 1 Akendamissüsteem Ressursside toimetaja Microsoft Win32, Apple Quarts, X11 Windowing System
Tarkvaratehnika vahendid Kiht Rakenduse ehitusosa Õpiaeg Loomis-aeg Kehtestatud soovitatav metoodika Suhtlus teiste alam-süsteemidega Laiendatavus ja modulaarsus 4 Kõik spetsiaalsele valdkonnale Pikk Lühike Spetsifikatsioon visuaal programmeeri-mine Väga hea spetsiaalse valdkonna vahendite korral Väga hea 3 Esitlus, interaktsioon Lühike (päevad) Visuaal enne Sõltub vahendist Keel halb Raamistik hea 2 Esitlus Pikk (nädalad) Vahenditega visuaalne enne, vastasel korral mitte ükski Hea Keskmine/hea 1 Kõik Väga pikk (kuud) Väga pikk Mitte ükski Väga halb
Akendamissüsteemi kiht Madaltase Sihtgrupp mobiilsed seadmed, mobiiltelefonid Soovitatav kui Ei eksisteeri kõrgtaseme vahendeid Mälu või jõudlusnõuded on kriitilised Kõrgtaseme vahendid toetuvad sellele kihile
GUI tööriistakomplekti kiht ≈ kasutajaliidese programmide teegid Aknad, kerimisribad, hüpik- ja rippmenüüd, andmesisestusväljad, nupud ja dialoogiaknad Ulatuslik kontroll ja paindlikkus Sun Microsystems Java, aplett, AWT IBM Eclipse, SWT Microsoft .NET, erinevad keeled
public class ButtonExample { public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new GridLayout(3, true)); // Create three push buttons new Button(shell, SWT.PUSH).setText("Push 1"); new Button(shell, SWT.PUSH).setText("Push 2"); new Button(shell, SWT.PUSH).setText("Push 3"); . . . // Create three arrow buttons new Button(shell, SWT.ARROW); new Button(shell, SWT.ARROW | SWT.LEFT); new Button(shell, SWT.ARROW | SWT.DOWN); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } display.dispose();
Rakendusraamistik Põhinevad objekt-orienteeritud programmeerimisel ≈ abstraktne, palju mõisteid, klasside ja meetodite omavaheline seos Põhinevad objekt-orienteeritud programmeerimisel Idee: programmid sama struktuuriga Ehitamine raamistiku täitmise teel Efektiivselt keerulised kasutajaliidesed Sihtgrupp rohkem insenerid kui disainerid Õppimine keeruline Cocoa, MFC
Spetsiaalne keelekiht ≈ spetsiaalne keel kasutajaliideste loomiseks kergendamaks programmeerimise koormat Tcl/Tk JavaScript Macromedia Director Lingo
Kõrgtaseme vahendite eelised 1 Kasutajaliidese sõltumatus Eralda liidese disain sisemisest Võimalda mitmeid kasutajaliidese strateegiaid Võimalda mitme platvormi tugi Raja kasutajaliidese arhitekti roll Jõusta standardid
Kõrgtaseme vahendite eelised 2 Metoodika ja esitlus Arenda välja disaini protseduurid Leia teid disainist rääkimiseks Loo projekti juhtimine
Kõrgtaseme vahendite eelised 3 Kiire prototüüpimine Proovi järgi ideid vara Testi, tee ümber, testi, tee ümber, … Haara kaasa lõppkasutajad, juhid, kliendid
Kõrgtaseme vahendite eelised 4 Tarkvara tugi Suurenda tootlikkust Paku piirangute ja terviklikkuse kontrolli Aita kaasa meeskonna lähenemistele Hõlbusta hooldust
Küsimuste aeg!!!