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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|