Göm menyn

TDDD13 och TDDC73 Interaktionsprogrammering

Projekt


Projekt - Interaktionsmönster som GUI-komponenter

Projektet går ut på att självständigt utforska olika interaktionsmönster på en lite djupare nivå. Projektinstruktionerna består av flera olika föslag på vad man kan välja att fördjupa sig i, det är upp till dig att välja uppgifter enligt betygskriterierna som står beskrivna nedan.

Projektinstruktioner

Här beskrivs flera olika förslag på fördjupningsområden. För instruktioner om vilka och hur många du bör välja, se avsnittet betygskriterier.

Betygskriterier

Här beskrivs kriterier för det olika betygsstegen. Tänk på att det inte bara är kvantitativa skillnader mellan nivåerna utan även kvalitativa.

Det finns även ett exempelprojekt att hämta här och readme-fil här , projektet är tänkt att motsvara de kvalitativa kraven för betyg 5, så för lägre ställs inte riktigt samma krav på kodkvalité. (Prova att skriva "Hej" resp "Hejsan".)

Betyg 3

Du skall på ett i huvudsak korrekt sätt implementera två interaktionsmönster med hjälp av java swing. Med ett enkelt testprogram redogör du hur man använder er komponent (interaktionsmönster), observera att det ska vara tydlig skillnad mellan er generella komponent och den specifika tillämpningen i testprogrammet. Du väljer själv vilka interaktionsmönster du vill implementera från ui-patterns. De mönster du väljer att implementera ska vara icke-triviala mönster och där du bygger mestadels av UI-komponenterna själv, Te.x är Module Tabs eller Navigation Tabs icke godkända då detta finns som en färdig komponent i Swing. Är du osäker om något mönster är för trivialt kolla med kursansvarig (Anders). För varje interaktionsmönster ska du tillhanda tillräckligt med data så att det är möjligt att visa hur mönstret är tänkt att fungera. Använd de design-mönster du anser vara lämpliga för att lösa uppgiften. Din kod skall vara effektiv nog för att implementationen skall kunna användas. Koden ska följa gängse konventioner och vara godtagbart kommenterad med javadoc.

Val av interaktionsmönster De flesta mönster går att välja, det viktiga är att ni står för implementation själva. Det vill säga ni kan välja att Module Tabs, men då får ni inta använda Swings JTabbedPane för att lösa uppgiften. Tänk efter när ni bygger komponenten vad kan en annan programmerare vilja anpassa efter sina behov, kolla på hur swing bygger upp sina mer komplexa komponenter (JList/JTree/JTable), (Default modeller, Rendrerare för att beskriva utseende, anpassa algoritmer osv). Nedan kommer finns några exempel på mönster som har varit ganska vanliga historiskt sett i kursen. (samt vissa punkter vad ni kan tänka på)

  • Password Strength Meter
    • Hur byter man ut algoritmen för att avgöra hur startkt ett lösenord är
    • Hur kan jag välja att visualisera styrkan av ett lösenord
  • Carousel
    • Hur många element ska visas samtidigt
    • Hur ska varje element visas, går det att byta ut
  • Inplace Editor
    • Vilka element är editerbara, hur visas det
    • Kan du byta ut hur element editeras
  • Shopping cart
    • Hur ser kundvagnen ut
    • Finns det olika vyer av kundvagnen(liten, kompakt, full), hur ser dom ut
  • Input feedback (se Password Strength Meter)
  • Account Registration
    • Vilken data ska finns om ett konto (och vilka data-typer)
    • Vilka fält ska vara obligatoriska
  • Steps Left
    • Hur kan jag namnge steg
    • Hur kopplar jag information till varje steg (vad ska synas vid steg 2)

Betyg 4: Drag-and-Drop

För betyg 4 gäller att du gör allt som gäller för betyg 3 samt att: Du ska implementera en applikation med stöd för Drag-and-Drop, du ska använda dig av det inbyggade stödet i Swing (inte egen utvecklat). Applikationen ska innehålla minst två JList/JTree/JTable komponenter där det ska vara möjligt att flytta data mellan komponenterna med hjälp av Drag-and-Drop. Din kod ska vara genomtänkt och sakna uppenbara effektivitetsproblem, inte bara vid användande utan även på kodnivå. Koden skall följa gängse konventioner och vara korrekt kommenterad med javadoc.

Betyg 5:JavaFx

För betyg 5 gäller att du gör allt som gäller för betyg 4 samt att: Du implementerar en enkel bildvisare i JavaFx. Applikationen ska ha stöd för att kunna rotera och skala bilder. Du ska använda dig av fxml formatet för att bygga upp ditt GUI.
Din kod ska vara genomtänkt och effektiv. Det är upp till dig att förklara varför din lösning är tillräckligt bra. Koden skall följa gängse konventioner och vara korrekt kommenterad med javadoc.

Projektredovisning

Redovisa varje komponent/mönster du har implementerat i en .jar-fil, eller annan lämplig paketering, tillsammans med ett litet test-program där du redovisar hur man använder din komponent/mönster, samt lämna in ev. skriftlig redogörelse, till din assistent. Examination: När du är godkänd av din assistent på de moment du gjort i projektet så kommer det ske en muntlig examination. Tidpunkter för den muntliga examinationen kommer att planeras att ligga i slutet av kursen. Är du klar tidigt finns det möjlighet att i mån av tid examineras tidigare i kursen. Syftet med den muntliga examinationen är att säkerställa att du verkligen producerat arbetet och tagit till dig den kunskap som vi förväntar oss.

Sidansvarig: Anders Fröberg
Senast uppdaterad: 2012-12-02