Quiz/Testapplicatie UML Classdiagram

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • koens-1
  • Registratie: Maart 2013
  • Laatst online: 22-05 23:30
Beste lezers,

Op het huidige moment moet ik voor een schoolopdracht een applicatie maken. Dit doe ik in C# en er is ook al een prototype. Nu moet ik ook een UML klassendiagram maken. Ik heb echter alleen geen idee of ik in de juiste richting aan het denken ben. Dit is wat ik tot zover heb.

Het gaat voornamelijk om de globale opzet. En een probleem waar ik tevens tegenaan loop is dat het uit minstens 20 klassen moet bestaan (heb dit helaas ook niet verzonnen). Dit is daarom ook de redenen waarom ik de testen apart als klassen heb verwerkt.

Afbeeldingslocatie: https://www.mupload.nl/img/wh9r97s.png
P.s Ik weet dat er een hoop nog niet klopt, maar het is echt een work in progress :)

Ik heb ook het UML boek, alleen daar staan voornamelijk voorbeelden met bijvoorbeeld de klasse dieren en daarna bijvoorbeeld een aap (dit is alleen lastig omzetten naar mijn applicatie).

Concreet mijn vraag: hebben jullie tips waar naar te kijken? En wat kan ik bijvoorbeeld al weg laten of waar kan ik het beste advies in winnen? Heb meerdere pogingen gedaan (heb ook een ERD van mijn database en heb deze ook daarin meegenomen).

De applicatie is simpel gezegd een loginscherm met registratie functie (aan het database gekoppeld), na registratie kan met inloggen en komt men op een hoofdscherm waar zij hun gegevens kunnen aanpassen, testen kunnen selecteren en/of maken, certificaten ophalen en scores inzien.

Alvast bedankt voor de eventuele moeite!

Met vriendelijke groet,

Koen

[ Voor 18% gewijzigd door koens-1 op 10-03-2019 16:14 ]

Beste antwoord (via koens-1 op 27-03-2019 19:32)


  • fo0
  • Registratie: Juli 2018
  • Laatst online: 12-01-2023

fo0

koens-1 schreef op maandag 25 maart 2019 @ 14:39:
[...]


Bedankt voor de reactie, punt 1, 2 en 3 ben ik mij van bewust. Voornamelijk punt drie kan ik niet zo makkelijk oplossen want zoals men kan lezen dien ik 20 klassen te hebben (als ik van alle aparte testen een test maak, ben ik er dus veel kwijt) of heb je een beter voorstel :) ).
Ja, definieer alle test met een abstracte klasse 'Test'. Zo laat je gelijk zien dat ze daar allemaal onder vallen.
Verder zijn Admin en User wel degelijks twee aparte entiteiten.
Ik zeg ook niet dat het geen entieiten zijn, het zijn verschillende users zoals je al aangeeft. Dus net zoals met 'tests' is er een user (abstract) die verschillende type users heeft dus.
code:
1
Admin : User
en
code:
1
Default : User
Een User is namelijk niet perse een admin, andersom idd wel, dit moet ik dus nog aangegeven in de associations.
Je kan het ook oplossen door een property op te nemen in een entiteit 'user' genaamd 'IsAdmin' heeft. Wanneer en waarom je dit doet hangt af van de requirements.
Ik snap alleen niet helemaal waarom register geen entiteit is? Terwijl als ik bij andere klassendiagrammen kijk staat deze er bijna altijd bij.
Register is een actie die de gebruiker doet, net zoals 'Geef mij hoofdscherm' of 'Laat mij alle test zien'. Als jij registers wilt registreren kan dat in een aparte tabel.
DifficultLevel is idd geen entiteit (hier is wat fout gegaan bij het exporteren).
Ben het geheel nu ook aan het aanpassen en zal hem binnenkort posten.
Je kan 'DifficultLevel' wel meenemen als Enum.
bedankt voor de feedback in ieder geval!
Graag gedaan.
Groeten,

Koen

Alle reacties


Acties:
  • +1 Henk 'm!

  • isomis
  • Registratie: Mei 2005
  • Laatst online: 03-10 10:44
Het is alweer een tijdje geleden, dus laat ik mijn best doen:

- Consistent zijn. Ik zie id en user_id. Gebruik overal gewoon id. Echter als een class gekoppeld is met een andere class gebruik je user_id.
- Ik weet niet exact meer wat de regels zijn qua hoofdletter gebruik. Even opzoeken. Volgens mij kleine letter beginnen, tweede woord hoofdletter
- login screen is volgens mij geen class. Interfaces neem je niet mee. Is niet echt een uniek object met zijn eigen gedrag. Volgens mij zet je dat op de pijltjes.
- ik zie heel veel velden met _id, zoals score_id. Alleen de koppeling met de class zie ik niet. Id komt ergens vandaan lijkt mij?
-addCategory werk je uit, maar de andere add's niet

Webontwikkelaar - Kitesurfer | Gamer


Acties:
  • +1 Henk 'm!

  • n9iels
  • Registratie: November 2017
  • Niet online
Kijk bij het verder uitwerken ook zeker naar de relaties die deze classes hebben. Daarvoor kun je verschillende soorten pijlen gebruiken.
Afbeeldingslocatie: https://upload.wikimedia.org/wikipedia/commons/0/0b/Uml_class_relation_arrows_en.svg.png

Acties:
  • 0 Henk 'm!

  • koens-1
  • Registratie: Maart 2013
  • Laatst online: 22-05 23:30
Bedankt voor de tips, de pijlen kende ik al, echter wilde ik deze pas gaan maken als de klassen correct waren. Toch bedankt voor deze tip :)

Acties:
  • 0 Henk 'm!

  • fo0
  • Registratie: Juli 2018
  • Laatst online: 12-01-2023

fo0

- MainScreen en LoginScreen lijkt mij geen entiteit.
- Ik weet niet hoe de opdracht luidt maar moeten er geen associations bij staan?
- Zoals je aangeeft ook Generalisation kan beter mbt 'Test'. Generaliseer dit gewoon met één entiteit 'Test' (wat hebben ze gemeen) en de rest zijn type testen.
- Admin en User zijn beide bv Users
- Vergeet even de methoden die komen later wel zorg eerst voor de entiteiten
- Register is geen entiteit maar een actie (hoort meer in een sequence diagram)
- DifficultyLevel is geen entiteit als niet meer dan één property bevat (3NV)
- Normaal gesproken benoem je geen foreign keys, dit doe je met associations. Bij meer op meer relatie doe je geen koppeltabel.

Acties:
  • 0 Henk 'm!

  • koens-1
  • Registratie: Maart 2013
  • Laatst online: 22-05 23:30
- MainScreen en LoginScreen lijkt mij geen entiteit.
- Ik weet niet hoe de opdracht luidt maar moeten er geen associations bij staan?
- Zoals je aangeeft ook Generalisation kan beter mbt 'Test'. Generaliseer dit gewoon met één entiteit 'Test' (wat hebben ze gemeen) en de rest zijn type testen.
- Admin en User zijn beide bv Users
- Vergeet even de methoden die komen later wel zorg eerst voor de entiteiten
- Register is geen entiteit maar een actie (hoort meer in een sequence diagram)
- DifficultyLevel is geen entiteit als niet meer dan één property bevat (3NV)
- Normaal gesproken benoem je geen foreign keys, dit doe je met associations. Bij meer op meer relatie doe je geen koppeltabel.
Bedankt voor de reactie, punt 1, 2 en 3 ben ik mij van bewust. Voornamelijk punt drie kan ik niet zo makkelijk oplossen want zoals men kan lezen dien ik 20 klassen te hebben (als ik van alle aparte testen een test maak, ben ik er dus veel kwijt) of heb je een beter voorstel :) ). Verder zijn Admin en User wel degelijks twee aparte entiteiten. Een User is namelijk niet perse een admin, andersom idd wel, dit moet ik dus nog aangegeven in de associations.

Ik snap alleen niet helemaal waarom register geen entiteit is? Terwijl als ik bij andere klassendiagrammen kijk staat deze er bijna altijd bij. DifficultLevel is idd geen entiteit (hier is wat fout gegaan bij het exporteren).
Ben het geheel nu ook aan het aanpassen en zal hem binnenkort posten.

bedankt voor de feedback in ieder geval!

Groeten,

Koen

Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • fo0
  • Registratie: Juli 2018
  • Laatst online: 12-01-2023

fo0

koens-1 schreef op maandag 25 maart 2019 @ 14:39:
[...]


Bedankt voor de reactie, punt 1, 2 en 3 ben ik mij van bewust. Voornamelijk punt drie kan ik niet zo makkelijk oplossen want zoals men kan lezen dien ik 20 klassen te hebben (als ik van alle aparte testen een test maak, ben ik er dus veel kwijt) of heb je een beter voorstel :) ).
Ja, definieer alle test met een abstracte klasse 'Test'. Zo laat je gelijk zien dat ze daar allemaal onder vallen.
Verder zijn Admin en User wel degelijks twee aparte entiteiten.
Ik zeg ook niet dat het geen entieiten zijn, het zijn verschillende users zoals je al aangeeft. Dus net zoals met 'tests' is er een user (abstract) die verschillende type users heeft dus.
code:
1
Admin : User
en
code:
1
Default : User
Een User is namelijk niet perse een admin, andersom idd wel, dit moet ik dus nog aangegeven in de associations.
Je kan het ook oplossen door een property op te nemen in een entiteit 'user' genaamd 'IsAdmin' heeft. Wanneer en waarom je dit doet hangt af van de requirements.
Ik snap alleen niet helemaal waarom register geen entiteit is? Terwijl als ik bij andere klassendiagrammen kijk staat deze er bijna altijd bij.
Register is een actie die de gebruiker doet, net zoals 'Geef mij hoofdscherm' of 'Laat mij alle test zien'. Als jij registers wilt registreren kan dat in een aparte tabel.
DifficultLevel is idd geen entiteit (hier is wat fout gegaan bij het exporteren).
Ben het geheel nu ook aan het aanpassen en zal hem binnenkort posten.
Je kan 'DifficultLevel' wel meenemen als Enum.
bedankt voor de feedback in ieder geval!
Graag gedaan.
Groeten,

Koen

Acties:
  • 0 Henk 'm!

  • koens-1
  • Registratie: Maart 2013
  • Laatst online: 22-05 23:30
Het begint er meer op te lijken nu, begin het geheel ook beter te snappen :D. Zeer bedankt voor de feedback nogmaals! :)

Heb hem nu aangepast (zie onderstaande plaatje). Enige feedback op de klassen? Alle relaties heb ik globaal gedaan behalve degene met open pijl (die wist ik zeker). De inhoud klopt nog niet, maar dat ga ik doen nadat ik zeker weet dat de klassen correct zijn.

Afbeeldingslocatie: https://i.postimg.cc/TKH720Kv/knipsel2.png

met vriendelijke groet,

Koen

[ Voor 67% gewijzigd door koens-1 op 27-03-2019 19:40 ]


Acties:
  • 0 Henk 'm!

  • koens-1
  • Registratie: Maart 2013
  • Laatst online: 22-05 23:30
Progressie:

Afbeeldingslocatie: https://i.ibb.co/k0XcySJ/knipsel2.png
Pagina: 1