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.1 Doel.................................. 1 1.2 Scope................................. 1 1.3 References............................... 1 1.4 Overzicht............................... 1 2 Algemene beschrijving 2 2.1 Product perspectief.......................... 2 2.2 Product eisen............................. 2 3 Specifieke beschrijving 3 3.1 Externe interfaces.......................... 3 3.2 Functionele eisen........................... 3 3.2.1 Algemeen........................... 3 3.2.2 Niet-geregistreerde gebruiker................ 6 3.2.3 Geregistreerde gebruiker................... 8 3.2.4 Applicatie........................... 12 3.3 Niet-functionele eisen......................... 12 3.4 Performantie eisen.......................... 13 3.5 Design constraints.......................... 13 3.6 Software systeem attributen..................... 13 3.7 Andere eisen............................. 13
1 Inleiding 1.1 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 Functionele eisen 3.2.1 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. 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. 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. 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. 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 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. 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. 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. 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. 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. 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. 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,... 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. 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. 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. 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