H5 - Ontwerpfase deel 1 Flashcards

1
Q

Leg uit wat ontwerp is (in verhouding tot analyse):

A

Tijdens de analyse wordt er bepaald WAT er ontwikkeld moet worden (de gebruikersvereisten worden in kaart gebracht en de structuur van het probleemdomein wordt gedefinieerd.)

Tijdens de ontwerpfase gaan we bepalen HOE we de software moeten structureren om de gebruikersdoelen te kunnen realiseren.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Som de taken in de ontwerpfase op:

A

1) Ontwerp van de applicatie:
o Database
 Statische systeemstructuur omzetten naar een efficiënte databasestructuur

o Gebruikersinterface:
 Functies die in de use-cases beschreven werden moeten we kunnen uitvoeren
 Use cases & detailbeschrijvingen vormen hier een belangrijk basis voor.

o Programmacode:
 Architectuurontwerp: de structuur van het geheel
 Detailontwerp: relaties van de kleinste programmaeenheden

2) Onwerp van de maatregelen voor security en privacy
3) Ontwerp van de (manuele) procedures
4) Ontwerp van de handleiding en de on-line help.
5) Ontwerp van de technische infrastructuur (hardware, netwerk, …).
6) Opstellen van een programmeer- en testplan.
7) Testen van ontwerp

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Leg uit wat architectuurontwerp is:

A

Het systeem in deelsystemen onderverdelen met het doel om te komen tot een flexibel en gemakkelijk onderhoudbaar informatiesysteem.

  • Deelsystemen zijn subsystemen/modules die samen werken om de volledige functionaliteit van het programma te realiseren
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Som de voordelen en nadelen van opsplitsen in deelsystemen op:

A

Voordelen:
Complexiteit is beter beheersbaar. Een subsysteem is op zichzelf gemakkelijker te begrijpen.

Men kan aan taakverdeling doen en parallel werken.

Moeilijkere delen die te complex zijn kunnen we isoleren in aparte subsystemen. De ontwikkeling hiervan kan uitbesteed worden

Aandachtspunten:
- Extra managementinspanning nodig zodat subsystemen consistent blijven met elkaar en samen een geïntegreerd systeem vormen.
o Dit betekent dat er strikte afspraken moeten zijn en dat de interfaces tussen de subsystemen goed moeten gedefinieerd zijn.
o Elk lid van het ontwikkelingsteam moet de verdeling respecteren.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Leg het begrip lage koppeling (low coupling) uit

Geef voorbeelden en toon aan waarom dit belangrijk is:

A

Lage koppeling betekent dat de afhankelijkheid tussen de delen van het informatiesysteem zo klein mogelijk is.

Bij een lage koppeling worden onderhoud en modules aanpassen gemakkelijker want aanpassingen hebben een beperkte impact op de rest van het systeem.

Voorbeeld:
- A is afhankelijk van B als A gebruik maakt van B en als een verandering in B ervoor zorgt dat A ook moet veranderd worden of nog eens her test moet worden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Leg het begrip hoge cohesie (high cohesion) uit

Geef voorbeelden en toon aan waarom dit belangrijk is:

A

Hoge cohesie binnen een module betekent dat de module een logische eenheid vormt en verantwoordelijk is voor een reeks taken die logisch samen horen.

Als elke module een duidelijk gedefinieerde verantwoordelijkheid heeft kunnen we:
o Gemakkelijker fouten opsporen en corrigeren.
o De oorzaak van een fout sneller gaan situeren bij één bepaalde module.

Voorbeeld:

  • Je hebt 2 klassen: User en Email.
  • Binnen User heb je volgende methodes: getName, getAge, sendEmail, validateEmailAddress
  • getName en getAge behoren tot de user, maar sendEmail en validateEmailaddress behoren daar niet thuis (= lage cohesie).
  • sendEmail, validateEmail behoren tot de klasse Email.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Leg het principe van een lagenarchitectuur uit, en leg uit wat de doel is:

A

Het systeem wordt verdeeld in een aantal lagen die elk hun eigen taak in het systeem vervullen.

Lagen maken gebruik van elkaars diensten, maar elke laag functioneert als een onafhankelijke component en heeft een duidelijk gedefinieerde verantwoordelijkheid (hoge cohesie!).

Het lagenarchitectuur moet er overigens voor zorgen dat er nieuwe functies toegevoegd kunnen worden en oude gewijzigd kunnen worden zonder de rest van het systeem te beïnvloeden.

In essenstie ondersheiden we vier lagen:
- Interfacelaag: Deze laag zorgt voor de communicatie met de buitenwereld
o User interface en communicatie met andere systemen

  • Domeinmodel: (Businessmodel)
    o De kern van het informatiesysteem
    o Bestaat uit domeinobjecten (business objects) die een weerspiegeling zijn van reele objecten en begrippen uit het probleemdomein
  • Functie- en eventlaag (Functionality layer, control flow)
    o Deze laag coördineert de communicatie tussen de interfacelaag en de domeinlaag
  • Persistentielaag (persistence layer):
    o Verantwoordelijk voor het opslaan van de toestand van de domeinobjecten in een database, en voor het weer ophalen van gegevens uit de database
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Ontwerpen van de opslagstructuur

Som op welke taken hierbij een rol spelen en leg beknopt uit:

A

1) Verzamelen van kwantitatieve gegevens
Stabiele gegevensstructuur is een vereiste voor het verder ontwikkelen van het systeem.

2) Keuze DBMS: relationeel, objectgeorienteerd, NoSQL

3) Ontwerp technisch datamodel
Omzetten van domeinmodel naar DBmodel
Domeindefinitie
Attributen met een beperkt domein

4) Ontwerp fysieke structuur van de database
o Optimalisatie van de toegangstijden, implementatie van specifieke vereisten en beperkingen, fysieke organisatie van de database, …

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Uitleggen waarom het verzamelen van kwantitatieve gegevens belangrijk is en enkele voorbeelden geven van zaken die hierbij beschreven worden.

A

Een stabiele gegevensstructuur is een vereiste voor het verder ontwikkelen van het systeem en voor de onderhoudbaarheid van het systeem op lange termijn.

Volgende zaken worden hierbij beschreven:
o Volumeschattingen (hoeveel data er opgeslagen zal worden)
o Bestandsactiviteit (hoe frequent gegevens worden geraadpleegd)
o Bestandsverandering (Het percentage records dat per periode een verandering ondergaat in een of meerdere velden)
o Bestandsverloop (Het aantal records dat per periode wordt verwijderd en vervangen wordt door nieuwe records.)
o De nodige bewaartijd
o Toegangsbeperkingen
o Stabiliteit van de gegevensvereisten
o Toegelaten zoektijden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Beknopt uitleggen wat het verschil is tussen een objectgeoriënteerde en een relationele dbms.

A

Bij objectgeorienteerde databases is het mogelijk om directe mapping te doen tussen de database en de objectgeorienteerde programmeertaal.

Bij relationele databases moeten we objecten uit elkaar halen en verdelen over verschillende tabellen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Enkele voorbeelden geven van criteria die bij de keuze van een leverancier een rol spelen.

A

talen die ermee kunnen worden gebruikt, flexibiliteit; security en privacy; back-up en recovery; kostprijs, overdraagbaarheid,…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly