Requirements Engineering/het werk/werkstuk/2008-9/Groep 01 Spectrometer
Groep 01 NMR Spectrometer (Seaford)
Werkstuk Requirements Engineering
Sander Dorigo, Tim Holweg, Arjan van Dalen
Onderwijsinstituut voor Informatica en Informatiekunde
Radboud Universiteit Nijmegen
version 18 februari 2022
Inhoud
- 1 Introduction
- 2 Case analysis
- 3 Requirements
- 3.1 Use cases
- 3.2 Scenarios
- 3.3 Non-functional Requirements
- 4 Addendum
Introduction
Op de Radboud Universiteit in Nijmegen wordt veel gebruik gemaakt van NMR spectrometers. Professoren en onderzoekers gebruiken deze spectrometers om met behulp van magneetvelden en radiosignalen de eigenschappen van moleculen te meten. De gegevens die uit deze metingen voortkomen gebruiken zij in hun onderzoek. Daarnaast maken ook studenten gebruik van een spectrometer om meer ervaring met dit apparaat te krijgen.
Om studenten meer ervaring te laten krijgen in het werken met een spectrometer wil men een simulator van de spectrometer hebben. De reden hierachter is dat er niet altijd voldoende tijd is om studenten met de spectrometer bekend te laten raken. Het apparaat moet van te voren gereserveerd worden, en de tijd is schaars. Studenten kunnen dus niet zomaar een test uitvoeren, maar moeten dit zorgvuldig van te voren plannen en opzetten. Omdat daar veel kennis voor nodig is, gaat de didactische waarde van de spectrometer achteruit. In andere woorden, het is nu zo dat een student, om goed te kunnen meten met de spectrometer, een docent nodig heeft die alles voordoet zodat waardevolle tijd niet verloren gaat. Uiteraard alleen als deze student geen ervaring heeft. Het voordoen kost veel tijd, geld en energie, en bovendien kunnen reguliere gebruikers van de spectrometer daardoor in tijdnood raken. Daarnaast wil men nog niet dat iedereen direct met de spectrometer aan het werk gaat zonder enige ervaring.
Voor het gebruik van een spectrometer is dus veel inhoudelijke kennis nodig. Om eerstejaars studenten van scheikunde (SK) en Moleculaire Levenswetenschappen (MLW) toch de mogelijkheid te geven om te leren werken met een spectrometer is besloten om een virtuele spectrometer te realiseren. Hiervoor is eerder al een prototype simulator ontwikkeld. Deze simulator is realistisch in gebruik, maar is geen goede oplossing voor onderwijsgebruik. Alternatieven zijn onderzocht maar voldoen niet aan de eisen. Bovendien zijn deze oplossingen erg duur. Het is echter wel zo, dat dankzij dit prototype bepaald kon worden dat het maken van een goede simulator mogelijk is.
Het doel is om een nieuwe simulator te ontwerpen. Hierbij is het van belang om te voldoen aan de eisen die gesteld worden door de professoren en onderzoekers, maar ook om zelf enige punten aan te dragen. Uiteindelijk moet de spectrometer een exacte kopie zijn van de layout van een echte spectrometer.
In dit document analyseren we eerst het probleem en de al aangedragen oplossing. Daarna gaan we verder met de requirements, de use cases en de scenario's om op die manier een helder beeld te kunnen geven van ons plan.
Problem statement
In 2007 is een prototype ontwikkeld waarmee studenten vanaf een PC een puls acquisitie onderzoek op een spectrometer kunnen opzetten. Op deze manier wordt ze aangeleerd hoe ze om moeten gaan met een echte spectrometer.
Hiermee worden drie problemen opgelost:
- Studenten kunnen geen onbedoelde schade veroorzaken aan de spectrometer;
- Er zijn geen extra aanschafkosten mee gemoeid;
- Er wordt geen tijd ingenomen van onderzoekers en promovendi.
Het prototype is in 2007 succesvol gebruikt tijdens de colleges. In 2008 is er een verbeterde versie in gebruik genomen.
Dit prototype is nooit goed uitgewerkt. De ontwikkelaars achter het huidige prototype zijn simpelweg begonnen aan de ontwikkeling van een virtuele spectrometer. Hierdoor heeft de applicatie nog de nodige gebreken. Mede door het gebruik van een concreet prototype zijn er veel nieuwe wensen ontstaan. Die hebben geleid tot de beslissing om een nieuwe nieuwe virtuele spectrometer uit te gaan werken.
Case analysis
Stakeholder analysis
Naam | Functie | Kamer | |
---|---|---|---|
Dirk van der Linden | Projectleider en primair aanspreekpunt | Dirk.vanderLinden@cs.ru.nl | HG00.112 |
Stijn Hoppenbrouwers | Docent Requirements Engineering | stijnh@cs.kun.nl | |
Laurens Peters | Collega van Dirk van der Linden | Lcjm.Peters@gmail.com | |
Erik Arends | Collega van Dirk van der Linden | ||
Marco Tessari | Docent | tessari@nmr.ru.nl | HG03.334 |
Marinus van Herpen | Docent | Marinus.vanHerpen@science.ru.nl | HG00.112 |
Actors
- Student
- Onderzoeker
- Instructeur
- Beheerder
Mission and vision statement
Mission
Door middel van interviews en onderzoek zal een duidelijk beeld ontstaan van de eisen die gesteld worden aan de NMR spectrometer simulator om zo kwalitatief goede requirements af te kunnen leveren voor een zo realistisch mogelijke simulator.
Vision
Het eindproduct van dit project zijn duidelijke requirements waarmee een spectrometer simulator gebouwd kan worden die voldoet aan de eisen van de gebruikers en de stakeholders en waarmee een realistische spectrometer gesimuleerd kan worden.
Statement of work
Risk analysis
# | Category | Risk | Solution needed by | Status | Days lost | Expectancy factor | Risk factor |
---|---|---|---|---|---|---|---|
1 | Tijd | Uitval projectmedewerkers | Scope aanpassen | - | Meer dan 12 projecturen | Laag | Gemiddeld |
2 | Informatie | Een stakeholder wordt ziek / is onbereikbaar voor lange tijd | Scope aanpassen | - | Meer dan 10 projecturen | Gemiddeld | Hoog |
3 | Gegevens | Verlies gegevens | Regelmatig een backup maken van de projectdata | - | Ongeveer 80 projecturen | Laag | Hoog |
4 | Informatie | Onvoldoende kennis over Requirements Engineering | Tijdig aangeven bij RE docent | - | Meer dan 10 projecturen | Laag | Laag |
5 | Tijd | Het project kost meer tijd dan verwacht | Scope aanpassen | - | Meer dan 10 projecturen | Gemiddeld | Laag |
Requirements
Use cases
Use case survey
# | Naam | Initiator | Beschrijving | Compleetheid | Maturity | Afhankelijkheden | Bronnen | Commentaar |
---|---|---|---|---|---|---|---|---|
01 | Creëer meting | Gebruiker, Instructeur | Het creëren van een meeting (instellen/opslaan van operationele instellingen) | Compleet | Zeer volwassen | - | - | - |
02 | Monster beheren | Gebruiker, Instructeur | Het maken en beheren van een monsters doormiddel van moleculen en oplosmiddel. | Compleet | Zeer volwassen | - | - | - |
03 | Moleculen beheren | Gebruiker, Instructeur | Het creëren en wijzigen van moleculen. | Compleet | Zeer volwassen | - | - | - |
04 | Start meting | Gebruiker, Instructeur | Het starten van een meting. | Compleet | Zeer volwassen | - | - | - |
05 | Analyseer meting | Gebruiker, Instructeur | Het analyseren van een meting. | Compleet | Zeer volwassen | - | - | - |
06 | Inloggen gebruiker | Gebruiker, Instructeur, Administrator | Het inloggen in het systeem. | Compleet | Zeer volwassen | - | - | - |
07 | Selecteer monster | Gebruiker, Instructeur | Het selecteren van een monster. | Compleet | Zeer volwassen | - | - | - |
08 | Beheer gebruiker | Administrator | Het aanmaken / verwijderen / wijzigen van een nieuwe gebruiker / rol in het systeem. | Compleet | Zeer volwassen | - | - | - |
09 | Monster toekennen | Instructeur | Het toekennen van een monster aan een onderzoek. | Compleet | Zeer volwassen | - | - | - |
Voor 'Compleetheid' en 'Maturity' gelden de volgende terminologie, van sterk naar zwak:
- Zeer volwassen
- Volwassen
- Bijna volwassen
- Niet volwassen
- Compleet
- Praktisch compleet
- Bijna compleet
- Niet compleet
Integrated use case diagram
Individual use cases
Creëer meting
Monster beheren
Moleculen beheren
Start meting
Analyseer meting
Inloggen gebruiker
Selecteer monster
Beheer gebruiker
Monster toekennen
Scenarios
Individual scenarios
Creëer meting
Basic course of events
1. Sander selecteert monster 35A.
2. Sander stelt de NMR-Spectrometer in met de volgende instellingen in.
- Pulse width: 7 pw
- Transmitter power: 10
- Duration: 5
- Spectral width: 17
- Number of points: 3
- Transmitter offset: 2
- Number of transients: 12
- Gain: 23
3. Het systeem berekent de kosten om die meting met de gekozen instellingen uit te voeren.
Alternative paths
3 / A5. Het budget is niet toereikend voor de meting.
A1. Het systeem geeft aan dat Sander's budget niet toereikend is voor de meting.
A2. Het systeem toont de instellingen en de parameters.
A3. Sander wijzigt geselecteerde parameter(s).
- Pulse width: 5 pw
- Transmitter power: 7
- Duration: 9
A4. Het systeem slaat de wijzigingen op.
A5. Het systeem berekent de kosten van gemaakte instellingen en verrekent dit met het budget.
Monster beheren
Basic course of events
1. Tim maakt een nieuw monster aan.
2. Het systeem vraagt om een naam voor het nieuwe monster.
3. Tim geeft het monster de naam 'Monster 1'.
4. Het systeem vraagt om de moleculen uit het moleculenmodel te selecteren.
5. Tim selecteert het molecuul H2O.
6. Het systeem vraagt om de concentraties van de gekozen moleculen in te stellen.
7. Tim geeft aan 12 mol H2O moleculen te willen hebben.
8. Het systeem vraagt om een oplosmiddel toe te voegen aan het monster.
9. Tim selecteert het oplosmiddel 'Azijn'.
10. Het systeem slaat het monster op.
Alternative paths
1. Monster wijzigen.
A1. Tim wijzigt het monster.
A2. Het systeem geeft overzicht van al bestaande monsters.
A3. Tim selecteert 'Monster 1'.
A4. Het systeem toont de instellingen van het geselecteerde monster.
A5. Tim wijzigt de instellingen van het monster.
- Moleculen in het monster
- Concentraties van die moleculen
- Oplosmiddel
A6. Het systeem slaat de wijzigingen op.
1. Monster verwijderen.
B1. Tim verwijdert een monster
B2. Het systeem geeft overzicht van monsters.
B3. Tim selecteert 'Monster 2'.
B4. Het systeem verwijdert het monster.
B3 Tim selecteert 'Monster 2'.
C1. Als het monster op dit moment in een meting wordt gebruikt, kan het monster niet verwijderd worden. Het systeem geeft een foutmelding en geeft de gebruiker de mogelijkheid om een ander monster te kiezen
Moleculen beheren
Basic course of events
1. Tim creëert een nieuw molecuul.
3. Tim vult de gegevens van/over het molecuul in.
4. Het systeem slaat het nieuwe molecuul op.
Alternative paths
1. Tim wijzigt het molecuul H2O.
A1. Het systeem opent het gekozen molecuul.
A2. Tim voert zijn wijzigingen door.
A3. Het systeem slaat de wijzigingen op
1. Tim kiest molecuul H2O om te verwijderen.
B1. Het systeem verwijdert het gekozen molecuul.
Start meting
Basic course of events
1. Sander kiest de meting die hij wil starten.
2. Het systeem berekent het FID signaal.
3. Het systeem geeft aan dat meting voltooid is.
Analyseer meting
Basic course of events
1. Arjan selecteert meting 1 om te analyseren.
2. Het systeem toont de standaardweergave van meting.
3. Arjan wijzigt de volgende analyseparameters:
- Verticale schaal
- Horizontale as
- vs
- vf
- axis (axis=hz en axis=ppm)
Arjan wijzigt de volgende weergavemogelijkheden
- verticale as = 3
- vs = 1
- vf = 1
5. Het systeem geeft de meting weer met de gekozen parameters en weergave opties.
Inloggen gebruiker
Basic course of events
- Mark start de applicatie.
- Het systeem (Applicatie) vraagt om een username en het bijbehorende password.
- Mark voert zijn username 'Mark' en password 'Mark01' in.
- Het systeem controleert de username en het password van de gebruiker.
- Het systeem kent de rechten van de groep 'Student' toe aan 'Mark'
Exception paths
4. Mark voert verkeerde inloggegevens in
- Het systeem geeft melding dat username en wachtwoord niet geldig zijn.
- Het systeem vraagt om de juiste inloggegevens.
Selecteer monster
Basic course of events
1. Arjan selecteert monster 15.
2. Het systeem geeft aan dat monster 15 klaar staat voor de meting.
Beheer gebruiker
Basic course of events
1. Tim maakt een nieuwe gebruiker aan.
2. Het systeem geeft de gelegenheid voor het aanmaken van een gebruiker.
3. Tim vult alle gevraagde gegevens in en voert de nieuwe gebruiker in.
- Gebruikersnaam: pieter1
- E-Mail adres: pieter1@student.ru.nl
- Voornaam: Pieter
- Achternaam: Petersen
- Klas: IC-1A
- Rol: Student
4. Het systeem controleert de ingevoerde gegevens.
5. Het systeem slaat de nieuwe gebruiker op.
Alternative paths
1. Tim wijzigt een bestaande gebruiker.
A1. Het systeem toont een lijst van bestaande gebruikers.
A2. Tim kiest het account van Jaap.
A3. Het systeem opent de gegevens van Jaap.
A4. Tim wijzigt de gegevens van Jaap.
A5. Het systeem controleert de ingevoerde gegevens.
- Achternaam: Jansen > Janssen
A6. Het systeem slaat de gegevens op
1. Tim verwijdert een gebruiker uit het systeem.
B1. Het systeem toont een lijst met bestaande gebruikers.
B2. Tim kiest de account van Frans.
B3. Het systeem vraagt Tim om verplaatsing naar archief of verwijdering.
B4. Tim kiest voor verwijdering van de gebruiker.
B5. Het systeem verwijdert de account.
3. Tim kiest voor annuleren.
C1. Het systeem annuleert de wijziging(en) en gaat terug naar het menu.
4. Het systeem controleert ingevoerde gegevens.
D1. Het systeem geeft melding aan de gebruiker welke gegevens incorrect zijn met daarbij de reden.
D2. Tim krijgt mogelijkheid om de gegevens aan te passen.
6. Tim annuleert bevestiging.
E1. Het systeem annuleert de wijziging en gaat terug naar het invoerscherm.
B3. Het systeem vraagt Tim om verplaatsing naar archief of verwijdering.
F1. Tim kiest ervoor om het account van Frans naar het archief te verplaatsen.
F2. Het systeem plaatst het account van Frans in het archief.
Monster toekennen
Basic course of events
1. Het systeem toont een overzicht van de door Dirk aangemaakte monsters.
2. Dirk selecteert monster 31.
3. Dirk selecteert Frans en Pieter.
4. Dirk bepaalt het budget voor Frans en Pieter.
5. Het systeem kent het monster aan Frans en Pieter toe.
Integrated Domainmodel
Non-functional Requirements
- De interface van de simulator moet zo realistisch mogelijk overkomen ten op zichte van het echte systeem.
- De performance van de applicatie moet realistisch overkomen ten op zichte van het echte systeem.
- Gegevens van studenten moeten minimaal twee jaar bewaard worden in het systeem voordat het gearchiveerd moet worden.
- De simulator moet platform onafhankelijk zijn.
- De simulator moet ten alle tijde beschikbaar zijn.
- De gebruiker moet geauthenticeerd zijn.
- De simulator moet eenvoudig zijn in gebruik.
- De simulator moet eenvoudig te upgraden zijn naar een nieuwe versie.
- De simulator moet multitasking kunnen ondersteunen.
Addendum
Business Rules Catalogue
- De gebruikers van de applicatie zijn verbonden met de Radboud Universiteit.
- Alleen studenten hebben een bepaald budget om een meting uit te voeren.
- Een gebruiker heeft alleen toegang tot zijn eigen monsters en metingen.
- Alleen een instructeur heeft toegang om monsters en metingen van studenten te bekijken.
- De instellingen die gekozen kunnen worden zijn afhankelijk van het budget.
- Het aantal metingen die een student kan uitvoeren zijn afhankelijk van het budget.
- Alleen administrators hebben de rechten om gebruikers te beheren.
- Alleen instructeurs kunnen monsters toekennen.
Terminological Definitions
- De gebruiker is een persoon die gebruik maakt van de spectrometer
- De instructeur is een persoon die gebruik maakt van de spectrometer en de student begeleidt.
- De administrator is een persoon die de administratie van de spectrometer beheert.
- Een spectrometer is een systeem dat wordt gebruikt om onderzoek mee uit te voeren.
- Een spectrometer is een programma om resultaten van een spectrometer te analyseren.
- Het FID is het signaal dat de spectrometer terug geeft na een meting.
- Het spectrum is het signaal dat wordt weergegeven in de spectrometer.
- Het aantal MHz staat voor de sterkte van het magneetveld.
- De waarde van vs (vertical scale) is afhankelijk van de concentratie van het oplosmiddel.
- De waarde van vf (vertical scale FID) is afhankelijk van de concentratie van het oplosmiddel.
- df (display fid)
- 'ff' is een commando om de horizontale schaal te resetten. Daarna kan het commando 'ds' het hele spectrum weergeven.
- De 'axis' in Hz. Hiermee kan de horizontale as ingesteld worden op Hz. Met het commando 'ds' kan het spectrum met deze nieuwe instelling weergegeven worden.
- De 'axis' in ppm (parts per million). Hiermee kan de horizontale as ingesteld worden op chemical shift-eenheden (ppm). Met het commando 'ds' kan het spectrum met deze nieuwe instelling weergegeven worden.
- 'pw' (pulse width) staat voor de duur van de RF stralingsperiode (in microseconden).
- 'tpwr' (transmitter power) staat voor de intensiteit van de RF-straling (geen dimensie).
- 'd1' (duration) staat voor de duur van de voorbereidingsperiode (in seconden).
- 'sw' (spectral width) staat voor de spectrale Breedte (in Hz).
- 'np' (number of points) staat voor het 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) staat voor het centrum van het spectrum (in Hz). Hiermee kan de frequentie van de RF-straling met een zeer hoge nauwkeurigheid ingesteld worden.
- 'nt' (number of transients) Het aantal te meten scans. De signaal-ruis verhouding is recht-evenredig met de vierkantswortel van 'nt'.
- 'vgain' staat voor de vergrotingsfactor van het NMR signaal (logaritmisch, geen dimensie).