Hoe maak ik een PSD?

Pagina: 1
Acties:
  • 5.415 views sinds 30-01-2008
  • Reageer

  • Spixo
  • Registratie: Augustus 2004
  • Laatst online: 13:13
Ik ben op zoek naar software om een nette PSD (Program Structure Diagram) te creeren. Ik heb namelijk een berg C-code die overzichtelijk weergegeven moet worden.

Nu kan ik zelf wel mijn Paint skills gaan toepassen maar als er standaard hulpmiddelen voor bestaan is dat natuurlijk veel handiger.

Zoiets dus:
Afbeeldingslocatie: http://www.fim.uni-linz.ac.at/iceta2001/image006.gif

Volgens mij noemen sommige mensen het ook wel een "Nassi-Shneiderman Diagram".

[ Voor 22% gewijzigd door Spixo op 18-06-2005 21:58 ]


  • sanfranjake
  • Registratie: April 2003
  • Niet online

sanfranjake

Computers can do that?

(overleden)
Wat heb je zelf allemaal al gezocht, gevonden en geprobeerd ? Het is op GoT de bedoeling dat je zelf wat onderzoek doet :) Lees daarover de Software Algemeen - Beleid nog even door.

Visio kan misschien wat helpen?

Mijn spoorwegfotografie
Somda - Voor en door treinenspotters


  • Spixo
  • Registratie: Augustus 2004
  • Laatst online: 13:13
sanfranjake schreef op zaterdag 18 juni 2005 @ 21:58:
Wat heb je zelf allemaal al gezocht, gevonden en geprobeerd ? Het is op GoT de bedoeling dat je zelf wat onderzoek doet :) Lees daarover de Software Algemeen - Beleid nog even door.

Visio kan misschien wat helpen?
Ik ben in Microsoft Visio aan de gang gegaan maar daar kan ik niet van die nette if's mee maken (die zijn precies op zijn kop). Heb hier anderhalf uur mee geprutst maar krijg het niet gefixt.

  • nsa1984
  • Registratie: Maart 2005
  • Laatst online: 03-05 00:24
hmmmmm

ik gebruikte op school daar altijd NSD editor voor.....


is een wazig oud programmatje is nog wel op het web te vinden....

mocht het niet lukken kun je altijd nog even berichtje geven dan link ik hem wel even op me webspace ofzo ,,,,,


nsa84

De waarheid is leuk, maar hoe heb je die gevonden?


  • Ridcully
  • Registratie: December 2002
  • Laatst online: 27-04 13:39
Als je niet bang bent om wat geld neer te tellen

http://www.smartdraw.com/

Dan stel ik Smartdraw voor, is wel een fijn programma toen ik er heel even mee speelde (niet echt ervaring mee dus, maar het kan wat jij ongeveer wilt volgens mij)

  • Kayz
  • Registratie: Maart 2001
  • Laatst online: 02-05 16:14
Structograaf zou je eens kunnen proberen. http://www.sichemsoft.nl/sgnl.html

Is geen freeware, maar je kunt wel de demo proberen iig.

  • Spixo
  • Registratie: Augustus 2004
  • Laatst online: 13:13
Bedankt voor de tips die ik tot zover heb gehad. Dan wil ik tevens even een vraagje stellen.

Stel dat ik de volgende code heb:

code:
1
2
3
4
5
6
7
8
if(blaat < nummer)
{
  startx(100)
}
else
{
  // doe iets anders
}


Zouden jullie in de PSD dan gewoon "startx(100)" neerzetten bij true, of zetten jullie de hele functie startx dan in het diagram? Als ik het niet doe, waar kan ik die functie dan het beste kwijt?
nsa1984 schreef op zaterdag 18 juni 2005 @ 22:00:
hmmmmm

ik gebruikte op school daar altijd NSD editor voor.....


is een wazig oud programmatje is nog wel op het web te vinden....

mocht het niet lukken kun je altijd nog even berichtje geven dan link ik hem wel even op me webspace ofzo ,,,,,


nsa84
Ziet er wat te beperkt uit, voor de rest doet het eigenlijk wel wat ik wil.
Ridcully schreef op zaterdag 18 juni 2005 @ 22:01:
Als je niet bang bent om wat geld neer te tellen

http://www.smartdraw.com/

Dan stel ik Smartdraw voor, is wel een fijn programma toen ik er heel even mee speelde (niet echt ervaring mee dus, maar het kan wat jij ongeveer wilt volgens mij)
Hier ga ik zo even naar kijken
Kayz schreef op zaterdag 18 juni 2005 @ 22:01:
Structograaf zou je eens kunnen proberen. http://www.sichemsoft.nl/sgnl.html

Is geen freeware, maar je kunt wel de demo proberen iig.
5 minuten mee gespeelt, is niets :r

[ Voor 59% gewijzigd door Spixo op 18-06-2005 22:11 ]


Verwijderd

Ricardo87 schreef op zaterdag 18 juni 2005 @ 22:03:
Bedankt voor de tips die ik tot zover heb gehad. Dan wil ik tevens even een vraagje stellen.

Stel dat ik de volgende code heb:

code:
1
2
3
4
5
6
7
8
if(blaat < nummer)
{
  startx(100)
}
else
{
  // doe iets anders
}


Zouden jullie in de PSD dan gewoon "startx(100)" neerzetten bij true, of zetten jullie de hele functie startx dan in het diagram? Als ik het niet doe, waar kan ik die functie dan het beste kwijt?
Je moet inderdaad in je PSD de functie "startx(100)" neerzetten in de True-tak. Voor elke functie maak je nl. een aparte PSD, dus voor de functie startx() ook. Op de manier blijft een PSD overzichtelijk.

Gebruik echter wel duidelijke functienamen zodat deze ook in je PSD te begrijpen zijn. De functienaam startx is niet echt duidelijk.

Bovendien begint elke PSD met een korte functie-omschrijving en een beschrijving van de in- en uit-parameters (naam, type, omschrijving, mogelijke waarden, verplicht/optioneel, by value/reference, etc).

Oh ja, normaliter ontwerp je eerst PSD's met daarin pseudo-code en vervolgens maak je pas de werkelijke code... :)

[ Voor 3% gewijzigd door Verwijderd op 18-06-2005 22:13 ]


  • Spixo
  • Registratie: Augustus 2004
  • Laatst online: 13:13
Verwijderd schreef op zaterdag 18 juni 2005 @ 22:12:
[...]
Je moet inderdaad in je PSD de functie "startx(100)" neerzetten in de True-tak. Voor elke functie maak je nl. een aparte PSD, dus voor de functie startx() ook. Op de manier blijft een PSD overzichtelijk.

Gebruik echter wel duidelijke functienamen zodat deze ook in je PSD te begrijpen zijn. De functienaam startx is niet echt duidelijk.

Bovendien begint elke PSD met een korte functie-omschrijving en een beschrijving van de in- en uit-parameters (naam, type, omschrijving, mogelijke waarden, verplicht/optioneel, by value/reference, etc).

Oh ja, normaliter ontwerp je eerst PSD's met daarin pseudo-code en vervolgens maak je pas de werkelijke code... :)
De functie startx was terplekke verzonnen, normaal hebben ze wel een betere naam ;)

Heb je misschien een voorbeeld van zo'n PSD met functie omschrijving e.d. erin? Dan weet ik hoe ik dat het beste kan neerzetten.

En wat betreft de code, die is er al :+

Edit:
Klopt een PSD dus op deze manier zoals ik het nu heb gedaan?
Afbeeldingslocatie: http://img122.echo.cx/img122/9334/psd8xn.jpg

Code:
code:
1
2
3
4
5
6
7
     int aantalMoves;
     do
     {
       randomNizer(Random(5));
       aantalMoves++;
     }
     while(aantalMoves < maxMoves);

[ Voor 14% gewijzigd door Spixo op 18-06-2005 22:27 ]


  • Kuhlie
  • Registratie: December 2002
  • Niet online
Je wilt sowieso de naam gebruiken en niet de inhoud van de functie: probeer anders maar eens een structuur te verzinnen voor recursie ;)

Verwijderd

Ricardo87 schreef op zaterdag 18 juni 2005 @ 22:15:
[...]

De functie startx was terplekke verzonnen, normaal hebben ze wel een betere naam ;)

Heb je misschien een voorbeeld van zo'n PSD met functie omschrijving e.d. erin? Dan weet ik hoe ik dat het beste kan neerzetten.

En wat betreft de code, die is er al :+
Ik heb geen voorbeeld van een PSD, dat is te lang geleden (ca. jouw bouwjaar) :). Maar ik denk dat je zelf wel een mooie opmaak kan verzinnen van de volgende onderdelen per PSD:
  • Functienaam.
  • Korte functieomschrijving.
  • Tabel met functieparameters (elke parameter op een rij; eerst in-parameters en dan uit-parameters; elke eigenschap van een parameter in een kolom).
  • PSD zelf.
Suc6.

Reactie op je EDIT:

In je PSD moet je "int aantalMoves" vervangen door "aantalMoves = 0". De declaratie van lokale variabelen in een PSD doet er niet toe. Dit is alleen van belang in de code. Wel is de initialisatie op nul van belang in een PSD. Deze is in je code impliciet door de declaratie "int aantalMoves;". Het is beter om in je code "int AantalMoves=0;" te zetten.

Ook mis ik in je PSD nog de initialisatie van "maxMoves=?". Deze moet er in aangezien je deze variabele in je while-lus (eigenlijk repeat-until-lus) gebruikt. Het kan ook zijn dat maxMoves geen lokale variabele is maar een in-parameter of een constante. In het geval dat de variabele maxMoves een constante is, moet je dit in de naamgeving terug kunnen zien (bijv. MAX_MOVES of constMaxMoves) en bij de PSD's van alle functies (ook de hoofdfunctie) hoort ook nog een lijstje met programma-brede constantes. Daar moet ie dan in opgenomen worden.

[ Voor 41% gewijzigd door Verwijderd op 18-06-2005 22:38 ]


  • Spixo
  • Registratie: Augustus 2004
  • Laatst online: 13:13
Kuhlie schreef op zaterdag 18 juni 2005 @ 22:29:
Je wilt sowieso de naam gebruiken en niet de inhoud van de functie: probeer anders maar eens een structuur te verzinnen voor recursie ;)
Verwijderd schreef op zaterdag 18 juni 2005 @ 22:29:
[...]

Ik heb geen voorbeeld van een PSD, dat is te lang geleden (ca. jouw bouwjaar) :). Maar ik denk dat je zelf wel een mooie opmaak kan verzinnen van de volgende onderdelen per PSD:
  • Functienaam.
  • Korte functieomschrijving.
  • Tabel met functieparameters (elke parameter op een rij; eerst in-parameters en dan uit-parameters; elke eigenschap van een parameter in een kolom).
  • PSD zelf.
Suc6.
Jullie bedankt, ik ga even een paar uurtjes creatief zijn. Hopelijk kan ik straks het resultaat laten zien ;)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Ricardo87 schreef op zaterdag 18 juni 2005 @ 22:15:
Klopt een PSD dus op deze manier zoals ik het nu heb gedaan?
Afbeeldingslocatie: http://img122.echo.cx/img122/9334/psd8xn.jpg

Code:
code:
1
2
3
4
5
6
7
     int aantalMoves;
     do
     {
       randomNizer(Random(5));
       aantalMoves++;
     }
     while(aantalMoves < maxMoves);
Nee, dat PSD klopt niet helemaal. Ten eerste zijn PSD's over het algemeen abstract. Typedeclaraties zijn bijvoorbeeld niet nodig. Je hoeft dus niet aan te geven dat iets een integer is, dat blijkt verder wel uit je PSD. Wat ik overigens wel (zowel in PSD als in code) zou doen, is aantalMoves op de eerste regel gelijk stellen aan 0. Zet vóór een loop altijd je initiële waarden goed! Niet elke compiler is even netjes, en het zou zomaar eens kunnen gebeuren dat er een heel ander getal dan 0 wordt toegekend aan je variabele als je niet expliciet zelf 0 erin zet.

Verder zijn do...while structuren over het algemeen beter te vermijden. Met een do...while doe je eerst wat, en daarna controleer je pas of het eigenlijk wel mag. In 9 van de 10 gevallen kun je dergelijke code beter omzetten naar een gewone while. :) In dit specifieke geval: wat gebeurt er als maxMoves de waarde 0 heeft? Dan wordt er, tegen de "regels" in toch nog één keer die loop uitgevoerd. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

PSD's :X
Geef mij maar UML :P

Tikje van Software Algemeen naar Programming & Webscripting trouwens :)

God, root, what is difference? | Talga Vassternich | IBM zuigt


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:36
PSD geeft een heel andere bedoeling dan UML.

https://fgheysels.github.io/


  • JochemK
  • Registratie: Maart 2003
  • Laatst online: 13:43
Je zou ook kunnen overwegen om DIA te pakken, je kunt hier een grote verscheidenheid aan diagrammen mee tekenen, het werkt eenvoudig, en het is gepubliceerd onder GNU :)

http://www.gnome.org/projects/dia/

voor meer info

  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 09:05

JaQ

in een lang grijs verleden heb ik ooit een libero i.c.m. een of ander script gebruikt. In libero maak je een "soort" van psd, die vervolgens code genereerd (stubs). Dit script verzorgde vervolgens de grafische representatie naar html of een image. Ik weet alleen niet meer hoe dat script heet... :( (iets van dot of zo...) Ik zal kijken of ik het nog ergens uit mijn oude mail kan plukken.

Egoist: A person of low taste, more interested in themselves than in me


  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

whoami schreef op zondag 19 juni 2005 @ 10:59:
PSD geeft een heel andere bedoeling dan UML.
Klopt, maar UML heeft dezelfde bedoeling als de PSD volgens mij: meer inzicht krijgen in hoe een programma zou horen te werken.
Door dingen als activiteits-, toestands-, sequencediagrammen te gebruiken kom je op hetzelfde uit, alleen hoef je dan niet perse alles te modeleren, maar bijvoorbeeld alleen de gedeelten waarover er onenigheid bestaat in een projectgroep o.i.d.

God, root, what is difference? | Talga Vassternich | IBM zuigt


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

kingjotte schreef op zondag 19 juni 2005 @ 11:01:
Je zou ook kunnen overwegen om DIA te pakken, je kunt hier een grote verscheidenheid aan diagrammen mee tekenen, het werkt eenvoudig, en het is gepubliceerd onder GNU :)

http://www.gnome.org/projects/dia/

voor meer info
Dia vind ik persoonlijk maar niks, en ik vermijd het liever; de Windows-versie in elk geval. Het tooltje is niet echt werkbaar en de interface is IMO vrij brak. Verder komen er bij het uitprinten vaak glitches voor, waardoor ik afgelopen week nog een brak diagram heb moeten overhandigen. Overigens is Dia net zo geschikt om PSD's te maken als MS Paint, Dia is meer geschikt voor UML en dergelijke. :)
moto-moi schreef op zondag 19 juni 2005 @ 11:43:
Klopt, maar UML heeft dezelfde bedoeling als de PSD volgens mij: meer inzicht krijgen in hoe een programma zou horen te werken.
Nou...de hele bedoeling achter PSD's was dat programmeurs hun code konden testen en debuggen nog voordat ze een letter op het scherm hadden staan. PSD's stammen dan ook uit de tijd dat "even compileren" er niet bij was aangezien je een aanzienlijke tijd op je systeem kan wachten in zo'n geval. Dan is het natuurlijk lullig als blijkt dat je ergens een initialisatie vergeten bent waardoor het hele programma b0rked gaat. ;)

Tegenwoordig worden PSD's AFAIK eigenlijk alleen nog op scholen gebruikt om scholieren/studenten te leren programmeren zonder computer, en ze op die manier te laten nadenken over wat ze doen in plaats van via trial & error een applicatie in elkaar zetten. Helaas streven scholen hierin wel een beetje hun doel voorbij, aangezien zo'n beetje iedereen eerst code gaat schrijven, en pas daarna aan het PSD begint. Een klasgenoot van me heeft in Delphi later nog eens een programma geschreven dat automatisch PSD's maakt van Pascal-code. :P

Wat dat betreft hebben UML-diagrammen en PSD's toch echt twee verschillende bedoelingen. UML is bedoeld om op eenvoudige/globale wijze duidelijk te maken (zowel aan programmeurs als aan niet-programmeurs) hoe een applicatie in elkaar zit, terwijl PSD's puur zijn/waren bedoeld om een programmeur te helpen bij zijn denkproces.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Spixo
  • Registratie: Augustus 2004
  • Laatst online: 13:13
Wat is overigens de juiste notatie voor een repeat? (programmeertaal NQC)

Afbeeldingslocatie: http://img53.echo.cx/img53/9417/repeat2ur.jpg

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:36
Die laatste ken ik niet, maar die eerste 2 hebben functioneel een andere mening.
Bij de eerste gaat het over een while() en bij de tweede gaat het over een repeat until.

https://fgheysels.github.io/


  • Spixo
  • Registratie: Augustus 2004
  • Laatst online: 13:13
whoami schreef op maandag 20 juni 2005 @ 12:23:
Die laatste ken ik niet, maar die eerste 2 hebben functioneel een andere mening.
Bij de eerste gaat het over een while() en bij de tweede gaat het over een repeat until.
Zoals wij het leren is de 1e een while-do en de andere een do-while PSD.

De betreffende code is:
code:
1
2
3
4
5
6
7
8
9
task main()
{
  repeat(4)
  {
    // blaat
  }
  
  // some other code
}


Alles wat binnen de lus repeat staat wordt dus 4x uitgevoerd. Het lijkt me een while-do, maar iets zegt me dat de 3e voor een repeat lus gold.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Blijkbaar is die repeat in die taal die jij gebruikt gelijk aan een for zoals die in de meeste andere talen geïmplementeerd is. Je kunt dat gewoon vertalen naar een while notatie, met als conditie iets als "zolang niet 4x uitgevoerd".

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Spixo
  • Registratie: Augustus 2004
  • Laatst online: 13:13
-NMe- schreef op maandag 20 juni 2005 @ 13:34:
Blijkbaar is die repeat in die taal die jij gebruikt gelijk aan een for zoals die in de meeste andere talen geïmplementeerd is. Je kunt dat gewoon vertalen naar een while notatie, met als conditie iets als "zolang niet 4x uitgevoerd".
Ik heb het inmiddels nagevraagd en je hebt gelijk.

Tevens ben ik nu bezig met een switch() om te zetten naar PSD code, ik loop nu allemaal if's te loopen. Lijkt me niet de meest handige methode, maar voor zover ik weet is er ook geen switch notatie.

Is er nergens een website met alle PSD notaties die er bestaan te vinden?

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:36
Ik denk niet dat er een 'switch' constructie bestaat voor nassi schneidermann diagrammen.

Maarja, dat weet ik niet zeker, dus misschien vind je hier wel iets tussen:
http://www.rdrop.com/~cary/html/psd.html

Of anders zoek je gewoon ff in Google op 'Nassi Schneidermann diagrams'

https://fgheysels.github.io/


Verwijderd

Volgens mij is Koffice het tool; zie Software Updates meuktracker: KOffice 1.4

  • Spixo
  • Registratie: Augustus 2004
  • Laatst online: 13:13
whoami schreef op vrijdag 24 juni 2005 @ 21:56:
Ik denk niet dat er een 'switch' constructie bestaat voor nassi schneidermann diagrammen.

Maarja, dat weet ik niet zeker, dus misschien vind je hier wel iets tussen:
http://www.rdrop.com/~cary/html/psd.html

Of anders zoek je gewoon ff in Google op 'Nassi Schneidermann diagrams'
Dan ga ik maar fijn if'jes loopen ;)

Bedankt voor je hulp iig

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Wij moesten switches op school altijd tekenen op dezelfde manier als een if, maar in plaats van het opdelen in 2 takken, moesten we dan opdelen in zoveel takken als nodig was voor de switch.

Weet je leraar dit niet? :?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Spixo
  • Registratie: Augustus 2004
  • Laatst online: 13:13
-NMe- schreef op vrijdag 24 juni 2005 @ 22:19:
Wij moesten switches op school altijd tekenen op dezelfde manier als een if, maar in plaats van het opdelen in 2 takken, moesten we dan opdelen in zoveel takken als nodig was voor de switch.

Weet je leraar dit niet? :?
Het is eigenlijk ook zo logisch _/-\o_

* Spixo drukt op Ctrl + N

Mijn leraar is op vakantie in Rusland, de vervanger is onbereikbaar en alleen op maandag zie ik hem...
Pagina: 1