Requirements Engineering/het werk/werkstuk/2008-9/Groep 04 NMR spectroscopie
Proton NMR spectroscopie
Werkstuk Requirements Engineering
Eamonn Cassidy, Rob Thijssen, Niek Wolfkamp, Iris Trepels
Onderwijsinstituut voor Informatica en Informatiekunde
Radboud Universiteit Nijmegen
version 18 februari 2022
Inhoud
Introduction
Op de universiteit dient er voor onderzoeks- en onderwijsdoeleinden gebruik gemaakt te worden van een spectroscoop. Dit is een apparaat dat vrij duur is om aan te schaffen en het gebruik hiervan kan aanzienlijk veel tijd in beslag nemen. Hier komt nog bij dat studenten vanalles kapot kunnen maken, omdat zij onbekend zijn met de daadwerkelijke spectroscoop. Nu is het geval dat er steeds meer studenten zijn die moeten leren werken met een spectrometer. Vanwege bovengenoemde factoren bij het gebruik van een spectroscoop zou het niet efficiënt en tevens niet haalbaar zijn om elke student hiermee te laten werken. Daarom is er een simulator van een spectroscoop gemaakt. Dit prototype van de simulator heeft als doel om de werking van de echte spectroscoop zo goed mogelijk na te bootsen.
Behalve studenten zullen ook docenten, wetenschappers en beheerders gebruik maken van deze simulator, welke overigens web-based zal zijn. Het prototype is echter nog niet toereikend en daarom is het doel om een nieuwe simulator te ontwerpen. Deze moet naast het voldoen aan de eisen van alle belanghebbenden ook realistisch werken. Een experiment zal dus de tijd in beslag nemen zoals dat ook bij de echte spectrometer gaat, ditzelfde geldt op het gebied van kosten. De uiteindelijke simulator zal qua werking en gebruik identiek moeten zijn aan een echte spectrometer.
Hier zullen wij allereerst het probleem uitvoerig analyseren en definiëren via problem statement, mission, vision, value. Vervolgens gaan wij in op het verloop van het project, statement of work, risk analysis. Hierna volgen de requirements, o.a. in beschrijvingen maar ook in een model.
Problem statement
Het probleem is dat er veel studenten zijn, die allemaal op een kostbare machine moeten werken om overweg te kunnen met een spectroscoop. Behalve het kostenaspect, speelt ook het tijdsaspect mee: studenten gebruiken tijd om te oefenen, die gebruikt kan worden voor echt onderzoek. Om dat de studenten direct uit een theorievak worden geconfronteerd met een echte situatie doen zij soms "domme" dingen, en de docent heeft daar geen zicht op.
Omdat er geen groot budget is, en omdat de stakeholders op zoek zijn naar een "open" software project, moet er een geheel nieuw computerprogramma komen om de deze studenten te laten oefenen met een gesimuleerde spectroscoop.
Case analysis
Gebruikers
- Studenten:
De groep studenten is de grootste groep gebruikers. Deze groep heeft echter ook de minste rechten. De studenten kunnen monsters aanmaken, experimenten uitvoeren, tests analyseren en hun resultaten opslaan. Dit alles is echter in een realistische tijdssetting, en afhankelijk van een vooraf ingesteld budget. Verder kunnen ze hun eigen resultaten en monsters verwijderen.
- Docenten:
De groep docenten heeft een aantal meer rechten dan de groep studenten, en is ook kleiner. De docenten kunnen moleculen aanmaken, monsters aanmaken, monsters toewijzen aan studenten, budget instellen en wijzigen, studenten en groepen aanmaken en aanpassen en de resultaten van studenten bijhouden.
- Wetenschappers:
De wetenschappers kunnen het systeem gebruiken voor een snelle analyse, in plaats van een daadwerkelijk (duur) experiment uit te voeren. De wetenschappers kunnen moleculen en monsters aanmaken, experimenten uitvoeren, tests analyseren en resultaten opslaan. Dit is echter zonder budgettaire en tijdsgerelateerde beperkingen.
- Beheerders:
De beheerders zijn de mensen die alle gegevens van gebruikers en groepen kunnen aanpassen. Zij kunnen gebruikers aanmaken en/of verwijderen, groepen aanmaken, aanpassen en verwijderen, en de database wijzigen.
Stakeholder analysis
Stakeholderlist:
- Executive sponsor:
- Dirk van der Linden: Projectleider, sponsor
- LCJM Peters: Collega van Dirk op scheikundig gebied
- Dr. Marco Tessari: Docent
- Erik Arends: Collega van Dirk op natuurkundig gebied
Mission and vision statement
Mission: De voornaamste missie van het project is om de requirements van een Proton NMR spectroscoop - simulator op te stellen. Deze simulator heeft als doel om ervoor te zorgen dat studenten ervaring op kunnen doen en kunnen leren over hoe ze met een spectrometer moeten werken. Hiervoor is een simulator nodig omdat een daadwerkelijke spectrometer erg duur is, en de universiteit er maar een beperkt aantal in haar bezit heeft. Het programma moet ook te gebruiken zijn voor onderzoekers, zonder de tijds- en budget beperkingen die voor studenten wel gelden.
Vision: Het eindproduct zal bestaan uit requirements die een complete beschrijving geven voor het uitprogrammeren van een simulator. De visie van wat deze simulator zal worden is dat het een computerprogramma dat de interactie tussen de gebruiker en de spectrometer simuleert. Er moet een monster geprepareerd kunnen worden door de docent die de studenten dan moeten kunnen analyseren. Zij moeten de instellingen voor de spectrometer kunnen instellen en aanpassen. Vervolgens moet er uit de database voor het monster in kwestie, en de gekozen instellingen, een spectrum berekend worden. De docent moet stap voor stap kunnen zien wat de student allemaal gedaan heeft en wat de resultaten van deze student waren. Er moet ook een bericht naar de docent gestuurd worden als de student “domme” dingen doet met het programma. Onderzoekers moeten ook met deze simulator kunnen werken, zonder dat ze beperkt worden door de “realistische” beperkingen die voor de studenten gelden.
Values: De leden zullen proberen met een oog voor aandacht deze requirements op te stellen. Echter, er is een grote beperking in de hoeveelheid tijd die beschikbaar is voor het project. Daarom zullen er regelmatig keuzes genomen moeten worden mbt wel of niet uitmodelleren van bepaalde functionaliteit. De leden hanteren dus ook een prioriteitsprincipe, de basisfunctionaliteit wordt verkozen boven mooie franjes van minder nut.
Statement of work
- Facade iteratie: 27 oktober 9:00 uur
- Filled iteratie: 3 december 9:00 uur
- Focused iteratie: 5 januari 9:00 uur
Deliverable | facade iteratie | Status | filled iteratie | Status | focused iteratie | Status |
---|---|---|---|---|---|---|
Introduction | Preliminary version | V | Preliminary version | V | Complete | V |
Problem statement | As good as possible | V | As good as possible | V | Complete | V |
Stakeholder analysis | As good as possible | V | As good as possible | V | Complete | X |
Mission-vision-values | Complete | V | Complete | V | Complete | V |
Statement of work | Complete, and up-to-date | V | Complete, and up-to-date | V | Complete, and up-to-date | V |
Risk analysis | Complete, and up-to-date | V | Complete, and up-to-date | V | Complete, and up-to-date | V |
Use case survery | As good as possible | V | Nearly complete | V | Complete | V |
Use case diagram(s) | As good as possible | V | Nearly complete | V | Complete | V |
Integrated UC diagram | Complete (though preliminary) | V | Complete | V | Complete | V |
Use cases | Not yet! | - | "Filled" level | V | Complete | ~ |
Scenarios | Not yet! | - | Several for each UC | V | Complete ("focused" level) | V |
Domain models | Not yet! | - | Partially complete | V | Complete | V |
Integrated domain model | Not yet! | - | Partially complete | V | Complete | V |
Business rules catalogue | Not yet! | - | Partially complete | V | Complete | V |
Non-functional requirements | Notes | V | Partially complete | V | Complete | V |
Terminological definitions | Notes | V | Partially complete | V | Complete | V |
Executive sponsor viewpoint | Complete (integrated in M-V-V!) | V | Complete (integrated in M-V-V!) | V | Complete (integrated in M-V-V!) | V |
Use case tests | Notes | V | As good as possible | V | Complete | V |
Business process definitions | If available / relevant | - | If relevant | X | If relevant | X |
GUI metaphors / storyboards | If relevant | - | If relevant | X | If relevant | X |
- V = afgerond
- X = nog niet aan begonnen
- ~ = mee bezig
- - = nog niet nodig
Risk analysis
# | Category | Risk | Solution needed by | Status | Days lost | Expectancy factor | Risk factor |
---|---|---|---|---|---|---|---|
01 | Teamprobleem | Ziek teamlid | meteen | 1~5 | 75% | 3.5 | |
02 | Teamprobleem | Teamlid mist vergadering | meteen | 1 dag | 100% | 1 | |
03 | Teamprobleem | Teamlid stopt met het vak | meteen | ~10 dagen | 10% | 1 | |
04 | Opdrachtgeverprobleem | Executive sponsor verandert van gedachten | meteen | 5~10 | 10% | 1 | |
05 | Opdrachtgeverprobleem | (Gedeelte van) usecases worden afgekeurd | 2 dagen | Twee maal | 2~5 dagen | 20% | 1 |
06 | Materiaalprobleem | PC loopt vast | meteen | 0.5 | 50% | 0.5 | |
07 | Materiaalprobleem | Wiki onbereikbaar | 1 dag | meerdere malen gebeurd | 1 | 5% | 0.05 |
Requirements
Use cases
Use case survey
# | Name | Description | Initiating actor |
---|---|---|---|
01 | Beheren gebruikers | In deze Use Case worden alle mogelijkheden beschreven voor het beheer van de gebruikers, dus het aanmaken/verwijderen van gebruikers, het indelen in groepen en het toekennen van rechten. | Beheerder, Docent |
02 | Creëren monster | In deze Use Case worden alle mogelijkheden beschreven voor het aanmaken en/of verwijderen van de monsters. | Wetenschapper, Docent, Student |
03 | FID signaal genereren | In deze use-case laat de gebruiker aan de hand van instellingen een FID signaal genereren. | Student, Docent, Beheerder, Beheerder |
04 | Fourier Transformatie | In deze use-case laat de gebruiker aan de hand van een eerder opgeslagen FID signaal een Fourier transformatie uitvoeren. | Student, Docent, Beheerder, Beheerder |
05 | Opgave opstellen | Hier wordt beschreven hoe (de docent) een opgave maakt in het systeem en kan uittesten met het systeem. | Docent |
06 | Molecuul beheer | Hier wordt beschreven hoe moleculen kunnen worden toegevoegd, gewijzigd en verwijderd. | Wetenschapper, Docent, Beheerder |
07 | Monster beheer | Hier wordt beschreven hoe monsters kunnen worden gewijzigd en verwijderd. | Wetenschapper, Student, Docent, Beheerder |
Integrated use case diagram
Individual use cases
01 Beheren gebruikers
Use Case: | Beheren gebruikers |
---|---|
Iteration: | Focused 0.1 |
Summary: | In deze Use Case worden alle mogelijkheden beschreven voor het beheer van de gebruikers,
dus het aanmaken/verwijderen van gebruikers, het indelen in groepen en het toekennen van rechten. |
Basic Course of Events: |
Gebruiker wijzigt eigenschappen van een gebruiker:
|
Alternative Paths: |
Gebruiker voegt een gebruiker toe:
Gebruiker verwijdert een gebruiker:
Gebruiker voert onjuiste eigenschappen in voor een gebruiker:
|
Exception Paths: | |
Extension Points: | |
Triggers: |
De gebruiker triggert door middel van het gaan beheren (wijzigen/verwijderen/toevoegen) van een gebruiker |
Assumptions: |
|
Preconditions: |
|
Postconditions: |
|
Related Business Rules: |
Gebruikers mogen geen onjuiste eigenschappen invoeren. |
Author: |
Niek Wolfkamp |
Date: |
27-12-2008 |
ORM: | |
UC Diagram: |
02 Creëren monster
Use Case: | Creëren monster |
---|---|
Iteration: | Focused 0.1 |
Summary: | In deze use-case maakt een gebruiker een monster aan. |
Basic Course of Events: |
|
Alternative Paths: |
|
Exception Paths: |
|
Extension Points: |
De usecase is uit te breiden door het te koppelen aan een "toevoegen aan database" functie. |
Triggers: |
De gebruiker triggert door te klikken op "monster aanmaken". |
Assumptions: |
De gebruiker is geauthorizeerd om monsters aan te maken. In het geval van studenten, moeten zij voldoende balans hebben om het monster te kunnen betalen. |
Preconditions: |
Er staan oplosmiddelen en scheikundige stoffen in de database. |
Postconditions: |
Een geldig monster staat opgeslagen, bestaande uit samenstelling van het monster(oplosmiddel, scheikundige stoffen, naam) en kosten. |
Related Business Rules: |
|
Author: |
Rob Thijssen |
Date: |
3-1-2009 |
ORM: | |
UC Diagram: |
03 FID signaal genereren
04 Fourier Transformatie
05 Opgave opstellen
06 Molecuul beheer
Use Case: | Molecuul beheer |
---|---|
Iteration: | Focused 0.1 |
Summary: | In deze use case wordt beschreven hoe moleculen aangemaakt, bewerkt en verwijderd kunnen worden. |
Basic Course of Events: |
Gebruiker maakt molecuul aan:
|
Alternative Paths: |
Gebruiker bewerkt molecuul:
|
Exception Paths: | |
Extension Points: | |
Triggers: |
De gebruiker triggert door aan te geven dat hij/zij een moleculen wil beheren. |
Assumptions: | |
Preconditions: |
De gebruiker heeft zichzelf geauthenticeerd als beheerder, docent, of wetenschapper. |
Postconditions: |
|
Related Business Rules: | |
Author: |
Iris Trepels |
Date: |
27-12-2008 |
ORM: | |
UC Diagram: |
07 Monster beheer
Use Case: | Monster beheer |
---|---|
Iteration: | Focused 0.1 |
Summary: | In deze use case wordt beschreven hoe monsters bewerkt en verwijderd kunnen worden. |
Basic Course of Events: |
Gebruiker wijzigt monster:
|
Alternative Paths: |
Gebruiker verwijdert monster:
|
Exception Paths: |
Gebruiker voert "domme" instellingen in:
|
Extension Points: | |
Triggers: |
De gebruiker triggert door aan te geven dat hij/zij een monster wil bewerken. |
Assumptions: |
Het systeem weet wat "domme" instellingen zijn. |
Preconditions: |
|
Postconditions: |
|
Related Business Rules: |
Gebruikers mogen geen domme monsters maken. |
Author: |
Iris Trepels |
Date: |
27-12-2008 |
ORM: | |
UC Diagram: |
Integrated domain model
Scenarios
Individual scenarios
01 Beheren gebruikers
- Basic Course of Events:
Piet wil als docent de gegevens van een student op het systeem wijzigen. Hij krijgt van het systeem de vraag of hij eigenschappen van een gebruiker wil bewerken, of dat hij een nieuwe gebruiker wil toevoegen. Piet selecteert de gebruiker 'Jan'. Het systeem vraagt dan aan Piet of hij deze gebruiker wil wijzigen of verwijderen. Piet kiest voor wijzigen. Het systeem geeft dan de eigenschappen van gebruiker 'Jan 'weer. Piet wijzigt de gegevens van de geselecteerde gebruiker 'Jan'. Piet kiest dan voor het opslaan van de eigenschappen. Het systeem controleert deze nieuwe eigenschappen. Het syteem vraagt daarna om een bevestiging. Piet weet het zeker, en bevestigd. Systeem slaat alle eigenschappen op.
- Alternative path 1:
Piet wil als docent een student toevoegen op het systeem. Hij krijgt van het systeem de vraag of hij eigenschappen van een gebruiker wil bewerken, of dat hij een nieuwe gebruiker wil toevoegen. Piet selecteert dat hij een gebruiker wil toevoegen. Het systeem vraagt of hij de juiste eigenschappen van de toe te voegen gebruiker in wil voeren. Piet voert deze in. Piet geeft dan aan dat hij deze eigenschappen op wil slaan. Het systeem vraagt om een bevestiging. Piet weet het zeker en dit geeft hij dus ook aan. Het systeem slaat de eigenschappen op. Systeem gaat weer naar het de vraag of Piet de eigenschappen van een gebruiker wil bewerken, of dat hij een nieuwe gebruiker wil toevoegen.
- Alternative path 2:
Piet wil als docent een student op het systeem verwijderen. Hij krijgt van het systeem de vraag of hij eigenschappen van een gebruiker wil bewerken, of dat hij een nieuwe gebruiker wil toevoegen. Piet selecteert de gebruiker 'Jan'. Het systeem vraagt dan aan Piet of hij deze gebruiker 'Jan' wil wijzigen of verwijderen. Piet kiest voor verwijderen. Het systeem vraagt om een bevestiging. Piet weet het zeker, en bevestigd. Systeem verwijderd de gebruiker 'Jan'.
- Alternative path 3:
Piet wil als docent de gegevens van een student op het systeem wijzigen. Hij krijgt van het systeem de vraag of hij eigenschappen van een gebruiker wil bewerken, of dat hij een nieuwe gebruiker wil toevoegen. Piet selecteert de gebruiker 'Jan'. Het systeem vraagt dan aan Piet of hij deze gebruiker wil wijzigen of verwijderen. Piet kiest voor wijzigen. Het systeem geeft dan de eigenschappen van gebruiker 'Jan 'weer. Piet wijzigt de gegevens van de geselecteerde gebruiker 'Jan'. Piet kiest dan voor het opslaan van de eigenschappen. Het systeem controleert deze nieuwe eigenschappen en constateert dat Piet onjuiste gegevens heeft ingevuld bij de eigenschappen.
- Use case test
Het systeem begeleidt de gebruiker zodanig, dat afwijken van het standaard/alternatieve pad niet mogelijk is in mijn ogen. De use case zou dus moeten voldoen.
02 Creëren Monster
- Basic course of events:
Piet gaat naar het gedeelte voor het aanmaken van een monster, en noemt het monster "Frankenstein". Het systeem vraagt Piet welke oplossing (uit de database) hij wil gebruiken. Piet kiest HCl. Vervolgens vraagt het systeem aan Piet een of meerdere scheikundige stoffen te kiezen uit de database. Piet kiest FeO2 en C2H6. Het systeem controleert of Piet geen 'domme' keuzes heeft gemaakt. Piet bevestigd zijn keuze. Hierna berekent het systeem de kosten van zijn keuzes, dit komt uit op 35euro. Het gemaakte monster wordt samen met de kosten door het systeem opgeslagen.
- Alternative Paths
Piet gaat naar het gedeelte voor het aanmaken van een monster. Het systeem vraagt Piet welke oplossing (uit de database) hij wil gebruiken. Piet kiest alcohol. Piet slaat daarna het kiezen van scheikundige stoffen over. Piet bevestigd dat hij het monster wil bewaren. Het systeem slaat het monster op.
- Use case test
De Use Case zit goed in elkaar, alleen het laatste punt waarbij het alternatief 'in de database zetten' is zal nog verder uitgewerkt moeten worden en hoe het systeem daar precies interactie over heeft met de gebruiker.
03 FID signaal genereren
- Basic course of events:
De gebruiker Piet wil een FID signaal genereren. Het systeem begint met het loggen van de invoer van Piet. Systeem vraagt Piet om de instellingen voor het te genereren FID signaal. Piet voert de waardes in en geeft aan dat hiermee een FID signaal gegenereert moet worden. SYsteem controleert of de financien van gebruiker Piet voldoende zijn om het FID signaal te kunnen genereren. Vervolgens controleert het systeem of de door Piet ingevoerde waardes correct zijn. Systeem is bezig met het genereren van het FID signaal en toont een voortgangsscherm. Systeem heeft het FID signaal gegenereerd en toont dit aan Piet. Piet slaat het FID signaal op. Systeem slaat log met alle door Piet ingevoerde waardes op.
- Alternative path 1:
De gebruiker Piet wil een FID signaal genereren. Het systeem begint met het loggen van de invoer van Piet. Systeem vraagt Piet om de instellingen voor het te genereren FID signaal. Piet voert de waardes in en geeft aan dat hiermee een FID signaal gegenereert moet worden. SYsteem controleert of de financien van gebruiker Piet toereikend zijn om het FID signaal te kunnen genereren. Systeem constateert dat de financiele middelen van Piet ontoereikend zijn. Systeem slaat log met alle door Piet ingevoerde waardes op.
- Alternative path 2:
De gebruiker Piet wil een FID signaal genereren. Het systeem begint met het loggen van de invoer van Piet. Systeem vraagt Piet om de instellingen voor het te genereren FID signaal. Piet voert de waardes in en geeft aan dat hiermee een FID signaal gegenereert moet worden. SYsteem controleert of de financien van gebruiker Piet voldoende zijn om het FID signaal te kunnen genereren. Vervolgens controleert het systeem of de door Piet ingevoerde waardes correct zijn. Systeem constateert dat de waardes die Piet heeft ingevoerd niet correct zijn, dus het genereren van het FID signaal is niet mogelijk vanwege deze 'domme' waardes.
- Alternative path 3:
De gebruiker Piet wil een FID signaal genereren. Het systeem begint met het loggen van de invoer van Piet. Systeem vraagt Piet om de instellingen voor het te genereren FID signaal. Piet voert de waardes in en geeft aan dat hiermee een FID signaal gegenereert moet worden. SYsteem controleert of de financien van gebruiker Piet voldoende zijn om het FID signaal te kunnen genereren. Vervolgens controleert het systeem of de door Piet ingevoerde waardes correct zijn. Systeem is bezig met het genereren van het FID signaal en toont een voortgangsscherm. Systeem heeft het FID signaal gegenereerd en toont dit aan Piet. Systeem slaat log met alle door Piet ingevoerde waardes op.
- Use case test
Deze use case zit goed in elkaar. Het basic course of events, en de paths zorgen dat de mogelijkheden beschreven zijn en de gebruiker wordt goed begeleid door het systeem .
04 Fourier Transformatie
- Basic course of events:
Henk is ingelogd op het systeem, en heeft een FID signaal beschikbaar. Henk geeft aan dat hij een Fourier transformatie wil uitvoeren. Het systeem begint met het loggen van de invoer van Henk. Het systeem vraagt Henk dan om de waardes voor de instellingen in te voeren. Henk voert voor het Fourier number het getal 3 in, voor de vertical scale 50, voor de exponential multiplication 3, voor de axis=hz 2000, voor de axis=ppm ook 2000, voor de vertical scale FID 30000 en voor de line broadening 3/at. Het systeem controleert of deze waardes correct zijn, en dat zijn ze. Het systeem geeft dan het voortgangsscherm dat hoort bij de transformatie, en geeft daarna aan dat het klaar is met de transformatie, en toont het gegenereerde spectrum. Henk slaat dit spectrum op. Het systeem slaat daarna de log op van alles wat Henk gedaan heeft.
- Alternative path 1:
Henk doorloopt dezelfde stappen als in de BCoE, maar slaat het spectrum aan het eind niet op. Het systeem slaat wel de log op van alles wat Henk gedaan heeft.
- Exception path 1:
Henk is ingelogd op het systeem, en heeft een FID signaal beschikbaar. Henk geeft aan dat hij een Fourier transformatie wil uitvoeren. Het systeem begint met het loggen van de invoer van Henk. Het systeem vraagt Henk dan om de waardes voor de instellingen in te voeren. Henk voert voor het Fourier number het getal 3 in, voor de vertical scale 45, voor de exponential multiplication 3, voor de axis=hz 2000, voor de axis=ppm ook 2000, voor de vertical scale FID 50000 en voor de line broadening 3/at. Het systeem controleert of deze waardes correct zijn, en geeft aan dat de vertical scale niet klopt. Het systeem slaat daarna de log op van alles wat Henk gedaan heeft.
- Use case test
Mijns inziens geen mogelijkheden om af te wijken van de aangegeven paden.
05 Opgave opstellen
- Basic course of events:
Docent Klaassen gaat naar het gedeelte "Opgave maken". Het systeem vraagt hem een moster uit de database te kiezen. Hij kiest het een monster. Het systeem vraagt of er nog meer monsters gebruikt moeten worden. Docent Klaassen geeft aan dat er geen andere mosters gebruikt worden. Het systeem vraagt of hij de monsters willekeurig moet toewijzen, of dat de gebruiker ze zelf wil toewijzen. De docent geeft aan dat het systeem ze moet toewijzen. Het systeem vraagt om de deelnemers aan wie een monster toebedeeld moet worden. De docent voert deze deelnemers in. Het systeem verdeelt de monsters, en slaat ze op.
- Alternative path 1:
Docent Klaassen gaat naar het gedeelte "Opgave maken". Het systeem vraagt hem een moster uit de database te kiezen. Hij kiest het een monster. Het systeem vraagt of er nog meer monsters gebruikt moeten worden. Docent Klaassen geeft aan dat er nog andere monsters gebruikt moeten worden. Het systeem vraagt hem een moster uit de database te kiezen.
- Alternative path 2:
Docent Klaassen gaat naar het gedeelte "Opgave maken". Het systeem vraagt hem een moster uit de database te kiezen. Hij kiest het een monster. Het systeem vraagt of er nog meer monsters gebruikt moeten worden. Docent Klaassen geeft aan dat er geen andere mosters gebruikt worden. Het systeem vraagt of hij de monsters willekeurig moet toewijzen, of dat de gebruiker ze zelf wil toewijzen. De docent geeft aan dat hij ze zelf wil toewijzen. Het systeem vraagt om de deelnemers aan wie een monster toebedeeld moet worden. De docent voert deze deelnemers in. Het systeem vraagt de docent om aan te geven welke deelnemer welk monster krijgt. De docent voert dit in. Het systeem slaat de opdrachten op.
- Use case test
De use case voldoet, er is geen mogelijkheid om van de basic course of events en paths af te wijken daar de gebruiker goed wordt begeleid door het systeem.
06 Molecuul beheer
- Basic course of events:
Jan geeft aan het programma aan dat hij naar de molecuuleditor wil. Het systeem vraagt of hij een molecuul wil aanmaken, wijzigen, of verwijderen. Jan maakt een molecuul aan, met de naam water. Hij voert in dat het bestaat uit 2H+ protonen, en een O2 ion. Hij geeft aan het molecuul op te willen slaat, het systeem vraagt om een bevestiging, Jan bevestigt, het systeem slaat het molecuul op.
- Alternative path 1:
Jan geeft aan het programma aan dat hij naar de molecuuleditor wil. Het systeem vraagt of hij een molecuul wil aanmaken, wijzigen, of verwijderen. Jan geeft aan dat hij een molecuul wil wijzigen. Hij klikt op het molecuul met de naam water. Hij geeft aan dat er 3H+ protonen moeten zijn, ipv 2. Hij geeft aan het molecuul op te willen slaat, het systeem vraagt om een bevestiging, Jan bevestigt, het systeem slaat het molecuul op.
- Alternative path 2:
Jan geeft aan het programma aan dat hij naar de molecuuleditor wil. Jan geeft aan dat hij wil verwijderen. Jan klikt op het molecuul met de naam water. Het systeem vraagt om een bevestiging. Jan bevestigt, en het systeem verwijdert het molecuul.
- Use case test
Er is weinig ruimte om een fout te laten optreden. Het systeem begeleidt de gebruiker zodanig, dat afwijken van het standaard/alternatieve pad bijna niet mogelijk is. Mogelijk is het verstandig nog wel een beperking op de naam te kunnen doorvoeren. Zo zijn dubbele namen/ moleculen te voorkomen.
07 Monster beheer
- Basic course of events:
Jan start het monsterbeheer door op het icoon van monster ontwerper te klikken. Hij geeft aan een monster te willen wijzigen en selecteert het monster met de naam Monster1. Het systeem geeft de eigenschappen van het monster weer, het bestaat uit suikermoleculen in oplosmiddel water. Jan wijzigt het oplosmiddel naar hexaan. Hij geeft aan het monster op te willen slaan en het systeem vraagt om een bevestiging. Jan bevestigt en het systeem slaat het monster op.
- Alternative path:
Jan start het monsterbeheer door op het icoon van monster ontwerper te klikken. Hij geeft aan een monster te willen verwijderen en selecteert het monster met de naam Monster1. Het systeem vraagt om een bevestiging. Jan bevestigt en het systeem verwijdert het monster.
- Exception path:
Jan start het monsterbeheer door naar de monster ontwerper te gaan. Hij geeft aan een monster te willen wijzigen en selecteert het monster met de naam Monster1. Het systeem geeft de eigenschappen van het monster weer, het bestaat uit suiker en water. Jan wijzigt deze met “domme” waarden, hij voert NaOH in het oplosmiddel HCl. Hij geeft aan het monster op te willen slaan en het systeem vraagt om een bevestiging. Het systeem herkent dat Jan “domme” waarden heeft ingevoerd en geeft een foutmelding. Vervolgens geeft het systeem de oorspronkelijke waarden van het monster weer.
- Use case test
De use case laat geen ruimte van afwijken van het pad. Er is nog geen formele definitie wat domme fouten zijn, deze moet nog worden vastgesteld door de stakeholders. Voor het correct functioneren van deze use case is dit echter nog wel nodig.
Non-functional Requirements
- Archiveerbaarheid: gebruikersgegevens moeten in een archief kunnen worden gestopt.
- Authenticatie: de verschillende gebruikers zullen zichzelf moeten identificeren aan het systeem.
- Configureerbaarheid: De moleculendatabase moet worden kunnen gevuld
- Verspreidbaarheid: het systeem moet uiteindelijk zonder kosten op verschillende computers kunnen worden geinstalleerd.
- Onderhoudbaarheid: een administrator moet alle gegevens kunnen wijzigen.
- Authenticiteit: de simulatie moet zo nauw mogelijk overeenkomen met de werkelijkheid.
- Schaalbaarheid: er moeten veel proeven mogelijk zijn met het systeem.
- Gebruikbaarheid: studenten die slechts theorie hebben gevolgd zullen het systeem moeten kunnen gebruiken.
Addendum
Business Rules Catalogue
- Studenten mogen geen domme instellingen gebruiken, zonder dat de docent op de hoogte word gesteld.
- Systeem herkent 'domme'/onjuiste waardes/instellingen.
- Systeem heeft schaal van waardes voor de instellingen (minimum en maximum).
- Student heeft beperkte financiën en mag alleen experimenteren als de financiële middelen toereikend zijn.
- Wetenschapper, docent en beheerder hebben onbeperkte financiën.
- Alleen docent kan een opgave opstellen.
- Docent, beheerder en wetenschapper mogen moleculen beheren.
- Gebruiker mag lid zijn van maximaal 1 groep (dus van docenten, wetenschappers, beheerder of studenten)
- Beheerder kan alle gebruikers verwijderen en wijzigen.
- Docent kan alleen gebruikers uit groep Student verwijderen en wijzigen.
- Een gebruiker heeft slechts een uniek wachtwoord, en precies een unieke gebruikersnaam.
- Een scheikundige stof bestaat uit een of meerdere elementen.
- Een monster bestaat minimaal uit een oplosmiddel
- Een monster heeft maximaal een oplosmiddel
- Elk element (in een molecuul) heeft precies een lading
- Een molecuul bestaat uit een of meer elementen
- Een molecuul heeft precies een naam
- Een element heeft precies een lading
Terminological Definitions
- Monster: Een samenstelling van een oplosmiddel met een of meer scheikundige stoffen.
- Molecuul: Verschillende elementen in een verbinding
- Proton: Positief geladen deeltje
- Ion: Negatief geladen deeltje
- Database: verzamelnaam voor de opslagruimte
- Scheikundige stof: Verzamelnaam voor een element (Cl2) of een molecuul (C2H5OH).
- FID signaal: Het signaal dat gegenereerd wordt bij meting met de NMR-spectrometer.
- Fourier Transformatie: zet een FID signaal om in een aantal frequenties met bijbehorende sterktes.
- Domme instellingen: verzamelnaam voor instellingen die worden gezien als voor de hand liggend fout.
Waardes voor genereren FID signaal:
- pw (pulse width): Duur van RF straling periode (in microseconden). Typische waarde voor een 90 graden puls: 6-10 microseconden bij de hoogste toegestane stralingsintensitieit.
- tpwr (transmitter power): Intensiteit van de RF straling (geen dimensie) Typische waarde is: 60 (de hoogste toegestane intensiteit). Laagste intensiteit komt overeen met tpwr=0.
- d1: Duur van voorbereiding periode (in seconden). Typische waarde 1 – 3 seconden.
- sw (spectral width): Spectrale Breedte (in Hz). Typische waarde voor protonen: 10 ppm. D.w.z. dat bij een proton absorptie frequentie van 100 MHz, is sw ca. 1000 Hz enzovoort.
- at (acquisition time): Duur van acquisitie (in seconden). Typische waarde 0.050 – 0.5. Hoe langer het NMR signaal wordt gemeten (i.e. hoe groter at) hoe hoger de resolutie van het NMR spectrum is.
- np (number of points): Aantal gemeten punten van de FID. De waarde van sw, at en np zijn aan elkaar verbonden: at = 0.5*np/sw
- tof (transmitter offset): Centrum van het spectrum (in Hz). De frequentie van de RF straling kan met een zeer hoge nauwkeurigheid door de parameter tof ingesteld worden. De default waarde van tof is 0.0.
- nt (number of transients): Aantal scans te meten. De signaal-ruis verhouding is recht-evenredig met de vierkantsvoortel van nt. vgain Vergrotingsfactor van het NMR signaal (logaritmisch, geen dimensie). Typisch waarde: 20 – 40. Bij hoge concentraties moet vaak een veel lagere gain (0) gebruikt worden.
Waardes voor maken Fourier Transformatie, en daarmee spectrum:
- em (exponential multiplication): Command voor exponentiele vermenigvuldiging van het NMR signaal zodat de intensiteit van de laatste punten van de FID ongeveer nul is.
- lb (line broadening): Afnameconstante van de exponentiele functie (em)
- fn (fourier number): Aantal punten van FID voor fourier transformatie (geen dimensie) Als fn groter dan np/2 is (e.g. de normale situatie), er worden fn – np/2 puntent met intensiteit gelijk aan nul aan het einde van de FID toegevogd. Het effect van fn is een verbetering van de digitale resolutie van het NMR spectrum.
- vs (vertical scale): De waarde van vs is afhankelijk van de concentratie. Gebuik ds om het spectrum met de nieuwe ingestelde verticale schaal weer te geven.
- vf (vertical scale FID): De waarde van vf is afhankelijk van de concentratie. Limieten: 1 – 32767. Gebuik df om de FID met de nieuwe ingestelde verticale schaal weer te geven.
- axis=hz: Stel de horizontale as in op frequentie-eenheden (hz). Gebruik ds om het spectrum met de nieuwe ingestelde eenheid weer te geven.
- axis=ppm: Stel de horizontale as in op chemical shift-eenheden (ppm) Gebruik ds om het spectrum met de nieuwe ingestelde eenheid weer te geven.