Summary Object georienteerd programmereren in Java 2

-
234 Flashcards & Notes
7 Students
  • This summary

  • +380.000 other summaries

  • A unique study tool

  • A rehearsal system for this summary

  • Studycoaching with videos

Remember faster, study better. Scientifically proven.

This is the summary of the book "Object georienteerd programmereren in Java 2". The author(s) of the book is/are Open Universiteit. This summary is written by students who study efficient with the Study Tool of Study Smart With Chris.

PREMIUM summaries are quality controlled, selected summaries prepared for you to help you achieve your study goals faster!

Summary - Object georienteerd programmereren in Java 2

  • 1.1.1 1.1 Software ontwikkeling

  • Wat is software ontwikkeling in het klein?
    Bij software ontwikkeling in het klein is er sprake van de volgende kenmerken:
    • Ontwikkeld door één programmeur
    • Kan in een beperkte tijd worden ontwikkeld.  Beperkte tijd is meer uren of dagen dan maanden of jaren.
    • Er is een duidelijke productomschrijving voorhanden waaruit nauwkeurig valt op te maken wat het programma moet doen.
    • Er is geen gebruikersgroep voor wie het programma per se moet worden onderhouden.
  • Wat is software ontwikkeling in het groot?
    Als de ontwikkeling van een programma aan geen enkele van de kenmerken voor klein voldoet is er duidelijk sprake van ontwikkeling in het groot. Al het overige valt in een schemergebied hiertussen in.
  • Geef een globaal overzicht van de ontwikkeling van een groot softwaresysteem.
    Globaal gezien bestaat een  dergelijk traject uit de volgende fasering :
    • Voortraject
    • Analyse : producten zijn use case model en een domeinmodel.
    • Constructie : iteraties bestaande uit ontwerp, implementatie, testen. Producten zijn ontwerpmodel, technisch ontwerp
    • Afronding : producten bv prototype maar ook GAT vindt hier plaats.
    • Overdracht waarna onderhoudsfase begint.
  • Waarom is een analyse fase vereist?
    Om vast te stellen wat de specificaties zijn die aan het product worden gesteld en te bepalen of het systeem wel met bestaande methoden en technieken kan worden gerealiseerd en of dat binnen de randvoorwaarden kan die in het voortraject zijn gesteld.
  • Geef een manier aan waarmee specificaties kunnen worden vastgesteld.
    Opsporen van alle gebruiksmogelijkheden (use cases) van het systeem door opdrachtgever, toekomstige gebruiker en ontwikkelaars. 
    Een use case of gebruiksmogelijkheid is een soort scenario waarin een typische interactie tussen een mogelijke gebruiker en het systeem wordt weergegeven.
  • Wat is een domeinmodel?
    Een domeinmodel is een model waarin het deel van de werkelijkheid is beschreven waar het systeem betrekking op heeft.  Bij een objectgeorieenteerde analyse wordt dat gedaan in de vorm van klassen, hun relaties en interacties.
  • Lijkt het domeinmodel eigenlijk niet op een ontwerp voor een objectgeorienteerd programma?
    Nee! Er wordt namelijk helemaal geen rekening gehouden met de functionaliteit die de software moet gaan bieden. Een domeinmodel is vaak niet volledig, allerlei details worden bewust weggelaten om het geheel begrijpelijk en hanteerbaar te maken. 
    Daarnaast worden de essentiële processen uit het domein vaak beschreven.
  • Wat gebeurt er in het constructie gedeelte?
    Hier wordt gefaseerd het te realiseren systeem gemaakt. In iedere fase worden dezelfde stappen doorlopen te weten: ontwerp, implementatie en testen. De basis voor de verschillende faseringen kan liggen in de lijst van gebruiksmogelijkheden die in de analysefase zijn opgesteld.
  • Wat gebeurt er in de ontwerp stap van een objectgeoriënteerd systeem?
    Dan wordt vastgesteld uit welke klassen het programma zal bestaan en hoe die klassen met elkaar samenhangen. Aan het van deze stap moet duidelijk zijn welke verantwoordelijkheden elke klasse in het programma zal hebben.
  • Wat is een ontwerpmodel?
    Een ontwerpmodel is een klassenstructuur die niet alleen de verantwoordelijkheden van een klasse in beeld brengt maar ook aangeeft hoe die verantwoordelijkheden zullen worden gerealiseerd.
  • Vaak zal bij het opstellen van een ontwerpmodel het domeinmodel als vertrekpunt worden gebruikt. Maar het ontwerpmodel kan significant afwijken van dit domeinmodel bijvoorbeeld als gevolg van beheerstaken of effectievere oplossingen. 
    Zeker bij grote ontwikkeltrajecten zijn het opstellen van het domein model en ontwerp of software model (aka technisch ontwerp) gescheiden activiteiten en verantwoordelijkheden. 
  • Wat gebeurt er allemaal in een implementatie stap?
    Op basis van een ontwerpmodel wordt een mini-ontwerpstap doorlopen waarin wordt bepaald hoe de klasse haar verantwoordelijkheden gaat realiseren. Dit kan leiden tot een separaat implementatiemodel waarin alle attributen met hun typen zijn vastgelegd en alle methoden met hun signatuur (de kop vd methode) en een beschrijving van hun werking.
    Daarna wordt de klasse gecodeerd. Omdat de specificatie nauwkeurig is vastgelegd kunnen nu meerdere programmeurs onafhankelijk van elkaar aan verschillende klassen werken.
  • Wat gebeurt er allemaal in de stap testen in de constructie fase?
    Elke klasse wordt apart getest dmv een kleine testomgeving (Junit in ons geval). 
    Als alle klassen werken worden ze samengevoegd tot een een programma wat weer wordt getest.

    Een adequate teststrategie zou hierbij moeten helpen om het aantal fouten zo klein mogelijk te maken. De  teststrategie is er op gericht om de set van tests dusdanig te maken dat een representatieve set van invoermogelijkheden is beschreven.
  • Wat gebeurt in de afrondingsfase?
    Overdracht naar de opdrachtgever om GAT uit te voeren of bijvoorbeeld demoversie op internet. Doel is om de laatste fouten obv gebruikerservaringen boven water te halen zodat het product kan worden afgehecht, opgeleverd en overgedragen.
  • Wat is een prototype?
    Dit is een experimentele versie van een te realiseren systeem. 
    Hiermee kan worden vastgesteld of aan alle eisen van het programma is voldaan en of aan de verwachtingen van de opdrachtgever wordt tegemoet gekomen.
    Een prototype kan worden gerealiseerd door korte iteraties van de volledige cyclus : analyse, constructie en afronding.
  • Waar bestaat onderhoud uit?
    1. Het corrigeren van fouten die in de software zitten;
    2. Veranderingen doorvoeren agv veranderingen in het domein of in de omgeving waar de software draait.
    3. Toevoegingen realiseren agv nieuwe gebruiksmogelijkheden (use cases).
Read the full summary
This summary. +380.000 other summaries. A unique study tool. A rehearsal system for this summary. Studycoaching with videos.

Latest added flashcards

Wat is het propageren van exceptions?
Een checked exception hoeft niet per se door de methode zelf gevangen te worden. Deze mag ook "doorgegeven" worden naar de aanroepende methode. Dit gebeurd door de exception opnieuw te specificeren in een throw-clausule in de signatuur van de methode.
Hoe ziet de syntax van een try-opdracht er uit?
De syntax van een try-opdracht luidt als volgt:

try {
    opdrachten
}
catch (throwable variabelenaam) {
    opdrachten
}
finally {

    opdrachten
}
Wat is de volgorde van constructiewerkzaamheden bij het gebruik van super?
  • Eerst wordt de constructor van de superklasse aangeroepen
  • dam worden de attributen geinitialiseerd
  • tot slot wordt de rest van de code uit de constructor uitgevoerd.
Kan een cast ook voorkomen in een expressie?
Ja, maar de punt van de methodeaanroep heeft een hogere prioriteit dan de cast.

Voorbeeld:

Persoon p = new Docent("Stevens");
Vak v = ((Docent)p).getVak();

Het gedeclareerde type van P is Persoon, het actuele type is Docent. We mogen op p alleen de methode getVak aanroepen als we een cast gebruiken.
Wat zijn de regels voor casting bij referentietypen?
Uitgaande van een object van gedeclareerd type B aan een variabele van type A.
  • Toekenning nooit toegestaan: tussen A en B bestaat geen superklasse-subklasse relatie.
  • Upcast of veilige toekenning: A is een directe of indirecte superklasse van B.
  • Downcast of onveilige toekenning: A is een directe of indirecte subklasse  van B: Het is niet zeker dat A alle eigenschappen van superklasse B heeft, is dus onveilig en vereist een expliciete cast. 
Wanneer moet een subklasse een constructor definitie bevatten?
Als een superklasse A een parameterloze constructor heeft, dan hoeft de subklasse B geen contructoren te bevatten. Java voorziet in een standaardcontructor, die uitsluitend bestaat uit de aanroep van de parameterloze constructor van A, dus alsof B de volgende constructor bevatte:

public B() {
   super();
}

Heeft de superklasse A echter uitsluitend constructoren met parameters, dan moet de subklasse B tenminste een constructor bevatten.
Waar begint de constructie van de instantie van een subklasse altijd mee?
Het laten construeren van het deel dat afkomstig is uit de superklasse door een constructor uit die superklasse. Java kent daarvoor een aparte opdracht:

super (parameterlijst);
Wat is de syntaxis van de definitie van een subklasse?
[toegang] class klassennaam extends superklassennaam
blok
Beschrijf de mogelijkheden qua toegangsspecificatie
  • protected
    Toegankelijk voor subklassen onafhankelijk van de package (en alle andere klassen binnen dezelfde package)
  • private met set/get methoden
    Voor uitoefenen van controle is dit de beste toegangsspecificatie
    bv attribuut  naam vd klasse Persoon
    Private zodat ze hem nooit direct kunnen wijzigen 
    => wel een get maar geen set methode
  • private zonder set/get methoden
    Niet toegankelijk voor subklassen
  • package
    Toegankelijk vanuit programmacode die behoort tot klassendefinitie binnen dezelfde package. Dit is de standaard.
  • public
    Toegankelijk zonder beperkingen.
Geef een overzicht van het ontwikkelproces.