Requirements Engineering/het werk/werkstuk/2008-9/Groep 07 Spectrometer
NMR Simulator
Werkstuk Requirements Engineering
Steven Castelein, Laurens Alers , Ferry de Bruin
Onderwijsinstituut voor Informatica en Informatiekunde
Radboud Universiteit Nijmegen
version 18 februari 2022
De inhoud is opgebouwd als volgt.
Inhoud
- 1 Introduction
- 2 Case analysis
- 3 Requirements
- 3.1 Use cases
- 3.1.1 Rollen
- 3.1.2 Use case survey
- 3.1.3 Integrated use case diagram
- 3.1.4 Individual use cases
- 3.1.4.1 Molecuul beheren
- 3.1.4.2 Monster beheren
- 3.1.4.3 Signaal acquisitie
- 3.1.4.4 Transformatie signaal naar spectrum
- 3.1.4.5 Spectrum analyse
- 3.1.4.6 Domme instellingen beheren
- 3.1.4.7 Gebruikers beheren
- 3.1.4.8 Groepen beheren
- 3.1.4.9 Resultaten analyse beschikbaar stellen
- 3.1.4.10 Statistieken exporteren
- 3.1.4.11 Instellingen op een groep toepassen
- 3.1.4.12 ORM
- 3.2 Scenarios
- 3.2.1 Individual scenarios
- 3.2.1.1 Molecuul beheren
- 3.2.1.2 Monster beheren
- 3.2.1.3 Signaal acquisitie
- 3.2.1.4 Transformatie signaal naar spectrum
- 3.2.1.5 Spectrum Analyse
- 3.2.1.6 Domme instellingen beheren
- 3.2.1.7 Gebruikers beheren
- 3.2.1.8 Groepen beheren
- 3.2.1.9 Resultaten analyse beschikbaar stellen
- 3.2.1.10 Statistieken exporteren
- 3.2.1.11 Instellingen op een groep toepassen
- 3.2.2 Integrated Domainmodel
- 3.2.1 Individual scenarios
- 3.3 Non-functional Requirements
- 3.1 Use cases
- 4 Addendum
Introduction
Een van de vakken die eerstejaars Scheikunde en Molecular Life Sciences (MLW) studenten volgen is Spectroscopische technieken & Analyse. In deze cursus worden de algemene concepten van spectroscopie (i.e. de meting van interactie tussen elektromagnetische straling en materie) geïntroduceerd in het kader van NMR. Belangrijke aspecten van een spectroscopische meting zoals gevoeligheid, specificiteit, resolutie, toepasbaarheid worden vanuit zowel een theoretisch als een praktisch oogpunt behandeld. Het uitvoeren van deze experimenten met een echte spectrometer gaat erg lastig. Dit komt door de grote groep studenten en de beperkte beschikbaarheid van de spectrometer. Ook de oplosmiddelen waarin de te onderzoeken stoffen moeten worden opgelost zijn kostbaar. Om dit probleem op te lossen is er een prototype simulator van de spectrometer ontwikkeld.
De NMR simulator geeft de student de mogelijkheid om direct zijn kennis van de NMR theorie te toetsen door een NMR spectrum te verkrijgen onder omstandigheden die heel dicht bij de reële experimentele condities liggen. Op deze manier wordt de invloed van de instelling van verschillende experimentele parameters op het NMR spectrum zichtbaar. Het effect van de simulator is positief: alle studenten kunnen kennis maken met de techniek NMR door zonder de 'echte' spectrometer te bezetten en/of dure oplosmiddelen te verbruiken.
Het huidige prototype NMR simulator is succesvol gebleken. Omdat de huidige NMR simulator is ontwikkeld als een prototype mist een grondige functionele documentatie. Dit verslag draagt bij aan de ontwikkeling van de nieuwe spectrometer simulator door het vastleggen van de requirements van het nieuwe systeem.
Problem statement
Zoals bij de introductie al vermeld is wordt van de studenten Scheikunde en MLW verwacht dat zij enige kennis hebben van spectroscopie. Aangezien het experimenteren met een echte spectrometer lastig is met een grote groep studenten en de gebruikte oplosmiddelen kostbaar zijn werd een simulator ontwikkeld.
De huidige versie van de NMR simulator is slechts een prototype en had als doel te kijken of een dergelijke simulator zou werken. Aangezien het prototype succesvol is gebleken is het de bedoeling dat het wordt uitgebreid op allerlei fronten. Omdat de huidige NMR simulator als prototype is ontwikkeld is het niet wenselijk om deze in de huidige vorm nog verder te ontwikkelen. Het technisch ontwerp is niet schaalbaar genoeg om alle toekomstige eisen en wensen te implementeren. Op functioneel gebied ontbreekt documentatie over de werking van het systeem.
Case analysis
Stakeholder analysis
Het project dient als ondersteuning van het vak Spectroscopische Technieken en Project welke in de bachelorfase van MLW en Scheikunde gegeven wordt. Directe stakeholders zijn de docenten die het vak Spectroscopische Technieken en Project zullen gaan doceren. Zij zullen de simulator gaan gebruiken in hun colleges. Tezamen met de studenten vormen zij de directe doelgroep die met het systeem gaan werken.
Hier volgt een overzicht van de personen die een rol als stakeholder vervullen:
- Dirk van der Linden - Projectleider, vertegenwoordiger van studenten, wetenschappers & docenten
- Dr. Marco Tessari - Docent Spectroscopische Technieken en Project
- Laurens Peters - Vakinhoudelijke kennis m.b.t NMR en de spectrometer
Zie de #Use case survey voor welke rechten de verschillende groepen gebruikers hebben (studenten, wetenschappers, docenten, beheerders).
Mission and vision statement
Zoals eerder omschreven zal het systeem de spectrometer gaan simuleren. Essentieel bij deze simulatie is dat deze zo realistisch als mogelijk is. In de ideale situatie zou de student geen verschil moeten merken tussen de simulator en de echte spectrometer. Hierbij horen ook eigenschappen zoals duur van het experiment, de interface en ook het gebruik van kostbare stoffen. Omdat het een leeromgeving betreft is het belangrijk dat de docenten de voortgang van de studenten goed kunnen volgen en de opdrachten kunnen voorbereiden.
De docenten zullen de simulator gaan gebruiken als ondersteuning van het educatieve proces maar het is niet totaal uitgesloten dat promovendi en andere onderzoekers er ook mee aan de slag gaan.
Statement of work
- Deadlines en deliverables
- Facade iteration: ma 27/10/2008 9:00
- Filled iteration: wo 03/12/2008 9:00
- Focused iteration: ma 05/01/2008 9:00
# | Deliverable | Facade (F1) | Filled (F2) | Focused (F3) | Status (F1) |
---|---|---|---|---|---|
01 | Introduction | preliminary | preliminary | complete | preliminary |
02 | Problem statement | agap | agap | complete | preliminary |
03 | Stakeholder list/analysis | agap | agap | complete | draft |
04 | Mission-Vision-Values Executive sponsor viewpoint |
complete | up-to-date | up-to-date | started |
05 | Statement of work | complete | up-to-date | up-to-date | in progress |
06 | Risk analysis | complete | up-to-date | up-to-date | todo |
07 | Use case survey | agap | nearly complete | complete | preliminary |
08 | Integrated UC diagram | preliminary | complete | complete | preliminary |
09 | Use cases | x | "filled" level | complete / "focused" level | not yet |
10 | Scenarios Use case tests |
x | several per UC | complete | not yet |
11 | Domain models | x | partially | complete | not yet |
12 | Business rules per UC | x | partially | complete | not yet |
13 | Integrated domain model | x | first draft | complete | not yet |
14 | Business rules catalogue | x | partially | complete | not yet |
15 | Non-functional requirements | notes | partially | complete | todo |
16 | Terminological definitions | notes | partially | complete | todo |
Risk analysis
# | Category | Risk | Solution needed by | Status | Days lost | Expectancy factor | Risk factor |
---|---|---|---|---|---|---|---|
01 | Projectleden | Projectlid afwezig als gevolg van ziekte. | - | - | ~2 | 50% | 2.0 |
02 | Opdrachtgever | Opdracht wordt belemmerd door gebrek aan informatie. | Projectleden | - | 0 | 10% | 3.0 |
Requirements
Use cases
Rollen
Binnen de use cases worden er vier actoren genoemd. Dit zijn:
- Student: dit zijn studenten die het vak Spectroscopische Technieken en Project volgen.
- Wetenschapper: een promovendi of onderzoeker die een meting wilt simuleren.
- Docent: de hoogleraar welke het vak Spectroscopische Technieken en Project doceert.
- Beheerder: Functioneel beheerder van de faculteit Scheikunde en MLW
Use case survey
# | Name | Description | Student | Wetenschapper | Docent | Beheerder |
---|---|---|---|---|---|---|
01 | #Molecuul beheren | Het beheren van de moleculen die geanalyseerd worden in de spectrometer | X | X | X | |
02 | #Monster beheren | Een aantal moleculen in een oplossing | X | X | X | X |
03 | #Signaal acquisitie | Het verkrijgen van een signaal van een monster met behulp van de spectrometer | X | X | X | X |
04 | #Transformatie signaal naar spectrum | Het transformeren van het verkregen signaal naar een spectrum | X | X | X | X |
05 | #Spectrum analyse | Het analyseren van het spectrum | X | X | X | X |
06 | #Domme instellingen beheren | Definiëren wat domme instellingen zijn zodat een docent gewaarschuwd wordt indien er een domme instelling worden opgevoerd door de gebruiker | X | X | ||
07 | #Gebruikers beheren | Het beheren van de gebruikers die in het systeem gedefinieerd zijn | X | X | ||
08 | #Groepen beheren | Het beheren van de groepen waar gebruikers gedefinieerd in het systeem onder kunnen vallen | X | X | ||
09 | #Resultaten analyse beschikbaar stellen | Een wetenschapper kan resultaten toegankelijk maken voor de rest van de gebruikers van het systeem | X | X | ||
10 | #Statistieken exporteren | De mogelijkheid om diverse statistische gegeven te exporteren | X | X | ||
11 | #Instellingen op een groep toepassen | De mogelijkheid om parameters in te stellen bij een bepaalde groep gebruikers | X | X |
Integrated use case diagram
Individual use cases
Create a Use Case for all of the ones identified in the survey, include relevant business rule(s) and a Use case Diagram.
Molecuul beheren
Monster beheren
Signaal acquisitie
Transformatie signaal naar spectrum
TODO Uitzoeken hoe de 'array-functionaliteit (meerdere metingen tegelijk ) werkt
Spectrum analyse
TODO Uitzoeken hoe de 'array-functionaliteit (meerdere metingen tegelijk ) werkt
Domme instellingen beheren
Gebruikers beheren
- code = Personeelsnummer (u123456 en voor UMC z123456), studentnummer (s1234567) of voor externe medewerkers e-nummer (e123456).
Groepen beheren
Resultaten analyse beschikbaar stellen
Statistieken exporteren
Instellingen op een groep toepassen
ORM
Scenarios
Individual scenarios
Molecuul beheren
Basic course of events
- Docent Erik Peters wil een nieuwe molecuul aanmaken in het systeem.
- Erik voert de gegevens voor de nieuwe molecuul in. Erik voert eerst een unieke naam in voor het aan te maken molecuul. een H2 atoom in en een O atoom. Het systeem bevestigd de toevoeging.
- Het systeem geeft aan dat het toevoegen van de nieuwe molecuul gelukt is.
Alternate path 1
- Docent Erik Peters wil de eigenschappen van een molecuul aanpassen.
- Erik selecteert de molecuul via de unieke naam. Erik selecteert het molecuul “water”.
- Het systeem toont de huidige eigenschappen van het geselecteerde molecuul. Het systeem toont de atomen: H2 en O
- Erik brengt een wijzing aan in de atomen van het molecuul water. O wordt veranderd in O2. Het systeem bevestigd de gewijzigde waarde.
- Het systeem geeft aan de het wijzigen van de eigenschappen van de molecuul gelukt is.
Alternate path 2
- Docent Erik Peters wil een molecuul uit het systeem verwijderen.
- Erik selecteert een molecuul via de unieke naam die aan de molecuul gekoppeld is. Erik selecteert het molecuul “water” via zijn unieke naam en verwijderd deze. Het systeem bevestigd het verwijderen van het molecuul.
- Het systeem geeft aan dat het verwijderen van het molecuul gelukt is.
Monster beheren
Basic course of events
- Studente Anne de Wit wil een monster toevoegen aan het systeem.
- Anne vult de eigenschappen van het monster in. Anne selecteert het molecuul “koolstof” met als oplosmiddel “water”. Het systeem bevestigd de toevoeging van het nieuwe monster.
- Het systeem geeft de melding dat het opslaan van het nieuwe monster gelukt is.
Alternative path 1
- Docente Ilse Mattens wil een monster toevoegen aan het systeem.
- Ilse vult de eigenschappen van het monster in. Ilse selecteert het molecuul “koolstof” met als oplosmiddel “water”. Het systeem bevestigd de toevoeging van het nieuwe monster.
- Ilse selecteert de groep “studenten” waarvoor het hiervoor gedefinieerde monster beschikbaar moet worden gesteld. Het systeem bevestigd de toevoeging.
- Het systeem geeft de melding dat het opslaan van het nieuwe monster gelukt is.
Signaal acquisitie
Basic course of events
- Student Piet Paulusma kiest een voorgedefinieerd monster uit zijn persoonlijke lijst.
- Piet stelt de parameters in behoorde tot de acquisitie van het FID signaal ( mogelijke parameters )
- Piet geeft aan de acquisitie van het signaal te willen starten. Het systeem controleert of er voldoende budget beschikbaar is voor deze meting.
- Na verloop van tijd voltooid het systeem de meting & slaat deze op. De kosten van deze meting worden van het beschikbare budget afgehaald.
- Het systeeem toont het verkregen signaal aan Piet
Transformatie signaal naar spectrum
Basic course of events
- Student Rintje Ritsma kiest een FID signaal welke is gemeten in een vorige sessie
- Het verkregen signaal is niet ideaal maar Rintje kan het verbeteren door instellen van de juiste parameters.
- Rintje stelt de parameters in behoorde tot de transformatie van het FID signaal naar een spectrum ( mogelijke parameters )
- Rintje geeft de opdracht om het signaal te transformeren
- Het systeem voert een Fourier Transformatie met de meegegeven parameters uit en slaat dit resultaat op.
- Het systeeem toont het verkregen spectrum aan Rintje
Spectrum Analyse
Basic course of events
- Lara Veldmuis kiest een spectrum uit haar overzicht.
- Het spectrum is nog niet scherp genoeg waardoor Lara niet in staat is een goede conclusie te trekken.
- Lara past een aantal parameters aan die de scherpte van het spectrum moeten verbeteren (mogelijke parameters) en geeft opdracht deze transformatie uit te voeren.
- Het systeem voert de transformatie uit en laat het nieuwe spectrum zien.
Domme instellingen beheren
Basic course of events
- Docent Jaap van der Stam wil een nieuwe ‘domme instelling’ aan het systeem toevoegen.
- Jaap voert alle benodigde gegevens in. Jaap geeft op aan het systeem dat ‘het verwijderen van een eigen monster’ een domme instelling is. Jaap bevestigd de toevoeging.
- Het systeem geeft aan dat het aanmaken gelukt is.
Geen alternatieve paden.
Gebruikers beheren
Basic course of events
- Docent Rob wil een nieuwe gebruiker aanmaken in het systeem voor de student Jan Koning.
- Rob voert alle benodigde gegevens in. De unieke code van Jan (s0617706), de naam (Jan Koning), het wachtwoord (jk_3426), de rol van Jan (Student), de groep (Studenten Scheikunde 2008) en het budget (5000). Rob bevestigd de toevoeging.
- Het systeem geeft aan dat het aanmaken gelukt is.
Alternate path 1
- Docent Rob wil een foutieve code van student Jan Koning wijzigen.
- Rob voert de oude unieke code van Jan (s0617706) in.
- Het systeem presenteert de gegevens van Jan Koning.
- Rob wijzigt de code van Jan naar s0617707. Rob bevestigd de wijziging.
- Het systeem geeft aan dat de wijziging is doorgevoerd.
Alternate path 2
- Docent Rob wil student Jan Koning van het systeem verwijderen.
- Rob voert de oude unieke code van Jan (s0617707) in.
- Het systeem presenteert de gegevens van Jan Koning.
- Rob geeft aan dat hij de gebruiker Jan wil verwijderen.
- Het systeem geeft aan dat het verwijderen gelukt is.
Alternate path 3
- Beheerder Tinus wil student Jan Koning archiveren.
- Tinus voert de oude unieke code van Jan (s0617707) in.
- Het systeem presenteert de gegevens van Jan Koning.
- Rob geeft aan dat hij de gebruiker Jan wil archiveren.
- Het systeem geeft aan dat het archiveren gelukt is.
Alternate path 4
- Docent Rob wil de resultaten van het laatste experiment van student Jan Koning bezichtigen.
- Rob voert de oude unieke code van Jan (s0617707) in.
- Het systeem presenteert naast de gegevens van Jan Koning een lijst van gedane experimenten.
- Rob geeft aan dat hij de resultaten het meest recente experiment wil bezichtigen.
- Het systeem geeft de resultaten weer.
Groepen beheren
Basic course of events
- Docent Rob wil een nieuwe groep aanmaken in het systeem voor de aankomende studenten scheikunde 2009.
- Rob voert de naam in van de nieuw aan te maken groep (ScheikundeStud2009).
- Het systeem geeft aan dat het aanmaken gelukt is.
Alternate path 1
- Docent Rob wil naam van de reeds aangemaakte groep ScheikundeStud2009 wijzigen.
- Rob selecteert de betreffende groep (ScheikundeStud2009).
- Het systeem geeft de mogelijkheid de naam van de groep te wijzigen.
- Rob wijzigt de naam van ScheikundeStud2009 naar SkStud09Sem1. Rob bevestigd de wijziging.
- Het systeem geeft aan dat de wijziging is doorgevoerd.
Alternate path 2
- Docent Rob wil de groep SkStud09Sem1 van het systeem verwijderen.
- Rob selecteert de betreffende groep (SkStud09Sem1).
- Het systeem presenteert de mogelijkheid de groep te verwijderen.
- Rob geeft aan dat hij de groep SkStud09Sem1 wil verwijderen.
- Het systeem geeft aan dat het verwijderen gelukt is.
Alternate path 3
- Beheerder Tinus wil de groep SkStud09Sem1 archiveren.
- Rob selecteert de betreffende groep (SkStud09Sem1).
- Het systeem presenteert de mogelijkheid de groep te archiveren.
- Rob geeft aan dat hij de groep SkStud09Sem1 wil archiveren.
- Het systeem geeft aan dat het archiveren gelukt is.
Resultaten analyse beschikbaar stellen
Basic course of events
- Wetenschapper Suzanne de Wit wil de resultaten van een analyse, vrij toegankelijk maken voor de gebruikers in het systeem.
- Suzanne selecteert de analyse die ze beschikbaar wilt stellen. Suzanne geeft aan het systeem op dat ze analyse “analyse 1” beschikbaar wilt stellen voor zowel interne als externe gebruikers.
- Het systeem geeft aan dat het intern/extern beschikbaar stellen van “analyse 1” gelukt is.
Geen alternatieve paden
Statistieken exporteren
Basic course of events
- Beheerder Peter Janssen wil een specifiek statistiek exporteren.
- Peter selecteert het gewenste statistiek. Peter geeft aan het systeem op dat hij de statistieken van het gebruik van de NMR simulator wilt exporteren.
- Het systeem genereert de statistiek van het gebruik van de NMR simulator.
- Peter download het gegenereerde statistiek
Alternate Path 1
- Beheerder Peter Janssen wil een specifiek statistiek exporteren.
- Peter selecteert het gewenste statistiek. Peter geeft aan het systeem op dat hij de statistieken van het gebruik van de NMR simulator wilt exporteren.
- Het systeem geeft aan dat statistieken van het gebruik van de NMR simulator niet beschikbaar zijn.
Instellingen op een groep toepassen
Basic course of events
- Beheerder Fred Fontijn wil een instelling toepassen op een groep binnen het systeem.
- Fred voert de instelling in voor de betreffende groep. Fred voert een nieuw budget in van 200 euro. Vervolgens selecteert Fred de groep “studenten” om deze instelling op toe te passen.
- Het systeem geeft aan dat het toepassen van de geselecteerde instellingen gelukt is.
Geen alternatieve paden.
Integrated Domainmodel
The complete domain model should contain all concepts and facts that are used in the use cases and scenarios and should be completely consistent with how they are used in them.
Non-functional Requirements
- Performance: de studenten en de onderzoekers moeten met acceptabele snelheid naast elkaar kunnen werken.
- Usability: het werken met de simulator moet zo veel mogelijk lijken op het werken met de echte NMR spectrometer.
- Maintainability: de nieuwe NMR spectrometer simulator moet eenvoudig te onderhouden en uit te breiden zijn.
- Security: Alleen gemachtigde gebruikers mogen gebruik maken van het systeem, tenzij een wetenschapper toestemming geeft zijn resultaten openbaar te maken.
Addendum
Business Rules Catalogue
- Een gebruiker heeft alleen toegang tot zijn eigen monsters en metingen.
- Een docent kan monsters aan studenten toewijzen.
- Een docent kan metingen van studenten bekijken.
- Een student heeft een gelimiteerd budget.
- Bij het uitvoeren van een experiment door een student gaat er een bepaald bedrag van het budget af.
- Een experiment kan alleen door een student uitgevoerd worden indien er voldoende budget beschikbaar is.
- Alleen een docent of beheerder kan een monster beschikbaar stellen aan studenten.
- Alleen een beheerder kan een gebruiker of groep archiveren.
Terminological Definitions
Spectroscopie: de meting van interactie tussen elektromagnetische straling en materie.
NMR simulator: software voor de computer om een NMR spectrometer te simuleren.
Molecuul: het kleinste deeltje moleculaire stof dat nog de chemische eigenschappen van die stof bezit. [1]
Oplossing: een homogeen mengsel van twee stoffen [2]
Monster: een x aantal moleculen in combinatie met één oplosmiddel.
Rol: het type gebruiker met de bijbehorende rechten. De rol kan zijn: student, wetenschapper, docent of beheerder.
Groep: een gebruiker kan naast zijn rol ook in een groep worden ingedeeld. Een groep kan bijvoorbeeld zijn: "studenten 2008".
Analyse: in dit geval het analyseren (aanpassen van de weergave) van het verkregen spectrum.
Domme instelling: een 'domme instelling' is een door de docent of beheerder gedefinieerde instelling waarop de docent een waarschuwing krijgt als deze instelling wordt doorgevoerd.
FID signaal: TODO: het resulterende signaal van de NMR spectrometer.
Acquisitie: het verkrijgen van een FID signaal.
Fourier transformatie: het toepassen van een wiskundige functie op het verkregen FID signaal.
Spectrum: een grafische weergave van het verkregen FID signaal.
Budget: het bedrag in euro's dat een virtueel student heeft om de NMR simulator te betalen.
Archiveren: het exporteren van gegevens binnen het systeem naar een extern bestand. De geëxporteerde gegevens worden uit het systeem verwijderd.
Intern/Extern beschikbaar stellen: het beschikbaar stellen van gegevens voor intern gebruik (studenten, docenten, wetenschappers, beheerders) of extern gebruik (andere gebruikers dan de hiervoor genoemde).
Experiment: het analyseren van een monster.
Unieke naam: Een naam die binnen een willekeurig deel van het systeem maar één keer voor komt, wat dit item uniek identificeerbaar maakt door deze naam.