Software Requirements Specification PEN: Paper Exchange Network Software Engineering groep 1 (se1-1415) Academiejaar 2014-2015 Jens Nevens - Sander Lenaerts - Nassim Versbraegen Jo De Neve - Jasper Bevernage Versie 3
Versie geschiedenis: Versienummer Datum Auteur Versie 1 19/11/2014 Jo De Neve Versie 2 15/12/2014 Jo De Neve Versie 3 03/03/2015 Jo De Neve
Contents 1 Inleiding 1.1 Doel . . . 1.2 Scope . . 1.3 References 1.4 Overzicht
. . . .
1 1 1 1 1
2 Algemene beschrijving 2.1 Product perspectief . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Product eisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 2 2
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
3 Specifieke beschrijving 3.1 Externe interfaces . . . . . . . . . . 3.2 Functionele eisen . . . . . . . . . . . 3.2.1 Algemeen . . . . . . . . . . . 3.2.2 Niet-geregistreerde gebruiker 3.2.3 Geregistreerde gebruiker . . . 3.2.4 Applicatie . . . . . . . . . . . 3.3 Niet-functionele eisen . . . . . . . . . 3.4 Performantie eisen . . . . . . . . . . 3.5 Design constraints . . . . . . . . . . 3.6 Software systeem attributen . . . . . 3.7 Andere eisen . . . . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . .
. . . . . . . . . . .
3 3 3 3 6 8 12 12 13 13 13 13
1 1.1
Inleiding Doel
Het doel van dit document, de Software Requirements Specification, is om een gedetailleerd overzicht te geven aan de klant en als leidraad voor de ontwikkelaar over de functionele en niet-functionele eisen van het project PEN versie 3. Voor meer informatie over dit project zie ook het Software Project Management Plan, het Software Test Plan en het Software Design Document.
1.2
Scope
PEN is een een webapplicatie die toelaat om wetenschappelijke publicaties te beheren en raad te plegen. Dit zal nuttig zijn voor studenten en doctoraatstudenten die zich bezig houden met onderzoek om informatie over hun onderwerp naar keuze te kunnen raadplegen. Op de applicatie kan een gebruiker zijn publicaties uploaden op verschillende manieren, nl. via het invullen van een formulier, via het uploaden van een BibTex bestand of via extractie van de nodige gegevens uit een PDF-bestand. Ook kan hij later eigen publicaties verwijderen uit het systeem. De applicatie kent aan elke publicatie een score toe. Publicaties moeten kunnen worden opgezocht, niet enkel op dit systeem, maar ook gebruikmakende van gelijkaardige systemen zoals bijvoorbeeld Google Scholar, Mendeley, . . . Het systeem stelt bepaalde papers voor aan een gebruiker a.d.h.v. verzamelde informatie omtrent deze gebruiker. Er kan een ’sociaal netwerk’ worden opgebouwd met de papers en gebruikers. Gebruikers kunnen tags en commentaar toevoegen aan papers alsook statistieken consulteren. Tot slot biedt deze applicatie ook ondersteuning voor een mobiele webbrowser.
1.3
References
IEEE Std 830-1998, IEEE Recommended Practice for Software Requirements Specifications, IEEE Computer Society, 1998
1.4
Overzicht
Hoofdstuk 2 bevat een overzicht van de algemene requirements en in hoofdstuk 3 zullen deze verder worden geanalyseerd. Er wordt gebruik gemaakt van scenarios om te beschrijven hoe de applicatie moet werken.
1
2
Algemene beschrijving
2.1
Product perspectief
PEN is een open source project voor het beheren en raadplegen van wetenschappelijke publicaties. Het is de bedoeling een gebruiksvriendelijke applicatie te maken waaraan een sociaal netwerk verbonden is. De applicatie maakt gebruik van een Wilma server om data op te slaan.
2.2
Product eisen
PEN zal twee types van gebruikers hebben, een wel en een niet geregistreerde gebruiker(respectievelijk een account en een persoon). Beide zullen toegang hebben tot de home pagina, deze bevat algemene informatie en een menu met een aantal knoppen. We geven een overzicht van de functionaliteiten voor beide gebruikers en voor de applicatie. Een niet geregistreerde gebruiker: • publicaties opzoeken • zoekresultaten exporteren in BibTex of tekstformaat • account aanmaken • kiezen van een taal Een geregistreerde gebruiker: • inloggen en uitloggen • wachtwoord wijzingen • publicaties opzoeken • zoekresultaten exporteren in BibTex of tekstformaat • publicaties uploaden • account en applicatie instellingen wijzigen • account verwijderen • uitbouwen sociaal netwerk • kiezen van een taal
2
De applicatie: • lijst genereren van paper suggesties per gebruiker • statistieken bijhouden per gebruiker • score berekenen per gebruiker • beschikbaar op mobiele interfaces
3
Specifieke beschrijving
3.1
Externe interfaces
Een Wilma server met een database die alle data zal bijhouden.
3.2 3.2.1
Functionele eisen Algemeen
De volgende vereisten gelden voor beide types van gebruikers, een account en een persoon. Functional requirement 1.1
ID=AFR1
Titel: Opzoeken van papers Beschrijving: Opzoeken van papers gebaseerd op een invulformulier met combineerbare zoekcriteria in de eigen database of op het internet. De gebruiker kan hierbij kiezen om enkel op een kernwoord te zoeken of het invulformulier te displayen. Bij het zoeken zullen volgende sites gecontacteerd worden: • http://scholar.google.be • http://dl.acm.org • http://mendeley.com • http://ieeexplore.ieee.org De gevonden gegevens worden weergegeven en hieruit kan de gebruiker kiezen welke hij wil laten exporteren naar een BibTex of tekstformaat. Scenario: 1. De gebruiker klikt op de zoek knop. 2. Indien het zoekveld of invulformulier is ingevuld, wordt een zoekopdracht gestart. 3. De applicatie geeft een overzicht van de zoekresultaten. Resultaat: Een lijst van zoekresultaten die gexporteerd kunnen worden.
3
Functional requirement 1.2
ID=AFR2
Titel: Downloaden van een publicatie Beschrijving: Een gebruiker kan na het opzoeken een publicatie downloaden. Prerequisite: De gebruiker heeft een lijst van zoekresultaten. Scenario: 1. Een gebruiker kan het resultaat downloaden: • BibTex • tekstformaat 2. alternatief als publicatie nog niet in applicatie database aanwezig is: • publicatie toevoegen (zie upload) Resultaat: De publicatie is gedownload.
Functional requirement 1.3
ID=AFR3
Titel: Taal veranderen Beschrijving: Een gebruiker kan de taal van de website veranderen. Scenario: 1. De gebruiker klikt op de overeenkomstige vlag van de taal naar keuze: • Nederlands • Engels 2. Keuze wordt opgeslagen 3. De pagina wordt herladen met de taal naar keuze. Resultaat: De taal is veranderd.
4
Functional requirement 1.4
ID=AFR4
Titel: Wachtwoord vergeten beschrijving: Als een gebruiker zijn wachtwoord vergeten is, kan hij een nieuw wachtwoord aanmaken. Scenario: 1. De gebruiker is zijn wachtwoord vergeten en start een aanvraag voor een nieuw wachtwoord. 2. Email wordt verzonden naar het opgegeven account met link naar de pagina om de aanvraag te bevestigen. 3. De gebruiker geeft zijn nieuw wachtwoord tweemaal op en bevestigd. • Wachtwoorden zijn identiek, de aanvraag is gelukt. • Wachtwoorden zijn dit niet, de applicatie geeft een overeenkomende melding. Resultaat: Een account met een gewijzigd wachtwoord.
5
3.2.2
Niet-geregistreerde gebruiker
De volgende vereisten gelden voor niet-ingelogde gebruikers. Functional requirement 2.1
ID=GFR1
Titel: Register Beschrijving: De gebruiker zal de nodige informatie moeten opgeven voor het aanmaken van een profiel. • naam • voornaam • wachtwoord • e-mail • affiliatie Scenario: 1. De gebruiker klikt op de overeenkomsitge knop. 2. Hij vult het formulier in. 3. Na het confirmeren door op de overeenkomstige knop te klikken: • Alle verplicte velden zijn correct ingevuld, registratie is gelukt. • De applicatie geeft een melding (illegale opgegeven informatie of een leeg verplicht veld) met wat er fout gelopen is, de gebruiker kan dit aanpassen. Resultaat: Gebruiker is geregistreerd.
6
Functional requirement 2.2
ID=GFR2
Titel: Log in Beschrijving: Gegeven een correcte gebruikersnaam en wachtwoord, zal de gebruiker worden ingelogd met de nodige rechten. prerequisite: De gebruiker heeft een profiel. Scenario: 1. De gebruiker klikt op de log-in knop. 2. Hier vult hij zijn gebruikersnaam en wachtwoord in. 3. De applicatie zal de gegevens verwerken: • correcte gegevens, het inloggen is geslaagd. • de combinatie bestaat niet, de applicatie geeft een melding waarop de gebruiker aanpassingen kan maken. Resultaat: Gebruiker is ingelogd en de overeenkomstige account pagina wordt gedisplayed.
7
3.2.3
Geregistreerde gebruiker
Volgende vereisten gelden voor ingelogde gebruikers. Functional requirement 3.1
ID=UFR1
Titel: log uit beschrijving: Een gebruiker kan uitloggen. prerequisite: Gebruiker is ingelogd. Scenario: 1. De gebruiker drukt op de overeenkomstige knop. 2. De applicatie sluit de sessie af. Resultaat: Gebruiker is uitgelogd en de homepagina wordt gedisplayed.
Functional requirement 3.2
ID=UFR2
Titel: toevoegen van een paper beschrijving: Een gebruiker kan een paper uploaden, zodat deze beschikbaar wordt in de applicatie. Een formulier bevat volgende velden die de applicatie zal probeteren te extraheren: • type • titel • auteurs • titel van proceedings of journal • (proceedings) editors • (proceedings) naam uitgever • (proceedings) stad • (journal) volume • (journal) nummer • aantal pagina’s • jaar • URL • keywords
8
Deze kunnen worden aangevuld door de gebruiker indien nodig. Scenario: 1. De gebruiker probeert een publicatie te uploaden. 2. De applicatie controleert de invoer en probeert informatie te extraheren uit zowel het account als de geuploadde publicatie: • Het opgegeven bestand is niet in het correcte formaat. • Er ontbreekt meta data over de publicatie, de applicatie geeft een melding en de gebruiker kan deze aanvullen. 3. De gebruiker vult indien nodig ontbrekende velden aan. 4. De gebruiker bevestigd. • Correct formulier, het uploaden is geslaagd. • Bij het ontbreken van velden, of illegale informatie geeft de applicatie een overeenkomstige melding. Resultaat: Een paper is toegevoegd.
Functional requirement 3.3
ID=UFR5
Titel: verwijderen van een eigen publicatie Beschrijving: Een gebruiker kan een publicatie verwijderen zodat deze niet meer beschikbaar is. Scenario: 1. De gebruiker selecteert de publicatie die hij wil verwijderen. 2. De applicatie vraagt voor bevestiging. 3. De gebruiker bevestigd. Resultaat: De publicatie is verwijderd.
9
Functional requirement 3.4
ID=UFR6
Titel: applicatie instellingen veranderen Beschrijving: een gebruiker kan de standaard instellingen van de applicatie veranderen. Scenario: 1. De gebruiker kiest voor het wijzigen van de applicatie instellingen. 2. Na het bevestigen van de gebruiker, worden de instellingen weggeschreven. Resultaat: Een account met gewijzigde instellingen.
Functional requirement 3.5
ID=UFR7
Titel: Voorstel om publicatie toe te voegen Beschrijving: Een gebruiker die zich voor het eerst aanmeld op ons systeem, krijgt een voorstel om een publicatie toe te voegen. prerequisite: De gebruiker meldt zich voor de eerste keer aan. Scenario: 1. De applicatie stelt voor aan de gebruiker om een eigen publicatie toe te voegen. • De gebruiker voegt zijn publicatie toe (zie toevoegen van een paper). • De gebruiker slaat deze stap over. Resultaat: De gebruikers pagina wordt gedisplayed.
Functional requirement 3.6
ID=UFR8
Titel: persoonlijke gegevens veranderen Beschrijving: Een account kan zijn persoonlijke gegevens veranderen zoals zijn affiliatie, e-mail addres,... Scenario: 1. De gebruiker kiest ervoor om zijn persoongelijk gegevens aan te passen. 2. Na bevestiging van de gebruiker, worden de instellingen weggeschreven. Resultaat: De gegevens zijn permanent gewijzigd en opgeslagen in de applicatie.
10
Functional requirement 3.7
ID=UFR9
Titel: Account verwijderen Beschrijving: Een gebruiker kan zijn account verwijderen. Scenario: 1. De gebruiker drukt op de knop om zijn account te verwijderen. 2. De applicatie vraagt voor bevesteging. 3. De gebruiker accepteert. Resultaat: Het account bestaat niet meer.
Functional requirement 3.8
ID=UFR10
Titel: Automatisch inloggen Beschrijving: Een gebruiker kan zich automatisch inloggen als hij terugkomt naar de website. prerequisite: De gebruiker moet al eens zijn ingelogd op het systeem.
11
3.2.4
Applicatie
Functional requirement 4.1
ID=AFR1
Titel: informatie extraheren Beschrijving: Informatie laten extraheren uit een PDF of BibTex. Scenario: 1. Een gebruiker kiest om informatie te laten extraheren uit een PDF of een BibTex. 2. Informatie kan enkel gextraheerd worden uit ondersteunde bestandstypen. Resultaat: Een lijst van gextraheerde informatie.
Functional requirement 4.2
ID=AFR2
Titel: aanvullen van velden Beschrijving: informatie aanvullen door middel van een opgegeven account. Scenario: 1. De gebruiker moet een formulier invullen. 2. De applicatie zal account informatie gebruiken om het formulier aan te vullen. Resultaat: Een lijst van informatie.
3.3
Niet-functionele eisen
Non Functional requirement 1.1
ID=NFR1
Titel: Hashen van wachtwoorden Beschrijving: Wachtwoorden in de database worden opgeslagen met behulp van een hash.
Non Functional requirement 1.2
ID=NFR2
Titel: Session management Beschrijving: Elke gebruiker krijgt een eigen sessie id zodat bij het verlaten van de applicatie alle gegevens i.v.m. de huidige sessie verwijderd kunnen worden.
12
3.4
Performantie eisen
Geen vooropgestelde eisen voor dit project.
3.5
Design constraints
De applicatie moet een responsieve design hebben zodat ze kan draaien op een android browser. De source code moet, voor zowel server als client side, geschreven worden in Javascript. Er mag ook alleen open source software gebruikt worden.
3.6
Software systeem attributen
betrouwbaarheid De applicatie moet werken zoals ze hoort te werken op elk moment, maar doordat de applicatie draait op de Wilma server, beheerd door een derde partij, kunnen we niet voorspellen wanneer of waarom deze service zal wegvallen. beschikbaarheid De applicatie is beschikbaar voor de gebruiker als ze toegang hebben tot een webbrowser. Aangezien het werkt met een externe server, kan de beschikbaarheid niet gegarandeerd worden. We verwachten dat de applicatie meer dan 98 procent van de tijd beschikbaar is, hierbij nemen we het netwerk falen niet in overweging. veiligheid Berichten tussen de client en server die gevoelige informatie, zoals gebruikersnamen en wachtwoorden, bevatten, worden geencrypteerd. Ook kunnen gebruikers niet inloggen met verkeerde log-in informatie. Er zal dan een bericht worden getoond dat het inloggen faalt. Verder is de database beschermd tegen sql-injecties. draagbaarheid De applicatie is beschikbaar op elke browser die het uitvoeren van javascript toelaat.
3.7
Andere eisen
De applicatie moet minstens beschikbaar zijn in twee talen. We hebben gekozen voor het Nederlands en het Engels.
13