Overview

Nieuw programma tracen
Log bekijken
Nieuwe sessie starten
Agent
Programmaverloop bekijken
Samenvatting bekijken
Samenvatting opslaan
Filters voor log
Uitvoering manueel stoppen
Uitvoering automatisch stoppen
Code Coverage
Thread status
Gebruik van Stack en Heap
Geheugenverbruik en instanties van klassen


Sheet 1: Nieuw programma tracen

Usecase 1
Name Nieuw programma tracen
Description Programma selecteren die getraced moet worden. Na instellen van nodige parameters/opties wordt de trace gestart. De actie is een succes als
Scope & Level Applicatie, Gebruiker
Trigger Er moet een nieuw programma getraced worden
Preconditions -
Success endcond. Tracen van geselecteerde programma wordt gestart
Failure endcond. Gewenste programma kan niet worden getraced (foutieve/onvolledige informatie)
Prim., sec. actors Gebruiker, Applicatie
Scenario Step Action
1 Gebruiker geeft een programma op die getraced moet worden
2 De trace wordt gestart
3 Als het programma stopt, stopt de trace operatie
Extentions Step Branching action
1a Gebruker wenst extra opties/ parameters te instellen - VM opties, classpath, programma parameters extra opgeven
1b Selecteren van trace mogelijkheden - Exceptions throw/catch, actuele parameters, object identifiers, constructie en destructie van objecten, selecteren van packages/classes die wel/niet getraced moeten worden
Subvariations 1a Een programma kan een klasse of een JAR bestand zijn.



Extra informatie
Priority Top (verplichte functionaliteit)
Performance Zeer belangrijk
Frequence -
Channel to actors GUI
Includes Nieuwe sessie starten (1a), Agent (1b)
Extends -
Notes

Sheet 2: Log bekijken

Usecase 2
Name Log bekijken
Description Nadat de trace voltooid is moet het mogelijk zijn de resultaten op een overzichtelijke manier weer te geven. Hierbij behoren o.a. het weergeven van het programmaverloop (per thread, of in totaliteit)...
Scope & Level Gebruikersapplicatie, Gebruiker
Trigger Beeindigen van trace/openen van log bestand
Preconditions Er moet een log beschikbaar zijn
Success endcond. Het log wordt weergegeven
Failure endcond. Foutmelding
Prim., sec. actors Gebruiker, Applicatie
Scenario Step Action
1 Log wordt geopend en genereerd indien gevraagd een samenvatting
2 Programma geeft de informatie uit het log weer in een bepaalde structuur
Extentions Step Branching action
2a Weergave aanpassen in functie van de verschillende gegevens (threads, method-calls, ...)
Subvariations 1a Manueel/automatisch na trace openen



Extra informatie
Priority Top (verplicht onderdeel)
Performance Nvt.
Frequence Nvt.
Channel to actors Gui
Includes Programmaverloop bekijken (2a), Samenvatting bekijken (2b), Samenvatting opsln (2c)
Extends
Notes

Sheet 3: Nieuwe sessie starten

Usecase 1a
Name Nieuwe sessie starten
Description Starten van een programma (klasse/jar) met bepaalde JVM parameters en applicatieparamters. De sessie stopt als het programma stopt.
Scope & Level Gebruikersapplicatie, Model
Trigger De gebruikerapplicatie start een nieuwe sessie
Preconditions Geldige jar/klasse opgegeven
Success endcond. Programma werd uitgevoerd.
Failure endcond. -
Prim., sec. actors Gebruikerapplicatie, JVM
Scenario Step Action
1 De JVM wordt opgestart en start een programma.
2 De applicatie voorziet een invoer en uitvoer pipe naar de sessie.
3 De sessie sluit als het programma stopt.
Extentions Step Branching action
1a JVM parameters meegeven
1b Parameters voor geteste programma meegeven
Subvariations 1a Programma = klasse || jar



Extra informatie
Priority Top (verplichte funct.)
Performance Nvt.
Frequence Nvt.
Channel to actors PIPE
Includes -
Extends -
Notes

Sheet 4: Agent

Usecase 1b
Name Agent
Description De agent wordt meegegeven aan de JVM via een parameter. Deze zal informatie van de JVM accumuleren en loggen (met compressie).
Scope & Level Library, Model
Trigger Opstarten van JVM
Preconditions -
Success endcond. JVM stopt
Failure endcond. -
Prim., sec. actors JVM, Agent
Scenario Step Action
1 JVM wordt gestart met Agent als parameter
2 JVM stuurt signalen naar de Agent library
3 Agent accumuleert en logt de ontvangen informatie
4 JVM stopt!



Extra informatie
Priority Top (verplicht onderdeel)
Performance Agent moet zeer performant zijn
Frequence Nvt.
Channel to actors -
Includes -
Extends -
Notes

Sheet 5: Programmaverloop bekijken

Usecase 2a
Name Programmaverloop bekijken
Description Het moet mogelijk zijn om de log op een overzichtelijke manier weer te geven. Met verschillende views voor oa. Methodeoproepen, threadverloop, ed.
Scope & Level Gebruikerprogramma, Gebruiker
Trigger Openen van logbestand
Preconditions Aanwezigheid van een logbestand
Success endcond. De gegevens worden weergegeven
Failure endcond. Foutmelding
Prim., sec. actors Gebruiker, Gebruikerprogramma
Scenario Step Action
1 Log wordt geopend
2 Programma geeft gegevens weer in overzichtelijke structuren
Extentions Step Branching action

2a Weergaven aanpassen in functie van de verschillende gegevens



Extra informatie
Priority Top (verplicht)
Performance Gemiddeld
Frequence Liefst ni te veel
Channel to actors GUI
Includes -
Extends -
Notes

Sheet 6: Samenvatting bekijken

Usecase 2b
Name Samenvatting bekijken
Description Het moet mogelijk zijn om een samenvatting van een trace te genereren en weer te geven. Deze samenvatting moet wel rechstreeks gebaseerd zijn op de gegevens uit het log. Vb: Tijd waarover een thread loopt, Totaal aantal gegeneerde objecten, ...
Scope & Level Gebruikersapplicatie, Gebruiker
Trigger Gebruiker kiest om een samenvatting te genereren
Preconditions Er moet een log geladen zijn
Success endcond. Er wordt een samenvatting weergegeven
Failure endcond. Foutmelding
Prim., sec. actors Gebruiker, Applicatie
Scenario Step Action
1 De gebruiker kiest om een samenvatting te genereren.
2 De applicatie overloopt de log, en vat deze samen
3 De samenvatting wordt weergegeven
Extentions Step Branching action

1a Keuze wat in de samenvatting opgenomen moet worden



Extra informatie
Priority Nice to have
Performance Liefst snel
Frequence Nvt.
Channel to actors GUI
Includes -
Extends -
Notes

Sheet 7: Samenvatting opslaan

Usecase 2c
Name Samenvatting opslaan
Description De eerder gegeneerde samenvatting opslaan, zodat later niet twee keer hetzelfde werk moet gedaan worden.
Scope & Level Gebruikersapplicatie, Gebruiker
Trigger Gebruiker kiest om de samenvatting op te slaan
Preconditions Er moet een samenvatting gegenereerd zijn
Success endcond. Opgeslagen
Failure endcond. Niet opgeslagen
Prim., sec. actors Gebruiker, Applicatie
Scenario Step Action
1 Gebruiker kiest om samenvatting op te slaan
2 Samenvatting wordt naar een gekozen locatie weggeschreven en eventueel gecomprimeerd



Extra informatie
Priority Nice to have
Performance Nvt.
Frequence Nvt.
Channel to actors GUI
Includes
Extends
Notes

Sheet 8: Filters voor log

Usecase 3
Name Filters voor log
Description Het moet mogelijk zijn om op bepaalde gegevens te filteren. Vb: Methodenamen, Object id., ...
Scope & Level Gebruikersapplicatie, gebruiker
Trigger Er moet op gepaalde gegevens gefilterd te worden
Preconditions Er moet een log geladen zijn
Success endcond. Filter werd met succes toegepast
Failure endcond. -
Prim., sec. actors Gebruiker en GUI
Scenario Step Action
1 Gebruiker geeft een filter op en voert deze uit
2 De applicatie filterd gegevens die aan de filter voldoen uit het resultaat
3 De gefilterde gegevens worden terug in de originele view weergegeven
Subvariations 1a Gewone- of negatiefilters



Extra informatie
Priority Belangrijk
Performance Zo snel mogelijk
Frequence Zoveel als de gebruiker wilt
Channel to actors GUI
Includes -
Extends Log bekijken
Notes

Sheet 9: Uitvoering manueel stoppen

Usecase 4
Name Uitvoering manueel stoppen
Description De gebruiker moet in staat zijn om het programma vroegtijdig te stoppen. De JVM wordt dan vroegtijdig gestopt, maar de tot hiertoe gelogde gegevens moeten wel worden opgeslagen.
Scope & Level Gebruikersapplicatie, Gebruiker
Trigger Gebruiker geeft de opdracht om de uitvoering vroegtijdig te beeidingen.
Preconditions Er moet een trace lopen
Success endcond. Programma is gestopt
Failure endcond. Sessie hangt vast???
Prim., sec. actors Gebruiker, Applicatie
Scenario Step Action
1 Gebruiker geeft de opdracht om af te breken
2 Sessie wordt afgesloten
3 Overgebleven gegevens van log worden weggeschreven



Extra informatie
Priority Belangrijk
Performance Nvt.
Frequence Nvt.
Channel to actors GUI (een knopke)
Includes -
Extends -
Notes

Sheet 10: Uitvoering automatisch stoppen

Usecase 5
Name Uitvoering automatisch stoppen (als log te groot wordt)
Description Als het logbestand groter wordt dan een op voorhand opgegeven grootte, moet het programma de uitvoering automatisch stoppen. Dit om bv. te vermeiden dat de schijf volgeschreven wordt.
Scope & Level Gebruikersapplicatie, Model
Trigger Logbestand wordt te groot
Preconditions Er moet een trace lopen
Success endcond. Programma is gestopt
Failure endcond. Sessie hangt vast???
Prim., sec. actors Applicatie
Scenario Step Action
1 Logbestand wordt te groot
2 Applicatie geeft de opdracht om de sessie af te sluiten.
3 Sessie wordt afgesloten
4 Overgebleven gegevens van log worden weggeschreven & gebruiker wordt op de hoogte gebracht.
Extra informatie
Priority Nice to have
Performance Nvt.
Frequence Nvt.
Channel to actors Automatisch algoritme
Includes -
Extends Uitvoering manueel stoppen (4)
Notes

Sheet 11: Code Coverage

Usecase 6
Name Code coverage
Description Bepalen welke procedures werden opgeroepen aan de hand van de logfile. Op basis hiervan kan een boomstructuur worden wergegeven met het aantal invocaties, tijd doorgebracht per functie, etc...
Scope & Level Applicatie, Gebruiker
Trigger We willen de code coverage bepalen van een bestaande log
Preconditions Er moet een log geopend zijn.
Success endcond. Code coverage wordt weergegeven
Failure endcond. Foutmelding
Prim., sec. actors Gebruiker, Applicatie
Scenario Step Action
1 Gebruiker opent het code coverage dialoog en stelt eventueel nog param. in
2 De applicatie bepaald intern de coverage
3 Er wordt een refreshevent naar de view gestuurd die zijn weergave aanpast.
Extentions Step Branching action
2a Er staat een fout in het logbestand - Foutmelding weergeven



Extra informatie
Priority Nice to have
Performance Snel genenereren
Frequence -
Channel to actors GUI
Includes
Extends
Notes

Sheet 12: Thread status

Usecase 7
Name Threadstatus
Description Een real-time weergave van de threads. Ze worden weergegeven als balken over een tijdslijn, die constant verschuift. Wanneer een nieuwe thread ontstaat zal er een nieuwe balk bijkomen. En wanneer er een thread stopt zal deze afgebroken worden.
Scope & Level Applicatie, Gebruiker
Trigger We willen het verloop van de threads bekijken
Preconditions Er moet een sessie lopen
Success endcond. View voor threads wordt weergegeven
Failure endcond. -
Prim., sec. actors Gebruiker, Applicatie, Agent
Scenario Step Action
1 Gebruiker schakeld de weergave in
2 De viewer stuurt een request voor de threadinfo naar de Agent
3 De Agent stuurt de informatie naar de viewer
4 De viewer maakt een interne voorstelling
5 Gui gedeelte updated zichzelf aan de hand van de interne voorstelling
6 While weergave actief: (periodisch) goto 2



Extra informatie
Priority Belangrijk
Performance Belangrijk
Frequence De refreshrate kan ingesteld worden
Channel to actors GUI & Viewer agent verbinding
Includes
Extends
Notes

Sheet 13: Gebruik van Stack en Heap

Usecase 8
Name Gebruik van stack en heap
Description Een realtime weergave van de Stack en heap. De weergave wordt periodisch herladen en geeft de belangrijkste elementen (ingenomen grootte, aanwezige objecten, ...) weer. Het is belangrijk dat niet teveel wordt weergegeven!!!
Scope & Level Applicatie, Gebruiker
Trigger We willen het gebruik van stack en heap in de gaten houden
Preconditions Er moet een sessie actief zijn
Success endcond. Gebruik wordt weergegeven
Failure endcond. -
Prim., sec. actors Gebruiker, Applicatie, Agent
Scenario Step Action
1 Gebruiker schakeld de weergave in
2 De Viewer stuurt een request voor de nodige info. naar de Agent
3 De Agent stuurt de gevraagde informatie terug naar de Viewer
4 De viewer maakt zijn interne voorstelling aan
5 Gui gedeelte updated zichzelf adhv. de interne voorstelling
6 While weergave actief: (periodisch) goto 2



Extra informatie
Priority Required functionality
Performance Belangrijk
Frequence De refreshrate kan ingesteld worden
Channel to actors GUI & Viewer agent verbinding
Includes
Extends
Notes

Sheet 14: Geheugenverbruik en instanties van klassen

Usecase 9
Name Geheugenverbruik en instanties van de klassen
Description Een realtime weergave van het geheugenverbruik, per geladen klasse. De weergave wordt periodisch herladen en geeft de belangrijkste elementen (aantal geladen instanties, ingenomen groote, etc...) weer.
Scope & Level Applicatie, Gebruiker
Trigger We willen het gebruik van het geheugen (algemeen) in de gaten houden
Preconditions Er moet een sessie actief zijn
Success endcond. Gebruik wordt weergegeven
Failure endcond. -
Prim., sec. actors Gebruiker, Applicatie, Agent
Scenario Step Action
1 Gebruiker schakeld de weergave in
2 De Viewer stuurt een request voor de nodige info. naar de Agent
3 De Agent stuurt de gevraagde informatie terug naar de Viewer
4 De viewer maakt zijn interne voorstelling aan
5 Gui gedeelte updated zichzelf adhv. de interne voorstelling
6 While weergave actief: (periodisch) goto 2



Extra informatie
Priority Belangrijk
Performance Belangrijk
Frequence De refreshrate kan ingesteld worden
Channel to actors GUI & Viewer agent verbinding
Includes
Extends
Notes