Systemet som skall implementeras är ett enkelt verktyg för elektronisk kommunikation över ett nätverk. Systemet skall innehålla följande komponenter:
Systemet skall också integreras med en redan existerande ikoneditor för bilder på kontakter i adressboken. Dessa bilder skall visas i inkomna meddelanden, i listor över vilka som är uppkopplade etc.
Här presenteras de funktionella kraven på systemet utifrån komponentlistan ovan.
Meddelandeklienten
Meddelandeklienten är till mångt och
mycket en epostklient. Den stora
skillnaden ligger i att den inte använde
epostprotokollet utan går mot en specifik
IV1300-server, samt att man bara kan
skicka meddelanden till någon som är
uppkopplad. Om man försöker skicka ett
meddelande till någon som inte är
uppkopplad kommer detta att studsa
tillbaka -- meddelandeklienten måste själv
hålla med en utkorg där mail skickas så
fort mottagaren kopplar upp
sig. Följaktligen måste klienten hålla
reda på vilka som är uppkopplade.
Det finns två typer av meddelanden -- formaterade och oformaterade meddelanden. Ett oformaterat meddelande använder vanlig asciitext medan formaterade meddelanden representeras med taggar och kan innehålla kursiveringar, fetstilt text, rubriker etc. Taggspråket som används för formaterade meddelanden heter PVTML och beskrivs här (annan kurs).
Meddelandeklienten skall ha stöd för
visning av formaterade och oformaterade
meddelanden. Det är inte ett krav att
implementera en editor för formaterade
meddelanden -- det räcker med att kunna
skriva taggarna i ett oformaterat
meddelande och skicka det som
formaterat. Det skall givetvis finnas stöd
för flera foldrar (alltså, träd av foldrar
som innehåller meddelanden) och regler som
automatiskt sorterar in meddelanden i rätt
foldrar. Man skall kunna skapa, byta namn
på, flytta och ta bort foldrar litet hur
som helst, brev skall kunna flyttas från
en folder till en annan, vidarebefordras
och svaras på; precis som i en vanlig
epostklient. Man skall också kunna spara
ett brev som en textfil, så att det går
att ändra i t.ex. Emacs. Skickade brev
skall sparas och man skall även kunna
spara ett brev (som inte nödvändigtvis
skall vara färdigt) för att kunna skicka
det senare. Givetvis skall ett brev
presenteras med ämnesrad, datum och
avsändare.
Signaturer
Användaren skall kunna ha signaturer,
d.v.s. text som automatiskt bifogas i alla
mail som går iväg (kan synas redan i
editorn). Man skall kunna ha flera
signaturer och dessutom kunna ställa in så
att brev till en viss mottagare alltid får
en viss signatur.
Filter
En användare skall kunna skapa filter som
tittar på avsändare eller ord i ämnesraden
och flyttar brev som matchar filtret till
en vald folder. Inkomna brev skall
kontrolleras mot filtren i en viss
ordning.
Adressbok
Adressboken skall kunna köras som en fristående applikation. Det skall alltså vara möjligt att distribuera adressboksprogrammet separat och köra det utan att meddelandeklienten finns installerad. Se det som att adressboken egentligen utvecklas i ett separat projekt. Meddelandesystemet får vara beroende av adressboken men adressboken inte tvärtom.
Adressboken hanterar kontakter. En kontakt är ett namn (på en person, ett företag, etc.) med vidhäftade kontaktuppgifter som fysisk adress, telefonnummer, epostadress, hemsideadress etc. En person skall kunna ha flera av samma uppgift; flera telefonnummer, t.ex. ett hemnummer och ett mobilnummer, eller flera mobilnummer etc., även flera epostadresser, fysiska adresser, etc. Varje person skall också kunna ha en bild så att man kan hålla reda på vem som är vem, samt ett anteckningsfält för godtyckliga anteckningar som t.ex. födelsedag och annat.
För varje kontakt skall man också kunna lagra ett användarnamn och smeknamn. Användarnamnen motsvarar unika epostadresser i meddelandesystemet och smeknamnen är enkla alias.
Utöver kontakter skall adressboken kunna hantera ett antal grupper. En grupp är ett samlingsnamn på ett antal kontakter. Samma kontakt skall kunna finnas med i flera olika grupper samtidigt. Man skall kunna skapa en grupp från andra grupper.
Alla uppgifter i adressboken skall
naturligtvis sparas på disk och vara kvar
nästa gång programmet körs. Alla uppgifter
skall dessutom enkelt kunna editeras. På
samma sätt måste man kunna lägga och ta
bort kontakter i en grupp utan att
personen skall försvinna helt. Man skall
naturligtvis även kunna ta bort en person
helt ur databasen. Med enkelt kunna
editeras avses att man t.ex. inte skall
behöva ta bort en kontakt ur alla grupper
för att ta bort personen helt och att en
ändring i ett telefonnummer för en kontakt
bara skall behöva göras en gång för att
bli synligt i alla grupper som kontakten
tillhör. Givetvis skall man kunna ändra
namnet på en grupp efter att den har
skapats etc.
Integration
meddelandeklient--adressbok
När ett brev visas i meddelandeklienten skall den bild som givits avsändaren i adressboken visas.
Meddelandeklienten skall använda sig av kopplingen mellan smeknamn och användarnamn som finns i adressboken; man skall också kunna skicka ett meddelande till alla kontakter i en grupp.
Filter skall kunna använda sig av grupper och kontakter i adressboken.
Man skall kunna knyta signaturer till kontakter och grupper i adressboken.
Tjattklienten implementerar en vanlig tjatt. En klient skickar en begäran om tjatt till en annan klient som accepterar eller avslår begäran. Denna upphandling går via DSV2:PVT-servern, men själva tjattandet sköter klienterna själva. Det finns inget fastslaget protokoll för detta, men alla gruppers klienter måste kunna chatta med varandra. Följaktligen måste ni själva standardisera protokollet och bestämma om man t.ex. skickar tecken för tecken eller rad för rad, etc. Tjattklienten skall vara integrerad med adressboken på samma sätt som meddelandeklienten, d.v.s., med stöd för smeknamn, visa bild etc. Möjliga utökningar av tjattklienten är t.ex. överföra en fil eller spara en utskrift av tjatten på fil.
Ikoneditorn är ett gammalt legacy-system som måste integreras med adressboken på grund av krav från kund. Ikoneditorn är ett simpelt ritprogram som ritar de bilder som används i adressboken. Man skall via adressboken kunna editera någons ikon, etc. Observera att ikoneditorn inte alltid beter sig som man skulle vilja och man måste därför ta till vissa OO-knep för att integrera den framgångsrikt.
Det skall vara möjligt för en användare att kontrollera vilka andra användare som är uppkopplade. Det finns stöd för detta i IV1300-servern.