Finn Ordet ein digital kryssordhjelpar



Like dokumenter
Brukarrettleiing E-post lesar

EasyPublish Kravspesifikasjon. Versjon 1.0

I denne oppgåva skal me lage eit enkelt spel der pingvinane har rømt frå akvariet i Bergen. Det er din (spelaren) sin jobb å hjelpe dei heim att.

Her skal du lære å programmere micro:biten slik at du kan spele stein, saks, papir med den eller mot den.

Du kan skrive inn data på same måte som i figuren under :

Brukarrettleiing. epolitiker

Lotteri- og stiftingstilsynet

UNIVERSITETET I OSLO

Store dokument i Word

Matpakkematematikk. Data frå Miljølære til undervisning. Samarbeid mellom Pollen skule og Miljølære. Statistikk i 7.klasse

Informasjon og brukarrettleiing

Appkatalog og Software Center

Innhald Pålogging... 2 Viktige knappar... 3 Fronter som rom... 3 Leggje inn ei oppgåve i Fronter... 4 Litt om nokre ulike format for tekstbehandling

Til bruk i utviklingssamtale på 8. trinnet. Samtaleguide om lesing

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I)

EasyPublish Kravspesifikasjon. Versjon 1.1

Me har sett opp eit tankekart og mål for dei ulike intelligensane, dette heng som vedlegg.

INTERNETTOPPKOPLING VED DEI VIDAREGÅANDE SKOLANE - FORSLAG I OKTOBERTINGET 2010

IKT-kompetanse for øvingsskular

Pressemelding. Kor mykje tid brukar du på desse media kvar dag? (fritid)

Referat frå foreldremøte Tjødnalio barnehage

Legge til brukar. Legge til ein lærar Då det er lite utskifting på lærarar så legg eg til dei manuelt 1. Klikk Kontoredigering Legg til Manuelt

EKSAMEN OBJEKTORIENTERT PROGRAMMERING Alle trykte og skrevne. Java API dokumentasjon er tilgjengelig lokalt på hver maskin.

SAKSFRAMLEGG. Saksbehandler: Odd Arve Rakstad Arkiv: 026 Arkivsaksnr.: 12/ Kommunesamanslåing Leikanger og Sogndal. Spørsmål om utgreiing

ehandel og lokalt næringsliv

POLITISKE SAKSDOKUMENT:

EKSAMEN 6109 OBJEKTORIENTERT PROGRAMMERING 5609 OBJEKTORIENTERT PROGRAMMERING

Søk regionale miljøtilskudd elektronisk

Ipad som politisk verktøy. Surnadal kommune

«ANNONSERING I MØRE OG ROMSDAL FYLKESKOMMUNE»

Til deg som bur i fosterheim år

Bruk av reiserekning i Agresso

Brukarrettleiing for ny lagsportal kvam.no

Saksnr Utval Møtedato Utdanningsutvalet I sak Ud-6/12 om anonym retting av prøver gjorde utdanningsutvalet slikt vedtak;

Alle svar er anonyme og vil bli tatt vare på ved Norsk Folkemuseum kor vi held til. Ikkje nemn andre personar med namn når du skriv.

Brukarmanual.

Undervisningsopplegg for filmen VEGAS

Lingspeak Lingit AS

Biletbruk på nettet 1 2


RETTLEIING FOR BRUK AV «MIN SIDE» I DEN ELEKTRONISKE SKJEMALØYSINGA FOR FRI RETTSHJELP. Oppdatert 19.september 2012 Ove Midtbø FMSF

osbergetcms Brukarmanual

Årsmelding Austevoll maritime fagskule 2-årig maritim fagskule : Skipsoffisersutdanning- nautikk

Norsk etnologisk gransking Oslo, februar 2015 Norsk Folkemuseum Postboks 720 Skøyen 0214 Oslo E-post:

Nettbedrift nye funksjonar frå februar 2016

Rettleiing aktivering av fritekstleverandørar i ehandel

Spelet varer om lag ein dobbeltime og kan enkelt setjast opp i klasserommet. Talet på spelarar bør vere minst ti elevar.

Installasjon av SK Admin 6.11

Jobbskygging. Innhald. Jobbskygging side 1. ELEVARK 10. trinn

RETTLEIAR BYGGSØK. Søknad om tiltak utan ansvarsrett PBL 20-2

Brukarrettleiing Innsending av tolkekrav

Installasjonsrettleiing for antivirusprogram Avast!

mmm...med SMAK på timeplanen

Fylkesatlas i ny versjon (Adaptive2)

EVALUERING AV FORSØK MED ANONYME PRØVER 2013

Hjelp og løysingsframlegg til nokre av oppgåvene i kapittel 3

UNDERSØKING OM MÅLBRUKEN I NYNORSKKOMMUNAR RAPPORT

Informasjonssbrev Arkivplan.no

PC-ORDNINGA I DEN VIDAREGÅANDE SKULEN

UNIVERSITETET I OSLO

Tilgangskontroll i arbeidslivet

Spørjeskjema for elevar 4. klasse, haust 2014

Rådgjevarkonferanse 2009

Tillatte hjelpemidler: alle skrevne og trykte. Antall sider: 2 (+ 1 side vedlegg, bakerst). Oppgave 1 [25%]

P.R.O.F.F. Plan for Rekruttering og Oppfølging av Frivillige medarbeidarar i Fjell kyrkjelyd

Bilete og figurar i Word

Kvifor kan ikkje alle krølle tunga? Nysgjerrigperprosjekt kl Davik Oppvekst

LIKNINGA OM DEN VERDIFULLE PERLA

Søking til skuleåret

Saksbehandling kva er no det?

Tenk på det! Informasjon om Humanistisk konfirmasjon NYNORSK

SAKSFRAMLEGG. Sakshandsamar: Inger Marie Evjestad Arkivsaksnr.: 07/1229. IT-arbeidsplassar for ungdomsskuleelevar i Luster. Rådmannen si tilråding:

Datateknikk TELE1004-A 13H HiST-AFT-EDT. Oppgåve: Protokollanalysatoren Wireshark. Delemne digitalteknikk og datakommunikasjon Øving 7; løysing

Installasjonsrettleiing

PLAN FOR BRUK AV NYNORSK I NISSEDAL KOMMUNE

Sognefrukt Medlemsportal - Introduksjon

som blanker skjermen (clear screen). Du får en oversikt over alle kommandoene ved å skrive,

Du må ha tilgang til trådlaust nettverk (wifi) eller mobilt datanettverk for å kunne laste ned saker.

FÅ VERDA HEIM TIL DEG. NÅR DU VIL. TUSSAFIBER KOPLING AV RUTER. FRITZ Box 7360/7390

Emneregistrering i Studentweb, Historiestudiet ved Høgskulen i Volda

EndNote Online. Kom i gang (Windows)

Nytt HFK Intranett

Telefrukt AS. Medlemsportal - Introduksjon

Brukarrettleiing for FolkeWeb

Frå novelle til teikneserie

Dersom summen vert over 400 g må ein trekkje dette frå.

Rådgjevarkonferanse 2010

AD Travel. Brukarmanual for prøvenemnda i Hordaland Fylkeskommune FAGOPPLÆRINGSKONTORET

Rapport Mandatory Assigment 06 Photo Essay. Malin Ersland Bjørgen

Partifinansiering 2017, RA Rettleiing: Web-skjema. Finne ID og passord. Hente, fylle ut, signere og sende inn skjemaet elektronisk

Styresak. Ivar Eriksen Oppfølging av årleg melding frå helseføretaka. Arkivsak 2011/545/ Styresak 051/12 B Styremøte

Kom i gang med SKYLAGRING. Frå Serit Fjordane IT

FANTASTISK FORTELJING

NOTUS PORTAL 1. BRUK AV NOTUS PORTAL FOR TILSETTE/VIKARAR:

BRUKARUNDERSØKING RENOVASJON 2010

Oppmannsrapport etter fellessensur i norsk skriftleg i Sogn og Fjordane og Møre og Romsdal

Kvalitetsplan mot mobbing

HØYRING OM NYE IT-STANDARDAR FOR OFFENTLEG SEKTOR

TUSSAFIBER KOPLING AV RUTERMODEM RETTLEIING FOR KABEL-TV

Matematikk 1, 4MX15-10E1 A

Transkript:

Finn Ordet ein digital kryssordhjelpar Prosjektoppgåve av Magnar Barsnes Jan Roger Myklebust André Raunehaug A digital encyclopedic system for crossword- puzzlers Denne prosjektoppgåva er utført som prosjektarbeid i kurset DA690 (15 stp), og er avslutting på det toårige studiet i Informasjonsbehandling hjå HSF våren 2003. Rettleiar har vore Høgskulelektor Morten Simonsen, Høgskulen i Sogn og Fjordane

1. Samandrag "PAA KRYS OG TVERS" - et tidsfordriv i ledige stunder! Dette var overskrifta på den fyrste norske kryssordoppgåve som såg dagens lys i ei avis i 1925 [3]. Allereie då byrja snøballen å rulla. I dag er kryssord i aviser nesten obligatorisk. I bladhyller finn ein utruleg mange kryssordblad. Kryssord har rett og slett vorte ein sentral del av fritidssyslene til ein del menneske. Det finns utallige kryssordordbøker som hjelpemiddel for dei som er biten av basillen. Slike kryssord- ordbøker inneheld dei mest brukte ord og vendingar, og synonyma til desse. Når kryssordløysarane står fast, hender det dei må søkja hjelp i slike bøker. På internett finn ein applikasjonar som fungerar på same måte. I staden for å slå opp i ei bok, skriv brukar inn nøkkelord og tal bokstavar på ei internett- side som deretter slår opp i ein database. Vårt prosjekt, Finn Ordet, er eit prosjekt for utvikling av eit digitalt oppslagsverk for kryssordløysarar. Finn Ordet består av tre ulike applikasjonar, ein til internett, ein til PC og ein til PDA. Prosjektet fokuserar på bruk av Java mot databasar og hendsiktsmessig bruk av datastrukturar for lågast mogeleg køyretidskompleksitet i algoritmane. 2

2. English summary (Abstract) PAA KRYS OG TVERS - eit tidsfordriv i ledig stunder! This was the headline of the first crossword ever printed in a Norwegian newspaper. This event took place in 1925. And from there it got bigger. Today crosswords are almost mandatory in newspapers. In the weekly magazines we also find lots of appendixes with crosswords puzzles. The conclusion is that a lot of people do crosswordpuzzles in their spare time. There are countless amounts of crossword- books and other crossword- aids for those who need them. These books contain the most commonly used words, expressions and their synonymous needed to solve the tasks. When the crosswordpuzzler is in search of a word, he can use one of these dictionaries. On the Internet, one will find applications for these purposes. Instead of looking it up in a book, simply type in the keyword and the number of letters on the web page. A wide range of options will appear for the puzzler to choose from. Our project, Finn Ordet, is a project for developing a digital encyclopedic system for crossword- puzzlers. It contains three different applications: one for the Internet, one for the PC and one for the PDA. The project focuses on the use of Java in conection with databases and good-purposeusage of data-structures at the lowest possible algorithm running time. 3

3. Føreord Dette prosjektet utgjer siste del av det 2-årige studiet i informasjonsbehandling ved Høgskulen i Sogn og Fjordane. Denne delen vert vektlagt med 15 studiepoeng. Oppgåva blei løyst mellom 7. januar og 21. mai 2003. Det var fleire årsaker til at vi valte denne oppgåve: - vi kunne gjere nytte av alt vi hadde lært på desse to åra. - ingen av oss hadde nokon gong jobba med PDA og vi hadde lyst å læra oss noko nytt. - vi fekk bruke Java til noko nevenyttig. - kunne legge lista høgt. Vi vil takke: - vår rettleiar Morten Simonsen. - idémakar Knut Erling Øien. - Høgskulen Sogn & Fjordane for velvilje på innkjøp av utstyr. Sogndal, mai 2003. Magnar Barsnes Jan Roger Myklebust André Raunehaug I avgrensinga syner meisteren seg -Johann Wolfgang von Goethe 4

4. Innhald 1. SAMANDRAG...2 2. ENGLISH SUMMARY (ABSTRACT)...3 3. FØREORD...4 4. INNHALD...5 5. INNLEIING...8 5.1. BAKGRUNN...8 5.2. PROBLEMSTILLING...8 5.3. FØREMÅL...8 5.4. AVGRENSINGAR...9 6. INTRODUKSJON AV PDA...10 7. VAL AV SYSTEMUTVIKLINGSMODELL...10 7.1. MODELLAR...10 7.1.1. FOSSEFALLSMODELLEN...10 7.1.2. EVOLUSJONSMODELLEN...10 7.1.3. SPIRALMODELLEN...11 7.2. VÅRT VAL...11 7.2.1. EVOLUSJONSMODELLEN...11 7.2.2. PROTOTYPING...11 8. UML...13 8.1. DATABASE...13 8.1.1. KLASSEDIAGRAM / DATAMODELL FOR DATABASEN...13 8.2. INTERNETT APPLIKASJON...14 8.2.1. APPLET...14 8.2.1.1. BRUKSMØNSTERDIAGRAM...14 8.2.1.2. BRUKSMØNSTER...15 8.2.2. TENARKONTROLLEN...16 8.2.2.1. BRUKSMØNSTERDIAGRAM...16 8.2.2.2. BRUKSMØNSTER...16 8.2.3. KOMPONENTDIAGRAM...17 8.3. PC...18 8.3.1. BRUKSMØNSTERDIAGRAM...18 8.3.2. BRUKSMØNSTER...18 8.3.3. KOMPONENTDIAGRAM...19 5

8.4. PDA...19 8.4.1. BRUKSMØNSTERDIAGRAM...19 8.4.2. BRUKSMØNSTER...19 8.4.3. KOMPONENTDIAGRAM...20 9. VAL AV UTVIKLINGSSPRÅK...21 9.1. GENERELT...21 9.2. JAVA...21 9.3. MICROSOFT EMBEDDED VISUAL BASIC...21 9.4. DATABASE...21 9.5. HTML...21 9.6. PHP...21 9.7. CSS...22 9.8. SQL...22 9.9. VÅRT VAL...22 10. DESIGN...23 10.1. GENERELT...23 10.2. INTERNETT...23 10.3. PC...26 10.4. PDA...26 11. SYSTEMUTVIKLING...27 11.1. INNLEIING...27 11.2. INTERNETT APPLIKASJON...27 11.2.1. GENERELLT...27 11.2.2. KLIENT...29 11.2.3. TENAR...31 11.2.4. ALGORITMAR OG DATASTRUKTURAR...37 11.2.4.1. SAMANSETTE OBJEKT I HASHTABELLEN FOR RASKARE SØK...37 11.2.4.2. QUICKSORT PÅ EMNEOPPSLAG...39 11.2.4.3. HISTORIE SYSTEM...40 11.2.4.4. REGULÆRE UTTRYKK FOR ORDSAMANLIKNING...41 11.3. PC- APPLIKASJON...43 11.3.1. GENERELLT...43 11.3.2. ALGORITMAR OG DATASTRUKTURAR...44 11.3.2.1. SØKEFUNKSJON MED SQL...44 11.3.2.2. AV/ PÅ KNAPP FOR ENDRING OG REDIGERINGSFUNKSJONAR...46 11.4. PDA APPLIKASJON...46 11.4.1. GENERELLT...46 11.4.2. ALGORITMAR OG DATASTRUKTURAR...49 11.4.2.1. SØKEFUNKSJON MED SQL...49 11.4.2.2. REGULÆRE UTTRYKK FOR ORDSAMANLIKNING...50 11.5. DATABASE...52 11.5.1. IMPLEMENTERING I MS ACCESS...52 6

11.5.2. KONVERTERING TIL PDA...52 11.5.3. ODBC- OG ADOCE- DRIVARAR...52 12. UTFORDRINGAR...52 13. OPPSUMMERING...53 13.1. PLANLEGGING...53 13.2. ORGANISERING...53 13.3. OPPFØLGING...54 13.4. EVALUERING...54 13.5. KONKLUSJON...54 13.6. NEDLASTING AV PROGRAM OG KJELDEKODE...54 14. REFERANSELISTE...55 15. VERKTYLISTE...55 16. VEDLEGG...55 7

5. Innleiing Dagens kryssordløysarar har eit mangfald av ulike hjelpemiddel å velje mellom, både oppslagsbøker, ordlister og leksikon. Mange av forlaga som distribuerar desse bøkene tilbyr og digitale løysingar. Med prosjektet Finn Ordet ynskjer vi å utvikle ei slik digital løysing for PC, internett og PDA. Utfordringa vert å lage gode og effektive applikasjonar som gjev snøgge svartider til brukaren. 5.1. Bakgrunn Det var Knut Erling Øien som gav oss ideen om å velje ei slik utviklingsoppgåve. Interessa for prosjektet kom først og fremst av moglegheita for programmering til PDA. Det var heller ingen tidlegare prosjektoppgåver som dreia seg om programmering til PDA ved HSF. Utifrå skulen sin erfaring med dette, såg vi på oppgåva som eit forskingsarbeid. I tillegg ynskte vi å lære meir om programmering med Java, databasar og internett. Vi ville med andre ord få bruk for mykje av kunnskapane vi hadde tileigna oss gjennom studiet. 5.2. Problemstilling Den fyrste problemstillinga vår tok sikte på å utvikle ein digital kryssordhjelpar for internett, PC, PDA og SMS. Tanken med SMS var at ein kunne senda inn nøkkelord og tal bokstavar frå mobiltelefon og få attende løysingsord. Dette var problemstillinga i utgangspunktet. Då det viste seg å vera meir arbeid enn ein hadde rekna med, såg vi oss nøydde til å kutta ut SMS delen. Den endelege problemstillinga vart difor slik: Korleis kan vi utvikle ein digital kryssordhjelpar for Internett, PC og PDA? Vi vil i vårt arbeid utvikle internettsider, applikasjon for veven, database og PDA applikasjon til hjelp for kryssordløysarar. 5.3. Føremål Føremålet med oppgåva er å laga ein digital kryssordhjelpar som kan dekka kryssordløysarane sine behov. I dag har ganske mange menneske eit eller anna forhold til datamaskiner. Det er ikkje utenkjeleg at ein del kryssløysarar ofte sit framfor eller i nærleiken av ei datamaskin. Då kan det vera enklare og raskare og nytta denne i staden for ei bok. Dagens datateknologi erstattar på mange måtar ein del bøker. Søk på internett kan gje vel så mykje informasjon som det bøkene gjer. Dette trur vi kan vera eit godt argument for å utvikla eit slikt system. Behova til ein kryssordløysar kan såleis definerast som hjelp til å finne synonym (løysingsord) til eitkvart nøkkelord, på eit gitt tal bokstavar. 8

Eit enkelt døme på kryssord for å presisere vår forståing av nøkkelord og synonym / løysingsord. 2 F Synonym / løysingsord 5.4. 1 Avgrensingar U E L E - ikkje komplett kryssordbok R S 1. Elv i Afrika 2. Aktuell Nøkkelord K 9

6. Introduksjon av PDA I 1993 kom Apple Computer Inc. med den fyrste PDA verda såg. PDA var ei avstutting for Personal Digital Assistant. Formannen i Apple Computers Inc. i 1993, John Sculley, såg føre seg at PDA ville verta eit uunnverleg verkty. PDA skulle kunne lagra telefonnummer, halda styr på kalander, lagre notat, og i tillegg sende og motta data trådlaust, tiltross for at han då ikkje kunne visa fram alle desse funksjonane. I mars 1996 leverte Palm TM Inc. den fyrste sanne handhaldne datamaskina, PalmPilot. Denne inneheldt nesten alle dei funksjonane Sculley imponerte verda med, sett vekk i frå sending og mottak av data trådlaust. Etter dette tok PDA- salet fullstendig av. Travle forretningsmenn kunne sparke sekretæren sin, private avtalar kunne digitaliserast og presset på mor vart mindre. (http://www.handango.com, 2003-05-08) I dag inneheld PDA: kalender, avtalebok, adresselister, e-post, nettlesar, MP3-spelarar, videovisar, diktafon og kamera for å nemna nokon. Med trådlaust samband vert PDA òg integrerte mobiltelefonar med WAP, miniatyr-tv og anna. 7. Val av systemutviklingsmodell I prosessen med å utvikle eit program er det i dag ikkje tilstrekkeleg å sette i gong med koding og design utan struktur på arbeidet. Det er ting som lyt tenkast gjennom og planleggast nøye, ein lyt rett og slett følgja ein strategi. Utviklingsprosessane føregår i dag etter normerte modellar. Dette er modellar som har vore brukte mange gonger og vorte ei slags rettesnor innan systemutvikling. Ein utviklingsmodell inneber som regel fleire steg og reglar. Ein god utviklingsmodell gjev systemutviklinga eit fyldig og grundig fundament. Det er fornuftig å følgje ein systemutviklingsmodell som har vorte nøye testa og utprøvd. 7.1. Modellar 7.1.1. Fossefallsmodellen Fossefallsmodellen er den eldste og mest brukte tradisjonelle modellen av desse. Denne modellen er eit godt døme på ein stegvis utviklingsprosess. Ein lyt byrja på toppen og jobba seg nedover. For å koma til neste steg, må gjeldande steg vera ferdig og dokumentasjon som skildrar resultatet føreligge. Ein har heile tida moglegheit til å gå attende eit steg om dette er naudsynt. Å gå attende fleire steg vil ofte verta problematisk då tidsbruket i kvar fase er fastsett på førehand. 7.1.2. Evolusjonsmodellen Evolusjonsmodellen er ein syklisk modell der utviklinga føregår i ein runddans med stadige forbetringar av produktet. Ein kan difor aldri sjå på systemet som ferdig. Denne modellen har med brukaren frå fyrste stund og legg derfor stor vekt på brukarpåverknad. 10

7.1.3. Spiralmodellen Spiralmodellen er eigentleg ein utbetra fossefallsmodell som har oppstått etter fleire år med eksperimentering. Skilnaden er at detaljer i utviklinga her vert endra fleire gonger før ein kjem i mål. Eit døme på dette er at ein gjennom heile prosessen føretek risikoanalysar der vegen vidare og moglege fallgruver vert evaluert. Kvar sykel vert starta med planlegging der ein får klargjort kva som skal gjerast og i kva rekkefølgje dette skal skje. Kvar sykel vert avslutta med ein gjennomgang der dei som skal nytta sluttproduktet deltek. Ei ulempe er at ein er avhengig av ekspertise til å gjennomføre risikoanalysar. Det å utarbeide framtidsplanar er og vanskeleg. (http://www.ils4you.no, 2003-05-08). 7.2. Vårt val 7.2.1. Evolusjonsmodellen Ein syklisk prosess er best eigna når vi skal inn på nye og ukjende områder. Vårt utviklingsarbeid vil og vere avhengig av tilbakemelding frå brukarane og bere preg av endringar undervegs. Difor har vi valt evolusjonsmodellen. 7.2.2. Prototyping Ein velkjend teknikk under evolusjonsmodellen er prototyping. Prototyping går ut på å utvikle forslag til applikasjon som vert evaluert av sluttbrukarar etterkvart. Ein avgjer då om denne skal vidareutviklast eller endrast. Slik held ein fram heilt til brukaren er nøgd med sluttresultatet. Nøkkelen i prototyping er at sluttbrukaren skal vere med å evaluere under heile prosessen. Slik sikrar ein brukarvenleiken og ein unngår store steg i feil retning. Prototyping vert mest nytta i samband med utvikling av mindre applikasjonar. I større applikasjonar (meir enn 100 000 kodelinjer) kan prototyping verte for ressurskrevjande, dersom det vert store endringar i koden. Her nyttast prototyping i staden til utvikling av delfunksjonar. Desse innlemmast i hovudapplikasjonen når dei er ferdig utvikla. Prototyping delast opp i to typar: Horisontal: Forenkla utvikling av mange funksjonar for å gje sluttbrukar eit bilete av heilskapen til applikasjonen. Horisontal prototyping er utvikling i breidda. Ulempa er at brukaren ikkje får testa funksjonaliteten skikkeleg. Vertikal: Fullstendig utvikling av utvalte funksjonar for at sluttbrukar kan teste funksjonaliteten. Vertikal prototyping er utvikling i djupne. Ulempa er at brukaren ikkje får sjå heilskapen i applikasjonen. 11

Finn minstekrava Lag ein fungerande prototype Bruk prototypen JA Brukar fornøgd? NEI Gjer ferdig prototypen! Lag ein forbetra prototype (Laudon&Laudon:2000, kap 12, s373) I utviklingsoppgåva vår er prototyping heilt klart den best egna utviklingsmetoden. Vi ser ein kombinasjon av horisontal og vertikal prototyping som den mest aktuelle tilnærminga, sidan vi ynskjer eit heilskapeleg bilete og god kontroll undervegs. Når applikasjonen først har fått ein heilskap ser vi på det som eit grunnlag til å køyra ein test med fleire sluttbrukarar. Positivt utfall på ein slik test vil prova at me er på rett køyr. 12

8. UML 8.1. Database 8.1.1. Klassediagram / datamodell for databasen Nokkelord 1 har 0..* Oppforing nokkelordid: int(auto); nokkelord: String(50); nokkelordid:int; loysingsordid: int; 1..* har 1 Loysingsord loysingsordid: int(auto); loysingsord: String(50); talbokstavar: int; ordklasse: String(40); ending: String(20); kommentar: String(150); Under arbeidet med datamodellen har det vore store diskusjonar kring kompleksiteten til databasen. Ein enkel database som skissert over, vil vere det enklaste å implementere med tanke på at den skal kunne køyrast på vanleg datamaskin òg PDA. For å kunne lage eit program som svarar til ein kryssordløysar sine behov er det viktig å heile tida ha fokus mot brukarvenleik. Brukaren stiller store krav til raske svartider, og vi har i heile vår utvikling hatt dette i bakhovudet. Dette gjenspeglar seg i databasen. Eit spørsmål som vi stillte oss i ein tidleg fase, var om ei spørjing mot databasen som til dømes nøkkelordet topp skulle gje svar som isse og fjell, medan nøkkelordet topper skulle gje svar som isser og topper. Desse grammatiske utfordringane kan løysast ved utvikling av ein kompleks database med eigne entitetar for ordklasser og bøyingar. Dette kan verte grunnlag for fleire unøyaktige oppslag, sidan det vert eit forsøk på å gjere systemet intelligent. Det vil òg kreve store ressursar i utviklinga for å oppnå ein normalisert database. 13

Vi ser heller større nytte av å sette reglar for databasen. Alle ord skrivast inn i eintalsform og gjev svar deretter. For å hanskast med dei grammatiske utfordringane har vi valt å implementere attributta ordklasse, ending, og kommentar. På denne måten kan brukaren likevel få naudsynt informasjon om det enkelte ord og kople med aktuelle endingar. Val av entitetar/ klasser Under utveljinga av entitetar har vi lagt vekt på at det skal vere ei enkel løysing. Vi har følgjande entitetar: Nokkelord, Oppforing og Loysingsord. Ei slik løysing vil gje ein mindre database sidan ein ikkje treng å lagre alle ord i dei ulike grammatiske formene. I fullskala reknar ein med ca 300 000 løysingsord i databasen. Desse er då skrivne utan bøying, altså i grunnform. Døme: topp - toppen - toppar - toppane Løysinga vil likevel gje ein del duplikatverdiar. Duplikat vil oppstå når eit nøkkelord også vert eit løysingsord eller omvendt. Vår databaseløysing vil gjere at ein må lagre ordet både som nøkkelord og løysingsord. Felles database Vi ynskjer å utvikle databasen slik at den skal kunne brukast til både internett, PC og PDA. Dette vil gjere systemet enklare og oppdatering i databasen vert gyldige i alle dei tre applikasjonane vi skal lage. 8.2. Internett Applikasjon 8.2.1. Applet Grunnform 8.2.1.1. Bruksmønsterdiagram Søk med nøkkelord Brukar Søk utan nøkkelord Søk i nøkkelord 14

8.2.1.2. Bruksmønster Brukaren presenterast for eit program som er delt opp i tre hovudvindauge. Generelle funksjonar som hjelp, fram og attende knappar og søk knapp er tilgjengelege i alle vindauge. 1. Søk med nøkkelord: Brukaren skriv inn nøkkelord og tal bokstavar for løysingsordet han søkjer. Søkeresultatet vert skrive til skjerm. Kvart ord i resultatet er kopla med ein info knapp. Ved å trykke på denne får ein opp ordklasse, endingar og synonym til ordet. Dersom brukaren kjenner nokre av bokstavane i løysingsordet, kan han trykke på knappen Kjenner bokstavar og skrive desse inn. 2. Søk utan nøkkelord: Ved å skrive inn tal bokstavar til løysingsordet vil brukaren får fram alle løysingsord som samsvarar. Dersom brukaren kjenner nokre av bokstavane i løysingsordet, kan han trykke på knappen Kjenner bokstavar og skrive desse inn. 3. Søk i nøkkelord: Dersom brukaren ynskjer å sjå alle nøkkelorda som er tilgjengelege i databasen kan han slå opp alle nøkkelord innanfor ein gitt bokstav. Resultatet skriv ut orda med tilhøyrande knappar: Bruk og Vis løysingsord. Knappen Bruk køyrer vindauget Med nøkkelord og puttar nøkkelordet i innskrivingsfeltet slik at ein kan gjera søk. Knappen Vis løysingsord skriv ut alle løysingsord under dette nøkkelordet. 15

8.2.2. Tenarkontrollen 8.2.2.1. Bruksmønsterdiagram Administrator Sjå informasjon Endre innstillingar Vis logg Sjå aktivitet Stogg tenar Køyr omstart 8.2.2.2. Bruksmønster Tenarkontrollen er bygd opp med eit Java- grensesnitt og gjev systemansvarlege tilgjenge til styringsfunksjonar for tenaren. 1. Informasjon: Ved å klikke på informasjonsknappen får ein opp status for tenaren: ip- adresse, siste starttidspunkt, startlengde, tal nøkkelord, tal løysningsord, tal synonym, tal førespurnadar og kor lenge ein klient kan vere inaktiv før han vert avslutta. 2. Innstillingar: Her kan den tilletne tida ein klient kan vere inaktiv endrast. 3. Vis logg: For kvar veke vert all aktivitet lagra i loggen. Denne funksjonen gjev tilgjenge til alle logg- filene. Ein kan velje kva veke ein vil sjå loggen for. Logg fila inneheld følgjande informasjon: dag, tidspunkt, kva som vart gjort (døme: starta, stogga, oppretta tråd osb.) og feil (eventuelle feil som har funne stad). (Sjå kap. 11.2.3, underpunkt Kontrollmekanismar i tenaren ). 4. Aktivitet: All aktivitet vert lista opp i vindauget etter kvart som noko skjer. 5. Restart tenar: Startar tenaren på nytt. 6. Stogg tenar: Stoggar tenaren. 16

8.2.3. Komponentdiagram JDBC/ ODBC Database «kommunikasjon» :DatabaseTabellar Java server HashMap :DataBaseConnection :Hashtabell :Server_logg :Oppslag Tenarkontroll :Ord :Ord :Ord :Java brukargrensesnitt :EmneOppslag :Tråd :Ord :Ord :Ord TCP/IP «kommunikasjon» Nettlesar :Applet 17

8.3. PC 8.3.1. Bruksmønsterdiagram Søk med nøkkelord Søk utan nøkkelord Søk i nøkkelord Brukar Legg til ord 8.3.2. Bruksmønster PC- applikasjonen består av eit Java-grensesnitt som jobbar mot ein database. PC- applikasjonen er lik med internettapplikasjonen bortsett frå at ein her har redigeringsmoglegheiter. I tillegg til dei tre vindauga som ein har i internettapplikasjonen har ein her Legg til ord vindauge og ein redigeringsbrytar som anten kan vera av eller på. Funksjonsskildringa tek føre seg det som ikkje er likt med Internettapplikasjonen. 1 og 2. Søk med nøkkelord og søk utan nøkkelord : Når redigeringsknappen er på vert søkeresultata skrivne ut med knappane Rediger og Slett i tillegg til Info knappen. Redigeringsknappen gjev brukaren moglegheit til å endre registrerte opplysningar om ordet (Skrivemåte, ordklasse, endingar og kommentar). Slett knappen nyttast dersom ordet skal slettast frå databasen. 3. Søk i nøkkelord: Når redigeringsknappen er på vert søkeresultata skrivne ut med knappane Nytt løysingsord, Rediger og Slett i tillegg til Bruk og Vis løysingsord. Knappen Nytt løysingsord gjev brukaren høve til å leggje til nye løysingsord under dette nøkkelordet. Knappen Rediger opnar eit skjema der brukaren kan føra inn endringar om gjeldande nøkkelord. Knappen Slett nyttast dersom dette nøkkelordet 18

skal slettast. For å slette, må alle løysingsord under dette nøkkelordet slettast fyrst. 4. Legg til ord: Denne funksjonen er berre tilgjengeleg på PC-applikasjonen. Her kan brukaren legge til nye nøkkelord med tilhøyrande løysingsord eller legge til løysingsord under eit eksisterande nøkkelord. 8.3.3. Komponentdiagram Database JDBC/ODBC «kommunikasjon» :DatabaseTabellar GUI :Database Connection :Java grensesnitt 8.4. PDA 8.4.1. Bruksmønsterdiagram Likt med 8.2 internett applikasjon 8.4.2. Bruksmønster Likt med 8.2 internett applikasjon 19

8.4.3. Komponentdiagram ADOCE Database «kommunikasjon» :DatabaseTabellar GUI :Database Connection :evb grensesnitt 20

9. Val av utviklingsspråk 9.1. Generelt Val av utviklingsspråk må ta omsyn til kva type applikasjon ein skal lage. Det er mange faktorar som spelar inn og ein må heile tida vere fokusert på kva som tener applikasjonen best. Ein må og vere observant på kompatibilitet mellom programmeringsspråk og brukarmediet ein utviklar for. 9.2. Java Sun Microsystems JAVA versjon Java 2 Platform, Standard Edition (J2SE) er eit objektorientert programmeringsspråk for utvikling og distribuering av objektorienterte program. J2SE har dei naudsynte verkty, kompilator og API ar, for programmering og eksekvering av appletar og applikasjonar laga med Java. Java er eit fullstendig objektorientert programmeringsspråk. Dette gjer det mogeleg å dele opp problem i mange småbitar gjennom definering av fleire klasser. Denne splitt og hersk metoden saman med polymorfisme, arv og innkapsling gir moglegheiter for generalisering og gjenbruk av kode på ein effektiv og god måte. Java er eit plattformuavhengig språk som kan køyrast på Windows, UNIX og Macintosh baserte operativsystem. Java kan lastast ned gratis via http://java.sun.com. 9.3. Microsoft embedded Visual Basic Microsoft embedded Visual Basic er eit programmeringsspråk basert på Microsoft sin standard Visual Basic. Språket/ programmet er eit 4 generasjons utviklingsverkty som gjev programmeraren moglegheiter til å teikne brukargrensesnitt og gje eigenskapar til dette. embedded Visual Basic har innebygde moglegheiter til debugging og distribusjon av programvare til PDA. embedded Visual Basic er ikkje eit objektorientert, men eit hendingsdrive programmeringsspråk. Det kan berre køyrast på Windows baserte operativsystem for PDA. 9.4. Database Databasen bør veljast med omsyn til storleik, kapasitet og pris. Ein må vite kva type og kor store mengder data som skal lagrast. Om det er ei einbrukar eller fleirbrukar løysing kan og spele ei sentral rolle i valet. Det er og viktig at løysinga har god stabilitet slik at innlagde data er tryggja. Databasen bør ha støtte for SQL (sjå punkt 9.8) og det bør vere utvikla drivarar for kopling mot programmeringsspråket ein nyttar. Ulike databaseløysingar kan vere: Oracle, Sybase, Microsoft SQL Server, MS Access, Ingres, MySQL, o.a. 9.5. HTML HTML er avstutting for HyperText Markup Language. HTML koden fortel nettlesaren korleis informasjon skal visast på skjermen. 9.6. PHP PHP er eit programmeringsspråk for utvikling av dynamiske vevsider. PHP er ei avstutting for HyperText Preprocessor. 21

9.7. CSS Stilsett språket CSS (Cascading Style Sheet) vert nytta i samband med HTML for å presentere informasjon i eit spesifisert format. Ein kan definere desse formata i ei eiga.css fil. Dersom ein lagar fila design.css, må ein ha følgjande line i <HEAD> taggen på HTML dokumentet: <link rel="stylesheet" type="text/css" href="design.css"> Sjølve css fila kan til dømes innehalde følgjande kode for tekstformat til <TD> taggen i ein tabell: TD { } font-family: Verdana; font-size: 10px; color: #000000; Tekstformatet vil sjå slik ut: Alle <TD> i dette HTML dokumentet har no denne formateringa. Ein av fordelane med bruk av CSS er generalisering av utskriftformat. Ein treng ikkje spesifisere formatet fleire stader. Endringar i CSS fila vil endra alle stader der denne er kalla. 9.8. SQL SQL er ei avstutting for Structured Query Language og er eit språk for kommunikasjon med databasar. SQL er ein standard som dei fleste databaseløysingar i dag støttar. SQL kommandoar nyttast for å utføre oppgåver i ein database. Standard kommandoar i SQL er: "SELECT", "INSERT", "UPDATE", "DELETE", "CREATE", og "DROP". 9.9. Vårt val Når vi skulle velje programmeringsspråk og databaseløysing var det viktig å prøve å få til like løysingar for alle tre applikasjonane. Dette var vanskeleg sidan prosjektet Finn Ordet utvikla applikasjonar for vidt forskjellige brukarmedium. I byrjinga hadde vi det klart for oss at vi ville nytte Java i samband med database som programmeringsspråk for applikasjonane. Vi har nytta Java til programmering av internett- og PC- applikasjonen. PDA applikasjonen var ikkje mogeleg å programmere i Java grunna manglande databasedrivarar. Vi nytta i staden embedded Visual Basic. Alle program som skal nytte ein database krev ei kopling til denne. Til dette har Java JDBC (JavaDataBaseConnectivity) drivarar ( http://java.sun.com/j2se/1.4.1/docs/guide/jdbc/index.html, 2003-05-13). I tillegg har ein ODBC- (OpenDataBaseConnectivity) (http://www.mellvik.no/mr/pdf/mr27.pdf, 2003-05-13) og Microsoft sin ADO- (ActiveXDataObjects) drivarar ( http://www.aspstreet.com/resources/glossary/d.taf/id,770, 2003-05-13). Vi har nytta JDBC/ODBC bru mellom Java og MS Access i internett- applikasjonen og PC- 22

applikasjonen. Til PDA har vi brukt ADOCE som er ein variant av ADO for PocketPC. Valet av databaseløysing enda på MS Access. Dette er ein database vi har nytta tidlegare og kjenner bra. Vi har og tidlegare kjennskap til SQL, som MS Access har støtte for. Operativsystemet til PDA, PocketPC, er og lagt til rette for MS Access, eller PocketAccess som det heiter. Vi har vore i kontakt med Torstein Lunde ved Favourite Systems, som har utvikla programmet Kiss the tram, der bussruter vert presenterte på PDA. Denne løysinga vart laga med PocketAccess. Dette gjer at vi veit at det er mogeleg å bruke MS Access/ PocketAccess til PDA. Dette var ein viktig faktor for vårt val. Databasevalet gjer òg at same database kan nyttast til internett-, PC- og PDA- applikasjonane. 10. Design Valet av design er kanskje eitt av dei viktigaste punkta i samband med ei slik utviklingsoppgåve. Korleis skal applikasjonen sjå ut? Kva fargar skal vi nytta? Kva utsjånad er det som freistar dei framtidige brukarane? I design spørsmålet er det heilt klart på sin plass med ein brukartest på applikasjonane. 10.1. Generelt Førsteinntrykket applikasjonen gjev brukaren kan vere heilt avgjerande for om denne personen vil bruka systemet eller ikkje. Dersom nøkkelvindauget er rotet, har dårleg fargeval eller ser komplisert ut, er det ikkje sikkert applikasjonen har ei framtid. Brukaren må dessutan ha tilgong til dei funksjonar han har behov for. Med utarbeiding av skisser må utviklarane sjå programmet gjennom brukaren sine auge i dei ulike sesjonane av programmet. Då bør ein kunne tenkje seg til kva som bør vera der og korleis ting bør sjå ut. Før utviklinga byrja teikna vi difor grunnskisser av designet, medan vi tenkte oss korleis programmet skulle brukast. Dette gjorde vi med papir og blyant. Denne tilnærminga er spesielt viktig når programmerar sjølv tek del i prosessen. På denne måten tek ein fokus vekk frå alt som har med datamaskiner å gjere. Faren med å ha med programmerarar er at dei fort tenkjer på den tekniske biten når dei skal teikna eit design. Slike ting kan setja ei sperre på kreativitet og originalitet. Vi trur det kan vera lurt å ikkje tenka data når ein skal sjå føre seg eit design. Eventuelle tekniske utfordringar er noko ein skal ta stilling til ved eit seinare høve. Det er heller ikkje uloveleg å gjera om eit design i ein seinare fase dersom det viser seg at det vert umogleg å gjennomføra. 10.2. Internett Internett applikasjonen var den fyrste biten av utviklingsprosjektet. Denne applikasjonen sette standard for korleis dei andre skulle sjå ut. Det er viktig at applikasjonane køyrer same layout då det er det same produktet, berre tileigna fleire medium. Utsjånaden vart om lag heilt slik vi hadde tenkt det på førehand. Utviklinga skjedde på grunnlag av denne skissa: 23

Slik vart det ferdige resultatet: Når ein samanliknar desse ser ein at det er lagt til nokre få ting på det endelege resultatet. Enkel og tydeleg design var viktige stikkord. Store knappar og svart og blå skrift på kvit bakgrunn er for dei fleste enkelt å halde seg til. Gul farge på knappane gjev dei fokus. Bortsett frå innskriving av ord, tal og bokstavar er det tross alt knappane som skal nyttast. Då er det viktig at desse er tydelege og enkle. Applikasjonen har og ein fram- og attende- knapp for å enkelt kunne navigere i utførte søk. Desse er og laga store og ikona forklarar seg sjølv. 24

Internettapplikasjonen har og ein tenarkontroll. Denne er laga for tenar administrasjon. Dette skjermbilete er med for å vise at designet i alle delar av applikasjonane er samkøyrt. Då designet på internettapplikasjonen var ferdig utvikla, med litt avgrensa funksjonalitet (horisontal prototyping), såg vi på dette som eit grunnlag for å køyra ein brukartest. Ein slik test ville først og fremst gje tilbakemelding på utsjånad (fargar, oppsett og plasseringar). Brukartesten bestod av følgjande punkt: 1. Kva fyrsteinntrykk får du av skjermbilete? 2. Kva tykkjer du om fargevalet vårt for applikasjonen? 3. Er funksjonaliteten ok? 25 20 15 10 5 Særs bra Heilt greitt Dårleg 0 1. spørs. 2. spørs. 3. spørs. Diagrammet syner resultata frå brukartesten. Vi hadde 36 testpersonar som deltok. Utfallet viste at designet var brukbart. Vi tolka dette positivt, og valde å fortsette utviklinga utan store endringar. Tilbakemelding frå nokre brukarar i testpanelet sette oss på tanken å implementere fram- og attende- funksjon i applikasjonane. Sjølve kodinga bak har me ikkje evaluert anna enn med rettleiar. 25

10.3. PC PC-applikasjonen er identisk med internett- applikasjonen, bortsett frå at brukaren har moglegheit til å leggje til ord sjølv. Som ein ser på skjermbilete er det ein ekstra knapp til høgre i hovudmenyen, Redigering. 10.4. PDA På PDA opererar ein med eit mindre skjermbilete, noko som kan setja avgrensingar på designet. Tross dette lagde vi eit design som vart meir eller mindre ei miniatyr- utgåve av internett- og PCapplikasjonane. Funksjonaliteten er tilnærma lik internett applikasjonen. Fargar og oppsettet er det same. Som ein ser er ikkje fram- og attende- knappane med på denne. 26