[Alg] In 'kaart' brengen van procedures/functies

Pagina: 1
Acties:

  • ygma!l
  • Registratie: December 2002
  • Laatst online: 05-05 11:51
Ik weet dat het mogelijk is om je classes schematisch weer te geven in een UML diagram. Allemaal mooi en prachtig, maar wat ik me af vroeg of er ook zoiets is om 'procedures en functies' in een mooi schema weer te geven... Ik gebruik even de benaming procedures en functies, omdat ik dat gewend was in delphi. Ik weet even zou gauw niet de algemene benaming daarvoor die o.a. gebruikt wordt in C# (waar ik nu in werk, icm. VS.net 2003 architect).

Iemand enig idee of daar een standaard voor is ofzo? Ik heb al gezocht in GoT en google, maar kon niet echt iets vinden. Ben namelijk nu bezig met een applicatie waar ik langzaam het overzicht kwijt raak van al die verschillende 'procedures/functies'. Ik weet dat je zoiets misschien in Visio kan maken. Misschien is er wel geen standaard voor, zijn er dan mensen die zoiets wel eens gedaan hebben en kun je misschien laten zien HOE?

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 14:59

pjvandesande

GC.Collect(head);

Wat bedoel je met procedures en functies? Bedoel je de methods van je class, deze kun je namelijk gewoon in UML weergeven.

Kijk is naar reverce engenering.

Verwijderd

De vraag is een beetje wat je wilt laten zien. In een klassediagram wil je o.a. de dependencies van een klasse weergeven, en eventueel wat responsibilities.

Wat wil je met functies... misschien wat control flow laten zien? Kijk dan eens naar een sequence diagram.

Verwijderd

In principe zou je nog steeds een notatie kunnen gebruiken gebaseerd op UML. In plaats van classes kun je dan units/modules als entiteiten definiëren. De procedures/functies binnen jouw UML diagram zijn dan equivalent aan de methods van een class in een 'normaal' UML diagram.

Verwijderd

Is de TS niet gewoon op zoek naar het woordje: sequencediagram? :?

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

ygma!l schreef op 11 oktober 2004 @ 08:38:
Iemand enig idee of daar een standaard voor is ofzo? Ik heb al gezocht in GoT en google, maar kon niet echt iets vinden. Ben namelijk nu bezig met een applicatie waar ik langzaam het overzicht kwijt raak van al die verschillende 'procedures/functies'. Ik weet dat je zoiets misschien in Visio kan maken. Misschien is er wel geen standaard voor, zijn er dan mensen die zoiets wel eens gedaan hebben en kun je misschien laten zien HOE?
Tegen de tijd dat je geen overzicht meer hebt over het aantal procedures/functies moet je toch echt goed na gaan denken of je niet volledig de mist in bent gegaan met het ontwerp. Ik denk daarom dat wat jij zoekt een lapmiddel is en de oorzaak van het probleem niet oplost...het is alleen symptoom bestrijding.

  • ygma!l
  • Registratie: December 2002
  • Laatst online: 05-05 11:51
Ik bedoel inderdaad 'methods' van de klassen. Ik heb ook al gekeken naar de reverse enginering van visual studio. Maar deze geeft geen verbindingen en genereert alleen de klassen. Echter vind ik de klassen even iets minder relevant. Nu heb ik ook al een apart programma gedownload 'Enterprise Architect 4.1', maar ik wist niet goed of ik daarmee kon doen wat ik graag wou. Op het eerste oog voor mij leek het erop dat het alleen UML kon.

Ik zal is kijken naar 'controlflow en sequencediagram' het is namelijk gewoon de bedoeling dat ik de 'relaties' tussen de methods kan zien in een overzichtelijk schema...

  • Blizard
  • Registratie: September 2001
  • Niet online
Als je geen UML-notatie/diagrammen wil dan zal Together ook geen oplossing bieden, maar dit is toch één van de betere producten op de markt momenteel als het gaat om UML-diagrammetjes. Hoewel de ondersteuning voor Java net iets beter werkt (open-source) kan hij ook om met vb.NET. Je kan aan reverse-engenering doen en on the fly je "tekening" of je code updaten en je ziet onmiddelijk de aanpassingen in danwel je code of je "tekening".

Je kan een 15 dagen trial downloaden bij borland dacht ik !

Verwijderd

Ik denk dat je een overzicht wilt hebben van welke functies van elkaar afhangen (dwz, welke functies welke andere functies aanroepen)? Dat is zo'n beetje het enige nuttige wat ik me eraan voor kan stellen.

Ik weet niet tot hoever de introspection van C# gaat, maar als je in staat bent om de code van functies zelf te benaderen, zou je zelf een programmaatje kunnen maken dat alle functies langs loopt en kijkt welke functies ze aanroepen.

En natuurlijk kun je dit ook op source-niveau maken. Als je toch alleen maar functies hebt zijn een paar reguliere expressies misschien al voldoende (en hoef je helemaal geen tokenizer/parser te gaan schrijven).

  • ygma!l
  • Registratie: December 2002
  • Laatst online: 05-05 11:51
@Blizard: ik heb together trial gedownload en ik moet zeggen: super handig programma, alleen geeft sequencediagram niet het gewenste resultaat... dit geeft een prachtig overzicht per methode, maar ik wil graag een overzicht van de samenhang van methodes.
Verwijderd schreef op 11 oktober 2004 @ 11:52:
Ik denk dat je een overzicht wilt hebben van welke functies van elkaar afhangen (dwz, welke functies welke andere functies aanroepen)? Dat is zo'n beetje het enige nuttige wat ik me eraan voor kan stellen.
Dit is precies waar ik op doel. En ik wou dus graag weten of hier al een bepaalde standaard voor is zodat ik die kan gebruiken (zoals UML, sequencediagram etc.). Iemand enig idee?

Verwijderd

ygma!l schreef op 11 oktober 2004 @ 14:01:
Dit is precies waar ik op doel. En ik wou dus graag weten of hier al een bepaalde standaard voor is zodat ik die kan gebruiken (zoals UML, sequencediagram etc.). Iemand enig idee?
Een sequence diagram is dan niet helemaal wat je zoekt. Wat jij zoekt geeft de structuur van je applicatie weer, en sequence diagrams zijn om het gedrag van je applicatie weer te geven.

In UML zijn alleen voorzieningen om op klasse- of subsysteemniveau structuurafhankelijkheden weer te geven; niet op functieniveau dus. Nu kun je al een eind komen door afhankelijkheden tussen modules weer te geven, maar om de specifieke afhankelijkheden tussen functies te modelleren zul je zelf een uitbreiding op UML moeten bedenken.

Verder ken ik geen prepackaged tools die dit kunnen, maar misschien dat iemand anders je daarmee kan helpen. Anders zul je het alsnog zelf moeten maken.

  • klinz
  • Registratie: Maart 2002
  • Laatst online: 09:01

klinz

weet van NIETS

Alarmnummer schreef op 11 oktober 2004 @ 08:56:
Ik denk daarom dat wat jij zoekt een lapmiddel is en de oorzaak van het probleem niet oplost...het is alleen symptoom bestrijding.
En hoe los je dat probleem dan op? Door te refactoren en daarbij kan dit natuurlijk een hulpmiddel zijn om de structuur helder te krijgen.

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Ik snap eigenlijk nog niet helemaal wat je bedoelt, want als je bij elke methode elke methode die je aanroept een relatie tekent word het diagram een grote chaos. Ik heb namelijk ook bij veel projecten en dat ik veel verschillende andere methods en property's enzo aanroep, als je dat allemaal in een diagram wilt gaan zetten met de relaties, word dat niet erg overzichtelijk.
Alarmnummer schreef op 11 oktober 2004 @ 08:56:
[...]

Tegen de tijd dat je geen overzicht meer hebt over het aantal procedures/functies moet je toch echt goed na gaan denken of je niet volledig de mist in bent gegaan met het ontwerp. Ik denk daarom dat wat jij zoekt een lapmiddel is en de oorzaak van het probleem niet oplost...het is alleen symptoom bestrijding.
Daar ben ik het mee eens. Ik bouw mijn projecten altijd op met classen, modules en objecten waarin ik daar weer functies en methods in prop. Daarin komt dus echt de functionele code. Dan prop ik alleen in de codebehind/form de afhankelijke code die bepaald hoe je wat wilt presenteren. Als je zo alles een beetje indeelt dan moet er heel wat gebeuren voordat je echt de weg kwijt raakt in je applicatie. Helemaal als je hem zelf gebouwd hebt.

Vage uitleg, maar hoop dat het te begrijpen valt. :X O-)

  • ygma!l
  • Registratie: December 2002
  • Laatst online: 05-05 11:51
Ok, misschien heb ik het een klein beetje verkeerd gesteld. Uiteraard kan ik alles nog wel terug vinden in de applicatie, maar ik wou graag alle methods die met elkaar samenhangen in een overzichtelijk diagrammetje bouwen. Alleen als ik het zo begrijp is daar niet een standaard voor en moet ik zelf ff wat knutselen...

Verwijderd

Misschien moet je eens zoeken naar call graph dan..

Verwijderd

Verwijderd schreef op 11 oktober 2004 @ 14:11:
[...]


Een sequence diagram is dan niet helemaal wat je zoekt. Wat jij zoekt geeft de structuur van je applicatie weer, en sequence diagrams zijn om het gedrag van je applicatie weer te geven.

In UML zijn alleen voorzieningen om op klasse- of subsysteemniveau structuurafhankelijkheden weer te geven; niet op functieniveau dus. Nu kun je al een eind komen door afhankelijkheden tussen modules weer te geven, maar om de specifieke afhankelijkheden tussen functies te modelleren zul je zelf een uitbreiding op UML moeten bedenken.

Verder ken ik geen prepackaged tools die dit kunnen, maar misschien dat iemand anders je daarmee kan helpen. Anders zul je het alsnog zelf moeten maken.
Het kan wel met een sequence diagram. Je kan namelijk ook een pijltje terug laten komen bij de klasse waar hij vandaan komt en dan zet je daar de naam van de volgende methode bij.
Helemaal netjes dek je de boel dan niet af, want een sequence volgt meestal meer een scenario.

Verder is het gebruikelijk om boven ekle methoden de pre- en post-condities te beschrijven. Pre is wat waar moet zijn voordat je de methode mag aanroepen en post wat daarna waar is.

En dan houd het op.

Ja, misschien een petrinet. Die is meer om toestanden aan te geven, maar wel op laag niveau. Daarmee zou je misschien ook wel aan kunnen geven in welke toestand welke methoden aangeroepen mag worden.
In UML heb je dan een statechartdiagram nodig. (petrinet is geen uml). Statechart is echter abstracter dan een petrinet. Petrinet wordt meer gebruikt bij apperatuur waarbij toestanden nauwer kijkt dan bij iets OO-achtigs.

[ Voor 5% gewijzigd door Verwijderd op 13-10-2004 14:06 ]


  • ygma!l
  • Registratie: December 2002
  • Laatst online: 05-05 11:51
Verwijderd schreef op 12 oktober 2004 @ 22:18:
Misschien moet je eens zoeken naar call graph dan..
Dit is volgens mij wat ik zoek, alleen valt het niet mee om een applicatie te vinden die dit voor je kan maken... Ik heb rond gesnuffeld en kwam CLR Profiler tegen (van microsoft). Echter analyseert deze de exe file en geeft deze niet zo mooi de samenhang van de methods weer. Weet iemand hier misschien een mooi tooltje voor? Ik werk met VS.net C#.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

klinz schreef op 11 oktober 2004 @ 14:18:
[...]
En hoe los je dat probleem dan op? Door te refactoren en daarbij kan dit natuurlijk een hulpmiddel zijn om de structuur helder te krijgen.
Het had niet zover mogen komen dat je een of andere tool nodig bent om het overzicht te krijgen. Ok.. dat de ts daar op dit moment niet zoveel aan heeft is een 2e. Maar ik adviseer hem wel om het in de toekomst niet zover te laten komen.

Verwijderd

Is het probleem niet, dat je op een bepaald moment tegen de problemen aan loopt dat je functionaliteit breekt met je aanpassingen? :) Dat method "a" vroeger perfect functioneerde, maar sinds je die aanpassing hebt gemaakt, kom je vreemde bugs tegen in "b" en "c" omdat de logica daarin schijnbaar afhankelijk waren van functionaliteit in method "a".. ;) Klinkt redelijk bekend.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Verwijderd schreef op 13 oktober 2004 @ 15:08:
Is het probleem niet, dat je op een bepaald moment tegen de problemen aan loopt dat je functionaliteit breekt met je aanpassingen? :)
2 woorden: Unit testen

Dan heb je dat geeikel veel minder.

  • ygma!l
  • Registratie: December 2002
  • Laatst online: 05-05 11:51
Dat is mij in het verleden ook overkomen. Ik wil echter graag dit keer dit tegen gaan door een overzichtelijk schema te hebben van al mijn methods. Op deze manier houd je het overzichtelijk voor jezelf. Alleen zoek ik daar dus een mooi tooltje voor die mij daar bij helpt...

  • ygma!l
  • Registratie: December 2002
  • Laatst online: 05-05 11:51
*schopje*

Iemand die een handig programma weet waarmee ik een call graph kan maken? Het liefst natuurlijk een programma die dat doet aan de hand van de source code.

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

http://www.aivosto.com/visustin.html
dit is er een

zoek anders op google naar: Google search: call graph .net

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 14:59

pjvandesande

GC.Collect(head);

[rml]LordLarry in "[ C#] Code Profiler"[/rml]

Een geweldige profiler, met alles er op en er aan. Verder gaat het topic ook over code -profilers van .NET, kijk er is naar.

  • ygma!l
  • Registratie: December 2002
  • Laatst online: 05-05 11:51
Ok, bedankt. Ik zal van beide de trial uitproberen. Jullie horen nog!

  • koli-man
  • Registratie: Januari 2003
  • Laatst online: 13-05 14:28

koli-man

Bartender!!!!

ygma!l schreef op 18 oktober 2004 @ 12:38:
*schopje*

Iemand die een handig programma weet waarmee ik een call graph kan maken? Het liefst natuurlijk een programma die dat doet aan de hand van de source code.
Call graph met reverse engineering kan ook gedaan worden door Doxygen(open-source)

En voor de TS...Ik ga eigenlijk niet te ver met het modelleren van de functies e.d. Als je je classes hebt dan zet je natuurlijk hun membervariabelen in en hun belangrijkste functies. Wil je dat dan weer afsplitsen kun je gaan inzoomen op een bepaalde class.
Zo kun je het natuurlijk overzichtelijk houden. Met collaboratiediagrammen kun je de verschillende "routes" tussen de objecten bijhouden. Maar ik zou hier niet té ver in gaan. imho

[ Voor 2% gewijzigd door koli-man op 19-10-2004 08:39 . Reden: typo ]

Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff

Pagina: 1