BELEIDSINFORMATICA
1. Klassen en objecten
2. De klassentekst
3. Principes, systeemopbouw, input-output
4. Expansie- en referentieklassen
5. Keuze- en iteratiestructuren, menusystemen
6. Lijststructuren
7. Overerving en polymorfisme
8. Softwarekwaliteit en modulaire systemen
,1
,1. Klassen en objecten
1.1 Patronen, componenten, organisatie
Organigram ⇒ baas staat vanboven, taken worden doorgegeven aan
takken onderaan
➢ functionaliteit van programma uitbreiden
➢ softwaresysteem heeft hierarchische structuur
1.2 Object georiënteerd programmeren
Object georiënteerd programmeren = manier (één van de) om software te structureren
waarbij we denken in objecten en klassen waarbij elk:
❖ Programma = verzameling van instructies die door een computer uitgevoerd kunnen
worden om een bepaalde taak uit te voeren (kan heel complex worden, dus goede
structuur is nodig om die makkelijk te onderhouden etc).
➢ Instructies = opdrachten met de gegevens.
❖ Programmeertaal = een formeel gedefinieerde taal waarin de opdrachten die een
computer moet uitvoeren, worden beschreven. Er is weinig ruimte voor flexibiliteit en
interpretatie. De taal bevat:
➢ Syntax = een lijst van gekende woorden.
➢ Grammatica = een manier waarop de syntax gebruikt kan worden.
Hoe programma’s goed structureren?
Bekomernissen omtrent goede structuur in programma’s
❖ Fouten vermijden, onderhoudbaarheid voorzien, documentatie, teams…
❖ Hoe ervoor zorgen dat componenten van een bepaalde toepassing hergebruikt
kunnen worden?
❖ Hoe de toepassing opsplitsen zodat een team van mensen gelijktijdig kunnen
samenwarken aan de ontwikkeling ervan?
❖ Hoe ervoor te zorgen dat de toepassing makkelijk aangepast en onderhouden kan
worden?
❖ Hoe veiligheid garanderen in een online wereld?
❖ Hoe ervoor zorgen dat de toepassing prettig aanvoelt voor de gebruikers?
❖ Hoe de toepassing “defensief” te programmeren? Hoe omgaan met fouten?
❖ Hoe de toepassing zo te bouwen dat deze geïntegreerd kan worden in bestaande
systemen?
❖ Hoe te zorgen dat de ontwikkeling van een toepassing binnen budget en
tijdsraming blijft?
2
, Sinds de eerste computersystemen is er nagedacht over:
Paradigma’s = stelsel van modellen en theorieën om in dit geval antwoorden te bieden op
de vraag “hoe goed structureren”?
❖ Om de ontwikkeling van software zo gestructureerd en grondig als mogelijk te
laten verlopen.
❖ Veel van deze paradigma’s / denkwijzen zijn sterk gekoppeld aan bepaalde stijlen
van programmeertalen, alsook aan de mogelijkheden die een bepaald
computersysteem aanbiedt.
❖ Een programmeertaal is een formeel gedefinieerde taal (veel formeler dan onze
“menselijke talen”, er is dus helaas weinig ruitmte voor flexibiliteit of interpretatie)
waarin de opdrachten die een computer moet uitvoeren worden beschreven.
❖ Een programmeertaal heeft een bepaalde syntax en grammatica.
❖ Een code die geschreven is met een bepaalde programmeertaal kan door de
computer begrepen en uitgevoerd worden.
❖ Het goed structureren en ontwikkelen van een toepassing komt dus rechtstreeks
neer op het goed structureren en vormgeven van computerprogramma’s.
Een eerste oplossing voor structuur:
1) Procedureel programmeren = programma opdelen in procedures of
routines. Het programma is dan gebaseerd op de volgorde van instructies die
uitgevoerd moeten worden.
❖ Structuur is gedefinieerd door opbouw routines en data-structuren.
➢ voor complexe programma’s is dit absoluut niet handig
➢ moeilijk onderhoudbaar en leesbaar ⇒ spaghetti-code
2) Object georienteerd programmeren = procedures aanbrengen, een soort van “titels en
tussentitels….”, helpt programma gemakkelijker aan te passen / onderhouden.
❖ Structuur is gedefinieerd door objecten die dingen kunnen doen (routines) en
onthouden (attributen).
➢ programma baseren op basis van objecten die dingen kunnen doen (dus de
routines ervan) en die kunnen onthouden.
➢ nog steeds het meest gangbare programmeer paradigma dus de beste
manier om te programmeren vandaag de dag
3