29.07.2013 Views

Master of Science thesis Fighting Spam

Master of Science thesis Fighting Spam

Master of Science thesis Fighting Spam

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

vigtigste objekter for at give et overblik. Mange af objekterne indeholder flere dele til at<br />

håndtere forskellig funktionalitet.<br />

Når det skal besluttes, om en opgave skal udføres i en separat tråd eller ej, er følgende<br />

betragtning vigtig at have for øje:<br />

- Jo flere tråde, desto sværere testfase og dermed større risiko for fejl.<br />

Det er vigtigt at holde antallet af tråde på et minimum. Dette skyldes, at dét at arbejde<br />

med flere tråde samtidig medfører kritiske sektioner og risiko for løkker på tværs af tråde.<br />

For at kunne fastslå det minimale antal nødvendige tråde i klienten, kan følgende<br />

betragtning benyttes. Er det nødvendigt, at to aktiviteter foregår parallelt, kræver dette to<br />

tråde, ellers ikke. Det er f.eks. nødvendigt at kunne håndtere emailforespørgsler i de<br />

forskellige protokoller samtidig. Derfor findes en tråd for hver protokol, som det også<br />

fremgår af Figur 24, hvor kanten, på objekter der kører som separate tråde, er fed 4 .<br />

Udover protokol-trådene kræver kø-mekanismen, at PackageQueue og<br />

IncomingMailProcessor (den instans der benyttes til POP3) kører i separate tråde. Til<br />

sidst skal den grafiske bruger grænseflade køre uafhængigt af de herover nævnte tråde.<br />

Brugergrænsefladen kan derfor indgå som en del af programmets hovedtråd, der også<br />

indbefatter Control og de resterende objekter, der er forbundet til denne.<br />

Klientapplikationens grundlæggende struktur er nu fastlagt. Hvordan de enkelte<br />

programdele samarbejder, vil blive udspecificeret i det følgende.<br />

6.9.3 Klientens funktionalitet<br />

Klientens funktionalitet vil i dette afsnit blive udspecificeret yderligere. Dette gøres vha.<br />

sekvensdiagrammer. Der tages udgangspunkt i de centrale funktioner, der blev<br />

gennemgået ved udarbejdelse af use cases (se afsnit 6.6). Der er dannet diagrammer ud<br />

fra de use-cases, der ikke er umiddelbare at implementere uden yderligere specifikation.<br />

Følgende liste angiver hvilke diagram-afsnit, der findes i det følgende. Efter titlen er<br />

angivet hvilket use-case nummer diagrammet hører til:<br />

Registrering (Use Case 1)<br />

Se pengestatus (Use Case 3)<br />

Afsendelse af email (Use Case 4)<br />

Modtagelse af email (Use Case 5)<br />

Indkasser <strong>Spam</strong>Cash (Use Case 6)<br />

Hæv penge (Use Case 7)<br />

Indsæt penge (Use Case 8)<br />

Use case 2, 9, 10 og 11, der omhandler hhv. konfiguration af IP-adresser, opdatering af<br />

whitelist og programnedlukning, beskriver relativt simple funktioner og er derfor ikke<br />

beskrevet yderligere i dette afsnit.<br />

4 Internt i IMAPProxy benyttes dog, hvis det bliver nødvendigt flere tråde til forbindelser fra klient til<br />

server<br />

95

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!