ParetoAnalyse Deel2
Het Pareto-principe, in de volksmond ook wel de 80-20-regel genoemd, is een economische regel die opgesteld werd door Vilfredo Pareto in 1906. Hij stelde vast dat 80% van de bezittingen in Italië in handen was van 20% van de Italiaanse bevolking. Een Pareto-analyse kan gebruikt worden voor het analyseren van de impact van een aantal problemen of kwesties. Het laat toe om te bepalen welke problemen of kwesties de grootste prioriteit hebben.

Deel 2: Klasse ParetoAnalyse (3 punten)
- Voeg de private static methode berekenProcentueleImpact toe met als parameter een array van ParetoKwestie objecten. De methode zal voor elke ParetoKwestie object van de array het procentuele aandeel van de kwantitatieve impact van het ParetoKwestie object in de totale kwantitatieve impact van alle objecten van de meegegeven array berekenen. De berekende procentuele aandelen zullen vervolgens opgeslagen worden in de hiervoor voorziene instantievariabele van het bijhorende ParetoKwestie object.
- Voeg de private static methode berekenCumulatieveImpact toe met als parameter een array van ParetoKwestie objecten. De methode zal voor elke ParetoKwestie object van de array de cumulatieve impact van het object bepalen. De cumulatieve impact kan bepaald worden bij het eigen procentuele aandeel voor de kwantitatieve impact, de procentuele aandelen voor de kwantitatieve impact van alle voorgaande objecten (= voorgaand in de meegegeven array) op te tellen.
- Voeg de public static methode paretoAnalyse toe met als parameter een array van IKwestie objecten. Deze methode implementeert het volgende algoritme:
- Maak voor elke kwestie een ParetoKwestie object.
- Bereken het procentuele aandeel voor de kwantitatieve impact van de ParetoKwestie objecten.
- Sorteer de ParetoKwestie objecten op basis van de procentuele impact van groot naar klein.
- Bereken de cumulatieve impact van de ParetoKwestie objecten.
- Retourneer een ArrayList met IKwestie objecten waarvan de cumulatieve impact kleiner is dan 80%.
Hierbij nog wat uitleg over de Dodona-testen voor deze oefening:
- test00objectConcept: test of de ingediende klasse de verwachte de klasse definitie heeft (interface/abstracte klasse/klasse/enum/…).
- test01inheritance: test of de ingediende klasse de verwachte superklasse heeft en de verwachte interfaces implementeert.
- test02variables_presence: test of de ingediende klasse de verwachte instantievariabelen en statische variabelen definieert.
- test03variables_staticInitialValue: test of de statische variabelen van de klasse geinitialiseerd worden met de verwachte waarde (indien van toepassing).
- test04constructor: test of de constructor het gewenste effect heeft (indien van toepassing).
- test05methodsPresent: test of de verwachte methodes aanwezig zijn in de ingediende klasse en of de methode definities overeenkomen met de verwachte definities (= test geen effect!).
- test06accessorsMutators: test of de ingediende klasse de al dan niet verwachte accessor- en mutatormethodes definieert en of deze het verwachte effect hebben.
- test07berekenCumulatieveImpact: test de berekenCumulatieveImpact-methode. Indien de test succesvol is, scoor je de maximale punten voor deze methode.
- test08paretoAnalyse: test de paretoAnalyse-methode. Indien de test succesvol is, scoor je de maximale punten voor deze methode.
- test09paretoAnalyse_zonderSort: test de paretoAnalyse-methode, maar aanvaart ook oplossingen die de sorteer stap (= stap 3) niet uitvoeren.
- test10paretoAnalyse_zonderBerekenCumul: test de paretoAnalyse-methode, maar aanvaart ook oplossingen die de cumulatieve impact berekening (= stap 4) niet uitvoeren.
- test11paretoAnalyse_zonderBerekenProc: test de paretoAnalyse-methode, maar aanvaart ook oplossingen die de berekening van procentuele aandeel (= stap 2) niet uitvoeren. Dit komt op hetzelfde neer als stappen [2 en 3] niet uitvoeren, stappen [2 en 4] niet uitvoeren, stappen [2, 3 en 4] niet uitvoeren of stappen [3 en 4] niet uitvoeren.
Let op:
- Bij de beoordeling van het examen wordt niet enkel naar de resultaten van de tests gezien. Het is niet omdat een bepaalde test niet succesvol is, dat er automatisch punten afgetrokken worden. Bij het verbeteren wordt rekening gehouden met de resultaten van de testen, maar de beoordeling is nog altijd de code zelf (niet enkel het resultaat).
- Indien er niets over punten bij een test staat, zijn de resultaten louter indicatief. De resultaten van deze testen worden bij de beoordeling meegenomen, maar staan dus niet rechtstreeks voor een bepaald aantal punten.