Informatiesysteemontwikkeling Flashcards
Welke 3 golven kennen we?
- Maatwerk: zelf programmeren in veel verschillende programmeertalen.
- Pakketten: ontwikkelkosten verdelen
- Webservices: modules over internet laten communiceren via het aanroepen van API’s.
Welke programmeertalen kennen we?
1GL: machinetalen 2GL: assembleertalen 3GL: proceduretalen 4GL: declaratieve, niet-procedurele talen 5GL: natuurlijke taal programmeertalen
Wat zijn machinetalen?
1GL: numerieke instructies. Programmeren volgens instructieboekje van de processor. Moeilijk leesbaar, veel ruimte voor fouten. Nog weinig gebruikt.
Wat zijn assembleertalen?
2GL: tekst-codes = makkelijker leesbaar. Blijft 1 programmeerinstructie per processorinstructie en dus veel en complex én nog steeds processorafhankelijk. Assembler vertaald broncode naar machinecode.
Wat zijn proceduretalen?
3GL: programmeur kan niet meer elk van de 10^9 instructies zelf bepalen maar is makkelijker leesbaar en minder werk. Ook ruimte voor “commentaarlijnen” die computer zal negeren. Niet meer processor-afhankelijk.
Twee types vertalers:
- Compiler zet bronbestand met broncode om in object file = telkens wachten maar fouten opsporen door foutmelding.
- Interpreter zet telkens bij uitvoeren de broncode om naar machinecode, instructie per instructie = snel starten en flexibel maar vindt fouten pas als hij aankomt.
Twee subtypes:
1. gestructureerde talen: hiërarchie van functies en procedures. Pascal, Python, COBOL (Common Business Oriented Language).
2. object-georiënteerde talen: antropomorfisme (object = digitale representatie van iets in reële wereld)
Objecten bevatten data of attributen (naam, adres, …)
en procedures of methoden (bereken leeftijd, …).
Objecten zijn instanties van klassen (klanten, leveranciers, …).
Berichten tussen objecten met als naam een methode voor opvragen van attributen die anders niet toegankelijk zijn. = encapsulatie of information hiding.
Java, .NET, Python
Wat zijn declaratieve talen?
4GL: niet-procedurele talen. Noteren welk resultaat je wil zien ipv de instructies uit te schrijven. Zeer goed leesbaar.
SQL (Structured Query Language) om gegevens uit relationele databanken te halen zoals uit SystemR van IBM.
Wat zijn natuurlijke taal programmeertalen?
5GL: menselijke talen. Technologie die teksten kan verwerken. Nog niet helemaal doorgebroken omdat de nodige vertalers moeilijk te bouwen zijn.
WEL: codegeneratoren (Low Code platformen); GPT-3; Normalized Systems (onderzoek UA naar codegenerator met focus op flexibiliteit)
Wat betekent modulariteit bij programmeren?
Module = deel van systeem met duidelijke grens of interface = ingang-uitgang-model.
Naam beschrijft functie of verantwoordelijkheid v/d module en dient om de module aan te roepen.
Input-parameters en Return-waarden.
Modules aanroepen volgens black box (minder complexiteit) of white box (foutopsporing).
Hoge of lage granulariteit of fijnmazigheid.
Hergebruik en evolueerbaarheid (= plug-and-play = aanpasbaarheid).
Geen ripple-effects bij aanpassingen.
Wat is een applicatie?
applicatie = programma = artefact
Een hoeveelheid modules en constructen (functies; procedures en units; klassen (records en functies); componenten en services) of ook modules en interacties.
Wat is een systeemnetwerkdiagram?
In talen zoals Python ontstaan door aanroepen een hiërarchie of boom aan functies. De applicatie roept één of meer functies aan die op hun beurt andere functies aanroepen. VB abonnement TAC: module voor prijs berekenen, voor gegevens opslaan en voor abo afdrukken.
Wat is een wicked problem?
?
Wat zijn relationele databanken? Wat zijn de voordelen? (software)
Geïntegreerde gegevensverzamelingen los van applicaties als antwoord op beperkingen opslaan data in bestanden of files die horen bij applicaties.
- integratie: voorkomen update anomalieën nav redundantie in opslag gegevens.
- gelijktijdigheid: bestand slaagt gelijktijdige wijzigingen niet op, enkel de laatste overschrijft de vorige.
- beveiliging: welke gebruiker welke toegang
VB: adres klant voor leveringen, voor marketing, voor contracten, voor …
Zeer geschikt als basis voor TPS.
Wat is RDBMS?
Relational Database Management System
= CRUDS software deel van Databank (ander deel = de data zelf).
Waarom start golf 2: pakketten? Wat is het? Welke evolutie binnen golf 2?
PitL (Programming in the Large): ontwikkelingskosten spreiden over organisaties.
eind ‘80: departementale IS waartussen weinig tot geen integratie bestond = eilandautomatisatie.
- Standaardpakketten: de facto standaardisatie van functionaliteiten, opslagwijze en workflows.
- ERP-systemen: bedrijfsbrede standaardpakketten. Configuratie is vaak mogelijk.
Waar komen ERP-pakketten vandaan?
- MRP (Material Requirements Planning)
- MRP II (Manufacturing Resource Planning)
- ERP (Enterprise Resource Planning): naast volledige structuur ook bedrijfsprocessen.
Wat is een vanilla-implementatie en waarom hiervoor kiezen?
Implementatie zonder customisaties: wegens complex en duur. Het is vaak handiger om de organisatie aan te passen dan de software.
Dit gaat in tegen het ondersteunend perspectief.
Wat is UML?
Unified Modeling Language Gestandaardiseerde OO (Object Oriented) taal. Taal voor het weergeven van Software Modellen.
Wat bedoelen we met meerlagige architecturen bij de bouw van IS? Welke kennen we?
Het bepalen van welke software (en/of hardware) verantwoordelijk is voor welke functionaliteit.
1-lagig: zeer gecentraliseerd, alle kerntaken (invoer, verwerking, uitvoer) uitgevoerd door één hard- en software platform.
2-lagig: PC (personal computer) vooral input en output (laag 1) en mainframe gespecialiseerde verwerking (laag 2). Client-Server architectuur. Thick client vs Thin client afhankelijk van hoeveel de PC zelf doet.
n-lagig: gedistribueerde verwerking. Lagen: databank, applicaties, user interface, webtechnologie, …
Wat zijn de voordelen van meerlagige architectuur?
- performantie
- schaalbaarheid
- aanpasbaarheid
- centrale berekeningen op data uit verschillende toepassingen
- complexiteitsreductie
- specialisatie
Wat zijn Web Services?
Functionele modules, geïmplementeerd volgens meerlagige architectuur.
We kunnen ze
- samenstellen (aggregeren)
- vervangen (loose coupling)
- hergebruiken
Ze kunnen zelf andere services aanroepen en door andere services aangeroepen worden.
Integratie en evolueerbaarheid!
Welke 3 architecturen hangen samen met web services?
- Service Oriented Architecture (SOA)
- REST (Representational State Transfer)
- micro-services
Hoe web services aanroepen in SOA?
Standaard netwerkprotocollen zoals SOAP (Simple Object Access Protocol) en WSDL (Web Services Definition Language).
Interface in XML-formaat in WSDL-document gepubliceerd zodat aanroepende modules weten hoe ze adhv een XML-document een SOAP-boodschap kunnen sturen naar de aangeroepen service met de naam en alle parameters.
Wat is UDDI?
Universal Description, Discovery and Integration
Catalogi van beschikbare web services.
Wat is REST? Wat zijn de kernbegrippen?
Representational State Transfer
Geen netwerkprotocol maar een architectuur voor web services, gebaseerd op standaard netwerkprotocol van het internet: HTTP.
Uitwisselen van bestanden en media in plaats van XML-documenten: ook JSON (JavaScript Object Notation) wordt ondersteund.
Gebruik van URI (Uniform Resource Identifiers) om resources te identificeren.
- Client/server
- Stateless: server houdt geen info of status bij van gedane aanvragen
- Cacheable: antwoorden op vorige vragen tijdelijk bijhouden aan kant van client