02329: Datateknisk produktudvikling - Danmarks Tekniske Universitet
02329: Datateknisk produktudvikling - Danmarks Tekniske Universitet
02329: Datateknisk produktudvikling - Danmarks Tekniske Universitet
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Eksamensprojekt<br />
Titel: SAPS<br />
Sammenbinding Af Parknets Systemer<br />
Rapportnummer: IMM-B.Eng-2009-02<br />
Henrik Bering s032251<br />
Vejleder: Mads Nyborg<br />
Denne rapport indeholder 80 sider inklusiv denne side.<br />
Udtræk af rapporten:<br />
Denne rapport handler om udvikling af et nyt administrationssystem til en<br />
Internetudbyder på Nørrebro ved navn IT-lauget Parknet (herefter benævnt<br />
Parknet). Systemet skal styre, hvilke services som tilbydes til de specifikke<br />
adresser, brugere, opkrævninger og simulere styring af netværksudstyr via<br />
SNMP kommandoer.<br />
Analysen dækker Parknet i sin nuværende udformning med de eksisterende<br />
systemer. Designet af databasen og applikationen dækker ca. 90 % af<br />
Parknets tilslutninger. Der er implementeret ca. 75 % af designet. Resten<br />
står som forslag i afsnittet om ”forslag til forbedringer af SAPS”.<br />
Det er meningen, at SAPS i fuldt færdig form skal kunne erstatte Winkas<br />
(Winkas forklares i rapporten).<br />
SAPS kan ses kørende på adressen: http://saps.tiptop8.dk<br />
Online tilmelding kører på: http://opret.tiptop8.dk<br />
Testbruger til SAPS:<br />
Brugernummer: 11111111<br />
Password: password
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
1 Indholdsfortegnelse<br />
1.1 Outline<br />
1 Indholdsfortegnelse ..................................................................... 2<br />
2 Forord ....................................................................................... 4<br />
3 Indledning.................................................................................. 4<br />
4 Domænemodel og beskrivelse af Parknet ........................................ 6<br />
5 Analyse.................................................................................... 17<br />
6 Design ..................................................................................... 26<br />
7 Implementering ........................................................................ 34<br />
8 Test......................................................................................... 50<br />
9 Forslag til forbedringer af SAPS ................................................... 58<br />
10 Procesafsnit.............................................................................. 60<br />
11 Konklusion ............................................................................... 61<br />
12 Spørgsmål og svar med Parknets chef .......................................... 62<br />
13 Anbefaling til Parknet ................................................................. 63<br />
14 Lister....................................................................................... 64<br />
15 Bilag........................................................................................ 65<br />
1.2 Index<br />
1 Indholdsfortegnelse ..................................................................... 2<br />
1.1 Outline .......................................................................................2<br />
1.2 Index .........................................................................................2<br />
2 Forord ....................................................................................... 4<br />
3 Indledning.................................................................................. 4<br />
3.1 Formål .......................................................................................4<br />
3.2 Succeskriterie..............................................................................4<br />
3.3 Målgruppe...................................................................................5<br />
3.4 Læsevejledning............................................................................5<br />
4 Domænemodel og beskrivelse af Parknet ........................................ 6<br />
4.1 Historien bag Parknet ...................................................................6<br />
4.2 Parknets services (pr. 1/1-2009)....................................................7<br />
4.2.1 TV ..........................................................................................7<br />
4.2.2 Telefon....................................................................................7<br />
4.2.3 Internet ..................................................................................7<br />
4.2.4 Generelt ..................................................................................7<br />
4.3 Beskrivelse af Parknets netværk.....................................................8<br />
4.4 Beskrivelse af tekniske anlæg i Parknet...........................................9<br />
4.5 Beskrivelse af Parknets administrationssystemer ............................10<br />
4.6 Beskrivelse af en bruger i Parknet ................................................14<br />
4.7 Beskrivelse af procedurer i Parknet...............................................14<br />
4.7.1 Oprettelse af Internet..............................................................14<br />
4.7.2 Oprettelse af et telefonnummer ................................................14<br />
4.7.3 Oprettelse af TV/ændring af TV pakke .......................................14<br />
4.7.4 Bookning af teknikerbesøg .......................................................15<br />
4.7.5 Opkrævning...........................................................................15<br />
4.7.6 Overdragelse af abonnement....................................................15<br />
4.7.7 Diagram over domænemodellen ...............................................16<br />
5 Analyse.................................................................................... 17<br />
5.1 Kravspecifikation til det nye system..............................................17<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 2 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
5.1.1 Funktionelle krav ....................................................................17<br />
5.1.2 Non funktionelle krav ..............................................................18<br />
5.1.3 Designvalg.............................................................................19<br />
5.2 Analyse af applikationen .............................................................20<br />
5.2.1 Use case diagram ...................................................................20<br />
5.2.2 Aktørbeskrivelser....................................................................21<br />
5.2.3 Overordnede use case beskrivelser............................................21<br />
5.2.4 Detaljerede use case beskrivelser .............................................23<br />
5.3 Analyse af databasen til Parknet...................................................25<br />
6 Design ..................................................................................... 26<br />
6.1 Databasen ................................................................................27<br />
6.1.1 Databasediagram ...................................................................27<br />
6.2 SAPS........................................................................................30<br />
6.3 Online tilmelding........................................................................30<br />
6.4 Sitemap over SAPS og online tilmelding ........................................31<br />
6.4.1 Designklassediagram SAPS ......................................................32<br />
Designklassediagram online tilmelding ....................................................33<br />
7 Implementering ........................................................................ 34<br />
7.1 Databasen ................................................................................34<br />
7.1.2 Stored Procedures ..................................................................38<br />
7.1.3 Views....................................................................................38<br />
7.2 Sitemap over SAPS og online tilmelding ........................................39<br />
7.3 SAPS........................................................................................40<br />
7.3.1 Beskrivelse af de forskellige JSP filer .........................................40<br />
7.4 Online tilmelding........................................................................44<br />
7.4.1 Beskrivelse af de forskellige JSP filer .........................................44<br />
7.4.2 State diagram ........................................................................47<br />
7.5 Implementeret og ikke-implementeret: .........................................48<br />
8 Test......................................................................................... 50<br />
8.1 Indledning ................................................................................50<br />
8.2 Demonstration...........................................................................50<br />
8.3 Brugertest ................................................................................50<br />
8.3.1 Test cases .............................................................................50<br />
8.4 Fejlrapportering og fejlliste..........................................................56<br />
8.5 Test konklusion .........................................................................57<br />
9 Forslag til forbedringer af SAPS ................................................... 58<br />
10 Procesafsnit.............................................................................. 60<br />
11 Konklusion ............................................................................... 61<br />
12 Spørgsmål og svar med Parknets chef .......................................... 62<br />
13 Anbefaling til Parknet ................................................................. 63<br />
14 Lister....................................................................................... 64<br />
14.1 Litteratur liste ...........................................................................64<br />
14.2 Forkortelser brugt i rapporten ......................................................64<br />
14.3 Figurliste ..................................................................................64<br />
15 Bilag........................................................................................ 65<br />
15.1 Bilag 1 – Projektoplæg................................................................65<br />
15.2 Bilag 2 – Billede af krydsfeltet b16x16 ..........................................68<br />
15.3 Bilag 3 – billeder af TV skab ........................................................69<br />
15.4 Bilag 4 – Indhold på CD-rom: ......................................................71<br />
15.5 Bilag 5 – Installationsvejledning til SAPS .......................................72<br />
15.6 Bilag 6 – Brugermanual til SAPS...................................................73<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 3 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
2 Forord<br />
Dette projekt er udført i forlængelse af min ingeniørpraktik hos Parknet. Det<br />
tager udgangspunkt i manglende samspil mellem Parknets mange systemer<br />
– heraf projekttitlen: ”Sammenbinding Af Parknets Systemer (SAPS)”. Jeg<br />
vil gerne sige tak til Parknets medarbejdere og bestyrelse for at lade mig<br />
være i ingeniørpraktik og efterfølgende skrive eksamensprojekt om Parknet.<br />
3 Indledning<br />
Denne rapport handler om et bruger- og netværksadministrationssystem til<br />
Parknet. Systemet er skræddersyet til Parknet og vil ikke have anvendelsesmuligheder<br />
andre steder.<br />
Systemet tager udgangspunkt i en analyse af Parknets nuværende systemer<br />
og forretningsgange herunder: Netværket, databaser, opkrævninger,<br />
brugere, arbejdsgange og samspillet imellem systemerne.<br />
3.1 Formål<br />
Formålet med projektet er følgende:<br />
• At vise, hvordan mange systemer, udviklet i forskellige<br />
programmerings–sprog og kørende på forskellige styresystemer, kan<br />
samles i et system med en fælles brugergrænseflade.<br />
I forbindelse med udvikling af systemet bliver følgende udarbejdet:<br />
• detaljeret beskrivelse af to udvalgte use cases<br />
• domænemodel (analysedokumentation)<br />
• databasemodel<br />
• dokumentation af implementeret kode (på cd-rom)<br />
• dokumentation af implementerede databasetabeller (på cd-rom)<br />
• test<br />
• forslag til forbedringer af systemet<br />
3.2 Succeskriterie<br />
At SAPS kan bruges af Parknet i daglig drift.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 4 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
3.3 Målgruppe<br />
Den primære målgruppe for denne opgave med tilhørende rapport er lærer<br />
og censor. Sekundær er Parknet, som vil kunne bruge produktet til<br />
administration.<br />
Systemet vil også kunne bruges af andre mindre bredbåndsudbydere, men<br />
vil kræve nogen tilpasning til deres forretning.<br />
Læseren formodes at have kendskab til programmering og unified modelling<br />
language (UML), hvorfor der ikke kan forventes forklaringer på mindre<br />
problemstillinger.<br />
3.4 Læsevejledning<br />
Overordnet starter jeg med en analyse af de nuværende systemer og<br />
måden, de bliver anvendt på. Dernæst beskriver jeg forslag til, hvordan<br />
tingene kunne gribes an i stedet for. I forbindelse med dette vil jeg ofte<br />
referere til, hvordan tingene bliver gjort nu for at vise forskellen mellem det<br />
nye og det nuværende system. Det nye system skal testes, hvilket til dels<br />
bliver gjort undervejs i udviklingsprocessen. Den store test bliver at<br />
demonstrere systemet for Parknets medarbejdere og få deres<br />
kommentarer. Eventuelle forslag til forbedringer kommer med i kapitlet om<br />
forslag til forbedringer. Afrunding på rapporten bliver en konklusion, et<br />
kapitel med spørgsmål og svar til Parknets chef og en række anbefalinger til<br />
Parknet.<br />
Craig Larmans (1) indgangsvinkel til objekt orienteret analyse er brugt i<br />
rapporten.<br />
Jeg berører kortvarigt elementer fra bogen ”Goal directed project<br />
management” (5).<br />
Undervejs i rapporten anvendes ordene krydsfelt, intersection og x-felt i<br />
flæng. Der menes det samme uanset, hvilket ord som er brugt. Derudover<br />
bruges også ordene abonnement, ydelser og service i betydningen -<br />
abonnement.<br />
Jeg bor i andelsboligforeningen Lindegaarden og undervejs i rapporten<br />
refereres der til denne boligforening. Testdata i SAPS er baseret på A/B<br />
Lindegaardens tilslutning til Parknet.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 5 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
4 Domænemodel og beskrivelse af Parknet<br />
4.1 Historien bag Parknet<br />
Parknet er et IT-laug på Nørrebro, som leverer Internet, telefoni og TV. Der<br />
er fire fastansatte og en studentermedhjælper. Bogholderifunktionen er<br />
outsourcet og bestrides af en fultids- og en deltidsansat.<br />
Parknet blev formelt stiftet 1. januar 2004 som en forening uden ansatte,<br />
dvs. alt var baseret på ildsjæles frivillige arbejde. På dette tidspunkt var der<br />
ca. 1.000 tilslutninger. I løbet af 2005 blev der penge nok til at ansætte de<br />
første folk på fuldtid. Det medførte en øget interesse for Parknet, da visse<br />
boligforeninger havde været skeptiske overfor en organisation uden ansatte<br />
og dermed uden mulighed for at stille krav til kvaliteten af de leverede<br />
services. 2006 blev det hidtil største vækst år for Parknet og antallet af<br />
tilslutninger var pr. 31. december 2006 nået op på 7.000.<br />
I 2007 var fokus på konsolidering af tilslutningerne da, der var inkonsistens<br />
i data og manglede opdatering af dokumentation i forbindelse med alle<br />
tilslutningerne i 2006. Opdatering og oprydning pågår stadig og er et af<br />
kravene for at kunne automatisere netværket yderligere.<br />
I 2008 er Indre Nørrebro IT-laug med navnet Firkantnet koblet til Parknet.<br />
Det medførte en forøgelse på 2.000 tilslutninger og bringer det samlede<br />
antal tilslutninger pr. 1. januar 2009 op på ca. 10.500. Desværre skete der<br />
også det kedelige, at Parknet mistede den ene af sine 3 services i 2008 –<br />
TV. I hovedtræk var det uoverensstemmelser mellem YouSee, Viasat og<br />
Parknets måde at levere TV på, som gjorde at signalet blev lukket. Der blev<br />
dog hurtigt sammensat en løsning, som nu fortsat leverer TV til Parknets<br />
brugere (dog uden Viasatkanaler).<br />
Pr. 1. april er TV servicen tilbage i Parknets (det afsluttende arbejde med<br />
genimplementering pågår, mens denne rapport skrives). Derudover skal der<br />
ske en fortsat vækst i netværket. Mange, som er flyttet fra en adresse på<br />
Nørrebro med Parknet til et nyt sted uden Parknet, er store fortalere for<br />
Parknet på foreningernes generalforsamlinger. Det betyder en naturlig<br />
tilgang af nye foreninger. Parknet er i skrivende stund ved at tilkoble de<br />
første foreninger på Østerbro og Amager. Derudover har Parknet fået sin<br />
første ”Fiber to the Home (FTTH)” installation i drift i Haveforeningen<br />
Birkevang (Brønshøj ved Husum Torv). FTTH betyder, at der er lysleder til<br />
hver bruger i stedet for kobberkabler.<br />
Parknet, som startede med 1.000 tilslutninger i postnummer 2200 for 5 år<br />
siden, dækker nu over 2100, 2200, 2300, 2400, 2500 og 2700 med ca.<br />
10.500 tilslutninger.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 6 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
Parknets formål (jf. www.parknet.dk)<br />
Parknets mål er at levere bredbånd til alle, som er helt uden konkurrence<br />
på såvel kvalitet og ydelse som support.<br />
Parknets koncept<br />
Parknet er en non-profit, brugerejet og brugerstyret forening. Parknet<br />
består af mere end 100 boligforeninger, der er gået sammen om at indkøbe<br />
de bedst mulige bredbåndsydelser, som sælges videre til brugerne uden<br />
fortjeneste.<br />
4.2 Parknets services (pr. 1/1-2009)<br />
4.2.1 TV<br />
Parknet har fire TV pakker. Indholdet af pakkerne kan ses på Parknets<br />
hjemmeside. De fire pakker er:<br />
- Lille<br />
- Mellem<br />
- Stor<br />
- Super<br />
Da Parknet ikke længere har tilladelse til at transmittere Viasat skal<br />
medlemsforeningerne selv indgå en aftale med Viasat og hente signalet via<br />
egen parabol. Parknet sørger for den tekniske installation således, at Viasat<br />
kanalerne bliver lagt korrekt ind sammen med de øvrige kanaler fra<br />
Parknet.<br />
4.2.2 Telefon<br />
Parknet leverer analog telefoni til brugerne. I netværket køres<br />
telefontrafikken dog over IP. I nye foreninger monteres der altid<br />
Audiocodes, som er en IP telefoncentral.<br />
I de første Parknet foreninger sidder der analoge centraler af forskellige<br />
mærker (EADS, Philips og Matra).<br />
Abonnementet inkluderer ekstra services som: banke på, forstyr ikke,<br />
viderestilling, vis/skjul nummer, vækning og telefonsvarer.<br />
4.2.3 Internet<br />
Parknets ældste service er Internet. Brugerne er ikke garanteret nogen<br />
bestemt hastighed, men Parknet indkøber båndbredde, så brugerne i<br />
princippet altid har mindst 10/10 Mbit. Der er til gengæld ingen øvre<br />
begrænsning (andet end udstyrets nuværende begrænsning på 100 Mbit).<br />
Hvis der er ledig båndbredde, kan brugerne surfe og dele filer med op til<br />
100 Mbit.<br />
4.2.4 Generelt<br />
Visse foreninger har fælles abonnement på TV og/eller Internet, de får<br />
derfor servicen til en billigere pris, fordi foreningen selv står for opkrævning<br />
hos brugerne. Det kræver korrekt dokumentation, når brugere og<br />
foreninger skal opkræves rigtigt.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 7 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
4.3 Beskrivelse af Parknets netværk<br />
Parknets distributionsnetværk er baseret på lysleder. For det meste er der<br />
brugt single mode (SM), men enkelte steder (i de første foreninger) er der<br />
anvendt multimode (MM).<br />
Der er et antal hovedkrydsfelter i Parknet. Fra disse er der trukket<br />
blæsefiber, som enten er 7- eller 19-rørs. Dvs. at der inde i blæsefiberen er<br />
enten 7 eller 19 rør med en tykkelse på 5mm., hvori der med trykluft kan<br />
blæses fra 12 til 48 lysledere.<br />
Til en forening som har alle tre Parknet services bruges minimum 2 SM<br />
lysledere, men helst 3 for at sikre redundans.<br />
Den ene lysleder bruges til TV, som sendes med en bølgelængde på 1550<br />
nM. I foreningen sidder der en TV fibernode, der omdanner signalet i<br />
lyslederen til analogt TV signal, som efterfølgende fødes ind i en<br />
antenneforstærker og fordeles ud til brugerne. Det er mellem TV fibernoden<br />
og antenneforstærkeren at Viasat signalet lægges oven i Parknets jf.<br />
beskrivelsen i 4.2.1.<br />
Den anden lysleder bruges til data og telefoni. Backbonen i Parknet tilsluttes<br />
til den første switch i krydsfeltet via et SFP modul. Den nyeste generation<br />
behøver kun 1 lysleder (i stedet for 2 i gamle dage), da den kan sende data<br />
begge veje samtidigt. Den bruger 1310 nM til at sende på og 1550 nM til at<br />
modtage på.<br />
Den tredje lysleder (som godt kan undværes, hvis der mangler ledige fibre)<br />
bruges til at forbinde den sidste switch i en forening retur til Parknet. På<br />
den måde er netværket bedre rustet, så udfald i enkelte krydsfelter ikke går<br />
ud over flere brugere end højest nødvendigt.<br />
Når en ny forening skal tilkobles i nærheden af en eksisterende, blæses<br />
fiberen ofte kun imellem disse to foreninger. Forbindelsen mellem den nye<br />
forening og nærmeste hovedkrydsfelt skabes ved at bruge 2 af de ledige<br />
fibre fra den eksisterende forening til hovedkrydsfeltet. Tilkobling på denne<br />
måde er med til at holde udgifterne nede.<br />
Parknet er 100 % foreningsejet og tilsammen ejer alle foreningerne<br />
distributionsnettet. Til nogle af yderforeningerne i Parknet har det ikke<br />
kunnet betale sig at trække egen fiber. I disse tilfælde har Parknet i<br />
samarbejde med foreningen valgt at købe fiberen hos Global Connect.<br />
Kort om Global Connect (6)<br />
Global Connects netværk er opbygget på egen infrastruktur af rør, fiber og<br />
transmissionsudstyr. I dag er det <strong>Danmarks</strong> stærkeste og største åbne<br />
fibernet baseret på "carrier class" services for både engrosvirksomheder og<br />
større virksomheder.<br />
Signalet i Parknets backbone kan ikke bruges uden videre i en almindelig<br />
computer. Backbonen er inddelt i 3 VLANs: tele, management og user. På<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 8 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
denne måde kan Parknet styre, hvilke porte i Parknet som kan bruges til<br />
andet end almindelig brugertrafik. På tele VLAN’et sidder alle Audiocodes og<br />
har dedikeret båndbredde til telefontrafik. På management VLAN kan man<br />
logge ind på alle switche og bl.a. åbne og lukke for porte. User VLAN bruges<br />
til almindelig Internettrafik så som surf, e-mail osv.<br />
4.4 Beskrivelse af tekniske anlæg i Parknet<br />
Der er et antal krydsfelter i hver ejendom i Parknet, hvorfra signalet<br />
fordeles til hver lejlighed. Internet og telefoni fordeles altid ud fra samme<br />
krydsfelt. I nyere foreninger er TV installationen også monteret i<br />
krydsfeltet, i ældre foreninger sidder der et lille skab under hver opgang.<br />
Parknet er inddelt i blokke fra 0 til 255 (det passer med et klasse B netværk<br />
til hver blok). Hvis en ejendom er større end 250 lejligheder, skal den<br />
inddeles i flere blokke. A/B Lindegaarden har 100 tilslutninger og er blok 16<br />
i Parknet. Krydsfelter navngives efter bloknummer og opgangsnummer.<br />
Dvs. at de to krydsfelter på hhv. Kærsangervej 16 og Tornsangervej 7<br />
hedder b16x16 og b16x7.<br />
Krydsfeltet b16x16: TV skab mellem nr. 12 og 14:<br />
Figur 1 - Billeder af krydsfelter<br />
Beskrivelse af figur 1 - b16x16 (billedet kan ses i fuld størrelse i bilag 2):<br />
Øverst i billedet ses patchpanelerne, hvori ledningerne til lejlighederne er tilsluttet.<br />
De to lilla komponenter er Extreme Summit 200 switche med 24 porte.<br />
De to blå komponenter er Audiocodes MP 124 VOIP gateways med 24 porte.<br />
Den sorte skuffe med de grønne stik er forbindelsen til Parknet via lysleder.<br />
I bunden af skabet ligger en UPS til ca. 2 timers drift.<br />
Beskrivelse af figur 1 - TV skab (billedet kan ses i fuld størrelse i bilag 3):<br />
De to sorte ledninger er forsyningskabler fra antenneforstærkeren (sidder centralt)<br />
Øverst til højre i skabet sidder TV fordeleren - i fordeleren sidder pakkefiltrene<br />
De hvide ledninger går ud til lejlighederne<br />
Et pakkefilter er et lavpasfilter. Parknet har 4 TV pakker, dvs. der er brug for 3<br />
typer filtre (der er ikke filter på den dyreste pakke).<br />
- Lille pakke er alle kanaler under 400 MHz (filteret er umalet dvs. blankt)<br />
- Mellem pakke er alle kanaler under 566 MHz (filteret er gult)<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 9 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
- Stor pakke er alle kanaler under 750 MHz (filteret er blåt)<br />
- Super pakke kræver ikke filter, ledningen er monteret direkte i fordeleren.<br />
Hvis TV skal frakobles eller ændres, skal der en tekniker ud HVER gang…<br />
4.5 Beskrivelse af Parknets administrationssystemer<br />
Parknet er baseret på mange systemer som griber ind i hinanden. De<br />
vigtigste, som jeg har valgt at tage med i denne beskrivelse er Winkas,<br />
Miralix, @mail, Google kalender og en Parknet programmeret telefonbog.<br />
Winkas er brugerdatabasen. Dette system bruges til:<br />
• Brugeroplysninger, adresseoplysninger<br />
• Netværksoplysninger specifikke for adressen (fx switch port nr.)<br />
• Opkrævning af services samt andre ydelser (fx teknikerbesøg)<br />
Internet har følgende muligheder:<br />
• Tilmeldingsdato, Udmeldelsesdato<br />
• Ekstra IP, man kan købe op til 254 faste IP adresser (pt. vises kun én)<br />
Telefon har følgende muligheder:<br />
• Tilmeldingsdato, Udmeldelsesdato, Abonnementstype<br />
• Flere telefonnumre (med separate tilmeldingsdatoer)<br />
• Kontonummer i Miralix, Lokalnummer (bruges til at rute opkald og til opkrævning)<br />
TV har følgende muligheder:<br />
• Tilmeldingsdato, Udmeldelsesdato, TV-pakkevalg, Pakkeskiftdato, Ny pakke<br />
Fordele (+) og ulemper (-) ved Winkas:<br />
+:<br />
• Et COTS produkt<br />
• Mulighed for support hos programleverandøren<br />
• Billig<br />
• Betalingsservice modul<br />
• Hurtigt at komme i gang<br />
• Baseret på en free ware database platform<br />
• Styring af placering af felter på skærmbilledet med drag and drop<br />
• Mulighed for til/fravalg af felter i listevisning<br />
•<br />
-:<br />
• Winkas har ikke printmulighed, man bruger print screen og sætter billedet fx i Word og printer<br />
derfra<br />
• Der er kun 100 felter i tabellen i databasen<br />
• Winkas kan ikke eksekvere kommandoer eller tilpassede forespørgsler i andre databaser<br />
• Tidsforbruget med at lave de hjælpeprogrammer til Winkas, som Parknet selv har udviklet, har<br />
været så stort, at det havde været hurtigere at lave sit eget system<br />
• Ved oprettelse af nye medlemmer er det ikke sikkert, at alle felter, defineret som<br />
standardværdier (fx netværksdata), bliver kopieret med, dvs. man efterfølgende skal lave<br />
manuel copy/paste af ca. 20 felter<br />
• Winkas yder kun support, hvis databasen kører på en MySQL 4.0.18 server under Windows<br />
Følgende tekst er hentet fra MySQL.com (udviklerne af MySQL databasesystemet)<br />
End of Product Lifecycle.<br />
Active development and support for MySQL database server versions 3.23, 4.0, and 4.1 has ended.<br />
However, for MySQL 4.0 and 4.1, there is still extended support available. For details, see<br />
http://www.mysql.com/company/legal/lifecycle/#calendar. According to the MySQL Lifecycle Policy (see<br />
http://www.mysql.com/company/legal/lifecycle/#policy), only Security and Severity Level 1 issues will<br />
still be fixed for MySQL 4.0 and 4.1. Please consider upgrading to a recent version (MySQL 5.0 or 5.1).<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 10 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
Screen dump af en søgeoversigt i Winkas, hvorfra man kan få vist detaljer<br />
om hver enkelt bruger:<br />
Figur 2 - Screen dump af Winkas søgeoversigt<br />
Screen dump fra Winkas af min konto (jeg har konto 4878):<br />
Figur 3 - Screen dump af Winkas konto 4878<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 11 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
Miralix:<br />
Er telefonafregningssystemet. Opkrævning af abonnement køres fra<br />
Winkas, mens afregning af telefonsamtaler køres i dette system. Hver gang<br />
en bruger i Parknet ringer, bliver samtalen logget fra start til slut og<br />
afhængig af opkaldsmodtagerens placering bliver prisen beregnet. Interne<br />
opkald i Parknet er gratis, flat rate giver gratis opkald til fastnet i DK + 60<br />
udlande de første 59 minutter af en samtale. Øvrige priser opdateres hver<br />
måned. Fakturering sker pr. sekund.<br />
Brugerne kan vælge to måder at afregne samtaler på. Den ene er, at de<br />
selv sørger for at indsætte taletid med dankort på deres taletidskonto. Den<br />
anden er, at Parknet opkræver forbruget kvartalsvis og sørger for, at<br />
beløbet bliver opkrævet sammen med abonnementet og indsat på<br />
taletidskontoen.<br />
Figur 4 - Screen dump af Miralix velkomstbillede<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 12 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
@mail:<br />
Er Parknets mailsystem. I dette system ligger et antal domæner, som<br />
brugerne får tildelt adresse ud fra eksempelvis valbymail til brugerne i<br />
Valby. Oprettelsen af en ny mailadresse foretages manuelt af en Parknet<br />
medarbejder ved at logge ind i administrationsdelen og indtaste oplysninger<br />
om brugeren (navn, postadresse og tlf. nr.) og herefter at tildele brugeren<br />
den ønskede adresse (hvis den er ledig). Der er ingen automatik i<br />
processen. Det eneste der kan gøres hurtigere, er oprettelse af mange<br />
adresser. Systemet kan læse en csv fil og på den måde oprette mange<br />
brugere på én gang.<br />
Manglende automatisering af dette system betyder, at selv om brugere er<br />
flyttet ud af Parknet, nedlægges deres e-mail ikke. I modstrid med, at der<br />
står i Parknets betingelser, at adressen nedlægges efter ½ år.<br />
Figur 5 - Screen dump af @-mail - tilføj ny bruger<br />
Parknet telefonbog:<br />
Systemet bruges til at holde styr på telefonnumrene i Parknet. I systemet<br />
kan man se ledige telefonnumre, samt tage disse og bruge dem.<br />
Google kalender:<br />
Bruges til at booke et teknikerbesøg hos en bruger, hvis vedkommendes<br />
problem ikke kunne løses via telefonen. P.t. er der mulighed for at bestille<br />
tider hver tirsdag i tidsrummet 16-20, hvor Parknets studentermedhjælper<br />
kører ud til brugerne.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 13 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
4.6 Beskrivelse af en bruger i Parknet<br />
Det hele begynder med, at boligforeningen bliver medlem af Parknet.<br />
Herefter kan alle beboere blive tilmeldt Parknet (dvs. abonnere på services).<br />
Beboeren kan enten tilmelde sig via blanket eller online. Brugeren oprettes<br />
herefter på adressen og betaler fremover for de services, som er bestilt.<br />
4.7 Beskrivelse af procedurer i Parknet<br />
Fælles for procedurerne er, at de er meget arbejdstunge og der er mange<br />
steder, hvor der er mulighed for at begå fejl.<br />
4.7.1 Oprettelse af Internet<br />
1) Slå brugeren op i Winkas og find switchen samt portnummeret<br />
2) Log ind på switchen via SSH<br />
3) Aktiver porten og gem<br />
4) Opdater brugeren i Winkas:<br />
a. Tilmeldingsdato<br />
b. Opkræv oprettelsesgebyr<br />
c. Opkræv abonnement for perioden ind til næste kvartal<br />
4.7.2 Oprettelse af et telefonnummer<br />
I beskrivelsen af proceduren herunder, vil punkt 1 kunne udelades, hvis der<br />
er tale om et indporteret (nummeret flyttes fra en anden udbyder) nummer.<br />
1) Find et ledigt nummer i Parknet telefonbogen<br />
2) Find et ledigt lokalnummer i Miralix<br />
3) Find den Audiocode og port brugeren er tilsluttet til i Winkas<br />
4) Log ind på Audiocoden og skriv lokalnummeret ind på den rigtige port<br />
5) Opret brugeren i Miralix (indtast: navn, adresse, Winkas<br />
kontonummer, e-mail, afregningsform, abonnementstype)<br />
6) Vælg lokalnummeret og indtast telefonnummeret<br />
7) Indsæt start taletid (så brugeren kan bruge telefonen)<br />
8) Opdater brugeren i Winkas:<br />
a. Tilmeldingsdato<br />
b. Abonnementstype<br />
c. Afregningsform<br />
d. Lokalnummer<br />
e. Telefonnummer<br />
f. Miralix kontonummer<br />
g. Opkræv oprettelsesgebyr og beløb for starttaletid<br />
h. Opkræv abonnement for perioden ind til næste kvartal<br />
4.7.3 Oprettelse af TV/ændring af TV pakke<br />
1) Slå brugeren op i Winkas og find adressen på krydsfeltet<br />
2) Kør ud til krydsfeltet og tilslut/skift til den ønskede TV pakke<br />
3) Kør hjem igen og opdater brugeren i Winkas:<br />
a. Tilmeldingsdato (ændres ej ved pakkeskift)<br />
b. TV pakke<br />
c. Opkræv gebyret for oprettelse/skift af pakke<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 14 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
d. Opkræv abonnement for perioden ind til næste kvartal fordelt<br />
på Copydan og resten af TV pakkens pris.<br />
4.7.4 Bookning af teknikerbesøg<br />
Hvis en bruger ikke kan få afhjulpet sit problem over telefonen, kan<br />
brugeren få besøg af tekniker. Hvis problemet er forskyldt af Parknet, er<br />
besøget gratis ellers koster det 250 kr.<br />
Teknikerbesøg bookes via Google kalender i blokke på 4 timer. P.t. om<br />
tirsdagen i tidsrummet 16-20.<br />
4.7.5 Opkrævning<br />
Hver måned kører bogholderen opkrævninger. Der køres dels de ordinære,<br />
dvs. brugere som har været oprettet i systemet mere end 1 kvartal. Til<br />
opkrævninger ud over almindeligt abonnement findes et felt som hedder<br />
”opkræves skævt”. I dette felt skriver supporteren sine initialer og derefter<br />
udfyldes feltet ”tekst til skæv opkrævning” med information om, hvad det<br />
er, brugeren skal betale for fx ”Skift af TV pakke til super”. Der er et antal<br />
felter til hver service, hvor supporteren kan indtaste de beløb, som<br />
brugeren skal opkræves i forbindelse med den skæve opkrævning.<br />
Når opkrævningerne er kørt har Winkas genereret en liste, som sendes til<br />
PBS. Resten af forløbet sørger PBS for og pengene sættes ind på Parknets<br />
konto. De brugere, som ikke har betalt, får en rykker samt rykkergebyr og<br />
der lukkes for brugerens services. Efter tredje rykker ryger sagen til<br />
inkasso.<br />
4.7.6 Overdragelse af abonnement<br />
Abonnementer kan opsiges til udgangen af et kvartal. Hvis kvartalet lige er<br />
startet og man ønsker at opsige, kan det dreje sig om op til 1.000 kr. for<br />
hhv. internet, telefon og den største TV pakke. For at pengene ikke skal gå<br />
tabt, kan brugere vælge at overdrage sit abonnement til den nye beboer.<br />
De to brugere skal selv afregne differencen, men på den måde får alle<br />
glæde af abonnementerne plus, at den nye bruger ikke skal betale<br />
oprettelsesomkostninger.<br />
Når en service afmeldes sættes udmeldelsesdatoen, dermed betragtes<br />
servicen som afmeldt. Hvis brugeren senere tilmelder sig igen sættes<br />
tilmeldelsesdato til den nye dato og udmeldelsesdatoen slettes. Derefter<br />
bliver det umuligt at se, præcis i hvilken periode brugeren tidligere har<br />
været tilmeldt. Det er muligt at hente noget brugbar data ud af<br />
posteringerne, da det vil fremgå hvornår der er betalt og specifikt for hvad.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 15 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
4.7.7 Diagram over domænemodellen<br />
Figur 6 - Domænemodel<br />
Figur 6 viser, hvordan jeg forestiller mig Parknet ser ud i en domænemodel.<br />
Nederst til venstre er medlemsforeninger. Disse har brugere, krydsfelter, et<br />
antal services de kan modtage fra Parknet og har en tilslutningsaftale med<br />
Parknet. Parknet leverer services jf. tilslutningsaftalen med foreningen, som<br />
brugerne kan abonnere på hos Parknet. Via administrationssystemerne<br />
køres opkrævninger, som brugerne betaler til Parknet. Parknet har også<br />
krydsfelter og igennem disse leveres services til brugerne.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 16 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
5 Analyse<br />
5.1 Kravspecifikation til det nye system<br />
Ifølge bogen ”Goal directed project management” (5) er det vigtigt for et<br />
projekts succes, at alle involverede parter føler ejerskab over projektet.<br />
Derfor er det vigtigt, at brugerne af systemet involveres så tidligt som<br />
muligt i processen. Det er netop ved udarbejdelse af kravspecifikationen, at<br />
brugerne første gang bør få mulighed for at komme med forslag og ønsker<br />
til systemet.<br />
Kravspecifikationen er skrevet uden direkte input fra Parknets<br />
medarbejdere. Den er baseret på mine egne oplevelser med systemerne<br />
igennem 5 måneders praktik samt lige så lang tid som studentermedhjælper.<br />
Jeg har i den tid hørt mange ønsker og forslag til et nyt<br />
system, så medarbejderne har indirekte været med til at formulere<br />
kravene.<br />
Med ovenstående udgangspunkt har jeg ikke overholdt anbefalingen fra (5)<br />
til fulde. Jeg har afveget fra anbefalingen, da systemet et eksamensprojekt<br />
og ikke noget som Parknet har bestilt.<br />
5.1.1 Funktionelle krav<br />
Systemet skal samle processerne i forbindelse med styring af netværket,<br />
services og brugere i Parknet. Administrationen skal automatiseres så<br />
meget som muligt. Brugerne skal i størst muligt omfang kunne administrere<br />
egne services via en selvbetjeningsportal.<br />
Administrationsdelen skal bruges dels til den daglige telefonsupport og til<br />
administrative rutiner herunder:<br />
• opkrævning af brugere<br />
• indrapportering af telefonnumre og adresser til 118<br />
• oprettelse af services for brugerne<br />
• slå brugere op og se deres brugeroplysninger<br />
• administrator skal have adgang til alle services og priser<br />
I forbindelse med telefonsupport er det vigtigt, at supporteren hurtigt kan<br />
finde brugeren i systemet via et eller flere søgekriterier (oftest via<br />
adressen).<br />
Brugernes selvbetjeningsportal skal bestå af to dele. Den ene skal være til<br />
oprettelse af nye brugere. Her skal vises de services, Parknet tilbyder på<br />
den adresse, som brugeren ønsker at tilmelde. Den anden del skal være<br />
med login og er beregnet til eksisterende brugere. Når brugeren er logget<br />
ind, skal brugeren kunne ændre/tilvælge/fravælge services samt<br />
oprette/nedlægge e-mailadresser og foretage intern flytning af sit<br />
abonnement fra en adresse i Parknet til en anden.<br />
Alle ændringer/tilmeldinger skal vises i administrationsdelen og godkendes<br />
af en Parknet medarbejder, før de endeligt udføres. Der skal en<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 17 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
administrator ind over alle ændringer for at sikre, at brugere ikke tilmelder<br />
sig på en adresse, hvor der allerede er en tilmeldt bruger, som ikke er<br />
flyttet.<br />
Der skal være sikkerhed i systemet, så information ikke falder i hænderne<br />
på de forkerte personer.<br />
• Systemet skal have adgang til lagring af data.<br />
5.1.2 Non funktionelle krav<br />
Functionality:<br />
• Separat interface til brugere i Parknet og et andet til<br />
administrationen.<br />
• Systemet skal køre på en web server.<br />
• Systemet skal være skalerbart, dvs. at systemet skal kunne udvides<br />
og tilpasses til fremtidige ændringer i services.<br />
• Brugerne skal have adgang til aktuelle services og priser på sin<br />
adresse.<br />
Usability:<br />
• En hjælpefunktion til brugere (evt. FAQ).<br />
• En manual til personalet.<br />
Reliability:<br />
• Afvikling af programmet sker inden for Parknets netværk og fungerer<br />
uafhængigt af forbindelse til Internettet, reliability er i høj grad til<br />
stede.<br />
Performance:<br />
• Den maksimale svartid på en forespørgsel må være 1 sekund.<br />
Supportability:<br />
• PC’en skal have en Internetbrowser.<br />
• PC’en skal have Internetforbindelse.<br />
• PC’en skærmopløsning skal være mindst 1280x1024.<br />
Meningen med SAPS er, at det skal afløse Winkas. Dvs. at al data, som p.t.<br />
er i Winkas, skal være tilgængelig i SAPS.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 18 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
5.1.3 Designvalg<br />
I forbindelse med udviklingen af systemet har jeg primært lagt vægten på<br />
programmet og ikke på det fysiske design. Parknet har eksisteret i 5 år, så<br />
den fysiske opstilling er allerede til stede.<br />
Figuren herunder viser visuelt, hvordan den fysiske opstilling ser ud.<br />
Figur 7 – Model af det fysiske design i Parknet<br />
Resten af rapporten omhandler udviklingen af SAPS. Jeg vil ikke behandle<br />
det fysiske design yderligere.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 19 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
5.2 Analyse af applikationen<br />
5.2.1 Use case diagram<br />
I use case diagrammet er der forbindelse fra fire use cases til use case<br />
”Opret ticket”, det skyldes, at disse use cases automatisk opretter en ticket<br />
i systemet.<br />
Administrator<br />
Supporter<br />
Bogholder<br />
Bruger i Parknet<br />
Anonym bruger på Internettet<br />
Brugerens adresse<br />
og services<br />
Log ind i SAPS<br />
Opret ticket<br />
Online tilmelding<br />
Redigere services<br />
SAPS<br />
Ret bruger<br />
oplysninger<br />
TV to do liste<br />
Frameld service<br />
Tilmeld service<br />
Figur 8 - Use case diagram<br />
Opret/fjern<br />
adresser<br />
Opret/fjern x-felt<br />
Opret tlf. nr.<br />
Ændre bruger<br />
rettigheder<br />
Styre services pr.<br />
adresse<br />
Styre adresser,<br />
x-felter og aktivt udstyr<br />
Ændre service<br />
Miralix<br />
Vis saldo på<br />
telefonkonto<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 20 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
5.2.2 Aktørbeskrivelser<br />
Administrator<br />
• Flere personer kan have denne rolle<br />
• Skal have adgang til alle data i systemet<br />
• Skal kunne redigere alle data i systemet<br />
Supporter<br />
• Flere personer kan have denne rolle<br />
• Skal have adgang til alle data i systemet<br />
• Skal kunne redigere visse data i systemet<br />
Bogholder<br />
• Flere personer kan have denne rolle<br />
• Skal have adgang til alle data i systemet<br />
• Skal kunne redigere visse data i systemet<br />
Bruger<br />
• Flere personer kan have denne rolle<br />
• Skal have adgang til oplysninger om egne services<br />
• Skal kunne redigere egne services<br />
Anonym bruger på Internettet<br />
• Flere personer kan have denne rolle<br />
• Skal kunne oprette abonnement på sin adresse i Parknet<br />
5.2.3 Overordnede use case beskrivelser<br />
• Opret/fjern adresser<br />
Beskrivelse af hvad administratoren gør for at oprette og slette<br />
adresser i SAPS.<br />
• Opret/fjern x-felt<br />
Beskrivelse af hvad administratoren gør for at oprette og slette<br />
krydsfelter i SAPS.<br />
• Opret tlf. nr.<br />
Beskrivelse af hvad administratoren gør for at tilføje telefonnumre til<br />
SAPS.<br />
• Ændre bruger rettigheder<br />
Beskrivelse af hvad administratoren gør for at redigere brugeres<br />
rettigheder i SAPS.<br />
• Styre services pr. adresse<br />
Beskrivelse af hvordan administratoren til- og fravælger services til<br />
en forening eller adresser enkeltvist.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 21 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
• Styre adresser, x-felter og aktivt udstyr<br />
Beskrivelse af hvordan administratoren tilføjer og redigerer aktivt<br />
udstyr i SAPS samt tilknytter aktivt udstyr til x-felter og aktivt<br />
udstyrs porte til adresser.<br />
• Redigere services<br />
Beskrivelse af hvordan administrator eller bogholder redigerer<br />
eksisterende services samt tilføjer nye.<br />
• Ret bruger oplysninger<br />
Beskrivelse af hvordan administrator, bogholder eller supporter<br />
redigerer en brugers oplysninger (uden mulighed for at ændre<br />
rettigheder).<br />
• TV to do liste<br />
Beskrivelse af hvordan administrator eller supporter bruger to do<br />
listen og markerer et punkt som ”done”.<br />
• Brugerens adresse og services<br />
Beskrivelse af hvad administrator, bogholder eller supporter gør for<br />
at finde en bruger eller en adresse og ser hvilke services, som er<br />
tilmeldt samt, hvilke services som kan tilmeldes.<br />
• Log ind i SAPS<br />
Beskrivelse af hvordan rollerne logger ind i SAPS<br />
• Opret ticket<br />
Beskrivelse af hvordan administrator, bogholder eller supporter<br />
opretter en ticket i SAPS, samt hvordan visse andre use cases<br />
automatisk opretter tickets.<br />
• Online tilmelding<br />
Beskrivelse af hvordan online tilmeldingen virker og opretter en ny<br />
bruger i SAPS samt aktiverer valgte services.<br />
• Ændre service<br />
Beskrivelse af hvordan en service kan ændres fra use casen<br />
”Brugerens adresse og services” og samtidig skriver en ticket.<br />
• Tilmed service<br />
Beskrivelse af hvordan online tilmeldingen eller use casen<br />
”Brugerens adresse og services” tilmelder en service til en bruger<br />
og samtidig skriver en ticket.<br />
• Frameld service<br />
Beskrivelse af hvordan en bruger framelder en service og at systemet<br />
skriver en ticket.<br />
• Vis saldo på telefonkonto<br />
Beskrivelse af hvordan SAPS henter brugerens saldo på<br />
telefonkontoen.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 22 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
5.2.4 Detaljerede use case beskrivelser<br />
Jeg har udvalgt to use cases, som jeg har udarbejdet detaljerede<br />
beskrivelser for. Den ene er ”Online tilmelding”, da denne er en<br />
forudsætning for at få nye brugere i systemet og griber ind i mange dele af<br />
SAPS. Den anden er ”Styre services pr. adresse”, da det kun er<br />
aktiverede services, som kan vælges på adressen via SAPS og online<br />
tilmelding.<br />
5.2.4.1 Use case Online tilmelding<br />
USE-CASE Online tilmelding.<br />
Formål At oprette en ny bruger i SAPS og aktivere valgte services.<br />
Niveau Primær opgave<br />
Prækondition SAPS er online og der er ikke en aktiv bruger på den valgte<br />
adresse.<br />
Postkondition Brugeren er blevet oprettet i SAPS.<br />
Fejl afslutning Brugeren blev ikke oprettet eller gemt i databasen.<br />
Primære,<br />
Sekundære<br />
Aktører<br />
Primær: Anonym bruger på Internettet (i det efterfølgende<br />
omtalt som bruger).<br />
Trigger En bruger vælger at oprette sig som kunde hos Parknet.<br />
Hændelsesforløb:<br />
Trin Handling<br />
1 Brugeren vælger sit postnr.<br />
2 Brugeren vælger sin gade<br />
3 Brugeren vælger sin adresse<br />
4 Brugeren klikker på Næste<br />
5 Brugeren indtaster sine personlige oplysninger og vælger services<br />
6 Brugeren klikker på Næste<br />
7 Brugeren vælger at acceptere Parknets abonnementsvilkår<br />
8 Brugeren klikker på Næste<br />
9 Brugeren får besked om, at oprettelsen er sket med oplysning om<br />
brugernummer og password til selvbetjening. Der er desuden link til<br />
Betalingsservice, så brugeren med det samme kan tilmelde sig til PBS.<br />
Hændelsesforløb ved fejl:<br />
Trin Forgrenings handling<br />
1, 2, 3 Hvis der ikke er oprettet adresser i SAPS, vil det ikke være muligt at<br />
vælge hverken postnr., gade eller adresse.<br />
5 Ved forkert udfyldning i et eller flere felter viser SAPS feltet/felterne,<br />
som er udfyldt forkert, samt forklarer, hvad der er galt.<br />
6a Brugeren kan ikke klikke på Næste før, der er valgt mindst én service<br />
og angivet både for- og efternavn.<br />
6b Hvis brugeren ikke har angivet et telefon nr. eller en mailadresse, får<br />
brugeren besked om, at Parknet ikke afsender bekræftelse på<br />
oprettelsen.<br />
9 Hvis der allerede er en bruger tilmeld på adressen, får den nye bruger<br />
besked om, at bestillingen er lagt i kø og bliver behandlet hurtigst<br />
muligt. Brugeren er dog oprettet i systemet og får oplysning om sit<br />
brugernummer og password. Der er også link til PBS tilmelding.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 23 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
5.2.4.2 Use case Styre services pr. adresse<br />
USE-CASE Styre services pr. adresse.<br />
Formål At aktivere services på adresser, så brugerne kan vælg dem.<br />
Niveau Primær opgave<br />
Prækondition SAPS er online og en administrator er logget ind og har valgt<br />
siden ”Services pr. adresse”.<br />
Postkondition Der er oprettet adresser i SAPS.<br />
Fejl afslutning Den valgte adresse har ikke fået aktiveret de ønskede<br />
services.<br />
Primære,<br />
Primær: Administrator<br />
Sekundære<br />
Aktører<br />
Trigger En administrator vælger at redigere aktive services til en<br />
adresse.<br />
Hændelsesforløb:<br />
Trin Handling<br />
1 Administrator vælger en adresse i drop down menuen<br />
2 Administrator klikker på ”Tilføj standard services”<br />
3 Administrator klikker på ”Fjern service” ved alle de aktive services som<br />
er i kategorien TV.<br />
4 Administrator klikker på ”Tilføj service” ved ”Opret TV online” og ”Lille<br />
pakke”<br />
Hændelsesforløb ved fejl:<br />
Trin Forgrenings handling<br />
1 Menuen er tom, hvis der endnu ikke er tilføjet adresser til SAPS.<br />
2 Der bliver ikke aktiveret nogle services, hvis standard services ikke er<br />
defineret.<br />
3 Hvis der sker en fejl under kommunikation med databasen, bliver den<br />
valgte service ikke deaktiveret.<br />
4 Hvis der sker en fejl under kommunikation med databasen, bliver den<br />
valgte service ikke aktiveret.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 24 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
5.3 Analyse af databasen til Parknet<br />
Et af de større irritationsmomenter ved Winkas er adressesorteringen. Den<br />
sorterer adresser som strenge. Når opgangsnummeret og etagen er en del<br />
af strengen medfører det at, 11 og 13 kommer før 3, 5, 7, 9 og at<br />
stueetagen kommer efter 1., 2. sal osv.<br />
I Winkas er der kun 100 felter pr. række i standardtabellen for brugere. Alle<br />
data om adresse, brugerens services, priser, opkrævninger og<br />
netværkstilslutninger står i en én række. Dette er en meget dårlig løsning,<br />
da den resulterer i meget unødvendig ekstra data. Når der flytter en ny<br />
bruger ind, deaktiveres den gamle, men data beholdes af hensyn til<br />
historik. Dvs. at adressen og netværksdata dubleres, for hver gang der<br />
oprettes en ny bruger.<br />
Den optimale løsning er at adresser kun oprettes én gang i én tabel,<br />
derefter skal der refereres til dem via ID.<br />
Forventninger til databasens størrelse og omfang:<br />
• Opstarts størrelse:<br />
(1) Der er ca. 10.000 adresser i Parknet.<br />
(2) Der er ca. 9.000 brugere.<br />
(3) Der er 3 forskellige services.<br />
• Forventet vækstrate:<br />
(1) Ca. 2.000 nye adresser pr. år (gennemsnit siden 1/1-04).<br />
(2) Ca. 100 til- og frameldinger pr. måned (stigende med<br />
brugerantallet).<br />
• Sikkerhed:<br />
(1) Databasen skal være password beskyttet.<br />
(2) Det er kun webklienten, som har adgang til databasen via http.<br />
(3) Det er kun muligt at logge på databasen fra Parknets<br />
management netværk.<br />
• Backup:<br />
(1) Der skal køres backup hver dag af databasen.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 25 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
6 Design<br />
SAPS skal være en webapplikation. En af overvejelserne i forbindelse med<br />
designet har været, om det skal være muligt at udskifte webapplikationen<br />
med en GUI applikation. Det har ikke været meningen fra starten af og der<br />
bliver ikke noget lag mellem databasen og SAPS til at styre data flow.<br />
Derfor vil en ny GUI skulle læse og skrive data i databasen på samme<br />
måde, som SAPS gør. Når SAPS læser/skriver data i databasen, kommer<br />
det til at foregå via queries indlejret i koden. Nogle få steder, vil der blive<br />
kaldt en stored procedure eller et view. Dvs. der vil være meget arbejde i at<br />
udvikle en GUI.<br />
En anden stor overvejelse har været validering af input. Det er naturligvis<br />
vigtigt at sikre, at de input som brugeren taster, stemmer overens med<br />
datatypen i databasen. Jeg har valgt, at der ikke er validering i SAPS. Det<br />
er kun Parknets medarbejdere, som har adgang til indtastningsfelter i SAPS<br />
og jeg betragter dem alle som professionelle mennesker, som ved hvad de<br />
gør. Derfor vil exception beskeden fra Java, være tilstrækkelig information<br />
om, hvad der evt. er tastet forkert. I online tilmeldingen skal alle input til<br />
gengæld valideres og sikres mod SQL injection, script eksekvering og<br />
lignende.<br />
Hvor skal arbejdet udføres – i databasen eller i Java? I så stor udstrækning<br />
som muligt, bør komplekse forespørgsler, lægges i stored procedures.<br />
Databasen er hurtigere til at kombinere data fra mange tabeller og<br />
samtidigt udføre evt. beregninger. I forbindelse med online tilmeldingen<br />
bliver det helt essentielt, at data skrives i databasen med en stored<br />
procedure, for at undgå sql injection. Derved kommer der ikke fejldata i<br />
databasen og dermed holder modellen.<br />
Sikkerheden i systemet skal komme fra REALM’et. Det skal sikre at de<br />
rigtige brugere har adgang til de rigtige data i SAPS. Hvis et REALM<br />
vurderes til ikke at være sikkert nok, vil SAPS kunne adskilles i to dele og<br />
køre på hver sin server i Parknet. Den ene server skal være på<br />
management LAN (mgt LAN), så vil der kun være adgang via computere på<br />
mgt LAN (fx dem på Parknets kontor). Den skal køre administrator,<br />
bogholder og supporter rollerne. Den anden server skal køre bruger rollen<br />
og være tilkoblet bruger nettet, så alle har adgang til at logge ind. På den<br />
måde vil en evt. hacker højest kunne få adgang til én brugers oplysninger<br />
ad gangen.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 26 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
6.1 Databasen<br />
For at få adresser sorteret korrekt, skal alle dele af en adresse indsættes i<br />
hver sin tabel og efterfølgende knyttes sammen via ID i en anden tabel. På<br />
den måde kan adresserne sorteres, så fx Tornsangervej 3 står før<br />
Tornsangervej 11 og stueetagen står før 1. sal. Løsningen er vist på figur 9.<br />
For at sikre, at data kun står i én tabel, skal der laves relationer mellem<br />
data via ID. Dette er med til at normalisere databasen og mindske<br />
datamængden.<br />
Jeg har taget udgangspunkt i Parknets services og derfor er tabellen, ved<br />
navn ydelser, en kopi fra Parknets database. Den skiller sig ud fra de øvrige<br />
tabeller ved at bruge teksten FUnique i stedet for id og derudover være med<br />
dansk tekst. Anden undtagelse er tabellen med postnumre, som også er på<br />
dansk.<br />
6.1.1 Databasediagram<br />
Efter at have analyseret data (i kapitel 5) og hvordan de skal bruges, skal<br />
der udarbejdes et diagram til systemet, som er en model af Parknets data<br />
og indbyrdes relationer.<br />
Jeg har valgt at dele databasediagrammet op i 3 diagrammer, da ét stort<br />
ville blive for uoverskueligt. Først viser jeg hvordan adresser sammensættes<br />
i addressrel tabellen, dernæst hvordan netværksdata knyttes til en adresse i<br />
addressrel tabellen. I det sidste diagram vises resten af databasen. Fra de<br />
to foregående diagrammer indgår kun addressrel tabellen.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 27 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
6.1.1.1 Addressrel (adresser) og intersections (x-felter)<br />
Figur 9 - ER-diagram for relationen addressrel med tilhørende tabeller<br />
Når alle dele af en adresse har et nummer, kan systemet sortere på tal i<br />
stedet for på strenge. Derfor er der 1 til 1 relation mellem alle delene af en<br />
adresse med undtagelse af opgangsbogstav, som kan være 0.<br />
6.1.1.2 Netværkets tabeller er knyttet til tabellen addressrel<br />
addressrel<br />
-id {pk} : int<br />
-roadid {fk} : int<br />
-stairawyid {fk} : int<br />
-stairwayletterid{fk} : int<br />
-floornameid {fk} : int<br />
-sideid {fk} : int<br />
-zipcode : int<br />
*<br />
addressdata<br />
-id {pk} : int<br />
-addressrelid {fk} : int<br />
-datapatch : string<br />
-telepatch : string<br />
-tvpatch : string<br />
-showinet : int<br />
-addroaddr {fk} : int<br />
-intersectionid {fk} : int<br />
add_port_rel<br />
-id {pk} : int<br />
-add_rel_id {fk} : int<br />
-intersec_equip_id {fk} : int<br />
-port : int<br />
intersections<br />
-id {pk} : int<br />
-roadid {fk} : int<br />
-stairawyid {fk} : int<br />
-stairwayletterid{fk} : int<br />
-floornameid {fk} : int<br />
-sideid {fk} : int<br />
-zipcode : int<br />
1 1 1 1 1 *<br />
0..1<br />
intersection_equipment<br />
-id {pk} : int<br />
-intersection_id {fk} : int<br />
-equipment_id {fk} : int<br />
-login_name : string<br />
-login_password : string<br />
-serial_number : int<br />
-start_date<br />
-name : string<br />
equipmentlist<br />
-id {pk} : int<br />
-name : string<br />
-ports : int<br />
Figur 10 - ER-diagram for relationen intersections med tilhørende tabeller<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 28 af 80<br />
*<br />
1<br />
*<br />
*
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
6.1.1.3 Diagram over resten af databasen<br />
addressrel<br />
-id {pk} : int<br />
-roadid {fk} : int<br />
-stairawyid {fk} : int<br />
-stairwayletterid{fk} : int<br />
-floornameid {fk} : int<br />
-sideid {fk} : int<br />
-zipcode : int<br />
-realestateid {fk} : int<br />
-tvpack {fk} : int<br />
add_yd_rel<br />
-id {fk} : int<br />
-funique {fk} : int<br />
*<br />
* * *<br />
1<br />
*<br />
user_add_rel<br />
user_svc_rel<br />
-id {pk} : int<br />
-id {pk} : int<br />
-user_id {fk} : int<br />
-add_rel_id {fk} : int<br />
-start_date : date<br />
-end_date : date<br />
-user_id {fk} : int<br />
-funique_current {fk} : int<br />
-funique_wanted {fk} : int<br />
-order_date : date<br />
-done_date : date<br />
-start_date : date<br />
-end_date : date<br />
-phone_pay_method {fk} : int<br />
*<br />
-miralix_acc_no {fk} : int<br />
1<br />
-phone_privacy {fk} : int<br />
-118_name : string<br />
-phone_num_type {fk} : string<br />
users_tabl<br />
-id {pk} : int 1<br />
*<br />
-tlf_authority : tinyint<br />
-phone_number : int<br />
-created : string<br />
-firstname : string<br />
-lastname : string<br />
-password : string<br />
-phone : int<br />
-cell_phone : int<br />
-email : string<br />
-role : int<br />
-active : tinyint<br />
-change_date {fk} : int<br />
*<br />
1<br />
user_roles<br />
-id {pk} : int<br />
-name : string<br />
*<br />
*<br />
wan_ip<br />
-id {pk} : int<br />
-user_id {fk} : int<br />
-ip : string<br />
*<br />
*<br />
*<br />
ydelser<br />
-funique {pk} : int<br />
-kode : string<br />
-navn : string<br />
-fakturatektst : string<br />
-engangs : smallint<br />
-engangspris : double<br />
-prisangives : double<br />
-kategori : string<br />
-medtageinet : smallint<br />
postnummer<br />
-postnr {pk} : int<br />
-bynavn : string<br />
phone_privacy<br />
-id {pk} : int<br />
-name : string<br />
phone_numbers<br />
-number {pk} : int<br />
-created_date : date<br />
-ok_date : datetime<br />
-end_date : date<br />
-status : int<br />
tickets<br />
-id {pk} : int<br />
-user_id {fk} : int<br />
-type_id {fk} : int<br />
-created_by_id {fk} : int<br />
-created_time : datetime<br />
-description : string<br />
-technician_booking_date : date<br />
-resolved_by_id : int<br />
-resolved_date : datetime<br />
-resolved_description : text<br />
phone_num_status<br />
-id {pk} : int<br />
-name : string<br />
ticket_types<br />
-id {pk} : int<br />
-name : string<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 29 af 80<br />
*<br />
0..1 *<br />
0..1 1<br />
0..1 1<br />
Figur 11 - ER-diagram for resten af tabellerne<br />
Adresserne står i addressrel tabellen. Denne er knyttet til brugerne i<br />
users_table via user_add_rel. Når en bruger flytter ind, sættes start_date<br />
og når brugeren flytter ud, sættes end_date. Dermed bliver adressen ledig<br />
til en ny abonnent og Parknet har historik på, hvornår den tidligere beboer<br />
var tilmeldt. Adresser er knyttet sammen med ydelser via add_yd_rel. Det<br />
skal sikre, at der ikke tilmeldes en service til en adresse, hvor servicen ikke<br />
leveres. User_svc_rel er brugerens abonnementer, der er en række i denne<br />
tabel for hvert abonnement.<br />
6.1.1.4 Databasens normalisering<br />
Databasen er normaliseret ud fra Connolly (2).<br />
For at tjekke om modellen af databasen er i 3NF, kan vi først tjekke om den<br />
står i 1NF. Da der ikke er nogen tabel som indeholder samme kolonne 2<br />
eller flere gange og alle grupper af relateret data er sat i hver sin tabel med<br />
en unik nøgle, kan det konkluderes, at modellen er i 1NF. Data, som kunne<br />
*<br />
1 1<br />
1
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
have stået i flere tabeller, er sat i separate tabeller og bliver henvist til via<br />
fremmednøgler. Et eksempel på dette er addressrel tabellen, hvor der<br />
henvises til adressens ID, i stedet for at have adressen som klar tekst i flere<br />
tabeller.<br />
Ud fra ovenstående kan det udledes, at modellen er i 2NF. Til sidst ses det,<br />
at tabellerne ikke har nogen attributter, som ikke er afhængige af<br />
primærnøglen. Et eksempel på dette er postnummer og by, da de er<br />
afhængige af hinanden og derfor ikke begge to behøves at stå i addressrel<br />
tabellen. Da dette er gældende, kan det konkluderes at databasemodellen<br />
er i 3NF.<br />
En positiv sideeffekt, af at modellen er i 3NF, er at ændringer i data, ikke<br />
har nogen stor indflydelse på databasen. Det skyldes, at der refereres<br />
mellem tabellerne via ID.<br />
6.2 SAPS<br />
Via SAPS er der fri adgang til data i databasen. Derfor kan der hurtigt ske<br />
fejl, hvis en bruger ved et uheld sletter en datapost med relation til andre<br />
dataposter. Jeg vælger derfor, at det er meget få steder, hvor data må<br />
kunne slettes. De steder, hvor det bliver muligt at slette/fjerne rækker i en<br />
tabel, skal systemet teste på om den pågældende række har<br />
relation/relationer til andre tabeller i databasen. Hvis det er tilfældet, skal<br />
”fjern” muligheden erstattes med en tekst om, at det ikke er muligt at<br />
fjerne rækken pga. at den er i drift eller har relation til andet data.<br />
Det er vigtigt, at de forskellige roller i systemet ikke kan tilgå hinandens<br />
filer indenfor REALM’et. Derfor skal hver side teste på om brugerens rolle er<br />
korrekt, hvis ikke skal brugeren sendes tilbage til en velkomstside, som<br />
bliver fælles for alle roller.<br />
6.3 Online tilmelding<br />
Designet af online tilmeldingen tager udgangspunkt i en meget primitiv<br />
udgave, som jeg udviklede mens jeg var i ingeniørpraktik hos Parknet.<br />
I online tilmeldingen er det vigtigt at programmet ikke går ned, ikke kan<br />
hackes og kommer med brugbare fejlmeddelelser til brugeren, hvis der er<br />
angivet et forkert input. Brugerne af online tilmeldingen kan ikke<br />
sammenlignes med brugerne af SAPS. Derfor skal den være så intuitiv som<br />
mulig og have så få valgmuligheder som muligt.<br />
Derudover er det vigtigt, at online tilmeldingen har en grafisk brugergrænseflade<br />
og at felter og informationer er sat overskueligt op. Billeder til<br />
grafik og design skal lægges i en separat folder.<br />
Brugerne skal hele tiden kunne se, hvor langt de er nået i oprettelsesprocessen<br />
via en trinindikator. Der skal være separate kasser/bokse til hver<br />
service for at lette overskueligheden. Som afslutning skal brugeren have<br />
mulighed for at tilmelde sig PBS.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 30 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
6.4 Sitemap over SAPS og online tilmelding<br />
Da jeg endnu ikke har det fulde overblik over behovet for filer eller<br />
navngivning af disse, har jeg valgt at tegne mappestrukturen i og udenfor<br />
REALM’et. Filen login.jsp ligger uden for REALM og ved korrekt login får<br />
brugeren adgang til welcome.jsp. Derfra vil adgang til de forskellige<br />
biblioteker være styret af REALM’et ud fra brugerens rettigheder.<br />
ROOT<br />
Authorized_users<br />
Inde i REALM<br />
Opret<br />
Welcome.jsp<br />
AccountantArea<br />
AdministratorArea<br />
SupporterArea<br />
UserArea<br />
Filer uden for REALM<br />
Online opret filer<br />
Bogholder filer<br />
Administrator filer<br />
Supporter filer<br />
User filer<br />
Figur 12 - Sitemap over designet<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 31 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
6.4.1 Designklassediagram SAPS<br />
Designklassernes navne tager udgangspunkt i use case beskrivelserne fra<br />
kapitel 5.2.3.<br />
designklasse: opret/fjern adresser<br />
designklasse: opret/ændre bruger<br />
designklasse: opret/fjern x-felt<br />
designklasse: opret tlf. nr.<br />
designklasse: service pr. adresse<br />
addressrel<br />
-id : int<br />
-roadid : int<br />
-stairawyid : int<br />
-stairwayletterid : int<br />
-floornameid : int<br />
-sideid : int<br />
-zipcode : int<br />
-realestateid : int<br />
-tvpack : int<br />
users_table<br />
-id : int<br />
-created : string<br />
-firstname : string<br />
-lastname : string<br />
-password : string<br />
-phone : int<br />
-cell_phone : int<br />
-email : string<br />
-role : int<br />
-inactivated_date : datetime<br />
-end_date : datetime<br />
intersections<br />
-id : int<br />
-roadid : int<br />
-stairawyid : int<br />
-stairwayletterid : int<br />
-floornameid : int<br />
-sideid : int<br />
-zipcode : int<br />
phone_numbers<br />
-number : int<br />
-created_date : date<br />
-ok_date : datetime<br />
-end_date : date<br />
-status : int<br />
add_yd_rel<br />
-id : int<br />
-funique : int<br />
add_port_rel<br />
-id : int<br />
-add_rel_id : int<br />
-intersec_equip_id : int<br />
-port : int<br />
user_add_rel<br />
-id : int<br />
-user_id : int<br />
-add_rel_id : int<br />
-start_date : date<br />
-end_date : date<br />
user_svc_rel<br />
-id : int<br />
-user_id : int<br />
-funique_current : int<br />
-funique_wanted : int<br />
-order_date : date<br />
-done_date : date<br />
-start_date : date<br />
-end_date : date<br />
-phone_pay_method : int<br />
-miralix_acc_no : int<br />
-phone_privacy : int<br />
-118_name : string<br />
-phone_num_type : string<br />
-tlf_authority : tinyint<br />
-phone_number : int<br />
-change_date : int<br />
designklasse: TV to do liste<br />
Figur 13 - Designklassediagram for SAPS<br />
designklasse: vis telefonsaldo<br />
designklasse: brugerens adresse og services<br />
designklasse: ændre service<br />
designklasse: opret ticket<br />
tickets<br />
-id : int<br />
-user_id : int<br />
-type_id : int<br />
-created_by_id : int<br />
-created_time : datetime<br />
-description : string<br />
-technician_booking_date : date<br />
-resolved_by_id : int<br />
-resolved_date : datetime<br />
-resolved_description : text<br />
Jeg forestiller mig, at designklasserne til SAPS læser og skriver data i<br />
tabellerne jf. figur 13. Opret ticket kan kaldes af brugeren og bliver kaldt af<br />
to andre klasser, når systemet har brug for at oprette en ticket.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 32 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
Designklassediagram online tilmelding<br />
designklasse: trinindikator<br />
designklasse: adressevælger<br />
designklasse: vælg abonnementer<br />
designklasse: validering<br />
designklasse: indtast brugeroplysninger<br />
addressrel<br />
-id : int<br />
-roadid : int<br />
-stairawyid : int<br />
-stairwayletterid : int<br />
-floornameid : int<br />
-sideid : int<br />
-zipcode : int<br />
-realestateid : int<br />
-tvpack : int<br />
add_yd_rel<br />
-id : int<br />
-funique : int<br />
ydelser<br />
-funique : int<br />
-kode : string<br />
-navn : string<br />
-fakturatektst : string<br />
-engangs : smallint<br />
-engangspris : double<br />
-prisangives : double<br />
-kategori : string<br />
-medtageinet : smallint<br />
designklasse: opret bruger<br />
add_port_rel<br />
-id : int<br />
-add_rel_id : int<br />
-intersec_equip_id : int<br />
-port : int<br />
user_svc_rel<br />
-id : int<br />
-user_id : int<br />
-funique_current : int<br />
-funique_wanted : int<br />
-order_date : date<br />
-done_date : date<br />
-start_date : date<br />
-end_date : date<br />
-envoice_name : string<br />
-envoice_add : string<br />
-envoice_zip : int<br />
-phone_pay_method : int<br />
-miralix_acc_no : int<br />
-phone_privacy : int<br />
-118_name : string<br />
-phone_num_type : string<br />
-tlf_authority : tinyint<br />
-phone_number : int<br />
-change_date : int<br />
Figur 14 - Designklassediagram for online tilmelding<br />
designklasse: SNMP<br />
user_add_rel<br />
-id : int<br />
-user_id : int<br />
-add_rel_id : int<br />
-start_date : date<br />
-end_date : date<br />
users_table<br />
-id : int<br />
-created : string<br />
-firstname : string<br />
-lastname : string<br />
-password : string<br />
-phone : int<br />
-cell_phone : int<br />
-email : string<br />
-role : int<br />
-inactivated_date : datetime<br />
-end_date : datetime<br />
Jeg forestiller mig, at designklasserne til online tilmelding læser og skriver<br />
data i tabellerne jf. figur 14. Der vises adresser i adressevælgeren fra<br />
addressrel tabellen. Add_yd_rel sikrer, at der kun vises de services, som<br />
kan vælges på adressen. Når brugeren oprettes, bliver der oprettet<br />
abonnementer i user_svc_rel på de valgte services og brugeren bliver<br />
knyttet til adressen via user_add_rel. Hvis brugeren har valgt Internet<br />
abonnement åbnes for Internet med det samme via SNMP kommando<br />
(simuleres).<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 33 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
7 Implementering<br />
Implementeringen af koden til SAPS er gjort færdig, før jeg begyndte på<br />
online tilmelding. I SAPS har jeg taget udgangspunkt i min viden om JSP og<br />
fortsat derfra. Da jeg begyndte på online tilmeldingen tog jeg udgangspunkt<br />
i en primitiv version 1 (udviklet i min ingeniørpraktik hos Parknet). Den<br />
eneste funktion som er taget med til version 2 er stripHTML(). Tankegangen<br />
og måden at implementere på med funktionskald, har bragt<br />
implementeringen af online tilmelding i en noget anden retning end SAPS.<br />
Koden til de to dele ligner umiddelbart ikke hinanden. Til gengæld viser de<br />
på hver sin måde, hvordan et design kan implementeres og komme til at<br />
fungere.<br />
Hen mod afslutningen af implementeringen, da online tilmeldingen og SAPS<br />
skulle forenes, har jeg dog implementeret nogle funktioner som deles af<br />
begge koder. Disse funktioner er i filer, som ligger i roden af webserveren. I<br />
forhold til sikkerhed er det ikke noget problem, at filerne er uden for<br />
REALM, da de ikke kan ses i browseren. Desuden skal funktionerne kaldes<br />
med de rigtige argumenter for at fungere.<br />
SAPS bruger views og stored procedures (SP) i nogen grad. I online<br />
tilmeldingen er det meget få steder at jeg bruger views og SP, resten køres<br />
med indlejrede queries i koden. Denne tilgang er valgt for, at online<br />
tilmeldingen hurtigt kan tilpasses til Winkas og sættes i drift i Parknet. Husk<br />
at Winkas kører på MySQL 4.0.18 (som hverken understøtter views eller<br />
SP).<br />
Da tabellen ved navn ydelser fra Winkas blev føjet til systemet, blev min<br />
konvention om kun at bruge engelske navne brudt, det gælder også for<br />
funktionskald (da nogle af dem henter data i ydelser fx getFakturaTekst()).<br />
7.1 Databasen<br />
Komplet datakatalog kan ses i filen /kode/db/datakatalog.doc på cd-rom’en<br />
I forhold til designet har det været nødvendigt at tilføje TV pakke til<br />
adressen, dette er gjort fordi, der kun kan være én TV pakke pr. adresse og<br />
fordi det er adressen som har TV pakken, brugeren betaler ”bare”.<br />
Derudover blev der også behov for at implementere 3 nye felter til<br />
user_svc_rel. Disse felter er til alternativ betaler og faktureringsadresse. På<br />
nuværende tidspunkt oprettes der to brugere i Winkas på den samme<br />
adresse. Hver af brugerne betaler så for de respektive services. Fremover<br />
bliver det ikke nødvendigt.<br />
Da brugerens ID fra tabellen users_table skal bruges som loginnavn, fandt<br />
jeg det ikke hensigtsmæssigt at lade den starte fra 1 og arbejde sig op.<br />
Derfor er startværdien sat til 11111111 og systemet autoinkrementerer<br />
derfra.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 34 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
7.1.1.1 Addressrel og intersections<br />
Figur 15 - Implementeringen af relationen addressrel med tilhørende tabeller<br />
Jeg har tilføjet tvpack i addressrel tabellen, da TV pakken følger adressen<br />
uafhængigt af brugere.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 35 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
7.1.1.2 Netværket<br />
Figur 16 - Implementeringen af relationen intersections med tilhørende tabeller<br />
Der er ikke sket ændringer til disse tabeller.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 36 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
7.1.1.3 Resten af databasen<br />
addressrel<br />
-id {pk} : int<br />
-roadid {fk} : int<br />
-stairawyid {fk} : int<br />
-stairwayletterid{fk} : int<br />
-floornameid {fk} : int<br />
-sideid {fk} : int<br />
-zipcode : int<br />
-realestateid {fk} : int<br />
-tvpack {fk} : int<br />
user_add_rel<br />
-id {pk} : int<br />
-user_id {fk} : int<br />
-add_rel_id {fk} : int<br />
-start_date : date<br />
-end_date : date<br />
users_table<br />
-id {pk} : int<br />
-created : varchar<br />
-firstname : varchar<br />
-lastname : varchar<br />
-password : varchar<br />
-phone : int<br />
-cell_phone : int<br />
-email : varchar<br />
-role : int<br />
-inactivated_date : datetime<br />
-end_date : datetime<br />
*<br />
1<br />
user_roles<br />
-id {pk} : int<br />
-name : varchar<br />
1<br />
*<br />
*<br />
1<br />
*<br />
*<br />
wan_ips<br />
-id {pk} : int<br />
-user_id {fk} : int<br />
-ip : varchar<br />
end_dates start_dates<br />
-id {pk} : int -id {pk} : int<br />
-navn : varchar -navn : varchar<br />
add_yd_rel<br />
-id {fk} : int<br />
-funique {fk} : int<br />
-dato : int -dato<br />
* * *<br />
cutting_dates<br />
-id {pk} : int<br />
-navn : varchar<br />
-dato : int<br />
*<br />
*<br />
1<br />
*<br />
user_svc_rel<br />
-id {pk} : int = 11111111<br />
-user_id {fk} : int<br />
-funique_current {fk} : int<br />
-funique_wanted {fk} : int<br />
-order_date : date<br />
-done_date : date<br />
-start_date : date<br />
-end_date : date<br />
-envoice_name : varchar<br />
-envoice_add : varchar<br />
-envoice_zip : int<br />
-phone_pay_method {fk} : int<br />
-miralix_acc_no {fk} : int<br />
-phone_privacy {fk} : int<br />
-118_name : varchar<br />
-phone_num_type {fk} : varchar<br />
-tlf_authority : tinyint<br />
-phone_number : int<br />
-change_date {fk} : int<br />
payments<br />
-id {pk} : int<br />
-fakturatekst : varchar<br />
-pris : double<br />
-add_rel_id : int<br />
-client_name : varchar<br />
-client_add : varchar<br />
-client_zip : int<br />
-date_added : datetimetime<br />
-date_payment : date<br />
-date_payed : date<br />
-term_start_date : date<br />
-term_end_date : date<br />
*<br />
*<br />
0..1 1<br />
standard_services<br />
-id {fk} : int<br />
*<br />
*<br />
ydelser<br />
-funique {pk} : int<br />
-kode : varchar<br />
-navn : varchar<br />
-fakturatektst : varchar<br />
-engangs : smallint<br />
-engangspris : double<br />
-prisangives : double<br />
-kategori : varchar<br />
-medtageinet : smallint<br />
postnummer<br />
-postnr {pk} : int<br />
-bynavn : varchar<br />
phone_privacy<br />
-id {pk} : int<br />
-name : varchar<br />
phone_numbers<br />
-number {pk} : int<br />
-created_date : date<br />
-ok_date : datetime<br />
-end_date : date<br />
-status : int<br />
tickets<br />
-id {pk} : int<br />
-user_id {fk} : int<br />
-type_id {fk} : int<br />
-created_by_id {fk} : int<br />
-created_time : datetime<br />
-description : varchar<br />
-technician_booking_date : date<br />
-resolved_by_id {fk} : int<br />
-resolved_date : datetime<br />
-resolved_description : text<br />
ydelser_farver<br />
-id {pk} : int<br />
-kode : varchar<br />
-farve : varchar<br />
ydelser_copydan<br />
-funique {fk} : int<br />
-fakturatekst : varchar<br />
-prisangives : double<br />
phone_num_status<br />
-id {pk} : int<br />
-name : varchar<br />
ticket_types<br />
-id {pk} : int<br />
-name : varchar<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 37 af 80<br />
*<br />
0..1 1<br />
0..1 1<br />
*<br />
1<br />
* 1<br />
1 1<br />
validation_patterns<br />
-id {pk} : int<br />
-name : varchar<br />
-id {pk} : int<br />
-mib : varchar<br />
-function : varchar<br />
Figur 17 - Diagram for implementeringen af resten af tabellerne<br />
mibs<br />
1<br />
-user_id {fk} : int<br />
-add_rel_id {fk} : int<br />
-email_wish : varchar<br />
-tlf_type_id {fk} : int<br />
-num_type_id {fk} : int<br />
-tlf_pay_id {fk} : int<br />
-pack_id {fk} : int<br />
-start_id {fk} : int<br />
-int_adm_id {fk} : int<br />
-inet_price_id {fk} : int<br />
-tlf_adm_id {fk} : int<br />
-tv_adm_id {fk} : int<br />
-tlf_authority : tinyint<br />
-date_created : datetime<br />
-date_done : datetime<br />
1<br />
user_wishes<br />
Jeg har tilføjet de stiplede tabeller. De tre i højre side, har ikke relationer,<br />
men bruges af online tilmelding i forbindelse med validering, SNMP og<br />
tilmelding. Payments knytter sig til brugeren og brugerens services, derfor<br />
er den placeret imellem disse. De tre stiplede i toppen er hhv. end_dates,<br />
start_dates og cutting_dates. Disse er alle tre afgørende for, hvilken dato et<br />
abonnement kan starte fra (start_dates) og slutte til (end_dates). Imellem<br />
disse vil cutting_dates skulle afgøre, hvilken start eller slut dato, som er<br />
mulig i forhold til dags dato.<br />
I users_table er feltet active skiftet ud med to datofelter hhv.<br />
inactivated_date og end_date. Active værdien bliver sat afhængig af om<br />
end_date er overskredet i forhold til dags dato. Funktionaliteten er<br />
forberedt til, når brugere opsiger alle services for at flytte fra sin adresse i<br />
Parknet. Så vil inactivated_date blive sat til den dato, hvor brugeren<br />
opsiger, mens end_date vil blive sat til den dato, hvorfra brugeren ikke<br />
længere har adgang til SAPS.<br />
Den stiplede streg mellem add_yd_rel og user_svc_rel, skal vise, at<br />
brugeren kun kan abonnere på services, som leveres på adressen.
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
7.1.2 Stored Procedures<br />
Navn Argument(er) Output<br />
getServices (input_address) ResultSet<br />
insert_user<br />
(input_firstname, input_lastname, input_password,<br />
input_phoneno, input_cellphoneno, input_email)<br />
(input_userNumber, input_address, input_email_wish,<br />
input_tlfTypeId, input_numTypeId, input_tlfPayId, input_packId,<br />
void<br />
insert_user_in_temp input_startId, input_user_internet_adPriceId,<br />
input_user_internet_monthPriceId, input_user_tlf_admPriceId,<br />
input_user_tv_admPriceId)<br />
void<br />
numbers () ResultSet<br />
portations () ResultSet<br />
to_do () ResultSet<br />
todo_tv () ResultSet<br />
usersintemp () ResultSet<br />
Den stored procedure (SP) kaldet getServices bruges til at hente, hvilke af<br />
Parknets tre services, der kan vælges på det adresse id, som proceduren<br />
kaldes med.<br />
De to SP til insert, bruges primært for at sikre, at databasen ikke bliver SQL<br />
injected. Insert_user bruges af online tilmeldingen, når der ikke er en aktiv<br />
bruger på adressen, ellers bruges insert_user_in_temp. Den tager flere<br />
argumenter end insert_user, da alle brugerens valg skal gemmes.<br />
De sidste SP bruges til sammentælling af de punkter, som skal præsenteres<br />
på velkomstsiden i REALM.<br />
7.1.3 Views<br />
Navn Output<br />
address_showinet id, roadid, adresse, postnr, forening, showinet<br />
address_view id, roadid, stairid, adresse, postnr, forening, TVpakke<br />
intersection_view id, blok, vej, nr., adresse, postnr<br />
users id, initials, name, role, password<br />
Viewet address_showinet viser de adresser, som har fået sat showinet = 1.<br />
Det bruges i online tilmeldingens adressevælger.<br />
address_view bruges alle steder i SAPS, hvor der skal vises en adresse. Den<br />
sørger for at sammensætte adressen fra de forskellige tabeller og vise den<br />
som en streng.<br />
intersection_view viser krydsfelter i SAPS, sat sammen af blok nr. og<br />
opgangs nr. samt adressen og post nr.<br />
users er et view som bruges af REALM i forbindelse med login. Det er<br />
felterne initials, name, role og password som bruges. Jeg har valgt, at login<br />
kører via bruger id i stedet for initialer. Derfor vises det samme tal i både id<br />
og initials.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 38 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
7.2 Sitemap over SAPS og online tilmelding<br />
Jeg har valgt at indsætte sitemappet over implementeringen før jeg<br />
beskriver filerne, for at lette forståelsen.<br />
Der er kommet nogle tilføjelser siden designfasen. Der er oprettet en folder<br />
til billeder af krydsfelterne, for at billedefilerne ikke bliver rodet sammen<br />
med resten af SAPS. Desuden krævede grafikken til online oprettelse<br />
billeder, som også har fået sin egen folder.<br />
Figur 18 - Sitemap over implementerede filer<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 39 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
7.3 SAPS<br />
Enkelte filer med basal funktionalitet bliver delt mellem SAPS og online<br />
tilmelding, de ligger i ROOT og bliver beskrevet i dette afsnit sammen med<br />
filerne til SAPS.<br />
7.3.1 Beskrivelse af de forskellige JSP filer<br />
Sti: /ROOT/ (filerne db, pay_tools og snmp er fælles med online<br />
opret)<br />
Filnavn: Beskrivelse:<br />
Skaber forbindelse til de to databaser hhv. localhost og Miralix (forudsætter at<br />
serveren har adgang gennem Parknets firewall til Miralix). Alle øvrige filer som<br />
bruger databaserne inkluderer denne fil.<br />
db<br />
Indeholder følgende funktioner:<br />
getUsername (henter et brugernavn ud fra ID)<br />
getColor (henter en farve ud fra en service ID)<br />
getDate (henter en startdato ud fra ID)<br />
Rummer HTML tags som skal stå i starten af alle de sider, som brugeren skal se.<br />
design_start<br />
Ved at inkludere denne i starten af alle filer, kan overskrift o.l. rettes ét sted.<br />
Rummer afslutnings tags til HTML og skal inkluderes i slutningen af alle de filer,<br />
design_end<br />
hvor design_start er inkluderet i starten.<br />
findUserRole Finder brugerens rolle.<br />
index Velkomst side uden for REALM.<br />
login Login i REALM via brugernummer og password.<br />
loginerror Vises hvis login mislykkedes.<br />
logout Invaliderer brugerens nuværende session, så nyt login bliver påkrævet.<br />
Indeholder følgende funktioner:<br />
insertCreateFee (indsætter oprettelsesgebyr i tabellen payments)<br />
insertUserSvcRel (indsætter Internet service i tabellen user_svc_rel)<br />
pay_tools<br />
insertUserSvcRelTlf (indsætter telefon service i tabellen user_svc_rel)<br />
insertUserSvcRelTv(indsætter TV service i tabellen user_svc_rel)<br />
getFakturaTekst (henter servicens fakturatekst fra tabellen ydelser)<br />
getFakturaNavn (henter servicens navn fra tabellen ydelser)<br />
Indeholder følgende funktioner:<br />
snmp_via_add (udfører den ønskede SNMP kommando, ud fra adresse ID)<br />
snmp<br />
snmp (udfører den SNMP kommando ud fra switch ID og port nr.)<br />
SNMP kommandoerne som kan vælges er: status, åben og luk.<br />
P.t. køres kommandoerne kun simuleret som print til server console.<br />
Sti: /ROOT/authorized_users<br />
Filnavn: Beskrivelse:<br />
design_start<br />
Samme som i ROOT, dog med den tilføjelse af denne fil<br />
findUserRole.jsp, således at menuen kan tilpasses brugerens rolle.<br />
inkluderer<br />
design_end Samme som i ROOT.<br />
Velkomstside til alle roller som har adgang til systemet. Inkluderer<br />
welcome<br />
findUserRole.jsp, så der kan præsenteres data afhængig af brugerens rolle.<br />
Almindelige brugere får vist deres abonnementer med mulighed for framelding.<br />
Alle andre får vist antal punkter på to do listerne, porteringer, tilmeldinger og<br />
antal telefonnumre i Parknet.<br />
Sti: /ROOT/authorized_users/AccountantArea<br />
Filnavn: Beskrivelse:<br />
accountant_tools<br />
Viser start datoer, slut datoer og skæringsdatoer og giver mulighed for<br />
ændringer.<br />
Søger på adresser i SAPS via indtastning af en del af vejnavnet, søgningen kan<br />
address_search indsnævres ved også at angive et opgangsnummer. Når resultatet af søgningen<br />
vises, kan man klikke på en adresse, hvorved user_add_svc_show bliver kaldt.<br />
copydan Viser priserne for copydan delen af en TV pakke og giver mulighed for at rette.<br />
design_start<br />
Desværre er denne fil nødvendig igen, for at holde stien rigtig, da brugeren nu er<br />
et niveau længere inde i REALM’et.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 40 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
design_end Det samme som ovenstående.<br />
functions<br />
Indeholder p.t. 37 funktioner som bruges af de øvrige JSP filer til at oprette,<br />
slette og redigere data i databasen.<br />
payments Viser data i tabellen payments.<br />
services<br />
Viser data i tabellen ydelser (dvs. Parknets services) med mulighed for at<br />
redigere.<br />
Viser oplysninger om adressen:<br />
- tilmeldt bruger<br />
user_add_svc_show<br />
-<br />
-<br />
tilmeldte services og deres status<br />
tickets<br />
- mulighed for ændring af TV servicen<br />
- mulighed for at åbne/lukke Internet port<br />
users_limited<br />
Viser alle brugere i systemet sorteret efter brugerrolle og fornavn. Der er<br />
mulighed for at rette navne, telefonnumre og e-mail. Det er kun administrator<br />
som kan rette brugerens rolle og aktivere/inaktivere brugere.<br />
Sti: /ROOT/authorized_users/AdministratorArea<br />
Filnavn: Beskrivelse:<br />
accountant_tools Kopi af filen fra AccountantArea.<br />
Når brugeren har valgt en vej fra drop down menuen vises alle adresser på den<br />
address_data<br />
vej. Ud for hver vej kan man angive x-felt data, dvs. patchpanel nr., navn på xfelt<br />
og om adressen skal vises i online tilmeldingen.<br />
Når brugeren har valgt en vej fra drop down menuen vises de adresser som har<br />
tilknyttet aktivt udstyr.<br />
address_ports Der er mulighed for at tilføje nye tilknytninger mellem adresser og aktivt udstyr<br />
ved at vælge adresse, udstyrets navn og portnummeret (antallet af porte er<br />
styret af udstyrets navn fx 8, 24 eller 48).<br />
address_search Kopi af filen fra AccountantArea.<br />
Viser hhv. foreninger, veje, etager, etagesider, opgangsbogstaver og<br />
address_tools opgangsnumre i SAPS. Der er mulighed for at rette og tilføje nye. Der kan ikke<br />
slettes.<br />
copydan Kopi af filen fra AccountantArea.<br />
Fra drop down menuen kan vælges de veje som er i systemet. Hvis der er<br />
adresser på vejen, kan disse fjernes – forudsat at der ikke er tilknyttet services<br />
til adressen. Hvis der ikke er adresser på den pågældende vej, kan der tilføjes<br />
nye serier ved at angive:<br />
Vej<br />
create_address<br />
Nr. fra og til (der oprettes kun hver anden, fx 1, 3, 5)<br />
Opgang fra og til (hvis der er bogstaver i opgangsnumrene ellers blank)<br />
Etage fra og til<br />
Antal sider (hvis der angives 2, bliver tv. og th. brugt, ved flere er det med nr.)<br />
Post nr.<br />
Foreningen, som adresserne hører til<br />
Når der klikkes på ”Tilføj” oprettes alle adresser i det ønskede interval.<br />
design_start Kopi af filen fra AccountantArea.<br />
design_end Kopi af filen fra AccountantArea.<br />
Fra drop down menuen vælges imellem krydsfelter i SAPS. Hvis der er aktivt<br />
equip_in_int<br />
udstyr i det valgte krydsfelt, vises det med mulighed for at rette. Der er mulighed<br />
for at tilføje nyt udstyr ved at angive navn, login, password, serienr, type og<br />
skrive en start dato.<br />
equipment<br />
Liste over aktivt udstyr. Listen kan redigeres og nyt udstyr kan tilføjes. Det er<br />
ikke muligt at slette.<br />
functions Kopi af filen fra AccountantArea.<br />
Viser krydsfelter i SAPS. Der kan vælges mellem veje eller blok nummer. Hvis der<br />
er et krydsfelt, kan man ved at klikke på adressen se et kort over krydsfeltets<br />
intersections<br />
placering. Hvis der ikke er tilknyttet aktivt udstyr til krydsfeltet, kan det fjernes.<br />
Der er mulighed for at tilføje nye krydsfelter til systemet. Husk at lægge en<br />
billedfil i /images.<br />
mib<br />
Viser de MIB strenge som bruges til SNMP kommandoerne: status, åben og luk.<br />
Strengene kan redigeres.<br />
payments Kopi af filen fra AccountantArea.<br />
Viser alle telefonnumre i SAPS, sorteret efter nummer. Der er mulighed for at<br />
phone_numbers<br />
rette nummerets status fx fra ”på vej ind” til ”OK”. Der er også mulighed for at<br />
tilføje nye numre, enten som serie eller som enkelt nummer (skriv det samme<br />
nummer i både ”første nummer” og ”sidste nummer”).<br />
Viser de statusser et telefonnummer kan have i systemet. Statussen kan rettes<br />
phone_tools<br />
og der kan tilføjes nye. Der kan desuden rettes i hemmeligt nummer<br />
mulighederne og tilføjes nye.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 41 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
services Kopi af filen fra AccountantArea.<br />
Viser alle services fra tabellen ydelser. Ud for hver ydelse kan man vælge om<br />
servicen kan vælges til den adresse, som man har valgt i drop down menuen.<br />
services_address Status er vist med rød eller grøn farve. Der er mulighed for at klikke på knappen<br />
”Tilføj standard services”, hvorved alle services defineret som ”standard services”<br />
tilføjes adressen.<br />
Viser farver til services. Der er mulighed for at redigere farverne. Farverne skal<br />
services_color<br />
tastes i tekst som lovlige HTML farver.<br />
Viser drop down menu, hvorfra man kan vælge foreninger i SAPS. Når man har<br />
services_realestate valgt en forening, kan man tilføje ”standard services” til alle adresser i foreningen<br />
ved at klikke på ”Tilføj standard services”.<br />
Viser alle services fra tabellen ydelser. Ud for hver ydelse kan man vælge, om<br />
std_services<br />
den skal være en del af definitionen ”standard services”. Status er vist med rød<br />
eller grøn farve.<br />
ticket_tools Rediger ticket typer i systemet og tilføj nye.<br />
Viser en liste over pakkeskift som skal udføres. Listen er sorteret efter dato,<br />
postnr., krydsfelt og adresse. På den måde vises de mest presserende først,<br />
sorteret efter postnr., så man kan vælge kørsler efter geografien. Dernæst er det<br />
todo_tv<br />
nemmest, når kørslerne er samlet pr. krydsfelt.<br />
user_add_svc_show<br />
Der er en done knap, som fjerner rækken fra listen. Der er INGEN undo funktion,<br />
så knappen skal kun bruges NÅR pakkeskiftet er udført.<br />
Kopi af filen fra AccountantArea.<br />
user_roles Viser brugerroller i systemet (kan ikke ændres).<br />
Den fulde udgave af filen fra AccountantArea. Der kan oprettes nye brugere. Alle<br />
users<br />
oplysninger om eksisterende brugere kan rettes og brugeren kan<br />
validation<br />
aktiveres/deaktiveres.<br />
Viser valideringsstrenge som bruges i online tilmeldingen til validering af hhv.<br />
navne, e-mailadresse og telefonnumre.<br />
Sti: /ROOT/authorized_users/SupporterArea<br />
Filnavn: Beskrivelse:<br />
address_search Kopi af filen fra AccountantArea.<br />
design_start Kopi af filen fra AccountantArea.<br />
design_end Kopi af filen fra AccountantArea.<br />
functions Kopi af filen fra AccountantArea.<br />
todo_tv Kopi af filen fra AdministratorArea.<br />
user_add_svc_show Kopi af filen fra AccountantArea.<br />
user_roles Kopi af filen fra AdministratorArea.<br />
users_limited Kopi af filen fra AccountantArea.<br />
Sti: /ROOT/authorized_users/UserArea<br />
Filnavn: Beskrivelse:<br />
design_start Kopi af filen fra AccountantArea.<br />
design_end Kopi af filen fra AccountantArea.<br />
functions<br />
Kopi af filen fra AccountantArea, hvor alle ikke-relevante funktioner er slettet.<br />
Dvs. der kun er funktion til opsigelse.<br />
Brugeren kan opsige sit abonnement ved at vælge opsigelsesdato og dernæst<br />
terminate<br />
klikke ja. Derefter vises abonnementet som værende aktivt indtil<br />
opsigelsesdatoen.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 42 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
Beskrivelse af udvalgte funktioner i SAPS:<br />
Tilføj adresseserie – mode 5 i functions.jsp<br />
Der køres en for-løkke for intervallet af opgangsnumre, hvor der lægges 2<br />
til pr. gennemløb. For hvert gennemløb inde i denne køres for-løkker til hhv.<br />
opgangsbogstaver og etager. Afhængigt af hvor mange sider, der skal<br />
tilføjes pr. etage er der tre forskellige muligheder for, hvordan data skrives i<br />
tabellen addressrel.<br />
Hvis der kun er 1 side, skrives der ikke data sideid feltet.<br />
Hvis der er 2 sider, skrives 1 eller 2 i sideid feltet.<br />
Hvis der er flere end 2 sider, skrives fra 3 og op i sideid feltet.<br />
På den måde passer det med, at 1 og 2 bliver læst til tv. og th. og at tal<br />
større end 3 bliver læst til -1, -2 osv.<br />
Aktiver/deaktiver en bruger – mode 26 i functions.jsp<br />
For administrator ser det ud som om en bruger ”bare” har et aktiv flag.<br />
Sådan fungerer det ikke i databasen. Her er to felter inactivated_date og<br />
end_date. Hvis administrator sætter active til 0, skrives NOW() i begge<br />
felter. Hvis administrator sætter active til 1, skrives NULL i begge felter.<br />
Indsæt TV service hos en bruger – mode 32 i functions.jsp<br />
Der indsættes den valgte TV service i user_svc_rel<br />
Der indsættes oprettelsesgebyr i payments<br />
Der oprettes en ticket<br />
Tilføj standard services til en forening<br />
Funktionen vælger alle adresse ID’er fra den pågældende forening. Dernæst<br />
vælges alle ID’er fra standard services. Så tjekkes om adresse ID og service<br />
ID står i tabellen add_yd_rel, hvis ikke indsættes den nye relation. På den<br />
måde sikres det, at en relation aldrig optræder to gange. Hvis den gjorde,<br />
ville det kunne ses i online tilmeldingen, hvor TV pakkerne fx ville stå to<br />
gange.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 43 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
7.4 Online tilmelding<br />
7.4.1 Beskrivelse af de forskellige JSP filer<br />
(der bruges funktioner fra filerne db, pay_tools og snmp i /ROOT)<br />
Sti: /ROOT/opret<br />
Filnavn: Beskrivelse:<br />
address<br />
Funktioner til at vise adressevælgeren til brugeren i trin 1, adressevælgeren er 3<br />
trins, først vises postnummervælger, når brugeren har valgt postnummer vises<br />
gadevælger, når der er valgt gade vises til slut adressevælgeren og ”næste”<br />
knappen.<br />
Funktioner til at vise de forskellige bokse i trin 2 samt hjælpefunktioner til at<br />
hente navne og priser på services, datoer, passwordgenerator og indsættelse af<br />
det nye medlem i databasen.<br />
Trin 2 - getAllServices()<br />
Trin 2 - getName()<br />
Trin 2 - getInternet()<br />
Trin 2 - getPhone()<br />
Trin 2 - getTelevision()<br />
Trin 3 - getConfirmChoises()<br />
Trin 4 - getDone()<br />
boxes<br />
Hjælpefunktioner som kaldes af de ovenstående:<br />
getNoService()<br />
writeNewMember()<br />
getUserCreated()<br />
setUserInTemp()<br />
getErrorWhileCreatingUser()<br />
getServiceName()<br />
getStartName()<br />
getPrice()<br />
getCityName()<br />
getNewMemberNumber()<br />
getPassword()<br />
Visning af de forskellige bokse med næste og tilbage knapper<br />
getForwardBtn()<br />
buttons<br />
getForwardBakcBtnStep3()<br />
getForwardBackBtn()<br />
Rummer HTML tags og JavaScript funktioner som bruges af opret.jsp. Det er p.t.<br />
kun opret.jsp, som inkluderer design_start, men for overskueligheden skyld og<br />
segmentering af koden, giver det god mening at have det skilt ud i en separat fil.<br />
Indeholder følgende funktioner:<br />
doToggleService()<br />
design_start<br />
toggleService()<br />
toggleStep3()<br />
initStep2()<br />
init()<br />
charCount()<br />
setBtnNext()<br />
design_end Rummer HTML afslutnings tags.<br />
Funktioner til validering af brugerens input<br />
stripHTML()<br />
functions<br />
validateServiceId()<br />
validateStartId()<br />
getServices Bruges til at finde ud af, hvilke af Parknets 3 services, som er aktive på adressen.<br />
Online tilmeldingens hovedfil - bruger funktioner fra alle de andre filer. Bruges til<br />
opret<br />
at vise korrekte bokse til brugeren, validere input og gemme brugeren i<br />
databasen.<br />
stepIndicator Viser boksen med trinindikatoren.<br />
Generelt om alle funktionerne, der har med output til skærmen at gøre, kan<br />
det siges, at de returnerer en streng. Strengene er formateret pænt og alle<br />
linjer afsluttes med \n, som sørger for at kodens formatering er magen til i<br />
browseren, når nogen vælger ”vis sidens kildekode”.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 44 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
De funktioner som kører databasekald tager altid et statement som<br />
argument, hvis det er nødvendigt at køre flere databasekald inde i<br />
hinanden, skal der bruges et tilsvarende antal statements i funktionskaldet.<br />
Opret.jsp er inddelt i de samme 4 trin som brugeren ser ved tilmelding.<br />
Opret.jsp kan sætte flueben i boksene i trin 2 via JavaScript i linje 486-493.<br />
Beskrivelse af udvalgte funktioner:<br />
getAddressChooser()<br />
Sørger for at vise adressevælgeren til brugeren. Der køres en onchange på<br />
postnummer vælgeren, så siden automatisk opdateres, når brugeren har<br />
valgt et postnummer. Dernæst vises gadevælger, efter valg af gade vises<br />
adressevælger og næste knap.<br />
getName()<br />
Viser indtastningsfelter til brugerens navne, tlf. nr. og nuværende e-mail. I<br />
de to navnefelter køres charCount() ved keyup, dvs. funktionen køres, for<br />
hver gang brugeren slipper en tast. Når der står mindst 2 bogstaver i hhv.<br />
fornavn og efternavn forsvinder teksten om, at brugeren skal skrive for- og<br />
efternavn, før du kan klikke næste.<br />
getPhone(), getInternet() og getTelevision()<br />
Viser en boks til brugeren, hvori den pågældende service kan vælges. Når<br />
fluebenet til servicen markeres, køres JavaScript funktionen<br />
toggleService(). Den sørger for, at felterne til servicen aktiveres, så<br />
brugeren kan vælge disse. Felterne aktiveres via deres ID. Samtidigt fjernes<br />
teksten om at der skal vælges mindst én service, før du kan klikke næste.<br />
getDone()<br />
Opret.jsp sætter en sessionvariabel (”done”), når brugeren er oprettet. For<br />
hvert step bliver denne variabel testet og hvis den er sat kaldes getDone().<br />
Funktionen bruges, hvis en bruger efter tilmelding har brugt tilbage<br />
knappen i browseren og derefter klikker på næste eller tilbage knappen i<br />
online tilmeldingen.<br />
getNoService()<br />
Kaldes hvis den pågældende service ikke tilbydes på den valgte adresse.<br />
Beskrivelse af udvalgte JavaScript funktioner i design_start:<br />
function doToggleService(svc, val)<br />
Funktionen bruges til at aktivere felterne og fluebenet i en valgboks til en<br />
service. De tre cases i funktionen er til hhv. Internet, telefon og TV. I hver<br />
case styres de felter/drop down menuer som aktiveres/deaktiveres via<br />
deres ID. Desuden styres teksten om, at du skal vælge en service osv. og<br />
funktionen setBtnNext ud fra, om der er valgt nogen service. Når en service<br />
vælges/fravælges bliver der lagt 1 til eller trukket 1 fra variablen<br />
svcsenabled. Hvis denne variabel er større end nul, køres setBtnNext med<br />
1, hvis den er 0 køres setBtnNext med 0 og ellers køres funktionen ikke.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 45 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
If sætningen som tester værdien af val er meget kompakt og resultatet<br />
bliver lagt direkte ind i svcsenabled.<br />
Linjen ser således ud:<br />
svcsenabled += val ? 1 : -1;<br />
Skrevet på lang form ville den se således ud:<br />
if (val == true)<br />
{<br />
svcsenabled + = 1;<br />
}<br />
else<br />
{<br />
svcsenabled += -1;<br />
}<br />
Syntaksen for den korte form af if sætningen, går igen i mange af de andre<br />
funktioner.<br />
function toggleService(svc, elm)<br />
Funktionen kalder doToggleService. Denne funktion bruges, når brugeren<br />
sætter/fjerner fluebenet ved servicen. Den er nødvendig for at kalde<br />
doToggleService med korrekt værdi, fluebenet laves om til 0 eller 1.<br />
function toggleStep3(val)<br />
Funktionen styrer, at knappen ”næste” i trin 3 først vises, når brugeren har<br />
klikket ja til at acceptere Parknets abonnementsvilkår.<br />
function initStep2()<br />
Funktionen bruges, hvis brugeren klikker tilbage i trin 3, til at aktivere de<br />
services som brugeren har valgt tidligere. Funktionskaldet fra opret.jsp<br />
rummer servicen som boolsk værdi. Funktionen kalder charCount og<br />
doToggleService.<br />
function init()<br />
Funktionen kaldes når opret.jsp er i trin 2.<br />
function charCount()<br />
Funktionen tæller antallet af tegn i felterne til fornavn og efternavn. Når<br />
antallet af tegn i begge felter er større end 1 kaldes funktionen setBtnNext<br />
med 1 ellers med 0.<br />
function setBtnNext(caller, val)<br />
Funktionen bruger input fra hhv. charCount og doToggleService til at<br />
aktivere/deaktivere knappen ”næste” i trin 2. Hvis begge funktioner har<br />
kaldt setBtnNext, aktiveres knappen.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 46 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
7.4.2 State diagram<br />
Figur 19 - Statediagram for online tilmeldingen<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 47 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
7.5 Implementeret og ikke-implementeret:<br />
Jeg har valgt at lave en liste med implementerede funktioner samt de<br />
oprindelige fra mit projektoplæg (vises med + for oprindelig og – for ny<br />
funktion). Ud for hver funktion er der indikeret om den er implementeret.<br />
Efter listen begrunder jeg min prioritering af implementering.<br />
Nr. Felter Impl. +/-<br />
Netværksinstallationer:<br />
1a Adresser Ja +<br />
1b Netværksdata Ja +<br />
1c Services, som kan vælges til adressen Ja +<br />
Brugere:<br />
2a Navn Ja +<br />
2b Bruger ID/konto nr. Ja +<br />
2c E-mail Ja +<br />
2d Telefonnumre (fastnet og mobil) Ja +<br />
2e PBS aftalenummer Nej +<br />
2f Tilmeldte services Ja +<br />
2g Tilmeldings dato Ja +<br />
2h Frameldings dato Ja +<br />
2i Kommentarfelt Nej +<br />
Funktionaliteter:<br />
3a Adresser oprettes vha. relationer mellem husnumre, etager og sider Ja +<br />
3b Foreninger tilknyttes adresser Ja +<br />
3c Foreninger skal have tilknyttet x-felter Nej +<br />
3d X-felter skal have tilknyttet netværksudstyr Ja +<br />
3e<br />
Det skal være muligt at uploade et billede, som viser placeringen af<br />
krydsfeltet i ejendommen<br />
Ja +<br />
3f<br />
Man skal kunne forbinde de forskellige krydsfelter i systemet med den type<br />
af fiberflow/lysleder som er brugt<br />
Nej +<br />
3g<br />
OPTIONAL Brugeren skal kunne vælge hvilket rør i fiberflowen som er<br />
brugt<br />
Nej +<br />
3h OPTIONAL Brugeren skal kunne indsætte fordelerdåser på en fiberflow Nej +<br />
3i<br />
OPTIONAL Brugeren skal kunne vælge hvilken type fiber, der er blæst i<br />
røret<br />
Nej +<br />
3j<br />
OPTIONAL Brugeren skal kunne vælge hvor mange fibre som er splidset<br />
og hvilke som er i brug<br />
Nej +<br />
Liste over netværksudstyr:<br />
4a Switche Ja +<br />
4b Audiocodes Ja +<br />
4c UPS’e Ja +<br />
4d Fiberflow Nej +<br />
Liste over telefonnumre i systemet:<br />
5a Man skal kunne tilføje enkeltnumre og indikere om de er porteret eller ej Ja +<br />
5b Man skal kunne tilføje en hel nummerserie (fra nr. til nr.) Ja +<br />
5c<br />
Man skal kunne sætte et tidsrum som numre skal henligge, før de må<br />
bruges igen<br />
Nej +<br />
5d<br />
Man skal kunne nedlægge numre og indikere, om de skal udporteres eller<br />
må genbruges<br />
Delvist +<br />
Liste over e-mail i systemet:<br />
6a Brugeren skal selv kunne oprette en e-mailadresse (simuleres) Nej +<br />
6b<br />
Brugerens e-mailadresse(r) nedlægges 6. mdr. (eller en periode som kan<br />
ændres) efter opsigelse<br />
Nej +<br />
Søgninger:<br />
7a Foreningskontorer/kontaktpersoner Nej +<br />
7b Udstyrsspecifik Nej +<br />
7c Services specifik Nej +<br />
7d Ledig fiberflow Nej +<br />
Alle lister skal kunne redigeres:<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 48 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
8a<br />
8b<br />
8c<br />
Det skal altid være muligt at tilføje noget nyt (forudsat, at det ikke findes i<br />
forvejen)<br />
Der kan kun fjernes udstyr/adresser/etc., som IKKE har relationer til<br />
noget/nogen<br />
Administrationsdelen skal logføre alle ændringer, så det altid er muligt at<br />
spore, hvilken admin som har foretaget ændringer i oplysninger/relationer<br />
i databasen.<br />
Ja +<br />
Ja +<br />
Delvist +<br />
Online tilmelding:<br />
9a Brugerne i Parknet skal kunne tilmelde sig online og indsættes i databasen Ja -<br />
9b Der skal kun kunne vælges mellem adresser i Parknet Ja -<br />
9c Det skal kunne styres pr. adresse, hvilke services Parknet leverer Ja -<br />
9d Brugerens input skal valideres Ja -<br />
9e Online tilmeldingen skal være nem, overskuelig og se pæn ud Ja -<br />
9f Brugerens password skal autogenereres Ja -<br />
9g Brugeren skal kunne tilmelde sig PBS Ja -<br />
9h Brugeren må ikke kunne oprette sig flere gange via samme browservindue Ja -<br />
SAPS:<br />
10a Brugerne i Parknet skal have adgang til selvbetjening i SAPS Ja -<br />
10b Brugerne skal kunne opsige services i SAPS Ja -<br />
10c<br />
Brugerne skal kunne abonnere på nye services/ændre eksisterende,<br />
bestille fast IP nr., oprette e-mail adresse osv.<br />
Nej -<br />
10d<br />
SAPS skal selv indsætte poster i opkrævninger. Fx gebyr for ændring af TV<br />
pakke<br />
Delvist -<br />
10e Der skal være to do lister Delvist -<br />
10f<br />
Funktioner til bogholder, så der kan køres opkrævning af brugernes<br />
services<br />
Nej -<br />
10g<br />
Brugere skal kunne oprettes via SAPS, tilknyttes en adresse og få<br />
abonnementer (kører i online tilmelding, men endnu ikke i SAPS)<br />
Nej -<br />
10h<br />
Brugere skal kunne meddele flytning via SAPS, så adressen bliver ledig<br />
igen. Funktionen skal også være tilgængelig for bogholderen<br />
Nej -<br />
2e) PBS nummer skal bruges i forbindelse med at køre opkrævninger, som skal sendes til PBS. Jeg<br />
nåede ikke så langt, at dette felt blev relevant.<br />
2i) I stedet for et kommentarfelt har jeg implementeret mulighed for at skrive tickets. Jeg opfatter<br />
tickets som en form for kommentarer.<br />
3c) Krydsfelterne er implementeret, så de hører til en adresse eller en blok – ikke en forening.<br />
3f – 3j + 4d) er ikke implementeret. Dels har Parknet allerede et system til at dokumentere<br />
fiberforbindelser og derudover er hovedparten af Parknets netværk baseret på Extreme switche. Disse<br />
har en funktion som hedder SHOW EDP port X (EDP står for Extreme Discovery Protocol), dvs. at hvis<br />
man kører SHOW EDP på alle backbone porte, vil swithcene kunne tegne netværkstopologien selv.<br />
Derfor har jeg valgt at fokusere andre steder bl.a. på online tilmelding.<br />
6a + b) er ikke implementeret. Jeg havde ikke MySQL adgang til @-mail serveren, hvor jeg kunne have<br />
oprettet mailadresserne.<br />
7) er ikke implementeret. Data er i databasen (dog ikke til 7d), så det er kun et spørgsmål om at få<br />
defineret kriterierne for søgningerne.<br />
8c) er delvist implementeret ved, at SAPS skriver en ticket, når en supporter eller administrator ændrer<br />
brugerens TV pakke. Derudover skrives der også en ticket, når TV pakken er ændret og nogen klikker<br />
”Done” på TV to do listen.<br />
10c) brugeren kan logge ind i SAPS, resten er bare programmering af funktionerne.<br />
10d) der indsættes gebyr for hhv. oprettelse af Internet og TV via online tilmelding og fra SAPS ved<br />
ændring af TV pakke. Dette skal udbygges, så alle tilmeldinger/ændringer til services skrives i<br />
opkrævninger.<br />
10e) der er implementeret TV to do liste, listerne for telefon og Internet ville ligne denne liste.<br />
10f) der er implementeret felter i databasen, så systemet er klar til at køre opkrævningerne. Bl.a. skal<br />
skæringsdato for abonnements start bruges.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 49 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
8 Test<br />
8.1 Indledning<br />
Test skal altid være en fast del af udviklingen. Jeg har for hver ny<br />
komponent eller feature testet, at den virkede korrekt. Disse tests er ikke<br />
nok til at validere et system på SAPS størrelse. Der er for mange<br />
afhængigheder mellem data til, at små enkeltstående test kan blive<br />
afgørende for en konklusion på funktionaliteten af helheden.<br />
Opbygningen af testafsnittet er i høj grad inspireret af opbygningen af IEEE-<br />
829. Jeg har erfaring med brug af denne procedure fra tidligere projekter i<br />
min studietid på DTU.<br />
8.2 Demonstration<br />
SAPS blev demonstreret for nogle af mine kolleger hos Parknet fredag den<br />
17. april 2009. I den forbindelse fremkom mange gode kommentarer og<br />
forslag til ændringer og forbedringer. Der blev fundet én fejl under<br />
demonstrationen, som blev rettet med det samme.<br />
8.3 Brugertest<br />
Brugertest er den test som ligger efter systemtesten. I denne fase testes<br />
systemet med brugerinput for at afprøve samtlige funktioner og sikre at<br />
finde eventuelle fejl, samt klarlægge den overordnede kvalitet af produktet.<br />
Testeren har frie hænder til at teste ud over de givne test cases, for på den<br />
måde at komme til bunds i yderpunkter, hvor der kan opstå fejl. Testen vil<br />
blive udført med nedenstående test cases, fejl rapporteres i fejllisten afsnit<br />
8.4.<br />
8.3.1 Test cases<br />
8.3.1.1 Opret/rediger adresser<br />
Prækonditioner:<br />
‐ Administrator er logget ind<br />
Test case Bruger interaktion Forventet output Svar Fejl<br />
nr.<br />
nr.<br />
001 Vælg ”Foreninger, veje, numre, etager og sider” fra<br />
menuen<br />
Det er muligt Pass<br />
002 Tilføj A/B Lindegaarden til SAPS Det er muligt Pass<br />
003 Tilføj Tornsangervej, Kærsangervej og Mågevej til<br />
SAPS<br />
Det er muligt Pass<br />
004 Klik på tilføj ud for veje uden at taste noget input Der oprettes en tom vej Pass<br />
005 Ret adressen til Gransangervej Det er muligt Pass<br />
006 Vælg ”Tilføj/fjern adresser” fra menuen Det er muligt Pass<br />
007 Tilføj Tornsangervej 1 – 13, Gransangervej 1‐3,<br />
Mågevej 20‐22, Kærsangervej 10‐20, stuen – 2. sal, 2<br />
sider, 2400, A/B Lindegaarden<br />
Det er muligt Pass<br />
008 Fjern Tornsangervej 9 2.th og 2. tv Det er muligt Pass<br />
009 Tilføj Tornsangervej 9 – 9, 2. sal – 2. sal, 1 side, 2400,<br />
A/B Lindegaarden og Tornsangervej 11 kld.<br />
Det er muligt Pass<br />
010 Konstatér at alle adresser har en ”Fjern” knap i<br />
kolonnen ”Funktion”<br />
Ja Pass<br />
011 Klik på tilføj uden at vælge noget input Der oprettes ingen adresser Pass<br />
012 Tilføj en adresseserie, hvor ”nr. fra” > ”nr. til ”og<br />
”etage fra” > ”etage til” og 2 sider<br />
Der oprettes ingen adresser Pass<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 50 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
8.3.1.2 Opret/rediger krydsfelter<br />
Prækonditioner:<br />
‐ Administrator er logget ind<br />
Test case Bruger interaktion Forventet output Svar Fejl<br />
nr.<br />
nr.<br />
013 Vælg ”Vis/opret krydsfelter” fra menuen Det er muligt Pass<br />
014 Tilføj et krydsfelt på Tornsangervej 7 og Kærsangervej<br />
16, kld., blok 16, 2400<br />
Det er muligt Pass<br />
015 Vælg blok 16 i drop down menuen Der vises to krydsfelter (b16x7 og<br />
b16x16)<br />
Pass<br />
016 Vælg Tornsangervej i drop down menuen Der vises et krydsfelt (b16x7) Pass<br />
017 Vælg Kærsangervej i drop down menuen Der vises et krydsfelt (b16x16) Pass<br />
018 Konstatér at krydsfelterne har en ”Fjern” knap i<br />
kolonnen ”Funktion”<br />
Ja Pass<br />
019 Vælg ”Aktivt udstyr” fra menuen Det er muligt Pass<br />
020 Klik på tilføj uden taste noget input Java exception pga.<br />
nummerformateringsfejl<br />
Pass<br />
021 Tilføj MP 118 ‐ 8 porte, MP 124 – 24 porte, X200‐24 –<br />
24 porte, X200‐48<br />
Det er muligt Pass<br />
022 Ret en af rækkerne i tabellen Det er muligt Pass<br />
023 Ret et af portantallene til en IKKE‐integer Java exception pga.<br />
nummerformateringsfejl<br />
Pass<br />
024 Vælg ”Udstyr i x‐felt” Det er muligt Pass<br />
025 Vælg ”b16x7” fra drop down menuen Der vises udstyr i x‐feltet Pass<br />
026 Tilføj b16e21, b16e22 og b16e23 med admin, admin,<br />
12345, X200‐24, 2006‐10‐01<br />
Det er muligt Pass<br />
027 Tilføj b16t21, b16t22 med admin, admin, 12345, MP<br />
124, 2006‐10‐01<br />
Det er muligt Pass<br />
028 Klik på tilføj uden at taste/angive noget input Java exception pga.<br />
datoformateringsfejl<br />
Pass<br />
029 Klik på tilføj med kun start dato angivet Der oprettes tom linje med kun navn<br />
og start dato udfyldt<br />
Pass<br />
030 Ret den tomme linje til: b16t23 med admin, admin,<br />
12345, MP 118, 2006‐10‐01<br />
Det er muligt Pass<br />
031 Vælg ”Adressedata i x‐felt” Det er muligt Pass<br />
032 Vælg Tornsangervej fra drop down menuen Der vises alle adresser på<br />
Tornsangervej<br />
Pass<br />
033 Klik på ret ud for nr. 1 st. tv. og tilføj datapatch: C1 15,<br />
telepatch: C1 16, vælg b16x7 og sæt medtaginet til: 1<br />
Det er muligt Pass<br />
034 Vælg ”Adresser og porte” Det er muligt Pass<br />
035 Vælg Tornsangervej fra drop down menuen Det er muligt Pass<br />
036 Tilføj Tornsangervej 1 st. tv., b16e22 og port 18<br />
Tilføj Tornsangervej 1 st. tv., b16t22 og port 16<br />
Det er muligt Pass<br />
037 Ret Tornsangervej 1 st. tv., b16t22, port 16 til b16t23 Port nr. drop down menuen skal Pass<br />
(8 ports Audiocode)<br />
skifte fra 16 til ‐‐‐Vælg‐‐‐, da der kun<br />
er 8 porte i det valgte udstyr<br />
038 Ret test case 037 tilbage til b16t22, port 16 Det er muligt Pass<br />
039 Klik på tilføj uden at angive noget input Der bliver ikke tilføjet noget til<br />
tabellen<br />
Pass<br />
040 Tilføj en adresse uden at vælge udstyr og port Der bliver tilføjet en adresse uden<br />
udstyr og port<br />
Pass<br />
041 Klik på ”Vis opret krydsfelter” og vælg blok 16 Der vises to krydsfelter (b16x7 og<br />
b16x16)<br />
Pass<br />
042 Konstatér at krydsfeltet b16x7 ikke længere har en<br />
”Fjern” knap i kolonnen ”Funktion”, da der er<br />
tilknyttet adresser til dette krydsfelt<br />
Ja Pass<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 51 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
8.3.1.3 Rediger services<br />
Prækonditioner:<br />
‐ Administrator er logget ind<br />
Test case Bruger interaktion Forventet output Svar Fejl<br />
nr.<br />
nr.<br />
043 Vælg ”Services og priser” fra menuen Det er muligt Pass<br />
044 Ret en service med lovlige input Det er muligt Pass<br />
045 Ret en service og indtast bogstaver i pris kolonnerne Java exception pga.<br />
nummerformateringsfejl<br />
Pass<br />
046 Tilføj en ny linje til tabellen med et FUnique som er i Java exception pga. dobbelt<br />
Pass<br />
brug<br />
oprettelse af et unikt ID<br />
047 Vælg ”Copydan priser” fra menuen Det er muligt Pass<br />
048 Ret en linje med lovlige input Det er muligt Pass<br />
049 Ret en pris til bogstaver Java exception pga.<br />
nummerformateringsfejl<br />
Pass<br />
050 Vælg ”Definer std. services” fra menuen Det er muligt Pass<br />
051 Klik tilføj service ud for en services, hvor statusfeltet<br />
er rødt<br />
Statusfeltet bliver grønt Pass<br />
052 Klik fjern service ud for en service, hvor statusfeltet er<br />
grønt<br />
Statusfeltet bliver rødt Pass<br />
053 Vælg ”Farver til services” fra menuen Det er muligt Pass<br />
054 Ret en farve ved at skrive en gyldig HTML farve i farve<br />
feltet<br />
Farven vises korrekt Pass<br />
055 Ret en farve ved at skrive en ugyldig farve Vist farve er hvid Pass<br />
056 Vælg ”Services pr. adresse” fra menuen Det er muligt Pass<br />
057 Vælg en adresse fra drop down menuen Det er muligt Pass<br />
058 Klik tilføj service ud for en services, hvor statusfeltet<br />
er rødt<br />
Statusfeltet bliver grønt Pass<br />
059 Klik fjern service ud for en service, hvor statusfeltet er<br />
grønt<br />
Statusfeltet bliver rødt Pass<br />
060 Fjern alle services og klik derefter på Tilføj standard Der bliver tilføjet de services som er Pass<br />
services<br />
defineret i ”Definer std. services”<br />
061 Fjern services fra Tornsangervej 1 st. tv. og st. th. Alle statusfelter bliver røde Pass<br />
062 Vælg ”Services pr. forening” fra menuen Det er muligt Pass<br />
063 Vælg A/B Lindegaarden fra drop down menuen og klik Alle adresser i A/B Lindegaarden har Pass<br />
på Tilføj standard services<br />
fået tilføjet standard services<br />
(kontrolleres via ”Services pr.<br />
adresse”)<br />
8.3.1.4 Databasecheck af services<br />
Prækonditioner:<br />
‐ Testeren er logget på MySQL serveren via GUI tools (Query Browser)<br />
‐ Testen udføres lige efter test case 063<br />
Test case Bruger interaktion Forventet output Svar Fejl<br />
nr.<br />
nr.<br />
064 SELECT COUNT(id) FROM standard services; 15 Pass<br />
065 SELECT id, COUNT(FUnique)antal FROM add_yd_rel Værdien i kolonnen ”antal” er det Pass<br />
WHERE id IN (SELECT DISTINCT id FROM add_yd_rel) samme som resultatet fra test case<br />
GROUP BY id;<br />
064 pr. ID<br />
8.3.1.5 Rediger/tilføj telefonnumre og status<br />
Prækonditioner:<br />
‐ Administrator er logget ind<br />
Test case Bruger interaktion Forventet output Svar Fejl<br />
nr.<br />
nr.<br />
066 Vælg ”Telefon nr. status” fra menuen Det er muligt Pass<br />
067 Ret en Telefon nr. status Det er muligt Pass<br />
068 Ret en ”Hemmeligt/skjult nummer” Det er muligt Pass<br />
069 Tilføj en ny linje til tabellen Det er muligt Pass<br />
070 Vælg ”Telefon nr. i Parknet” fra menuen Det er muligt Pass<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 52 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
071 Klik på tilføj uden at angive noget input Java exception pga.<br />
nummerformateringsfejl<br />
Pass<br />
072 Tilføj fra nr. 82300300 til 82300302 Numrene bliver tilføjet Pass<br />
073 Ret et telefonnummer med gyldige input Det er muligt Pass<br />
074 Ret et telefonnummer med ugyldige datoer Java exception pga.<br />
datoformatteringsfejl<br />
Pass<br />
8.3.1.6 Rediger valideringsstrenge<br />
Prækonditioner:<br />
‐ Administrator er logget ind<br />
Test case Bruger interaktion Forventet output Svar Fejl<br />
nr.<br />
nr.<br />
075 Vælg ”Valideringsstrenge til online opret” fra menuen Det er muligt Pass<br />
076 Ret valideringsstrengen til navn Det er muligt Fail 1<br />
077 Ret valideringsstrengen til telefon nr. Det er muligt Pass<br />
078 Ret valideringsstrengen til e‐mail Det er muligt Fail 2<br />
8.3.1.7 Rediger MIB’er<br />
Prækonditioner:<br />
‐ Administrator er logget ind<br />
Test case Bruger interaktion Forventet output Svar Fejl<br />
nr.<br />
nr.<br />
079 Vælg ”MIB’er til SNMP” fra menuen Det er muligt Pass<br />
080 Ret MIB til status Det er muligt Pass<br />
081 Ret MIB til åben port Det er muligt Pass<br />
082 Ret MIB til luk port Det er muligt Pass<br />
8.3.1.8 Rediger ticket typer<br />
Prækonditioner:<br />
‐ Administrator er logget ind<br />
Test case Bruger interaktion Forventet output Svar Fejl<br />
nr.<br />
nr.<br />
083 Vælg ”Rediger ticket typer” fra menuen Det er muligt Pass<br />
084 Ret navnet på en ticket Det er muligt Pass<br />
085 Tilføj en ny ticket type Det er muligt Pass<br />
8.3.1.9 Bogholder funktioner<br />
Prækonditioner:<br />
‐ Administrator eller bogholder er logget ind<br />
‐ Der er datoer i systemet<br />
Test case Bruger interaktion Forventet output Svar Fejl<br />
nr.<br />
nr.<br />
086 Vælg ”Start og opsigelses datoer” fra menuen Det er muligt Pass<br />
087 Ret et navn og en dato med korrekt datoformat Det er muligt Pass<br />
088 Ret et navn og en dato med forkert datoformat Java exception pga.<br />
datoformateringsfejl<br />
Pass<br />
089 Vælg ”Opkrævninger” fra menuen Det er muligt Pass<br />
8.3.1.10 Vis/ret/tilføj bruger<br />
Prækonditioner:<br />
‐ Administrator er logget ind<br />
Test case Bruger interaktion Forventet output Svar Fejl<br />
nr.<br />
nr.<br />
090 Vælg ”Vis/ret/tilføj brugere” fra menuen Det er muligt Pass<br />
091 Opret en ny bruger uden at udfylde felter Der bliver ikke oprettet en ny bruger Pass<br />
092 Opret en ny bruger med angivelse af navn, efternavn<br />
og administratorrolle<br />
Brugeren bliver oprettet Pass<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 53 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
093 Opret en ny bruger med angivelse af navn, efternavn, Java exception pga. incorrect integer Pass<br />
rolle og fjern de to nuller i telefon og mobil<br />
value<br />
094 Deaktiver den bruger som blev oprettet i test case<br />
092<br />
Brugeren bliver deaktiveret Pass<br />
095 Prøv at logge ind i SAPS med brugerens som blev<br />
inaktiveret i test case 094<br />
Det er ikke muligt Pass<br />
096 Vælg ”Vis roller” fra menuen Det er muligt Pass<br />
8.3.1.11 TO DO TV<br />
Prækonditioner:<br />
‐ Administrator eller supporter er logget ind<br />
‐ Der er data i TO DO listen<br />
Test case Bruger interaktion Forventet output Svar Fejl<br />
nr.<br />
nr.<br />
097 Vælg ”TO DO TV” fra menuen Det er muligt Pass<br />
098 Klik på et link i kolonnen x‐felt Der vises et oversigtbillede af<br />
krydsfeltet<br />
Pass<br />
099 Klik på Done Rækken forsvinder fra tabellen Pass<br />
100 Tjek at sorteringen af rækkerne følger: dato, postnr,<br />
intersection, adresse (stigende)<br />
Sortering er korrekt Pass<br />
8.3.1.12 Søg adresser og brugere<br />
Prækonditioner:<br />
‐ Administrator, bogholder eller supporter er logget ind<br />
‐ Der er oprettet adresser og nogle brugere har aktive services<br />
Test case Bruger interaktion Forventet output Svar Fejl<br />
nr.<br />
nr.<br />
101 Vælg ”Søg adresser og brugere” fra menuen Det er muligt Pass<br />
102 Indtast torn og klik søg Der vises alle adresser på<br />
Tornsangervej.<br />
Pass<br />
103 Indtast torn og nr. 1 og klik søg Der vises alle adresser på<br />
Tornsangervej nr. 1<br />
Pass<br />
104 Hvis der er aktive services er feltet i kolonne aktive<br />
yd. grønt ellers rødt<br />
Ja Pass<br />
105 Klik på et link i kolonnen x‐felt Der vises et oversigtbillede af<br />
krydsfeltet<br />
Pass<br />
106 Klik på Tornsangervej 1 st. tv. Der vises alle detaljer om brugeren,<br />
tickets og valgte services på adressen.<br />
Pass<br />
107 Hvis servicen er tilmeldt, er feltet under kolonnen tilm<br />
status grønt ellers rødt<br />
Ja Pass<br />
108 Akt. status er sort, rød eller grøn (jf. de farver som er<br />
angivet under ”Farver til services”. På server console<br />
køres SNMP kommando til at finde portens status<br />
(forudsat at der er oplysninger om switch og port)<br />
Ja Pass<br />
109 Hvis der kan tilmeldes Internet til adressen og der er<br />
aktivt udstyr tilknyttet til adressen, er der to knapper<br />
til hhv. åben port og luk port. Ved at klikke på<br />
knapperne køres SNMP kommandoer på server<br />
console.<br />
Ja Pass<br />
110 Hvis der er tilmeldt telefon vises<br />
Ja (virker kun hvis LOCALHOST har Pass<br />
abonnementsoplysninger og telefonsaldo<br />
adgang gennem Parknets firewall til<br />
Miralix serveren!)<br />
111 Hvis der kan tilmeldes TV på adressen og der er<br />
tilmeldt en bruger er der en ret knap<br />
Ja Pass<br />
112 Ret TV, vælg pakkeskift dato og en anden TV pakke Tilmeldingsdato ændres, pakkeskift<br />
dato og skift TV pakke til bliver sat og<br />
der oprettes en ticket<br />
Pass<br />
113 Tjek i opkrævninger at der er tilføjet en opkrævning<br />
for skift af TV pakke<br />
Ja Pass<br />
114 Tilføj en ny ticket Det er muligt Pass<br />
115 Tilføj en ny ticket uden at vælge type Der bliver ikke tilføjet en ny ticket Pass<br />
116 Tilføj en ny ticket uden indhold Det er muligt Pass<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 54 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
8.3.1.13 Vis/ret bruger<br />
Prækonditioner:<br />
‐ Bogholder eller supporter er logget ind<br />
Test case Bruger interaktion Forventet output Svar Fejl<br />
nr.<br />
nr.<br />
117 Vælg ”Vis/ret brugere” fra menuen Det er muligt Pass<br />
118 Vælg at rette en bruger Det er muligt (med undtagelse af<br />
aktiv og rolle)<br />
Pass<br />
119 Ret en bruger med lovlig input Det er muligt Pass<br />
120 Ret en bruger med tekst i stedet for telefonnummer Java exception pga. incorrect integer<br />
value<br />
Pass<br />
8.3.1.14 Online tilmelding<br />
Prækonditioner:<br />
‐ Der er oprettet adresser i SAPS hvor showinet er 1 og der er tilknyttet standard<br />
services<br />
‐ Der er ikke oprettet en bruger på den valgte adresse<br />
Test case Bruger interaktion Forventet output Svar Fejl<br />
nr.<br />
nr.<br />
121 Vælg postnr. 2400 Gadevælger aktiveres Pass<br />
122 Vælg Tornsangervej Adressevælger og ”næste” aktiveres Pass<br />
123 Vælg Tornsangervej 1 st. tv. Det er muligt Pass<br />
124 Klik næste Trin 2 aktiveres med mulighed for at<br />
vælge Internet, telefon og TV<br />
abonnement<br />
Pass<br />
125 Udfyld fornavn og efternavn Teksten “Du skal skrive for‐ og<br />
efternavn før du kan klikke næste”<br />
forsvinder<br />
Pass<br />
126 Udfyld mobil tlf., fastnet tlf. med flere tal end 8 Det er ikke muligt Pass<br />
127 Udfyld mobil tlf. med 112 og angiv en ugyldig e‐mail Det er muligt Pass<br />
128 Vælg Internet, telefon og TV abonnement Ved valg af den første service skal<br />
teksten ”Du skal vælge mindst én<br />
service før du kan klikke næste”<br />
forsvinde<br />
Pass<br />
129 Vælg flat rate, portering af nummer, kvartalsvis Der skal komme fejlmeddelelse om at Pass<br />
betaling, stor pakke, start 1. juni og klik næste mobil tlf. og e‐mail er ugyldig<br />
130 Ret mobil nr. til 221 og klik næste Der skal komme fejlmeddelelse om at<br />
mobil tlf. er for kort og e‐mail er<br />
ugyldig<br />
Pass<br />
131 Ret mobil nr. til lovlig input fx 22222222 og e‐mail til Der skal komme fejlmeddelelse om at Pass<br />
”mig” og klik næste<br />
e‐mail er for kort<br />
132 Ret e‐mail til lovligt input og klik næste Trin 3 aktiveres og valgene fra trin 2<br />
vises korrekt<br />
Pass<br />
133 Klik tilbage Trin 2 vises korrekt med de samme<br />
valg fra tidligere<br />
Pass<br />
134 Klik næste Trin 3 vises igen Pass<br />
135 Sæt flueben ud for ”Jeg accepterer Parknets<br />
abonnementsvilkår og priser”<br />
Teksten ”Du skal acceptere<br />
abonnementsvilkårene før du kan<br />
klikke næste” forsvinder<br />
136 Klik næste Trin 4 aktiveres og brugeren får vist<br />
sit brugernummer, password og link<br />
til PBS tilmelding<br />
137 Klik Tilmeld dig til Betalingsservice De preudfyldte felter er udfyldt<br />
korrekt og brugeren skal kun udfylde<br />
cpr. nr., reg. nr. og konto nr.<br />
138 Opret en bruger på en adresse, hvor der allerede er<br />
en aktiv bruger<br />
Brugeren får besked om, at der er en<br />
tilmeldt bruger på adressen og at<br />
bestillingen er lagt i kø. Brugeren får<br />
vist sit brugernummer, password og<br />
link til PBS tilmelding<br />
139 Klik på browserens tilbage knap i trin 4 Det er muligt – trin 3 vises Pass<br />
140 Klik på enten tilbage eller næste i online tilmeldingen Brugeren får besked om at<br />
oprettelsen er sket og at browserens<br />
tilbage knap ikke må bruges<br />
Pass<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 55 af 80<br />
Pass<br />
Pass<br />
Pass<br />
Pass
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
8.3.1.15 Opsig services<br />
Prækonditioner:<br />
‐ En bruger med aktive services er logget ind<br />
Test case Bruger interaktion Forventet output Svar Fejl<br />
nr.<br />
nr.<br />
141 Vælg ”Opsig services” fra menuen Det er muligt Pass<br />
142 Ud for hver aktiv service står tilmeldingsdato og der<br />
er en Frameld knap<br />
Ja Pass<br />
143 Klik på Frameld Der vises en drop down menu med<br />
opsigelsesdatoer samt en ja og nej<br />
knap<br />
Pass<br />
144 Vælg 31. marts og klik Ja NOTE:<br />
Servicen er blevet opsagt til:<br />
Pass<br />
Hvis datoen er tidligere på året end d.d. vil der blive 31/3‐2010 og Frameld knappen er<br />
lagt et år til. Dvs. når testen køres i april 2009, vil<br />
opsigelsesdatoen blive 31/3‐2010.<br />
væk<br />
8.3.1.16 Test af sikkerhed<br />
Prækonditioner:<br />
‐ En supporter er logget ind (til test case 146), ellers ingen prækonditioner<br />
Test case Bruger interaktion Forventet output Svar Fejl<br />
nr.<br />
nr.<br />
145 Indsæt følgende streng i feltet fornavn eller efternavn i Der star alert('hacket!'); og scriptet er Pass<br />
online tilmeldingens trin 2 og klik næste:<br />
alert('hacket!');<br />
ikke blevet eksekveret<br />
146 Indsæt følgende streng i browseren<br />
Supporteren får vist velkomstsiden Pass<br />
http://localhost:8080/saps/authorized_users/AdministratorArea/users.jsp<br />
Hvis det virker, vil supporteren kunne ændre sine<br />
brugerrettigheder i SAPS<br />
og stien i browseren er:<br />
http://localhost:8080/saps/<br />
authorized_users/welcome.jsp<br />
147 Prøv følgende brugernummer og password ved login til<br />
SAPS:<br />
User: 1' or '1' = '1<br />
Password: 1' or '1' = '1<br />
Systemet giver ikke adgang Pass<br />
148 Indsæt følgende streng i browseren (uden at være<br />
logget ind):<br />
http://localhost:8080/authorized_users/images/1.jpg<br />
Hvis systemet giver adgang, vises et billede af<br />
krydsfeltet<br />
Systemet giver ikke adgang Pass<br />
8.4 Fejlrapportering og fejlliste<br />
Hver fejl får tilknyttet sin egen fejl rapport. I dette afsnit samles alle fejl,<br />
som er fundet i alle test. Det giver et hurtigt overblik over det samlede<br />
antal fejl, der er i systemet.<br />
Fejl deles op i 3 kategorier, som beskriver konsekvensen af fejlen.<br />
Fejl kategori Beskrivelse<br />
Fatal Funktionsforstyrrende fejl der er af så alvorlig karakter at data mistes og/eller programmet låses.<br />
Alvorlig Fejl der ikke kan klassificeres i de to ydergrupper.<br />
Mindre alvorlig Små fejl som ikke er funktionsforstyrrende såsom Stavefejl og lign.<br />
Figur 20 - Opdeling af fejl efter kategorier<br />
Fejlene samles for at give et helhedsindtryk over hvor stabilt systemet er.<br />
Fejllisten bruges også som et værktøj, hvor udvikleren kan se hvilke ting<br />
der mangler at blive rettet, inden produktet kan godkendes og leveres til en<br />
evt. kunde. Nedenstående figur viser hvordan jeg har udnyttet et<br />
iterationsbaseret udviklingsprincip.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 56 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
Figur 21 - Livscyklus for fejl<br />
Fejl−ID Beskrivelse af fejl Fejl<br />
niveau<br />
1 Valideringsstrengen til navn bliver ikke vist korrekt ved klik på ret. Alt efter ” ’ ” mangler. Hvis man<br />
klikker ok, bliver strengen til NULL. Ved forsøg på at genoprette strengen giver databasen følgende<br />
fejl:<br />
WARNING: Parameters: Character decoding failed. Parameter skipped.<br />
Alvorlig<br />
2 Valideringsstrengen til e‐mail ser ud til at blive vist korrekt. Der mangler dog en del ”\” som escape<br />
tegn til andre relevante tegn. Ved forsøg på at indsætte ekstra ”\” bliver de fjernet i forbindelse med<br />
skrivning til databasen. Selv om valideringsstrengen ser OK ud, bliver det umuligt at få valideret en<br />
lovlig e‐mail korrekt i online tilmeldingen. Brugeren kan dog undlade at indtaste sin e‐mail og komme<br />
videre på den måde.<br />
Valideringsstrengene kan dog indsættes i databasen igen via Query Browseren<br />
Alvorlig<br />
Aktuelle kendte fejl i systemet:<br />
Fejl kategori Antal<br />
Fatal 0<br />
Alvorlig 2<br />
Mindre alvorlig 0<br />
8.5 Test konklusion<br />
Undervejs i udviklingen af SAPS, har jeg testet delkomponenterne i takt<br />
med, at de blev færdige. Det har medført, at helheden har kunnet bestå en<br />
kompleks test med meget få fejl. Jeg har kørt 148 test cases og har også<br />
testet ud over, hvad test casene har beskrevet.<br />
De to alvorlige fejl, som blev fundet, kan undgås ved, at administrator IKKE<br />
retter i valideringsstrengene for navn og e-mail via SAPS.<br />
Nogen vil sikkert mene, at det ikke er tilfredsstillende, at bruge Javas<br />
exception beskeder som fejlmeddelelse fx number format exception. Men<br />
som beskrevet under implementeringen var det et bevidst valg, at lægge<br />
fokus på brugervenlige fejlmeddelelser i online oprettelsen og acceptere<br />
visse mangler i administrationsdelen.<br />
Jeg mener at have testet så bredt og dybt, at jeg har klarlagt de fejl som<br />
systemet har p.t. På den baggrund er anbefalingen, at valideringsstrengene<br />
ikke rettes. Systemet er stabilt og fejlfrit nok til at vise hvordan et nyt<br />
brugeradministrationssystem med integreret online tilmelding til Parknet<br />
kan se ud.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 57 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
9 Forslag til forbedringer af SAPS<br />
- Bedre søge/sorterings funktioner, det skal være muligt for brugerne<br />
af SAPS at opstille deres egne kriterier for søgning/sortering.<br />
- Mulighed for til- og fravalg af kolonner i listevisning.<br />
- Hvis support telefonen blev tilkoblet SAPS, ville det blive muligt for<br />
systemet at søge efter brugeren via nummeret. Når supporteren så<br />
svarer telefonen, vil SAPS allerede have fundet brugerens oplysninger<br />
frem på skærmen (forudsat at nummeret er i SAPS).<br />
- Brugeren skal have adgang til meget mere via selvbetjening. Ændring<br />
af brugeroplysninger, flytte adresse fra et sted i Parknet til et andet,<br />
vise saldo på telefonkonto, overdrage sit abonnement til ny indflytter,<br />
booke teknikerbesøg, bestille et fast IP nr., se sine tickets og oprette<br />
en ny og meget andet.<br />
- Bogholderfunktioner skal implementeres fuldt, så der kan køres<br />
opkrævninger. SAPS skal vise, hvis en bruger er i restance.<br />
- SAPS skal udføre SNMP kommandoerne i praksis.<br />
- SAPS skal integreres med @mail, så brugerne selv kan oprette emailadresser<br />
og systemet kan nedlægge dem, når brugeren er flyttet.<br />
- SAPS skal integreres endnu mere med Miralix, så brugerne selv kan<br />
vælge et ledigt telefonnummer og aktivere det.<br />
- SAPS skal have indbygget kalender til bookning af teknikerbesøg.<br />
- En supporter/administrator skal kunne indføre i SAPS kalenderen,<br />
hvilke dage han/hun har tider til teknikerbesøg.<br />
- Dokumentationen af krydsfelter skal udvides til også at omfatte<br />
backbone forbindelse, herunder fiberflow med ledige rør, ledige fibre,<br />
splidsninger og hvad hver tråd er brugt til (TV eller data).<br />
- Sprogpakke til onlinetilmeldingen, så den kan oversættes til alle de<br />
sprog Parknet har lyst til. Der er mange brugere på Nørrebro med<br />
anden etnisk baggrund.<br />
- Mulighed for at en administrator kan varsle udfald på en bestemt<br />
netværkskomponent eller krydsfelt, hvorefter brugerne kan se i SAPS<br />
om de bliver berørt.<br />
- Der skal kunne sætte en deadline for gratis tilmelding af en ny<br />
forening, så online tilmelding automatisk viser, at tilmelding er gratis.<br />
- Tickets skal kunne løses (p.t. kan de kun oprettes).<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 58 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
- Hvis en ny bruger vælger at få flyttet et telefonnummer til Parknet,<br />
skal brugeren præsenteres for et link til porteringsformularen i online<br />
tilmeldingen.<br />
- Det må ikke være muligt at tilknytte den samme port i en switch til<br />
mere end én adresse.<br />
- I stedet for at lægge kort ind med placering af et krydsfelt, skal<br />
koordinatet lægges ind, systemet skal derefter selv vise krydsfeltet<br />
på kort via fx krak eller Google maps.<br />
- Der skal være mulighed for at definere flere sæt ”Standard services”.<br />
- Bedre fejlmeddelelse ved fejl i login. Det ville rart med en melding<br />
om, hvorvidt det er brugernavn, adgangskode eller evt.<br />
databaseforbindelsen, der er noget galt med.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 59 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
10 Procesafsnit<br />
I dette kapitel vil jeg beskrive, processen omkring udviklingen af SAPS. Jeg<br />
har primært benyttet mig af iterationsbaseret udvikling. Det har jeg gjort<br />
ved at inddele projektet i overskuelige dele. For hver del har jeg testet<br />
resultatet og efter tilfredsstillende test fortsat til næste del. I forbindelse<br />
med test af næste del, har jeg flere gange oplevet, at det har været<br />
nødvendigt at ændre noget i den forrige del. Det har ikke været noget<br />
problem og har ikke forsinket projektet. Rettelserne er blevet udført som en<br />
del af opgaverne med den næste iteration.<br />
Jeg er selv meget tilfreds med denne måde at udvikle på, netop fordi der er<br />
stor fleksibilitet i forhold til afklaring af uhensigtsmæssigheder og rettelse af<br />
disse undervejs i processen. Selv om jeg har været alene om projektet,<br />
mener jeg stadig at udviklingsmetoden også er velegnet i store<br />
udviklingsmiljøer.<br />
Overordnet har tidsplanen været start 1. februar og aflevering 1. maj.<br />
Detaljeret tidsplan for projektet har været som følger:<br />
Punkt Deadline Status<br />
Start 01/02-09 OK<br />
Analyse klar 20/02-09 OK<br />
Design klar 01/03-09 Forsinket<br />
Påbegynd implementering af SAPS 01/09-09 OK<br />
Kollokvium med vejleder 18/03-09 OK<br />
Påbegynd implementering af online opret 20/03-09 OK<br />
Codefreeze 08/04-09 Forsinket<br />
Test 19/04-09 OK<br />
Retning af småfejl Løbende OK<br />
Rapport klar til gennemlæsning og<br />
kommentering<br />
26/04-09<br />
Forsinket<br />
til 28/04<br />
Aflevering af rapport (DTU har lukket 1. maj) 01/05-09<br />
Flyttet<br />
04/05<br />
til<br />
Deadlines har været sat tidligt og lidt optimistisk, men gennem erfaring fra<br />
5 semestre på DTU, har det vist at være en god måde at få tingene gjort<br />
på. Derfor er det ikke tale om store ændringer til planen, når en deadline<br />
ikke er overholdt.<br />
Jeg har ikke udarbejdet nogen risikoanalyse for dette projekt. Det skyldes,<br />
at jeg for at blive ingeniør, skal færdiggøre og aflevere projektet til den<br />
aftalte deadline.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 60 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
11 Konklusion<br />
Succeskriteriet i kapitel 3.2 var: ”At SAPS kan bruges af Parknet.”<br />
Jeg kan konkludere at succeskriteriet ikke er opfyldt.<br />
SAPS vil ikke kunne bruges af Parknet til at afløse Winkas endnu. Det er der<br />
en række årsager til:<br />
- der mangler funktionalitet til at køre opkrævninger<br />
- der mangler funktionalitet til at tilmelde/framelde services<br />
- der mangler funktionalitet til at tilmelde/framelde brugere<br />
- der findes ingen automatiseret proces til at flytte data fra Winkas til SAPS<br />
- SAPS har ikke felter til oplysning om Matra og Philips tlf. centraler<br />
Dele af SAPS vil kunne gøre Winkas bedre, hvis de blev skilt ud i<br />
selvstændige programmer/metoder, som skrev data i et eller flere felter i<br />
Winkas databasen.<br />
Der er dog ingen tvivl om at tiden brugt på at færdiggøre og implementere<br />
SAPS vil tjene sig selv hjem over tid fra det øjeblik, hvor SAPS sættes i<br />
drift.<br />
Forventet tidsbesparelse (ca. tider) pr.:<br />
- Telefonoprettelse: 10 min<br />
- Internetoprettelse: 2 min<br />
- Onlineoprettelse (kun brugeren): 2 min<br />
- TV pakkeskift: 2 min<br />
- Overskuelighed pga. farver: ?<br />
- Printoption: 1 min (sparer ”print screen” og paste)<br />
Det opstillede formål i kapitel 3.1 var:<br />
At vise, hvordan mange systemer udviklet i forskellige programmeringssprog<br />
og kørende på forskellige styresystemer, kan samles i et system med<br />
en fælles brugergrænseflade.<br />
Jeg kan konkludere at formålet er opfyldt. Via SAPS kan der hentes saldo på<br />
telefonkontoen i Miralix, der er data til stede i SAPS til, at systemet i<br />
fremtiden vil kunne oprette telefonnumre automatisk. Ligeledes er der data<br />
klar til at sende korrekte SNMP kommandoer og dermed automatisere<br />
åbning og lukning af brugeres Internet.<br />
Jf. (5) består projekter af tre dele: Mennesker, systemer og organisationen.<br />
SAPS er i dette tilfælde systemet, organisationen er Parknet og<br />
menneskerne er de ansatte. Hvis SAPS blev implementeret ville det ændre<br />
systemerne, da det erstatter et eksisterende og samtidigt gør tingene på en<br />
ny måde. Menneskerne ville blive påvirket ved ændrede arbejdsgange, da<br />
SAPS automatiserer meget af det manuelle arbejde. Organisationen vil blive<br />
styrket, da medarbejderne kan nå mere.<br />
Udfordringen vil blive at indfase systemet, så alle kan følge med og vænne<br />
sig til ændringerne det medfører.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 61 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
12 Spørgsmål og svar med Parknets chef<br />
Svarene er indsat ved spørgsmålet med fed skrift.<br />
- Hvorfor er Parknet aldrig blevet automatiseret? Herunder:<br />
o Nem oprettelse af et telefonnummer, ved at systemet opretter brugeren<br />
fra Winkas i Miralix, finder ledige telefonnumre at vælge imellem,<br />
indsætter telefonnummeret i Miralix og Winkas, styrer lokalnumre uden<br />
menneskelig indblanding og sætter opkrævninger korrekt i Winkas.<br />
o Et system med ét kliks åbning og lukning af porte til Internet.<br />
o Natlig kørsel med åbning og lukning af switch porte afhængig af<br />
tilmeldingsstatus.<br />
Samlet svar på ovenstående – det har ikke været prioriteret og<br />
datagrundlaget har ikke været godt nok tidligere (det nærmer sig).<br />
- Der er forskel på en udgift og en mistet indtægt, men er gratister OK (aktuelt de<br />
steder hvor porten er åben uden tilmeldt bruger)? Tjoh<br />
- Er Parknet med de nuværende administrationssystemer klar til øget vækst? Ja<br />
- Hvor god er dokumentationen af Parknets (angivet i procent):<br />
o <strong>Tekniske</strong> procedurer? 80 %<br />
o Administrative procedurer? 50 %<br />
o Fiberflow? 20 %<br />
o Ledige/brugte lysledere? 20 %<br />
o Udstyr i krydsfelter? 60 %<br />
På en skala fra 1 til 10 (hvor 10 = øjeblikkelig lukning af Parknet), hvor ville Parknet<br />
være på skalaen, hvis de to projektledere Anders og Simon blev ramt af hver sin bus<br />
eller tagsten og døde samtidigt? 3 - 4<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 62 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
13 Anbefaling til Parknet<br />
På baggrund af denne rapport, vil jeg anbefale Parknet, at sætte et system<br />
á la SAPS i drift. Systemet bør udvikles af Parknet selv. For at mindske<br />
udviklingsomkostningerne, vil jeg foreslå, at Parknet benytter sig af<br />
ingeniørpraktikanter fra Diplom IT retningen på DTU. Disse unge mennesker<br />
skal i praktik i 5 måneder, som en del af studiet og skal have ca. 12.000 -<br />
15.000 kr./md. i løn.<br />
Der er mulighed for at indgå længerevarende samarbejde med DTU, så<br />
Parknet for hvert semester kan komme med et aktuelt opslag om, hvilke<br />
projekter der kan være af interesse for de studerende.<br />
Når SAPS er i drift, vil der selvfølgelig være brug for løbende opdateringer.<br />
Dernæst er der både praktiske og programmerings opgaver.<br />
Programmeringsopgaverne er bl.a.<br />
- Kør SNMP kommandoer via Java<br />
- Hent port status for alle switche i Parknet og sammenlign dem med<br />
tilmeldingsstatus<br />
- Kør automatisk åbning og lukning af porte hver midnat<br />
- Software dokumentering af lysledernetværk<br />
De praktiske opgaver dækker over at få indtastet oplysninger i SAPS om<br />
krydsfelter og ledig/brugt lysleder. Det vil kræve besøg i samtlige<br />
krydsfelter, men der kan nås meget på 5 måneder (ingeniørpraktikkens<br />
varighed).<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 63 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
14 Lister<br />
14.1 Litteratur liste<br />
1. Larman, Craig. Applying UML and Patterns: An Introduction to Object‐Oriented Analysis and<br />
Design and Iterative Development. Third Edition. s.l. : Addison Wesley Professional, 2004. p.<br />
736. ISBN: 0‐13‐148906‐2.<br />
2. Connolly, Thomas M. and Begg, Carolyn E. Database Systems: A Practical Approach to<br />
Design, Implementation and Management. s.l. : Addison‐Wesley, May 2004. p. 1374. ISBN: 0‐<br />
32‐121025‐5.<br />
3. Lewis, John and Loftus, William. Java software solutions foundations of program design<br />
Fourth edition. s.l. : Pearson Addison Wesley, 2005. p. 909 ISBN: 0‐321‐31246‐5.<br />
4. Graba, Jan. An Introduction to Network Programming with Java. s.l. : Springer, 2006. p. 423<br />
ISBN: 1‐84628‐380‐9.<br />
5. Andersen, Erling and Grude, Kristoffer and Haug, Tor. Goal directed project management.<br />
Third edition s.l. : Kogan Page, 2004. p. 247 ISBN: 0‐7494‐4186‐0.<br />
6. Globalconnect. http://www.globalconnect.dk<br />
14.2 Forkortelser brugt i rapporten<br />
PK Private key<br />
FK Foreign key<br />
SP Stored Procedure<br />
SAPS Sammenbinding af Parknets systemer<br />
NF Normal Form<br />
COTS Commercially Of The Shelf<br />
SNMP Simple Network Management Protocol<br />
14.3 Figurliste<br />
Figur 1 - Billeder af krydsfelter.................................................................................... 9<br />
Figur 2 - Screen dump af Winkas søgeoversigt .............................................................11<br />
Figur 3 - Screen dump af Winkas konto 4878 ...............................................................11<br />
Figur 4 - Screen dump af Miralix velkomstbillede ..........................................................12<br />
Figur 5 - Screen dump af @-mail - tilføj ny bruger ........................................................13<br />
Figur 6 - Domænemodel ...........................................................................................16<br />
Figur 7 – Model af det fysiske design i Parknet .............................................................19<br />
Figur 8 - Use case diagram........................................................................................20<br />
Figur 9 - ER-diagram for relationen addressrel med tilhørende tabeller ............................28<br />
Figur 10 - ER-diagram for relationen intersections med tilhørende tabeller .......................28<br />
Figur 11 - ER-diagram for resten af tabellerne..............................................................29<br />
Figur 12 - Sitemap over designet ...............................................................................31<br />
Figur 13 - Designklassediagram for SAPS ....................................................................32<br />
Figur 14 - Designklassediagram for online tilmelding.....................................................33<br />
Figur 15 - Implementeringen af relationen addressrel med tilhørende tabeller...................35<br />
Figur 16 - Implementeringen af relationen intersections med tilhørende tabeller ...............36<br />
Figur 17 - Diagram for implementeringen af resten af tabellerne.....................................37<br />
Figur 18 - Sitemap over implementerede filer ..............................................................39<br />
Figur 19 - Statediagram for online tilmeldingen ............................................................47<br />
Figur 20 - Opdeling af fejl efter kategorier ...................................................................56<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 64 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
Figur 21 - Livscyklus for fejl ......................................................................................57<br />
15 Bilag<br />
15.1 Bilag 1 – Projektoplæg<br />
Design af et netværks- og brugeradministrationssystem. Det nuværende<br />
system heder Winkas Pro og er udviklet af en dansk virksomhed i<br />
Frederikshavn (se mere på www.winkas.dk).<br />
Databasen til systemet skal bestå af to dele:<br />
1) Netværks- og installationsdata som er statisk<br />
2) Brugerdata som er tilknyttet en installation og er dynamisk (brugere<br />
kommer og går)<br />
Databehandlingssystemet (user interface) skal bestå af to dele<br />
(programmeres som en webapplikation):<br />
1) Administrationsdel, hvorfra brugernes data kan hentes. Brugere kan<br />
inaktiveres (aldrig slettes), opdateres og oprettes. Nye foreninger kan<br />
tilføjes i systemet med alle netværksdata.<br />
2) Brugerdel, hvorfra brugere kan oprette/tilmelde sig Parknet og få vist<br />
priser. Brugere kan opdatere sine oplysninger, ændre abonnementer,<br />
opsige abonnementer og foretage intern flytning i Parknet.<br />
Umiddelbart består opgaven i at designe databasen og dernæst<br />
webapplikationen. Det lyder ikke af så meget, men det bliver det når man<br />
tager med i betragtningen, at systemet skal indeholder alle former for<br />
netværksudstyr (switche og telefoncentraler) samt at det skal være muligt<br />
at tilføje/fjerne samt redigere relationer på kryds og tværs.<br />
Vedligeholdelsen af systemet skal kunne foretages fra webapplikationen,<br />
det er et krav, at brugeren ikke behøver at have programmørkendskab.<br />
Derudover skal der tages højde for, hvornår en bruger kan inaktiveres eller<br />
flyttes. Der skal konfigureres et REALM til login til hhv. administratorer og<br />
brugere. Foreninger med services fra Parknet må ikke kunne slettes fra<br />
netværksdatabasen. Der er mange faktorer at tage højde for.<br />
Platforme til opgaven vil blive:<br />
- MySQL 5 database<br />
- Tomcat 6 webserver<br />
- Eclipse 3.3 eller 3.4<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 65 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
Kravspecifikation til ”WINKAS version 2”:<br />
Databasen skal indeholde følgende data:<br />
Netværksinstallationer:<br />
- Adresse<br />
- Netværksdata<br />
- Services som kan vælges til adressen<br />
Brugere:<br />
- Navn<br />
- Bruger ID/konto nr.<br />
- E-mail<br />
- Mobiltelefon nummer<br />
- Telefon nummer<br />
- PBS aftale nummer<br />
- Tilmeldte services<br />
- Tilmeldings dato<br />
- Frameldings dato<br />
- Kommentarfelt<br />
Funktionaliteter:<br />
- Adresser oprettes vha. relationer mellem husnumre, etager og sider<br />
- Foreninger tilknyttes adresser<br />
- Foreninger skal have tilknyttet krydsfelter<br />
- Krydsfelter skal have tilknyttet netværksudstyr<br />
- Det skal være muligt at uploade et billede, som viser placeringen af<br />
krydsfeltet i ejendommen<br />
- Man skal kunne forbinde de forskellige krydsfelter i systemet med<br />
den type af fiberflow/lysleder som er brugt<br />
- OPTIONAL Brugeren skal kunne vælge hvilket rør i fiberflowen som<br />
er brugt<br />
- OPTIONAL Brugeren skal kunne indsætte fordelerdåser på en<br />
fiberflow<br />
- OPTIONAL Brugeren skal kunne vælge hvilken type fiber, der er<br />
blæst i røret<br />
- OPTIONAL Brugeren skal kunne vælge hvor mange fibre som er<br />
termineret og hvilke som er i brug<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 66 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
Liste over netværksudstyr:<br />
- Switche<br />
- Audiocodes (IP telefoni centraler 8 eller 24 porte)<br />
- UPSe<br />
- Fiberflow (lyslederforbindelser hhv. multimode og singlemode samt<br />
hvilke der er i brug)<br />
Liste over telefonnumre i systemet:<br />
- Man skal kunne tilføje enkeltnumre og indikere om de er porteret<br />
eller ej<br />
- Man skal kunne tilføje en hel nummerserie (fra nr. til nr.)<br />
- Man skal kunne sætte et tidsrum som numre skal henligge, før de må<br />
bruges igen<br />
- Man skal kunne nedlægge numre og indikere om det skal udporteres<br />
eller må genbruges<br />
Liste over E-mail i systemet:<br />
- Brugeren skal selv kunne oprette en mail adresse (simuleres)<br />
- Brugerens E-mail adresse(r) nedlægges 6. mdr. (eller en periode som<br />
kan ændres) efter opsigelse<br />
Der skal kunne laves søgninger som admin selv definerer.<br />
Der skal være adskillige sorteringsmuligheder:<br />
- foreningskontorer/kontaktpersoner<br />
- udstyrsspecifik<br />
- services specifik<br />
- ledig fiberflow<br />
- osv. osv.<br />
Alle lister skal kunne redigeres:<br />
- Det skal altid være muligt at tilføje noget nyt (forudsat at det ikke<br />
findes i forvejen)<br />
- Der kan kun fjernes udstyr/adresser/etc., som IKKE har relationer til<br />
noget/nogen<br />
Administrationsdelen skal logføre alle ændringer, så det altid er muligt at<br />
spore, hvilken admin som har foretaget ændringer i oplysninger/relationer i<br />
databasen.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 67 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
15.2 Bilag 2 – Billede af krydsfeltet b16x16<br />
Øverst i billedet ses patchpanelerne, hvori ledningerne til lejlighederne er tilsluttet.<br />
De to lilla komponenter er Extreme Summit 200 switche med 24 porte<br />
De to blå komponenter er Audiocodes MP 124 VOIP gateways med 24 porte<br />
Den sorte skuffe med de grønne stik er forbindelsen til Parknet via lysleder<br />
I bunden af skabet ligger en UPS til ca. 2 timers drift.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 68 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
15.3 Bilag 3 – billeder af TV skab<br />
De to sorte ledninger er forsyningskabler fra antenneforstærkeren (sidder centralt)<br />
Øverst til højre i skabet sidder TV fordeleren - i fordeleren sidder pakkefiltrene<br />
De hvide ledninger går ud til lejlighederne<br />
Et pakkefilter er et lavpasfilter. Parknet har 4 TV pakker, dvs. der er brug for 3<br />
typer filtre (der er ikke filter på den dyreste pakke).<br />
- Lille pakke er alle kanaler under 400 MHz (filteret er umalet dvs. blankt)<br />
- Mellem pakke er alle kanaler under 566 MHz (filteret er gult)<br />
- Stor pakke er alle kanaler under 750 MHz (filteret er blåt)<br />
- Super pakke kræver ikke filter, ledningen er monteret direkte i fordeleren.<br />
Hvis TV skal frakobles eller ændres, skal der en tekniker ud HVER gang…<br />
Billede af et TV skab med mellem og stor pakke tilkoblet<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 69 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
Billede af et TV skab med super, lille og stor pakke tilkoblet<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 70 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
15.4 Bilag 4 – Indhold på CD-rom:<br />
/Code<br />
/DB<br />
/SAPS<br />
/Docs<br />
rapport.doc<br />
datakatalog.doc<br />
/Install<br />
/1 – Java Runtime<br />
/2 – MySQL server<br />
/3 – MySQL GUI tools<br />
/4 – SAPS<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 71 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
15.5 Bilag 5 – Installationsvejledning til SAPS<br />
Jeg vil anbefale, at besøge SAPS via linket på forsiden af rapporten. Når SAPS kører<br />
på en PC uden adgang til Miralix, er der ventetid på 20 sekunder, ved hvert klik.<br />
Installationen af SAPS er en 4-trins raket bestående af:<br />
1) Java runtime<br />
2) MySQL server<br />
3) MySQL GUI tools<br />
4) Tomcat server med SAPS filer<br />
Alle programmer er på Cd’en i folderen /Install og skal køres i denne rækkefølge:<br />
/1 – Java Runtime (kør filen J2SE-RE.msi)<br />
/2 – MySQL server (kør filen mysql-5.1.33-win32.msi og følg nedenstående<br />
vejledning):<br />
1) Klik next<br />
2) Vælg typical<br />
3) Klik install<br />
4) Klik next<br />
5) Klik next<br />
6) Vælg config now<br />
7) Klik next<br />
8) Vælg standard config<br />
9) Klik next<br />
10) Vælg password til brugeren root (fx password)<br />
11) Klik next<br />
12) klik execute og derefter finish<br />
/3 – MySQL GUI tools (kør filen mysql-gui-tools-5.0-r17-win32.msi og vælg<br />
complete installation) efter installationen gør da følgende:<br />
1) Åben MySQL administrator og opret forbindelse til MySQL serveren<br />
a. Server Host: localhost<br />
b. Port: 3306<br />
c. Username: root<br />
d. Password: password<br />
2) Vælg restore fra menuen til venstre<br />
3) Klik ”Open backup file” nederst til højre på skærmen<br />
4) Vælg filen /Install/saps_init().sql<br />
5) Klik ”Start restore” nederst til højre på skærmen<br />
6) Klik ”User administration” i menuen til venstre<br />
7) Klik ”Add new user” nederst til højre på skærmen<br />
a. MySQL User: saps<br />
b. Password: hipshej<br />
c. Confirm Password: hipshej<br />
8) Klik ”Schema Privileges” øverst på skærmen<br />
9) Klik på SAPS<br />
10) Klik på knappen
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
15.6 Bilag 6 – Brugermanual til SAPS<br />
SAPS består af to dele:<br />
- onlinetilmelding (åben for alle brugere på Internettet)<br />
- administrationsdel med roller (lukket med login og rettigheder er rollebaseret)<br />
o administrator<br />
o bogholder (accountant)<br />
o supporter<br />
o bruger (user)<br />
Administrationsdelen:<br />
Der er fire roller til brugere i systemet:<br />
- Accountant (bogholder)<br />
- Administrator<br />
- Supporter<br />
- User (bruger)<br />
Via administratorrollen kan alle de øvrige brugere oprettes, systemet leveres med<br />
opstarts administrator, så systemet kan startes op (opret din egen administrator og<br />
deaktiver opstarts administratoren):<br />
Brugernummer: 11111111<br />
Password: password<br />
Hver rolle har adgang til følgende sider:<br />
På velkomstsiden for alle brugere (med undtagelse af user rollen) vises brugbar<br />
sammentælling af punkter på to do lister, udgående/indgående porteringer,<br />
telefonnumre og antal online tilmeldinger, som kræver aktion fra en Parknet<br />
medarbejder.<br />
Accountant:<br />
- Kan se, rette og tilføje start-, slut og skæringsdatoer for abonnementer i SAPS.<br />
- Kan se opkrævninger i SAPS.<br />
- Kan søge på adresser i SAPS med vejnavn og evt. opgangsnummer og se tilmeldte<br />
brugere samt tilmeldingsdetaljer.<br />
Administrator:<br />
- Kan se to do liste for TV og klikke ”Done” til evt. kørsler.<br />
- Kan se, rette og tilføje brugere samt ændre deres rettigheder.<br />
- Kan se rollerne i systemet.<br />
- Kan søge på adresser i SAPS med vejnavn og evt. opgangsnummer og se tilmeldte<br />
brugere samt tilmeldingsdetaljer.<br />
- Kan se, rette og tilføje foreninger, veje, numre, etager og sider til SAPS.<br />
- Kan tilføje nye adresser til SAPS samt fjerne adresser, som ikke har tilknyttet services.<br />
- Kan se og tilføje krydsfelter til SAPS, samt fjerne krydsfelter som ikke har tilknyttet aktivt<br />
udstyr.<br />
- Kan se, rette og tilføje aktivt udstyr med antal porte til SAPS.<br />
- Kan se, rette og tilføje aktivt udstyr til et krydsfelt.<br />
- Kan rette krydsfeltoplysninger pr. adresse i SAPS samt angive om adressen skal vises i<br />
onlinetilmeldingen.<br />
- Kan rette eller tilknytte en adresse i SAPS til et stykke aktivt udstyrs port.<br />
- Kan se, rette og tilføje services i SAPS.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 73 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
- Kan rette Copydan priser i SAPS.<br />
- Kan angive de services som er ”standard services” i SAPS.<br />
- Kan rette farver til TV pakker, abonnementsstatus og portstatus.<br />
- Kan tilføje/fjerne services pr. adresse i SAPS.<br />
- Kan tilføje ”standard services” til en hel forening i SAPS.<br />
- Kan se og rette telefonnummerstatus og hemmeligt/skjult nummer i SAPS.<br />
- Kan se, rette og tilføje telefonnumre til SAPS samt se og ændre deres status.<br />
- Kan se og rette valideringsstrenge til online tilmeldingen.<br />
- Kan se og rette MIB’er til SNMP kommandoer.<br />
- Kan se, rette og tilføje ticket typer til SAPS.<br />
- Kan se, rette og tilføje start-, slut og skæringsdatoer for abonnementer i SAPS.<br />
- Kan se opkrævninger i SAPS.<br />
Supporter:<br />
- Kan se to do liste for TV og klikke ”Done” til evt. kørsler.<br />
- Kan søge på adresser i SAPS med vejnavn og evt. opgangsnummer og se tilmeldte<br />
brugere samt tilmeldingsdetaljer.<br />
User:<br />
- Kan se hvilke services, der abonneres på samt servicens tilmeldingsdato.<br />
- Kan opsige en tilmeldt service.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 74 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
FÆLLES FUNKTION FOR ALLE ROLLER UNDTAGEN ”USER”:<br />
Ved at klikke på ”Søg adresser og brugere” vises to søgefelter. I det første skal hele<br />
eller en del af vejens navn indtastes, hvis brugeren ønsker at indsnævre sin søgning,<br />
er det muligt også at taste et opgangsnummer.<br />
Hvis der findes adresser i SAPS ud fra søgekriterierne vises de på skærmen. Pr.<br />
adresse vises altid adressen, postnr. og x-felt. Hvis der er en bruger tilmeldt adressen,<br />
vises brugerens ID, fornavn og efternavn. I kolonnen ”aktive yd.” vil feltet være grønt,<br />
hvis der er mindst én aktiv service og ellers rødt. Ved at klikke på krydsfeltets navn,<br />
vises et kortudsnit med placeringen af krydsfeltet. Ved at klikke på adressen skiftes til<br />
et nyt skærmbillede.<br />
På det nye skærmbillede præsenteres adressen med postnr., bynavn, forening og xfelt.<br />
Herunder står brugerens id, oprettelsesdato, fornavn, efternavn, password, telefon<br />
nr., mobil nr., e-mail og rettigheder i SAPS. Hvis der ikke er tilmeldt en bruger, står det i<br />
klar tekst. Derefter vises Parknets tre services i hver deres felt (uddybes længere<br />
nede). Hvis den pågældende service ikke kan tilmeldes på adressen, står det i klar<br />
tekst. Nederst står tickets med mulighed for at tilføje en ny ticket til systemet. Det er p.t.<br />
ikke muligt at rette eller på anden måde løse tickets i SAPS.<br />
For Internet og telefoni vises tilmeldingsdato, frameldingsdato, tilmeldingsstatus ud fra<br />
datoerne (grøn hvis tilmeldt eller rød), aktuel status for hhv. Internet og telefon hentes<br />
fra det aktive udstyr i krydsfeltet og præsenteres med den farve administratoren har<br />
valgt (standardfarverne er: grøn = aktiv, rød = inaktiv, sort = intet svar fra det aktive<br />
udstyr), x-felt, patch panel nr., switch navn og port nr. For Internet vises evt. WAN IP<br />
og derefter to knapper til at åbne eller lukke brugerens port i switchen. For telefoni<br />
vises abonnementstypen (flatrate eller almindelig), betalingsmåde (auto eller manuel),<br />
om nummeret er skjult/hemmeligt/udeladt, Miralix konto nr., saldo på telefonkontoen.<br />
Der er p.t. ingen funktioner til telefoni.<br />
For TV vises tilmeldingsdato, frameldingsdato, tilmeldingsstatus ud fra datoerne (hvis<br />
TV er tilmeldt vises TV pakkens farve lille = sølv, mellem = gul, stor = blå, super =<br />
grøn, hvis ikke tilmeldt = rød). Status for TV på adressen hentes fra databasen (ud fra<br />
hvad den var sidst). Under x-felt står der enten ”trappe” eller navnet på x-feltet, patch<br />
panel nr., TV pakke, pakkeskift dato (hvis pakkeskift er valgt), skift TV pakke til (hvis<br />
pakkeskift er valgt) og til slut funktion. Hvis der er en bruger tilmeldt på adressen, som<br />
ikke abonnerer på TV, kan man under funktion klikke på ”Tilmeld TV” – tilmeldingsdato<br />
og TV pakke SKAL vælges, før der klikkes på ”Tilmeld TV”. Hvis brugeren er tilmeldt<br />
TV vises knappen ”Ret”. Ved at klikke på den, bliver det muligt at vælge dato for<br />
pakkeskift og den nye pakke. Når der klikkes på OK, tilføjes en ticket om, at der er<br />
valgt ændring til TV pakken. Derudover tilføjes en opkrævning på brugerens adresse<br />
med gebyret fastsat i services. Ændringen vil kunne ses på TV to do listen med dato<br />
for udførelse (deadline dato).<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 75 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
Brugervejledning til ”User”:<br />
Når en user er logget ind, viser systemet de services, der abonneres på samt<br />
tilmeldingsdatoen.<br />
Ved at klikke på ”Opsig services” får user mulighed for at framelde aktive services. Ved<br />
at klikke på ”Frameld” ud for en service, aktiveres en menu i frameld dato kolonnen.<br />
Her skal der vælges en frameldingsdato, hvis user derefter klikker ”Ja”, vil den valgte<br />
dato blive sat ind under frameld dato kolonnen og ”Frameld” knappen forsvinder.<br />
Derudover har systemet skrevet en ticket i SAPS, hvori der står at user via<br />
selvbetjening har opsagt den pågældende service. Hvis det var TV, som blev frameldt,<br />
vil der også stå en frakobling på TV to do listen med frameldingsdatoen.<br />
Brugervejledning til ”Accountant”:<br />
Systemet viser sammentælling fra de forskellige lister på forsiden.<br />
Ved at klikke på ”Start og opsigelses datoer” bliver det muligt at rette disse datoer.<br />
SAPS leveres med start datoer til den første i hver måned og opsigelsesdatoer til<br />
udgangen af et kvartal. Start datoerne bruges i onlinetilmeldingen og slut datoerne<br />
bruges når en user vil framelde en service. Der kan p.t. ikke fjernes linjer fra systemet.<br />
Derudover kan der sættes to skæringsdage i systemet. Den ene er tilmeldingsdage før<br />
skæring. Tilmelding før denne dato, skal betales fra den første i indeværende måned<br />
og tilmelding efter, skal betales fra den næste første (værdien er sat til 10).<br />
Opsigelsesdage før kvartal er det opsigelsesvarsel, som Parknet skal bruge (værdien<br />
er sat til 25).<br />
Ved at klikke på ”Opkrævninger” vises opkrævninger i systemet. Der er p.t. ikke<br />
mulighed for at foretage nogen behandling af disse opkrævninger.<br />
Ved at klikke på ”Services og priser” vises alle services i SAPS. FUnique er servicens<br />
ID nr. 100 – 199 bruges til Internet, 200 – 299 bruges til telefoni, 300 – 399 bruges til<br />
TV. Servicens Navn bruges i SAPS, servicens Fakturatekst bruges i online tilmeldingen<br />
samt på opkrævninger til brugerne. Engangs angiver om det er et gebyr. EngangsPris<br />
angiver gebyrprisen, men anvendes ikke p.t. PrisAngives er det beløb som vises på<br />
onlinetilmeldingen og bruges på opkrævninger. Kategori angiver servicens kategori.<br />
MedtagInet angiver om servicens bliver præsenteret i online tilmeldingen.<br />
Ved at klikke ”Ret” ud for en service, bliver det muligt at rette alt til den service med<br />
undtagelse af FUnique.<br />
Nederst i skærmbilledet kan en ny service tilføjes. Det FUnique, som står udfyldt, er<br />
autogenereret af systemet ved at lægge 1 til det nuværende højeste FUnique (p.t. står<br />
der 315). Alle tal, som ikke allerede er i brug, må anvendes. Hvis der vælges et tal,<br />
som er i brug, kommer der en lang fejlmelding. Klik på ”tilbage” i browseren og vælg et<br />
andet tal.<br />
Ved at klikke ”Copydan priser” kan priserne og fakturatekst for ophavsrettigheder på de<br />
forskellige TV pakker rettes.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 76 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
Brugervejledning til ”Supporter”:<br />
Systemet viser sammentælling fra de forskellige lister på forsiden.<br />
Ved at klikke på ”TO DO TV” vises en liste over adresser, hvor der skal skiftes TV<br />
pakke. Listen er sorteret efter dato, postnr, x-felt og dernæst efter adresse. Først vises<br />
rækkens ID i SAPS, adressen, postnr., x-felt (trappe eller navn), kabel nr. (hvis muligt),<br />
nuværende pakke, den nye pakke, deadline samt en ”Done” knap. Når der klikkes på<br />
”Done” forsvinder rækken fra listen og TV pakken opdateres hhv. på adressen og på<br />
brugerens oversigt.<br />
Ved at klikke på ”Vis/ret brugere” vises alle brugere i systemet sorteret efter rolle.<br />
Brugerens oplysninger kan rettes ved at klikke på ”Ret”, dog kan ID, rolle og aktiv ikke<br />
ændres.<br />
Brugervejledning til ”Administrator”:<br />
Systemet viser sammentælling fra de forskellige lister på forsiden.<br />
Ved at klikke på ”Vis/ret/tilføj brugere” vises alle brugere i systemet sorteret efter rolle<br />
og dernæst efter navn. Brugerens oplysninger kan rettes ved at klikke på ”Ret”, dog<br />
kan ID ikke ændres. Det er muligt at tilføje nye brugere til SAPS samt at angive deres<br />
rettigheder i SAPS.<br />
Ved at klikke på ”Vis roller” vises rollerne i SAPS. Disse kan ikke redigeres eller slettes.<br />
Der kan heller ikke tilføjes nye.<br />
Ved at klikke på ”Foreninger, veje, numre, etager og sider” kan der rettes og tilføjes<br />
nye til SAPS. Det er ikke muligt at slette dem igen. Oplysningerne fra denne side<br />
bruges til at tilføje adresser til SAPS.<br />
Ved at klikke på ”Tilføj/fjern adresser” vises adresser i systemet. Øverst vises en drop<br />
down boks med veje i SAPS. Hvis der endnu ikke er tilføjet nogen veje, er menuen<br />
tom. Ved at vælge en vej viser systemet alle adresser på den pågældende vej. Vejene<br />
vises med adresse, forening, postnr. og en funktion. Hvis adressen har tilknyttet<br />
services i SAPS, kan adressen ikke fjernes. Ellers vil der være en knap med teksten<br />
”Fjern”.<br />
Nederst på skærmbilledet er det muligt at tilføje en ny adresseserie. Vælg vejen, nr. fra<br />
og nr. til (der tilføjes hvert andet nr.), opgangsbogstav fra og til (udfyldes kun, hvis det<br />
er aktuelt), etage fra og til, antal sider pr. etage, postnr. og foreningens navn. Ved at<br />
vælge fx Tornsangervej fra 1 til 13, udelade opgang, etage fra st. til 2., 2 sider, postnr.<br />
2400 og A/B Lindegaarden, genereres alle opgange på den ulige side fra 1 til 13. Hvis<br />
der er sammenlagte lejligheder, skal disse tilføjes efterfølgende én af gangen og de<br />
overflødige adresser slettes. Enkeltadresser tilføjes ved at vælge de samme værdier i<br />
fra og til samt at angive antallet af sider til 1.<br />
Ved at klikke på ”Vis/opret krydsfelter” kan man søge i krydsfelterne i SAPS, ved at<br />
vælge enten bloknummer eller vejnavn fra drop down menuerne. Hvis der findes<br />
krydsfelter i blokken eller på vejen vises det/de med ID, navn, adresse, postnr. og en<br />
funktion. Hvis der er tilknyttet aktivt udstyr til krydsfeltet kan det ikke fjernes. Ellers vil<br />
der være en knap med teksten ”Fjern”.<br />
Det er muligt at tilføje et nyt krydsfelt til SAPS nederst i skærmbilledet. Vælg vej, nr.,<br />
evt. bogstav, etage, blok nr., postnr. og klik ”Tilføj”. Det ID som krydsfeltet tildeles af<br />
SAPS bliver brugt som reference til et jpg billede af krydsfeltet. Billedet bør være et<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 77 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
udsnit fra krak.dk, hvorpå krydsfeltet er vist med navn og placering. Billedet lægges i<br />
folderen:<br />
ROOT/authorized_users/images<br />
Med filnavnet: ”id.jpg”, hvor ID erstattes med det ID som SAPS har tildelt krydsfeltet.<br />
Ved at klikke på ”Aktivt udstyr” vises en liste over aktivt udstyr i SAPS. Det er muligt at<br />
rette eksisterende udstyrs navn og antal af porte, samt at tilføje nyt. Der kan ikke<br />
slettes udstyr.<br />
Ved at klikke på ”Udstyr i x-felt” vises en valg menu, hvorfra man skal vælge et x-felt.<br />
Hvis der endnu ikke er tilføjet x-felter til SAPS, er menuen tom. Når krydsfeltet er valgt,<br />
vises det udstyr, som er i krydsfeltet med navn, login og password (som bruges til<br />
SNMP kommandoer), serienr., type, start dato og funktion. Det er muligt at rette alle<br />
oplysninger på tilføjet udstyr, men det kan ikke slettes. Nederst på skærmbilledet er der<br />
mulighed for at tilføje aktivt udstyr til krydsfeltet.<br />
Ved at klikke på ”Adressedata i x-felt” vises oplysninger om, i hvilket krydsfelt og hvor i<br />
krydsfeltet de forskellige adresser er tilsluttet, samt om adressen skal vises i online<br />
tilmeldingen. Hvis TVPatch ikke udfyldes antager SAPS, at TV tilslutningen sidder i<br />
opgangen.<br />
Ved at klikke på ”Adresser og porte” vises en valg menu, hvor man skal vælge den vej,<br />
man vil se oplysninger om. Hvis der ikke er tilføjet veje til SAPS, er menuen tom. Når<br />
der er valgt en vej, vises adressen samt hvilket aktivt udstyr og port, adressen er<br />
tilsluttet til. Dette kan rettes, men ikke slettes. Nederst på skærmbilledet kan adresser<br />
tilknyttes yderligere aktivt udstyr. Når der er valgt en adresse og udstyrs navn henter<br />
SAPS det antal porte, som er angivet i ”Aktivt udstyr”. Dermed bliver det umuligt at<br />
vælge porte, som ikke eksisterer. Der er ikke noget tjek for, om en port allerede er<br />
tilknyttet en anden adresse, så vær omhyggelig med denne proces.<br />
”Services og priser” og ”Copydan priser” er beskrevet under bogholder.<br />
Ved at klikke på ”Definer std. services” er det muligt at definere de services, som kan<br />
tilføjes til en adresse eller forening med ”Tilføj standard services” knappen. Alle<br />
services i SAPS er vist og det indikeres med rød eller grønt om servicen er en del af<br />
standard services. Hvis servicen er valgt til, er status grøn og knappen hedder ”Fjern<br />
service” ellers er status rød og knappen hedder ”Tilføj service”. Ved klik på knappen<br />
opdateres servicen og siden. Ændringer vises med det samme.<br />
Ved at klikke på ”Farver til services” er det muligt at redigere de farver som vises i<br />
SAPS. Farven har en ID, kode (som henfører til den kode, der står i services), farve,<br />
vist farve og mulighed for at rette. Ved at klikke ”Ret”, kan koden og farven ændres i<br />
tekst. Hvis den indtastede farve ikke er en HTML farve, vises ingen farve, så det er<br />
muligt at rette evt. fejl med det samme. Der kan tilføjes nye farver til systemet, men de<br />
vil ikke kunne bruges uden ændringer i programmet.<br />
Ved at klikke på ”Services pr. adresse”, kan services tilføjes og fjernes fra adresser i<br />
SAPS. Adressen vælges fra menuen og siden viser, hvilke services, der kan vælges.<br />
Hvis alle services er røde (dvs. fravalgt), kan knappen ”Tilføj standard services”<br />
bruges.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 78 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
Ved at klikke på ”Services pr. forening” kan der tilføjes standard services til alle<br />
adresser i en forening. Foreningen vælges fra menuen og derefter klikkes på ”Tilføj<br />
standard services”, vær dog opmærksom på, at evt. specialadresser skal have fjernet<br />
visse services efterfølgende. Fx er der mange fyrrum, hvor der kun er Internet<br />
tilslutning.<br />
Ved at klikke på ”Telefon nr. status” vises de statusser, som et telefon nr. kan have i<br />
SAPS. Det er også muligt at tilføje en ny status, hvis det er nødvendigt. Status kan<br />
ændres via ”Telefon nr. i Parknet”. Der vises også de muligheder for hemmeligt/skjult<br />
nummer, som er i SAPS. Her kan også tilføjes nye.<br />
Ved at klikke på ”Telefon nr. i Parknet” vises alle telefonnumre i SAPS sorteret efter<br />
nummer. Øverst i skærmbilledet er det muligt at tilføje nye numre til SAPS. Numre som<br />
tilføjes på denne måde, må ikke være numre, som skal porteres. Det skal være en<br />
ledig nummerserie som Parknet har købt. Ud for hvert nummer vises oprettelses dato,<br />
dato for hvornår nummeret blev OK, hvornår nummeret ophørte i SAPS (null hvis<br />
nummeret er i brug), nummerets status og en funktionsknap. Ved at klikke ”Ret”, åbnes<br />
mulighed for at rette OK dato, slut dato og nummerets status.<br />
Ved at klikke på ”Valideringsstrenge til online opret” vises de tre valideringsstrenge,<br />
som bruges i online tilmeldingen. SAPS leveres med strenge til validering af hhv. navn,<br />
tlf. nr. og e-mail. Men hvis der på et tidspunkt sker ændringer i tilladte/ikke-tilladte tegn,<br />
kan valideringen ændres her.<br />
Ved at klikke på ”MIB’er til SNMP” er det muligt at rette de tre MIB som SAPS leveres<br />
med. Der kan rettes MIB til hhv. en ports status, åben port og luk port.<br />
Ved at klikke på ”Rediger ticket typer” vises de ticket typer som er i SAPS. De er<br />
sorteret efter navn. Det er muligt at rette navnet på tickets, men det bør ikke gøres,<br />
efter at SAPS er sat i drift. Det vil medføre at oprettede tickets risikere at ændre emne.<br />
Det er muligt at tilføje nye tickets til SAPS.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 79 af 80
Eksamensprojekt af Henrik Bering SAPS IMM-B.Eng-2009-02<br />
Online tilmelding:<br />
Online tilmeldingen er struktureret og programmeret til at være så intuitiv som<br />
overhovedet muligt. Det skal med et minimum af besvær og hovedbrud, være muligt for<br />
alle at tilmelde sig til Parknet uanset alder, IT fagkundskab og baggrundsviden om<br />
Parknet.<br />
Tilmeldingen består af fire trin. For hvert trin vises, hvor langt brugeren er nået i<br />
tilmeldingsprocessen.<br />
Trin 1:<br />
Brugen vælger sin adresse, blandt de adresser i SAPS hvor ”showinet” er 1. Først<br />
vælges post nr. fra drop down menu. Herefter skal brugeren vælge sin gade. Derefter<br />
skal brugeren vælge sin adresse på gaden. Så kan brugeren klikke ”Næste”.<br />
Trin 2:<br />
Brugeren skal indtaste sit fornavn og efternavn før systemet tillader brugeren at<br />
fortsætte – det vises ved, at ”Næste” knappen ikke kan bruges og at der står i klar tekst<br />
over knappen: ”Du skal skrive for- og efternavn før du kan klikke næste”. Det er ikke<br />
nødvendigt at udfylde hhv. mobil tlf., fastnet tlf. eller E-mail, men hvis felterne udfyldes,<br />
bliver de valideret ud fra de valideringsstrenge, som er indtastet i SAPS. Under kassen<br />
med brugeroplysningerne vises de services, som kan vælges på adressen. Hvis<br />
servicen ikke kan vælges står der: ”Den valgte adresse har ikke den service fra<br />
Parknet”.<br />
Brugeren skal tilmelde mindst én service, før der kan klikkes ”Næste” (står over<br />
knappen). Hvis Internet vælges, får brugeren mulighed for at angive et ønske til en email<br />
adresse. Teksterne til menuerne for telefon og TV er fakturateksterne, som er<br />
angivet i SAPS under ”Services”. Ønsket start fra TV kommer dog fra startdatoer.<br />
Tekstfelter i trin 2 bliver strippet for HTML tegn, så det ikke er muligt fx at eksekvere<br />
scripts. Derudover bliver alle valgte ID’er kontrolleret, for at sikre, at brugeren ikke har<br />
rettet noget.<br />
Trin 3:<br />
Brugeren præsenteres for sine valg, samt pris for oprettelse og den månedlige pris<br />
fremover. Brugeren skal acceptere Parknets abonnementsvilkår og priser, før der kan<br />
klikkes ”Næste”. Der er link til vilkårene i tilknytning til fluebenet, hvor vilkårene skal<br />
accepteres.<br />
Trin 4:<br />
Brugeren er nu oprettet. Hvis der var en tilmeldt bruger på adressen, bliver den nye<br />
bruger lagt i en temp tabel og bliver oplyst om, at en Parknet medarbejder skal<br />
behandle tilmeldingen manuelt. Ellers vises brugerens brugernummer og password.<br />
Der er link til hhv. tilmelding til Betalingsservice og Parknets hjemmeside. Tilmelding til<br />
Betalingsservice foregår via https direkte hos PBS. Formularen er preudfyldt med de<br />
oplysninger, som er tilgængelige i SAPS.<br />
Note:<br />
Hvis brugeren klikker på tilbageknappen i browseren og prøver at foretage endnu en<br />
tilmelding, vises en fejlmeddelelse til brugeren om, at det ikke kan lade sig gøre.<br />
DTU – <strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong> Side 80 af 80