• No results found

9.5.1 Struts

Det tog några dagar att bekanta sig med Struts, att förstå det grundläggan- de tankesättet. När detta var gjort gick det ganska raskt att komma igång med själva webbutvecklandet och lära sig mer allt eftersom. Enkla saker är väl dokumenterade i böcker och på olika webbplatser men när man an- vände och kombinerade mer avancerade funktioner kunde det ibland bli svårare att hitta bra dokumentation.

De två största fördelarna med Struts var kontrollmekanismen i konfi- gurationsfilen och den praktiska hanteringen av bönor med formulärdata. I kontrollmekanismerna kunde vi bland annat specificera vilka webbsidor som skulle visas beroende på resultatet av en metod.

Sammanfattningsvis menar vi att Struts är användbart och stödjer ett strukturerat upplägg av webbprojekt och hjälper utvecklaren att utveckla klokt. Dessutom erbjuds många hjälpkomponenter som kan spara mycket tid, till exempel validering och loggning. Struts kan däremot vara mindre lämpat för små projekt som inte ska använda andra Javaklasser eller köras i en webbehållare (eng.web container).

9.5.2 Användbarhetsfrågor

Den enskilt största svårigheten ur ett användbarhetperspektiv var att tyd- liggöra begreppen på ett lättförståeligt sätt. Efter att i princip alla testan- vändare haft problem med begreppen ”enkät” och ”enkätundersökning” kapitulerade vi och övergav vår ursprungliga plan med de i våra ögon korrekta termerna. Det hjälper inte att man tror sig använda korrekta ter- mer om de inte går att kommunicera och använda begripligt.

Den andra stora frågan var hur frågorna kom in i bilden. Eftersom des- sa ännu inte skapas i designapplikationen var det svårt att se hela flödet. Detta blev tydligare, men inte glasklart, när flikar för dessa ännu inte im- plementerade funktioner dök upp.

9.5.3 Jämförelse mellan servlets och andra tekniker

Vi tror att samma funktionalitet hade kunnat uppnås snabbare om appli- kationen hade utvecklats i exempelvis PHP3 och MySql4 eftersom inlär-

ningströskeln var högre för oss vid användandet av servlet-tekniken och Struts-ramverket. Vi tror dock att applikationerna har blivit bättre struk- turerade och mer utbyggnadsbara när vi använt servlets och Struts. En fördel med att använda Java är att vi med lätthet kan använda befintliga bibliotek av metoder, vilket vi till exempel gjorde vid krypteringen.

9.5.4 Uppdelning i lager

Användandet av trelagerstrukturen MVC har varit en fördel. Framför allt

blir det enkelt att ändra saker i programmen under utvecklingen. Vi har 3URL:http://www.php.net

9.5. Diskussion av lösningsval 91

även haft stor nytta av att all text som visas på webbsidorna finns samlad i en textfil. På grund av lageruppdelning och Struts gick det fort att lägga till en extra funktion. Ta-bort-enkät-funktionen tog 45 minuter från idé till att det var förverkligat. Vi hade även stor nytta av detta vid utvärderingen av gränssnittet som inte måste vara klart innan resten av programmet.

9.5.5 Datalagring

Vi valde till stor delXMLför att vara oberoende av olika databashanterare.

Istället för tillgång till en databashanterare krävs möjlighet att skriva och läsa till filer. Om en databashanterare används sköts en del av säkerheten av denna men om filer används regleras åtkomsten via rättigheter på filer och kataloger. De användare som har tillgång till denna del av filsystemet kan manipulera filerna. Enkätsvaren lagras dock krypterat och kan endast läsas in från svarsapplikationen.

Import och export blir okomplicerad i och med användandet avXML-

formatet. En nackdel med XML är dock att det kan vara bökigt att ta ut

en komplicerat avgränsad mängd data från filen samt att skriva ner datat från en formulärböna till en vissXML-struktur.

Lagringen iXML-filer har medfört en hel del extra klurande och pillan-

de vid bland annat nedskrivning av svar från en enkät samt vid konstruk- tion avXSLT-filen. Det hade gått enklare att använda en databas men vi är

ändå nöjda med vårt val eftersom vi slipper beroendet av en databas samt kan använda samma format både internt och externt.

9.5.6 P

UL

Vi har försökt att utreda hur vår applikation påverkas av PUL men inte

anpassat den fullt ut. Innan användning i verkligheten bör detta grans- kas ytterligare. Det är oklart om det krävs en längre text i svarsformuläret om vilken information som kan begäras ut av uppgiftslämnaren etcetera och det är svårt att veta om något undantag påverkas. Krypteringen torde dock vara tillräcklig och väl anpassad för det som ska krypteras.

Troligen behövs en kontaktperson för varje publicerad undersökning men detta har vi inte implementerat stöd för. Det borde dock vara lätt att lägga till lite information i sessionsbönan UserView som vi skriver till i

9.5.7 Inbjudningar

Användandet av e-post är mycket utbrett och samtidigt effektivt och bil- ligt. Den stora nackdelen är att det är svårt att skicka e-post krypterat så att alla mottagare kan ta del av inbjudningen smidigt utan några större förkunskaper. Vi har inte utrett huruvida det är oklokt eller inte att skic- ka inbjudningar som två separata meddelanden för att försvåra att någon tjuvläser inbjudningarna.

Ett annat dilemma som vi har haft är om inbjudningarna ska skickas samtidigt som enkäten publiceras eller inte. Slutligen valde vi att göra allt samtidigt, men om något blir fel vid publiceringen av enkäten skickas för- stås inga e-postmeddelanden ut.

9.5.8 X

SLT

Efter att den dynamiska valideringen tillkom i svarsdelen fick vår XSLT

generera enJSP istället för en HTML-sida. Det krävde en del trixande som

gör att vårXSLT-fil inte är så enkelt uppbyggd. Ett alternativ till den var att

genereraJSP-sidan dynamiskt direkt i Java-kod, men det är inte säkert att

det blir så mycket enklare för det. Men vi borde i så fall kunna få ett över- skådligare program, och kanske blir det lättare att validera nya frågetyper eller datatyper på ett mer dynamiskt sätt.

9.5.9 Flexibilitet kring frågetyper

De ändringar som behöver göras för att skapa en ny frågetyp är följande:

• Frågetypen måste beskrivas iDTD-filen.

• I XSLT-filen måste funktionalitet för att generera JSP-kod för denna

frågetyp läggas till.

• Vid nedskrivning av svaren måste man se över så att namngivningen av formulärelementet inte strider mot något i den använda algorit- men.

• Även valideringsalgoritmen måste verifieras. Om man vill ha annan validering än att svar har givits, måste detta läggas till.