Toon posts:

[ALG] Bepalen determinanten beslissingstabellentest

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

Verwijderd

Topicstarter
Voor een methode ben ik bezig een beslissingstabellentest te maken. Alleen begin ik op twee plekken te twijfelen bij het bepalen van de determinanten. Kan iemand mij op de goede weg helpen?

Bij onderstaand switch statement vraag ik me af of ik het gehele switch statement moet zien als 1 determinant of dat elke case van de switch een aparte determinant is (waarvan altijd 0 of 1 op een bepaald moment waar is).

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        switch(keyEvent.getKeyCode()) {
            case KeyEvent.VK_LEFT:
                richting = WEST;
                break;
            case KeyEvent.VK_RIGHT:
                richting = OOST;
                break;
            case KeyEvent.VK_UP:
                richting = NOORD;
                break;
            case KeyEvent.VK_DOWN:
                richting = ZUID;
                break;
        }


Verder heb ik een stukje code (zie hieronder). Mij lijkt dat de beide if statements een aparte determinant zijn, dat de switch binnen de tweede if zit en daardoor dus geen aparte determinant is.

Java:
1
2
3
4
5
6
7
8
9
10
        if (arrayList.get(1) instanceof Mens) {
            // doe iets
            if (spelLoopt) {
                switch(mens.beweeg(richting)) {
                    case 0:
                        // doe iets
                        break;
                }
            }
        }


Als het om een heel simpel stukje code gaat zoals hieronder, lijkt het mij duidelijk dat het om 2 determinanten gaat maar zodra het iets complexer wordt twijfel ik toch al snel. Misschien is er een handig ezelsbruggetje of trucje om makkelijk de determinanten te bepalen van een stuk code?

Java:
1
2
3
4
5
6
if (leeftijd>65) {
    // doe iets
}
if (volwassen) {
    // doe iets
}


Sorry als het topic hier verkeerd staat en bij Programming thuis hoort.

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Ik zou niet weten wat voor antwoord je hierop wilt hebben. Ik zie zo snel niet de reden waarom je moet weten hoeveel determinanten er zijn in een methode. Kortom iets meer info aub.

Fat Pizza's pizza, they are big and they are cheezy


  • BCC
  • Registratie: Juli 2000
  • Laatst online: 19:44

BCC

Determinanten voor tabellen kunnen nogal veel dingen betekenen. Wat wil je precies?
http://en.wikipedia.org/wiki/Determinant

Na betaling van een licentievergoeding van €1.000 verkrijgen bedrijven het recht om deze post te gebruiken voor het trainen van artificiële intelligentiesystemen.


Verwijderd

Topicstarter
Met determinanten bedoel ik de beslissingspunten in een stuk code dus bijvoorbeeld een if en een switch. Mijn probleem zit in het bepalen van determinanten bij een switch statement en een geneste if met daarin een switch statement (zoals de voorbeelden in mijn topic start).

Als ik het goed begrijp is een determinant (een soort) boolean expressie. In een beslissingstabel schrijf je uit of er bij een combinatie van determinanten een resultaat is.

Met zo maar wat willekeurige waarden kan een tabelletje er als volgt uit zien:

Determinant 10110
Determinant 20011
Determinant 31010
Resultaat 1X
Resultaat 2XXXX


Hopelijk is het zo duidelijker wat ik bedoel. Beslissingstabellen zijn een officiële TMAP (Test Management Approach) vandaar had ik gehoopt met google wat meer te vinden hierover.

[ Voor 66% gewijzigd door Verwijderd op 08-06-2006 22:28 ]


  • MicroWhale
  • Registratie: Februari 2000
  • Laatst online: 09-02 17:27

MicroWhale

The problem is choice

je moet hier ook twee dingen onderscheiden:
- proposities die geldigheid van objecten testen
- proposities die de voortgang van je spel bepalen

mocht je het storend vinden dat deze door elkaar staan, dan kun je wellicht een functie maken waarin, op basis van de beslissingstabel, de voortgang van het spel bepaald wordt. Zo heb je dat in één stuk code zitten.
Daarna heb je in elke propositie maar één verwijzing die de doorgang van het spel bepaald.

Het enige belangrijke is dat je vandaag altijd rijker bent dan gisteren. Als dat niet in centen is, dan wel in ervaring.


Verwijderd

Topicstarter
Inmiddels is mijn vraag zoals ik hem aan het begin heb gesteld wel duidelijk denk ik. Het tweede stukje code uit mijn start topic heb ik inmiddels gewijzigd in:

Java:
1
2
3
4
5
6
        if (spelObjecten.get(1) instanceof Mens) {
            // doe iets
            if (spelLoopt && mens.beweeg(richting)==0) {
                // doe iets
            }
        }


Uit de gehele methode keyPressed() heb ik vervolgens de volgende determinanten bepaald:
  1. keyEvent.getKeyCode() == KeyEvent.VK_LEFT
  2. keyEvent.getKeyCode() == KeyEvent.VK_RIGHT
  3. keyEvent.getKeyCode() == KeyEvent.VK_UP
  4. keyEvent.getKeyCode() == KeyEvent.VK_DOWN
  5. spelObjecten.get(1) instanceof Mens
  6. spelLoopt && mens.beweeg(richting)==0
Rest mij nu de equivalentieklassen te bepalen en de beslissingstabel uit te werken. Ik hoop dat ik er zo uit kom, bedankt voor de reacties.

[ Voor 13% gewijzigd door Verwijderd op 09-06-2006 21:58 ]

Pagina: 1