Software Design Document



Vergelijkbare documenten
Software Design Document

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren

Software Test Documentation

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 02 april Versie 2.1.0

Software Design Document

Software Design Document

Software Requirements Specification

Technisch Ontwerp W e b s i t e W O S I

Software Project Management Plan for WiseLib

Cursus Software Architecture (T32311 en T32811)

Software Requirements Specification

VoipCenter Application Programming Interface (API)

IBAN API. Simpel & krachtig. Documentatie : IBAN REST API Versie : 1.0 DE BETAALFABRIEK

4 ASP.NET MVC. 4.1 Controllers

Software Engineering Groep 4

Temperatuur logger synchronisatie

Waarom Cloud? Waarom nu? Marc Gruben April 2015

Verslag Vergadering 15 10/04/08

Gebruik van cryptografie voor veilige jquery/rest webapplicaties. Frans van Buul Inter Access

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat:

Software Requirements Specification

Software Quality Assurance Plan

Vraag 1. Vraag 1a TERUGKOPPELING PROEFTENTAMEN. Software architecture

Elastic Search wat heb je aan data als je er niets mee doet.. Oscar Buse 11 juli 2017 Linux User Group Nijmegen

Software Project Management Plan

Software Test Plan. PEN: Paper Exchange Network Software Engineering groep 1 (se1-1415) Academiejaar

Software Test Document

1 Deelproject Spraakherkenning: SHoUT Audio Indexering Service

Technologieverkenning

Software Project Management Plan

Handleiding Niki API

Delft-FEWS & Web Services

Elastic Search wat heb je aan data als je er niets mee doet.. Oscar Buse 17 maart 2018 Nederlandse Linux Gebruikers Groep

Dynamische webapplicaties in Java

Software Test Documentation

Ontwerp Versturen Patiëntgegevens

BRP-BZM Use Case Realisations Guidelines

Technisch Ontwerp Ontwerp template

Gebruikershandleiding POM demonstrator

Naam project Lost And Found Animals Lokaal gehost Percentage van het totaal geleverde werk 1 Cindy Jansen 50% 2 Eline Steyvers 50%

Technisch Ontwerp VISSIM-PPA Koppeling

Sparse columns in SQL server 2008

Inhoudsopgave. Hoofdstuk 1.JMS...2

InterSmart: A Twitter based quiz application for PowerPoint audiences

INFITT01 - Internettechnologie WEEK 8

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

Is APEX a worthy substitute for Oracle Forms?

Formulieren en waarden posten naar een view

OAS en het Kennisplatform API s. Dimitri van Hees

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting?

Software Project Management Plan

Macro s. 4.2 Een macro maken

Software Engineering Groep 3

Boeiende Bindingen. Boeiende Bindingen Technische projectevaluatie. ROC West-Brabant, Codename Future, ThiemeMeulenhoff

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB

Dynamische Websites. Week 6. vrijdag 25 oktober 13

Inhoud. VBA Excel 2010

Technical Note. API Beschrijving Aangetekend Mailen

Whitepaper. Connected Android Apps. Inleiding

Software-ontwerp User stories Use cases Opdracht. Ontwerpmethodologie. Nick Vannieuwenhoven. October 17 18,

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 05 juni Versie 3.8.0

Een website maken met databasetoegang.

Software Project Management Plan WiseLib

Object Oriented Programming

Inhoudsopgave. Hoofdstuk 1.RMI...2

Martiris Secure Private Data. Gegevensbescherming in Oracle Databases

ONZE INTERPRETATIE VAN HET KNOOPPUNT PLATFORM

CAK Installatiehandleiding

Klachtenbeheer (Intranet)

1750,00 excl. BTW. analytisch denkvermogen, empathie, assertief, communicatief, aanleg voor formalisme,...

Equivalentie tussen: vormingen georganiseerd door het ministerie van Defensie en opleidingen van het volwassenenonderwijs

Applicatie-Architecturen

Practicum Distributed Systems

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 11 maart Versie 1.1.0

Opdrachtformulering (pagina 3 van 7)

Tentamen Object Georiënteerd Programmeren TI oktober 2014, Afdeling SCT, Faculteit EWI, TU Delft

Release Notes Carta 14.1

APEX en JasperReports

REST Adapter in SAP PI/PO voor REST-based Web Services

Perceptive Process. Release Notes. Versie: 3.9.x

Programming Content Management Server 2002

Subrapporten. 5.1 Inleiding

Zeef van Eratosthenes

Oefeningen Jaarproject I

Module 1 Programmeren

MA!N Rapportages en Analyses

2BA Deeplink Gebruiksbeschrijving

Werkgroep G19. Nota betreffende de doelstellingen en standaardfunctionaliteiten van een hub in de context van het project hubs-metahub

Software Engineering Group 3

Software Project Management Plan

Les 10 : Aanmaken van een database (deel2).

Transcriptie:

Software Design Document Mathieu Reymond, Arno Moonens December 2014 Inhoudsopgave 1 Versiegeschiedenis 2 2 Definities 3 3 Introductie 4 3.1 Doel en Scope............................. 4 4 Logica 5 4.1 Backend................................ 6 4.1.1 Core Module......................... 7 4.1.2 Database Module....................... 9 4.1.3 Communicatie Module.................... 11 4.2 Frontend................................ 12 5 Referenties 13 1

1 Versiegeschiedenis Versie Commentaar 1 Design van eerste iteratie 2 Design van tweede iteratie 2

2 Definities API REST JSON SDD Table 1: Definities Application Programming Interface Representational state transfer JavaScript Object Notation Software Design Description 3

3 Introductie 3.1 Doel en Scope Dit document heeft als doel om de software-architectuur van de WiseLib-applicatie uit te leggen aan de hand van een veralgemeende beschrijving van het systeem. Dit document zal geraadpleegd worden door de testers en door programmeurs tijdens het implementeren van de applicatie. WiseLib wordt op een iteratieve manier gemaakt. Dit betekent dat we in de eerste versie beginnen met slechts een beperkt aantal functionaliteiten te implementeren. In volgende iteraties wordt onze applicatie dan telkens uitgebreid en worden de functionaliteiten verbeterd en worden er nieuwe toegevoegd. Dit document volgt de IEEE Std 1016-2006 TM Standard for information technology systems design software design descriptions standaard. 4

4 Logica De Wiselib applicatie is onderverdeeld in twee grote onderdelen: de backend (4.1) en de frontend (4.2). De backend beheert de data van het systeem door gebruik te maken van een database en implementeert de core functionaliteiten van het programma. De frontend toont de data aan de gebruiker, en laat toe om onrechtstreeks met deze data te interageren. De communicatie tussen deze twee onderdelen gebeurt via een op voorhand afgesproken protocol : een RESTful[1] API[2] met als media type het JSON formaat. Figure 1: De verschillende layers van de applicatie 5

4.1 Backend De backend bestaat uit drie grote modules: De database module (zie 4.1.2). De core module (zie 4.1.1). De communicatie module (zie 4.1.3). De core module implementeert de functionaliteit van het systeem. De data is hier door verschillende klassen voorgesteld, waarmee de logica van het systeem uitgevoerd kan worden. Deze module is volledig onafhankelijk van de andere modules. De database module is verantwoordelijk voor de interactie tussen de applicatie en de database. Het zet de gevraagde database-data om naar coreobjecten. Het maakt dus gebruik van de core-module. Het interageren met deze module gebeurt ook via de RESTful[1] API[2]. De communicatie module interageert met de buitenwereld door middel van de API. Geldige requests worden behandeld door gebruik te maken van de database module. Eventuele berekeningen gebeuren dan via core-klassen, en het antwoord wordt dan omgezet naar een JSON formaat en teruggestuurd. Figure 2: Het Module Schema 6

4.1.1 Core Module De core-module bestaat uit verschillende klassen. Gebruikers zijn voorgesteld door de klasse User. De applicatie maakt een onderscheid tussen een gebruiker en een persoon Person. Het is namelijk mogelijk dat een auteur in de gegevensbank opgeslagen is, maar niet als gebruiker is ingeschreven. Dit kan bijvoorbeeld gebeuren wanneer een gebruiker een publicatie met co-auteurs uploadt. Publicaties zijn voorgesteld door de klasse Publication. Er wordt een onderscheid gemaakt tussen twee type publicaties: JournalPublication en ProceedingPublication. Dit onderscheid is noodzakelijk omdat deze publicaties verschillende karakteristieken hebben. ProceedingPublications hebben bijvoorbeeld publishers en editors, wat niet het geval is bij JournalPublications. Omdat de rank van een journal of een proceeding een invloed heeft op de rank van een publicatie worden zij ook door hun eigen klasse gerepresenteerd (respectievelijk Journal en Proceeding). 7

Figure 3: Het Core Klasse diagram 8

4.1.2 Database Module De verschillende klassen van de core-module worden in een database opgeslagen. De interactie met de database gebeurt via de DBManager klasse. De interactie gebeurt asynchroon. Er is dus nood aan een callback functie, mee te geven aan de methoden van deze klasse. Deze heeft voor elke core-klasse vier methodes die overeenkomen met de REST architectuur: getclassname(params, next): Deze methode zoekt in de database. params: de methode zoekt naar data die overeenkomt met de variabelen die in params gegeven worden. next: De callback functie die opgeroepen wordt aan het einde van de methode. Hij heeft één parameter: een Array van core-klassen die matchen op params. postclassname(jsonobj, next): Deze methode voegt nieuwe elementen (rijen, tabellen,... indien nodig) toe aan de database. jsonobj: Een JSON object dat volgens de API gedefinieerd wordt. Dit wordt toegevoegd aan de database. next: De callback functie die opgeroepen wordt aan het einde van de methode. Hij heeft één parameter: Het id van het toegevoegde jsonobj. putclassname(jsonobj, next): Deze methode update bestaande elementen. jsonobj: Een JSON object dat volgens de API gedefinieerd wordt. De methode vervangt de velden van de database met diegene die in het JSON object aanwezig zijn. next: De callback functie die opgeroepen wordt aan het einde van de methode. Hij neemt geen parameters. deleteclassname(jsonobj, next): Deze methode verwijdert bestaande elementen. jsonobj: Een JSON object dat volgens de API gedefinieerd wordt. De methode verwijdert het object uit de database dat voldoet aan de parameters beschreven in dit JSON object. next: De callback functie die opgeroepen wordt aan het einde van de methode. Hij neemt geen parameters. 9

Figure 4: Het Database Klasse diagram 10

4.1.3 Communicatie Module De communicatie module handelt requests af van de buitenwereld. De requests zijn gedefineerd door de API[2]. De JSON expressies die binnenkomen kunnen geparsed worden naar objecten en behandeld worden door de database module. Core-objecten kunnen via de JSONManager klasse omgezet worden naar een JSON object dat overeenkomt met de API. Figure 5: Het Communicatie Klasse diagram 11

4.2 Frontend De interactie met de gebruiker gebeurt via de presentatie laag. De verbinding tussen de server en de presentatie laag wordt verzorgd door de controllers. Deze geven mee aan de presentatielaag welke data er moet weergegeven worden en halen die data zo nodig van de server. Als de gebruiker een actie uitvoert op de presentatielaag, wordt dit doorgegeven aan de juiste controller en gaat deze indien nodig met de server communiceren en de weer te geven data veranderen. De data die meegegeven wordt aan de presentatielaag en ontvangen wordt van de server is telkens in JSON formaat. De controller verwerkt dit dan en zet het om naar tekst om weergegeven te kunnen worden op de presentatielaag. De eerste controller die uitgevoerd wordt als de gebruiker de applicatie bezoekt is de routeprovider. Deze gaat de juiste view (html-pagina) voor de presentatielaag laden, samen met de bijpassende controller. Figure 6: Het Interactie Schema 12

5 Referenties References [1] RESTful http://en.wikipedia.org/wiki/representational_state_ transfer [2] Wiselib API http://wilma.vub.ac.be/~se2_1415/api.html 13