Informatica, deel 1: antwoorden oude examenvragen. SOCS 1. Hoe komt het dat het trager gaat om informatie van een diskette te halen dan van de harde schijf? Bij een diskette staan de schrijf- en leeskop in rechtsreeks contact met de schijf, om slijtage te voorkomen draait de schijf enkel wanneer ze geraadpleegd wordt. Het opstarten van de schijf zorgt voor een wachttijd van 0.5-2 seconden 2. Hoe komt het dat men meer informatie kan opslaan op een harde schijf da, op een diskette? Een harde schijf bestaat uit meerdere aluminium schijfjes met elk 2 magnetiseerbare toplagen, dit zorgt voor grote opslagcapaciteit. Harde schijven moeten niet verplaatst worden en mogen daarom fragiler zijn en dus ook beter gecomprimeerd. (De leeskop kan veel preciezer lezen door het vaste aangrijpingspunt. De motor mag sneller draaien dan bij de diskette want er is hier geen aanraking en dus geen brandgevaar.) 3. Wat zouden de gevolgen zijn indien IBM zijn pc’s geheim zou hebben gehouden? Leg ook de wet van Moore en bijhorende wet van Nathan uit. Er zouden geen andere compatibele computers met de IBM-pc zijn en dus minder concurrentiestrijd (enkel met Apple). Pc’s zouden waarschijnlijk duurder zijn en er zouden minder sterke ontwikkelingen zijn gebeurd. Wet van Moore: Het aantal transistors per chip en dus de rekenkracht verdubbelt elke 18 maanden. Deze wordt in stand gehouden door een cyclus (nieuwe technologieën brengen nieuwe mogelijkheden), door de wet van Nathan en door de concurrentiestrijd. Wet van Nathan: Software is een gas, het vult het recipiënt waarin het zich bevindt. D.w.z. programma’s waaraan steeds meer mogelijkheden worden toegevoegd, versterken voortdurend de vraag naar meer geheugen. 4. Zoek de foute bit in het codewoord. Bij welk opslagmedium wordt dit het meest gebruikt? 101001010010101001 Parity bits 101001010010101001 oneven: fout 101001010010101001 oneven: fout 101001010010101001 oneven: fout 101001010010101001 even: juist 101001010010101001 oneven: fout 1+2+4+16=23 bit is fout (zogezegd, vb klopt niet helemaal) Cachegeheugen (omdat dit een kopie is van het hoofdgeheugen), optische en magnetische schijven (er moet maar een kras of stroomstoring met magnetisatie zijn of er treedt al een fout op). 5. Wat zijn de voor- en nadelen van de microcode? Voordelen: - Instructieset gescheiden van ontwerp van de microprocessor - Veel beperktere verzameling van instructies Eliminatie van enkele fetch-decode-execute-cycli: de instructies worden in 1 keer opgehaald en de microcode kan dan 1 voor 1 telkens het datapad doorlopen, waardoor men maar 1 keer de fetch-decode-execute-cyclus moet uitvoeren en gewoon meerdere keren het datapad. - Achterwaartse compatibiliteit: de oude instructiesets kunnen nog steeds gebruikt worden want de microprocessor moet enkel de oude instructies vertalen naar zijn nieuwe microcode. Nadelen: - Extra vertaalstap nodig trager: het duurt langer door het ophelen van de instructies uit het geheugen. 6. Zijn convergentieproblemen bij LCD-schermen mogelijk? Nee, enkel bij CRT-schermen. CRT-schermen werken met een kathodestraalbuis: een elektronenstraal wordt afgevuurd door een kathode op een fosforescerend beeldvlak. Bij een kleurenscherm zijn er 3 elektronenstralen (voor elke kleur 1). Als de 3 elektronenstralen een beeldelement afbeelden op een verschillende plaats op het beeldvlak dan worden de 3 kleurencomponenten van het beeld lichtjes t.o.v. elkaar verschoven zodat er een regenboogeffect ontstaat, dit zijn convergentieproblemen. Aangezien een LCD-scherm werkt met vloeibare kristallen waardoor een stroom wordt gestuurd en niet met elektronenstralen, is er bij LCD-schermen geen sprake van convergentieproblemen. 7. Beargumenteer: de ruimte op een harde schijf wordt onefficiënt gebruikt. De ruimte op een harde schijf wordt nooit volledig benut. Er zijn 2 strategieën, constante of variabele frequentie. Bij constante frequentie neemt de afstand tussen 2 bits sterk toe met de afstand tot de as, het aantal bits dat per omwenteling voorbijkomt blijft constant. Bij variabele frequentie is een schijf ingedeeld in zones. Per zone blijft het aantal sectoren per spoor constant. Ook hier wordt de maximale ruimte niet benut omdat de bits op de buitenste sporen van een zone verder uit elkaar staan dan nodig. 8. Stel je bent producent van microprocessors, wat bepaalt welke instructieset je gebruikt? De software, dus welke programma’s je gebruikt. 9. Waarom is 1 kilobyte gelijk aan 1024 bytes en niet 1000 bytes? Omdat adressen binair worden opgeslagen, zal het aantal cellen in een geheugen steeds gelijk zijn aan een macht van 2. 1024 = 210 10. Wat is de functie van transistoren bij een TFT-scherm? Per beeldelement beschikt een TFT-scherm over een aparte transistor. De transistors zorgen voor de nodige stroom op de kristallen zodat hun moleculaire structuur wordt verbroken en de polariteit van het licht ongewijzigd blijft (bij geen stroom draait de polariteit van het licht 90°). De voorste polaroidplaat zal dan het licht dat door de achterste doorgelaten werd, tegenhouden. 11. Toon aan dat de formule van Hamming 2n ≥ m+n klopt. M is het aantal bits en n het aantal parity bits. –Een combinatie van n parity bits kan 2n plaatsen aanduiden want het kan 2n waardes aannemen. -Er kunnen in het codewoord m+n fouten zitten, namelijk het totaal aantal bits. Dit is de lengte van het woord. -Om alle fouten te kunnen aanduiden zal 2n dus groter dan of gelijk moeten zijn aan m+n. 12. Hoe kunnen pc’s van één generatie compatibel zijn met hun voorgangers? Door een gepaste vertaalstap naar hun eigen microcode. 13. Hoe zou de computerwereld er volgens u uitzien als halfgeleiders nooit waren uitgevonden? Als halfgeleiders nooit waren uitgevonden, zouden transistors en chips niet bestaan. Computers zouden dan nog steeds reusachtig zijn met duizenden snoeren en contacten. Computers zouden enkel gebruikt worden voor zeer grote doeleinden of de technologie zou uitgestorven zijn zodat we geen informaticarevolutie hebben gehad. 14. Wat zorgt voor de schakeling tussen hardware en software? Instructieset of microcode? Microcode, de machinetaal wordt geïnterpreteerd door de microcode, dat dan direct door de hardware wordt uitgevoerd. 15. Wat is het verschil tussen een coprocessor en een versneller? Een coprocessor worden de instructies van de grafische kaart op het niveau van de sturingsprogramma’s al gescheiden en neemt alle opdrachten van de grafische kaart voor zijn rekening zodat de CPU er niets meer mee te maken heeft. Een coprocessor kan ook geprogrammeerd worden. Een versneller is een afgeslankte versie van de coprocessor. Een versneller kan niet geprogrammeerd worden, maar ontvangt opdrachten van de CPU en voert ze uit. Zo is de CPU nog steeds verantwoordelijk voor het berekenen van het beeld maar delegeert de moeilijkste taken. 16. Is convergentie bij zwart-wit CRT-schermen mogelijk? Nee, bij zwart-wit CRT-schermen wordt er maar 1 elektronenstraal gebruikt. Bij convergentieproblemen verschuiven de 3 kleurencomponenten licht t.o.v. elkaar doordat de 3 elektronenstralen een beeldelement op een verschillende plaats op het beeldvlak afbeelden. Dit is dus niet mogelijk als er maar 1 elektronenstraal is. 17. Je krijgt de opbouw van een CD te zien. A) Welk medium is dit? B) Hoe worden de gegevens gelezen? C) Hoe wordt het onderscheid tussen een 1 en een 0 gemaakt? D) Is er een verband tussen de laser en de hoogte van de bultjes? E) Is het nodig hier een foutencorrectie in te bouwen? A) Optische schijf B) De putjes in de polycarbonaatlaag zijn geschikt langs een continue spiraal die begint in de buurt van het midden en uitwaaiert naar de rand. Bij het aflezen volgt een laser de spiraal langs de polycarbonaatzijde, zodat hij de putjes in de reflecterende laag als bultjes ziet. De bultjes hebben een hoogte gelijk aan een kwart van de golflengte van het laserlicht, zodat de stralen die door een bultje gereflecteerd worden een faseverschuiving vertonen van precies een halve golflengte t.o.v. het licht dat door de zones rond het bultje wordt weerkaatst. Beide signalen interfereren, waardoor er minder licht wordt teruggestuurd naar de optische detector die gemonteerd staat. Op die manier kan de Cd-speler het verschil zien tussen een bultje en een vlak stuk. C) De overgang van een bultje naar een vlak stuk of omgekeerd wordt geïnterpreteerd als een 1, de afwezigheid daarvan een 0. D) hoogte bultjes = ¼ golflengte laser E) Ja, de kleinste kras die op de schijf komt te staan, kan al voor fouten zorgen. 18. Benoem alle delen en leg de werking van transistoren en elektrodenplaten uit. Actieve matrix: Per beeldelement beschikt een TFT-scherm over een aparte transistor. De transistors zorgen voor de nodige stroom op de kristallen zodat hun moleculaire structuur wordt verbroken en de polariteit van het licht ongewijzigd blijft (bij geen stroom draait de polariteit van het licht 90°). De voorste polaroidplaat zal dan het licht dat door de achterste doorgelaten werd, tegenhouden. De elektrodenplaten zorgen voor de elektrische signalen. 19. Er zijn 2 computers A en B. Sommige programma’s van A werken op B. Wat weet je over de computers, instructieset en microcode? A en B zijn compatibel. A is een oudere computer dan B. B beschikt over een geschikte vertaling van de instructieset van A naar zijn eigen microcode. 20. Ontwerp een mechanisme voor een kleurenlaserprinter. Tekening 21. Men heeft voor een byte 8 bits gekozen, is het nodig dat dit een macht van 2 is? Nee, een byte hoeft niet uit 8 bits te bestaan. De reden om 8 bits te gebruiken is dat een byte 28=256 verschillende waarden kan bevatten, dit is net genoeg voor het aantal tekens van het westerse geschrift. Deze waarde werd ingevoerd door IBM, door hun grote invloed hebben de meeste producenten deze waarde overgenomen. (Een byte zou evengoed 9,10,11… bits kunnen bevatten.) 22. Geef de grootte van een frame buffer voor een broodrooster met resolutie van 256 x 256 en 256 kleuren. 256 x 256 pixels x 1 byte/pixel (256 grijskleuren) = 28 x 28 bytes = 216 bytes = 216/210 KB = 26 KB = 64 KB *In de grafische kaart (verbinding tussen computer en monitor) *Computerinterface (verbinding met computer) en videointerface (verbinding met monitor) *zie vraag 16 23. Kan ghosting voorkomen bij CRT-schermen? Nee, ghosting komt enkel voor bij LCD-schermen omdat de beeldelementen zich moeten herstellen. Ghosting is het fenomeen waarbij het eerst doorlopen beeldelement al teruggekeerd is naar zijn oorspronkelijke toestand nog voor het laatste beeldelement doorlopen is. 24. Zijn RISC-processoren achtwerwaarts compatibel? Ja, zijn instructieset wordt telkens meegenomen. Ze zijn echter niet compatibel met de oude computers voor de opsplitsing RISC en CISC omdat bij het ontwerpen van RISC-processoren geen rekening werd gehouden met al bestaand computerarchitecturen. 25. Wat is de minimale grootte van de frame buffer bij een schermresolutie van 1600 x 1200 voor 16 miljoen kleuren? 1600 x 1200 pixels x 3 bytes/pixel = 5 760 000 bytes = 5.5 MB 26. Bespreek: het binair talstelsel is het meest efficiënte. Bijvraag: Je hebt 1 computer van Intel en 1 van AMD, met hetzelfde programmasysteem (bijvoorbeeld Windows). Wat is er anders? Microprocessor of instructieset? Er zijn slechts 2 spanningsniveaus die onderscheiden moeten kunnen worden. Zo blijft het verschil tussen 2 opeenvolgende niveaus maximaal en is de kans op fouten minimaal. *bijvraag: microcode (instructieset wordt bepaald door het programmasysteem) 27. Vergelijk een CD-RW met een ZIP-schijf. ZIP Opslagmedium Magneetschijf 750 MB Niet herschrijfbaar Van de markt verdwenen CD-RW opslagmedium Optische schijf 700 MB herschrijfbaar nog steeds aanwezig op de markt 28. Geef een evolutie, uitvinding… met een duidelijk commercieel gevolg. System 360 -computerfamilie: compatibel -multiprogramming: op elk moment kon het geheugen meer dan één programma bevatten -kon ander systeem emuleren: kon programma`s verwerken die eigenlijk voor een ander(soms verouderd)computersysteem zijn geschreven -voor die tijd enorm geheugen: 16 MB 29. Wat zijn de voor- en nadelen van een microchip? Voordelen: kleiner, sneller goedkoper Nadelen: gevoelig voor oververhitting. 30. Is het kleurenstelsel van beeldschermen en printers dezelfde? Wat is er verschillend? Hoe verkrijgt men rood bij een printer? Waarom? Nee, bij beeldschermen wordt een additief kleurenstelsel gebruikt, bij printers een subtractief. Additief: licht met verschillende frequenties worden opgeteld om een kleur te bekomen. Subtractief: Er wordt gebruik gemaakt van de complementen van de basiskleuren die elk één van de basiskleuren uitfilteren. Een bepaalde kleur wordt bekomen door basiskleuren van wit licht af te trekken. Rood verkrijgt men door magenta en gele inkt over elkaar op het papier te zetten. Cyaan inkt wordt niet gebruikt want dat zou het rood licht uitfilteren. 31. Becommentarieer volgende stelling: de microcode werd misbruikt om rekenkracht te verkrijgen. Onjuist, zie vraag 32 32. Werd de microcode gebruikt om het systeem te versnellen? Waarom wel/niet? Nee, maar wel om het systeem efficiënter te maken. Nieuwe technologieën konden makkelijker ontwikkeld worden: radicaal nieuwe processorontwerpen konden compatibel gemaakt worden met de oudere mits een geschikte vertaling naar hun eigen microcode. 33. Convergentie komt voor bij CRT-schermen. Bij welk printersoort kan een dergelijk probleem voorvallen? Bij laserprinters, voor kleur plaatsen ze in feite 4 printers achter elkaar: dit is te wijten aan het feit dat de rollen niet goed tegenover elkaar afgesteld zijn. 34. Waarom wordt de leeskop bij een diskette tegen de schijf geplaatst en bij de harde schijf niet? De schijf van een floppy kan soms schuin bewegen tijdens het draaien, als de schijf tegen de leeskop is geplaatst, kan de leeskop de schijf goed volgen. De harde schijf zit vast in de processor en kan dit niet voor hebben. 35. Zijn LCD-schermen ook rasterscanapparaten? Ja, passieve matrixen zeker want er kan telkens maar één kruispunt van 2 draden opgelicht worden. Bij actieve is het iets anders, indien de transistoren via een draadnet hun stroom krijgen, zijn het ook rasterscans. Als elke transistor apart stroom krijgt van een onafhankelijke draad, zijn het geen rasterscans. (Rasterscanapparaten zijn toestellen die een beeld lijn per lijn creëren.) 36. Stel je een theaterspot voor. Voor deze spot wordt een gekleurde plaat geplaatst zodat men rood licht bekomt. Is dit een voorbeeld van additief of subtractief kleurgebruik? Subtractief: een theaterspot zendt wit licht uit (bevat alle kleuren), de kleur die men wil bekomen door er een gekleurde plaat voor het wit licht te zetten, wordt eruit gefilterd. 37. Bespreek het verschil tussen actieve en passieve matrix bij LCD-schermen. Passief: Aan weerszijden van de vloeibare kristallen bevindt zich een net van evenwijdige elektroden. Het voorste horizontaal, het achterste verticaal. Door precies 1 paar van deze draden te activeren (1 van elke plaat), wordt er een elektrische stroom gestuurd doorheen de laag van de kristallen, precies op de plaats waar beide stroomdraden elkaar kruisen. Op die plaats wordt de polariteit van het licht niet meer gedraaid, en zal het licht door combinatie van de voorste en achterste polaroidplaat tegengehouden worden. Wanneer de stroom wordt onderbroken, duurt het even vooraleer de moleculaire structuur hersteld is. Als in die responstijd alle paren van elektroden doorlopen worden, krijgt het menselijke oog de indruk dat er een volledig beeld op het scherm staat. Actief: Per beeldelement beschikt een TFT-scherm over een aparte transistor. Een erg kleine elektrische impuls volstaat opdat de transistor de nodige stroom zou aanbrengen op de vloeibare kristallen. Omdat de elektrische signalen zoveel kleiner kunnen zijn, duurt het veel minder lang om alle beeldelementen te doorlopen en kan er dus gewerkt worden met kristallen van een kortere responstijd. 38. Beschrijf het mechanisme van een kleurenlaserprinter. Er zijn 2 manieren. Eerste: werken met 1 printrol: het papier voor elke kleur een keer langs de printrol voeren. 4x langer, goedkoop Tweede: werken met 4 printrollen (en dus eigenlijk 4 laserprinters): elke printrol heeft zijn eigen kleur en het hele traject kan in 1 keer afgelegd worden. Kortere afdruktijd, duur, zwaar 39. Op welk principe steunt het cachegeheugen? Lokaliteitprincipe: erg vaak zijn de gevraagde gegevens en instructies in de loop van een programma in de directe nabijheid van de laatst gebruikte gegevens en instructies in het hoofdgeheugen opgeslagen. 40. Is de vraag of computer A compatibel is met computer B afhankelijk van of het een RISC of CISC computer is? Nee, enkel de instructieset moet min of meer overeen komen. 41. Zal een codewoord met de methode van Hamming ooit een lengte hebben van een macht 2? Nee, want dan zou er op de laatste plaats een parity bit staan die de bits daarna moet controleren maar die zijn er niet en dus zou die parity bit nutteloos zijn. (die is er dus ook niet) JAVA 1. Leg uit: klasse. Waaruit bestaat het? Een klasse is een groep van objecten. De klasse beschrijft de aard van het object. De objecten zelf zijn opzichzelfbestaande exemplaren van de klasse. Klassen bevatten velden, constructors en methodes die de toestand en het gedrag van objecten bepalen. 2. Hoe kan men in Java objecten groeperen? Geef voor- en nadelen + voorbeelden. M.b.v. collecties: collectieobjecten zijn objecten die een willekeurig aantal andere objecten kunnen bevatten. -(Array)List: collectieklasse uit de bibliotheekklasse van Java die een veranderlijke omvang heeft. (memo’s) Voordelen: interne capaciteit kan aangepast worden, eigen teller van het huidige aantal opgeslagen items, houdt de volgorde van de items bij -arrayobject: speciaal type collectie waarin een onveranderlijk aantal elementen kan worden opgeslagen. (uren in een dag) Voordelen: het benaderen van items is efficiënter, kunnen objecten of waarden van primitieve types bevatten Nadeel: onveranderlijk omvang -map: Collectie waarin sleutel-waardeparen als records worden opgeslagen. De waarden kunnen worden opgezocht aan de hand van de bijhorende sleutel. (telefoonboek: persoon – nummer) Voordelen: waarden kunnen gemakkelijk gevonden worden a.d.v. de sleutel (en dus niet index) -set: Collectie waarin elk afzonderlijk element slechts eenmaal kan worden opgeslagen. De set houdt geen bepaalde volgorde in stand. (helpdesk: vraag zien als aparte woorden en die woorden opslaan in een set) Voordelen: geen bepaalde volgorde van de elementen, elk element komt maximaal 1 keer voor 3. Wat zijn lussen? Waarvoor worden ze gebruikt? Bespreek de eindigheid. Hoe kan je goed design van lussen testen? Lussen zijn methodes/mechanismen. Ze worden gebruikt om een reeks statements steeds opnieuw uit te voeren, zonder dat de reeks steeds opnieuw geschreven hoeft te worden. De forlus en de for-each-lus doorlopen heel de collectie. De while-lus doorloopt een collectie zolang als de booleaanse expressie waar is. Als de index op het einde van de body bij een while-lus niet wordt opgehoogd, blijft de expressie waar en wordt de lus een oneindige lus. Hoe testen 4. Wat zou er gebeuren als private vervangen wordt door public? Dat deel van de klasse is nu ook zichtbaar voor andere klassen, andere klassen kunnen dit stukje broncode lezen en weten nu hoe dat stukje werkt. 5. Leg elke term van een klassendefinitie in Java uit. 1) Velden of instantievariabelen bevatten gegevens die door een object worden gebruikt. 2) Constructors worden gebruikt om een object op de juiste manier in te stellen wanneer het wordt gemaakt. 3) Methodes: accessormethodes retourneren informatie over de toestand van het object en mutatormethodes veranderen de toestand van het object. 6. Hoe wordt een lus gevormd? Bespreek voor- en nadelen. - For-each-lus Voordelen: itereren over alle elementen in een collectie Nadelen: Houdt geen teller bij, enkel bruikbaar voor collecties - For-lus Voordelen: houdt een teller bij, handig als je op voorhand weet hoeveel iteraties je nodig hebt - While-lus Voordelen: handig als je niet weet hoeveel iteraties je nodig hebt Nadelen: je moet zelf een variabele voor het indexnummer buiten de lijst declareren, deze variabele moet je zelf initialiseren met de waarde 0, de waarde van de elementen moet je zelf toekennen aan een variabele, je moet zelf een teller bijhouden, je moet zelf de tellervariabele verhogen 7. Leg het verschil uit tussen attributen, parameters en lokale variabelen. Attributen zijn instantievariabelen die gegevens bevatten die door een object gebruikt worden. Hun levensduur is gelijk aan de levensduur van het object waartoe het behoort. Parameters bevatten extra informatie voor een bepaalde taak, deze kan slaan op een constructor of een methode, parameters komen overeen met een waarde. Hun levensduur blijft beperkt tot 1 aanroep van een constructor of methode. Lokale variabelen worden gedeclareerd en gebruikt binnen 1 methode, hun levensduur is dan ook beperkt tot die methode zelf. 8. Definieer kort: private, public, static en final. Private: private elementen kunnen alleen worden benaderd vanuit dezelfde klasse Public: publieke elementen kunnen ook worden benaderd vanuit andere klassen Static: sleutelwoord dat klassenvariabelen definieert. Klassenvariabelen worden opgeslagen in de klasse zelf en worden gemeenschappelijk door objecten van deze klasse gebruikt. Final: sleutelwoord dat constanten definieert. Constanten zijn vergelijkbaar met variabelen maar hun waarde kan tijdens uitvoering van een toepassing niet veranderd worden. 9. Leg itereren uit met de mogelijkheden en de voor- en nadelen. Itereren = elementen van een collectie doorlopen. Mogelijkheden: 3 lussen + iteratorobject Lussen: zie vraag 6 Iterator: voordeel: werkt voor alle collecties in de java klassenbibliotheek In combinatie met for-lus: om elementen tijdens het itereren te verwijderen In combinatie met while-lus: om de uitvoering van de lus te kunnen beëindigen nog voor het einde van de collectie bereikt is: de gehele lusindexvariabele (om de positie in de lijst bij te houden) wordt vervangen door een iteratorobject. 10. Bespreek sets, maps, HashSets, HashMaps. Wat zijn hun verbanden? Sets en maps zijn collecties. HashSets en HashMaps zijn specifieke collecties hiervan. Set en map geven aan welke gegevens de klasse opslaat. Hash- geeft de manier aan waarop dit gebeurt. Uitleg set en map, zie vraag 2. 11. Bij methode heb je argumenten, parameters, lokale variabelen en returnwaarden. Bespreek deze elementen en geef voorbeelden. Is er een verschil bij deze elementen als men objecten of primitieve waarden gebruikt? Argument = header, signatuur van de methode: bevat informatie nodig om de methode aan te roepen Algemeen uitzicht: public/private typMethode naamMethode (typeParameter naamParameter) Parameters: bevatten aanvullende informatie voor een bepaalde taak, staan op het einde van het argument tussen haakjes, ze komen overeen met een waarde, die waarde moet in het begin van de methode toegekend worden door de gebruiker, hun levensduur blijft beperkt tot 1 aanroep van de methode Vb: … (int uur) Lokale variabelen: variabele die binnen de methode (dus in de body) gedeclareerd en gebruikt wordt, levensduur blijft beperkt tot die methode Vb: public int refundBalance () {int amoundToRefund; amountToRefund = balance; balance = 0; return amountToRefund;} returnwaarden: 12. Wat is het voordel van klasse georiënteerd programmeren? Hoe ziet een klasse eruit? Klasse georiënteerd programmeren: zwakke afhankelijkheid (inkapseling, wijzigingen lokaal houden), sterke cohesie (ontwerpen op basis van verantwoordelijkheden): Dankzij een goede klassenontwerp maakt het gemakkelijker wanneer een toepassing gewijzigd, gecorrigeerd of uitgebreid moet worden. Het biedt ook de mogelijkheid om onderdelen van de toepassing in andere contexten (bijvoorbeeld voor andere projecten) opnieuw te gebruiken. 13. Wat wordt er bedoeld met cohesie en koppeling van klassen? Waarom? Hoe kunnen we dat bekomen? Een sterk coherente klasse heeft de verantwoordelijkheid voor een goed afgebakende entiteit. Elke methode in die klasse staat in voor een duidelijke, afgebakende taak. Met de koppeling van klassen bedoelt men de afhankelijkheid, de onderlinge verbondenheid van klassen. We streven in ons ontwerp naar een sterke cohesie en een zwakke afhankelijkheid. Sterke cohesie kunnen we bekomen door ontwerpen op basis van verantwoordelijkheden: elke klasse implementeert een taak van een toepassing. Zwakke afhankelijkheid wordt bekomen door inkapseling: enkel de informatie over wat een klasse kan doen zou zichtbaar mogen zijn (interface) en niet hoe de klasse dat doet (implementatie) en door wijzigingen lokaal te houden: een wijziging in de ene klasse moet een minimaal effect hebben op een andere klasse. Waarom: zie vraag 12 14. A) Wat hebben we gezien zodat er in software zo min mogelijk fouten komen? B) Als er dan toch fouten zijn, hoe kan je die opsporen? A) sterke cohesie en zwakke afhankelijkheid B) testen van componenten, positief testen, negatief testen, regressietests, automatisering van tests, object inspectors gebruiken, testklassen, debuggen, handmatig de code doorlopen, afdrukstatements