Summary Software engineering werkboek

-
ISBN-10 9035820894 ISBN-13 9789035820890
271 Flashcards & Notes
1 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 "Software engineering werkboek". The author(s) of the book is/are P Oord. The ISBN of the book is 9789035820890 or 9035820894. This summary is written by students who study efficient with the Study Tool of Study Smart With Chris.

Summary - Software engineering werkboek

  • 1 Introduction

  • Leg uit wat het vak software engineering globaal inhoudt
    Software engineering is een vakgebied dat zich richt op alle aspecten van de productie van software, vanaf het opstellen van de specificatie tot aan het onderhoud nadat het systeem in gebruik is genomen. Ook zaken als project management en de ontwikkeling van tools en methoden behoren tot het vakgebied.
    [1]
  • Leg uit wat een softwareproces en een softwareprocesmodel zijn
    Een softwareproces is een verzameling van activiteiten en gerelateerde producten die leiden tot het produceren van software.
    Een softwareprocesmodel een vereenvoudigde beschrijving van een softwareproces vanuit een bepaald perspectief van het proces. Softwareprocesmodellen kunnen activiteiten, producten en rollen bevatten.
    [1]
  • Leg uit wat een software-engineeringmethode is en uit welke onderdelen zo'n methode bestaat
    Een software-engineeringmethode is een gestructureerde benadering van softwareontwikkeling, met als doel het produceren van kwalitatief hoogwaardige software op een kosteneffectieve manier.
    Een software-engineeringmethode bestaat uit de volgende onderdelen:
    • Beschrijvingen van de te ontwikkelen systeemmodellen
    • Voorwaarden voor de systeemmodellen
    • Aanbevelingen
    • Richtlijnen voor de inhoud en de organisatie van de activiteiten
    [1]
  • Noem de vier belangrijkste eigenschappen van goede software en licht deze toe
    • Maintainability: de software moet aangepast kunnen worden aan de veranderende behoeften van de gebruiker
    • Dependability: de software veroorzaakt geen fysieke of economische schade en kwaadwillende gebruikers mogen het systeem niet kunnen sabotteren
    • Efficiency/performance: de software maakt geen onnodig gebruik van hulpbronnen zoals geheugens en processors
    • Acceptability/usability: de software moet aansluiten bij de kennis en vaardigheden van de gebruikers
    Andere belangrijke eigenschappen zijn:
    • Reusability
    • Distributability
    • Portability
    • Interoperability
    [1]
  • Wat wordt in het tekstboek verstaan onder software en wat onder software engineering?
    • Software: computerprogramma's en bijbehorende documentatie
    • Software engineering: discipline die zich richt op alle aspecten van softwareontwikkeling
    [1]
  • Waarin onderscheidt software engineering zich enerzijds van informatica en anderzijds van system engineering?
    • Software engineering: technisch, gaat over hoe iets geconstrueerd wordt
    • Informatica: theoretisch, waarbij de inzichten de grondslag vormen voor software engineering
    • System engineering: is breder, houdt zich bezig met de constructie van willekeurige systemen
    [1]
  • Wat zijn de vier belangrijkste activiteiten in ieder softwareproces?
    • Specificatie
    • Ontwikkeling
    • Validatie
    • Evolutie
    [1]
  • Wat zijn de belangrijkste punten uit de Software Engineering Code of Ethics and Professional Practice?
    • Public: handel in het algemeen belang
    • Client en employer: handel in het belang van de klant en de werknemer
    • Product: streef naar de hoogste professionele maatstaven
    • Judgment: handel integer en onafhankelijk
    • Management: kies een ethische benadering
    • Profession: bewaak de integriteit en goede naam van het vakgebied
    • Colleagues: wees coöperatief
    • Self: volg de ontwikkelingen binnen het vakgebied
    [1]
  • Welke invloed heeft het universele gebruik van het web op software systemen?
    • Systemen worden opgebouwd uit bestaande componenten
    • Incrementele ontwikkeling
    • Beperkingen in de gebruikersinterface ten gevolge van de beperkingen van web browsers
    [1.1]
  • Wat is de definitie van safety?
    Veiligheid: een maat voor de kans dat het systeem schade toebrengt aan mensen of aan de omgeving waarin het functioneert.
    [1.1]
  • Wat is de definitie van security?
    Beveiliging: een maat voor de kans dat kwaadwillenden het systeem kunnen misbruiken.
    [1.1]
  • 2 Software processes

  • Noem drie procesmodellen voor softwareontwikkeling
    • Het watervalmodel: lineair ontwikkelingsmodel waarin het systeem stap voor stap wordt ontwikkeld
    • Incrementele ontwikkeling: er wordt eerst een prototype ontwikkeld dat vervolgens stap voor stap groeit
    • Reuse-oriented ontwikkeling: probeert een systeem op te bouwen uit beschikbare herbruikbare en/of standaardcomponenten
    [2.1]
  • Geef aan welke fasen het watervalmodel onderscheidt en hoe deze samenhangen
    • Requirements definition: analyse en specificatie van eisen
    • System and software design: het ontwerp van het systeem en de software
    • Implementation and unit testing
    • Integration and system testing
    • Operation and maintenance: systeemonderhoud
    Het systeem wordt zo lineair mogelijk ontwikkeld; feedback wordt beperkt tot het hoogst noodzakelijke. Alleen voor een nieuwe versie van het systeem wordt de cyclus opnieuw doorlopen.
    [2]
  • Leg uit wat incrementele ontwikkeling is
    Bij incrementele ontwikkeling worden de specificatie, het ontwerp en de implementatie in iteraties uitgevoerd waarbij elke iteratie een nieuw increment voor het systeem oplevert.
    Incrementele ontwikkeling onderscheidt zich van evolutionaire ontwikkeling doordat het proces sterker gestructeerd is. Vooraf wordt in grote lijnen vastgesteld wat het systeem moet gaan doen, hoeveel iteraties worden doorlopen en wat er in iedere iteratie gedaan moet worden. Bij evolutionaire ontwikkeling is er geen voorafgaande planning.
    [2.1]
  • Noem twee vormen van incrementele ontwikkeling en geef aan hoe deze verlopen
    • Exploratory development: de ontwikkeling begint met het deel van het systeem waarvan de eisen duidelijk zijn, waarna het systeem in samenspraak met de klant verder wordt ontwikkeld.
    • Throwaway prototyping: er worden prototypes ontwikkeld om het inzicht in de eisen te vergroten ten gunste van de eisenspecificatie.
    [2]
  • Beschrijf het spiraalmodel van softwareontwikkeling van Boehm
    Het spiraalmodel van Boehm gaat uit van een iteratief ontwikkelproces. In het model bestaat het softwareproces uit een aantal fasen (de iteraties), die worden gerepresenteerd door de loops van een spiraal. In elke iteratie worden vier kwadranten doorlopen:
    • Objective setting
    • Risk assessment en reduction
    • Development and validation
    • Planning
    Kenmerkend in het model is de rol van risicoanalyse. Het model gaat ervan uit dat veranderingen een gevolg zijn van risico's en besteedt daarom expliciet aandacht aan risicomanagement. Het model anticipeert op veranderingen door  een combinatie van change avoidance en change tolerance.
    [2.3]
  • Leg uit wat het verschil is tussen verificatie en validatie
    Verificatie geeft antwoord op de vraag of het systeem voldoet aan de specificatie.
    Validatie geeft antwoord op de vraag of de specificatie juist is en het systeem voldoet aan de verwachtingen van de klant.
    [2.2]
  • Geef aan uit welke fasen het testproces bestaat
    • Development testing: de componenten van het systeem worden onafhankelijk van elkaar getest
    • System testing: het systeem wordt als geheel getest, enerzijds om de samenwerking tussen de verschillende componenten te testen en anderzijds om de functionele en niet-functionele eisen te testen
    • Acceptance testing: het systeem wordt getest met data van de klant
    [2.2]
  • Geef aan hoe het Rational Unified Process verloopt
    Binnen het Rational Unified Proces worden vier fasen onderscheiden. Elke fase is gericht op het bereiken van een bepaald doel. Zowel de afzonderlijke fasen als de hele reeks van fasen kunnen iteratief worden uitgevoerd.
    Voor de uit te voeren activiteiten worden negen workflows onderscheiden. Deze workflows zijn in elke fase van het project vertegenwoordigd, hoewel de intensiteit van de verschillende workflows per fase verschilt.
    Voor de softwareontwikkeling wordt uitgegaan van een aantal 'best practices'.
    [2.4]
  • Leg uit waarom het Rational Unified Process een hybride proces is
    Het RUP kan beschouwd worden als een hybride procesmodel omdat het elementen bevat van alle generieke procesmodellen (in ieder geval het watervalmodel en incrementele ontwikkeling)
    [2]
  • Leg uit waarom het incrementele model en het spiraalmodel van Boehm beschouwd worden als hybride modellen of raamwerken
    Deze modellen zijn geparametriseerd en beschrijven dus een familie van procesmodellen.
    [2.3]
  • Wat is 'throwaway prototyping'?
    Het gaat om 'wegwerp'-prototypes. Deze worden bewust simpel gehouden en dus snel ontwikkeld. Het wegwerpaspect is bedoeld om te voorkomen dat deze prototypes deel gaan uitmaken van het systeem. Het gaat om het snel testen van een bepaalde geïsoleerde functionaliteit van het uiteindelijke systeem
    [2]
  • Kan elk procesmodel dat met behulp van het incrementele model beschreven kan worden, ook worden beschreven met behulp van het spiraalmodel van Boehm? En omgekeerd?
    Een incrementeel procesmodel kan gemakkelijk worden ondergebracht in het spiraalmodel van Boehm. Het voortraject (outline description) wordt ondergebracht in de eerste cyclus en verder is er per iteratie een cyclus.
    Omgekeerd is dat niet het geval, omdat in het incrementele model activiteiten als prototypering en risicoanalyse ontbreken. Het spiraalmodel is dus algemener dan het incrementele model.
    [2]
  • Teken een schema van het Rational Unified process
    Zie afbeelding
    [2]
  • Kunnen de iteraties in het Rational Unified Process ook worden gemodelleerd volgens het spiraalmodel van Boehm?
    • Het spiraalmodel van Boehm loopt in elke iteratie door alle fasen van het proces heen, terwijl men in het Rational Unified Proces binnen een fase kan itereren. De iteraties binnen het Rational Unified Proces zijn dan ook niet zomaar te modelleren volgens het spiraalmodel van Boehm.
    • Binnen het spiraalmodel van Boehm zijn de dynamische en statische views die gegeven worden voor het Rational Unified Proces niet zo duidelijk gescheiden, zodat de workflows dus enigszins aan de verschillende kwadranten gekoppeld zijn.
    [2]
  • Noem de voor- en nadelen van het watervalmodel
    Dit model is alleen geschikt voor conventionele projecten waarvan het verloop vooraf goed in te schatten is.
    Voordelen:
    • Betere projectbeheersing, doordat de voortgang van het proces gemonitord kan worden aan de hand van de projectplanning
    • Goede basis voor safety- en security critical systemen
    Nadelen:
    • Niet flexibel waar het gaat om veranderende eisen, met het risico dat het systeem niet goed aansluit bij de werkelijke behoefte
    [2.1]
  • Noem de voor- en nadelen van incrementele ontwikkeling
    Incrementele ontwikkeling is geschikt voor systemen waarvan vooraf niet duidelijk is aan welke eisen ze moeten voldoen, bijvoorbeeld omdat het een nieuw toepassingsgebied betreft of een toepassingsgebied waar de klant weinig ervaring mee heeft.
    Voordelen:
    • Kan makkelijker (goedkoper) inspelen op veranderende eisen
    • De gebruiker kan relatief snel feedback gaan geven op het ontwerp
    • Een zichtbaar product is voor de gebruiker makkelijker te beoordelen dan een papieren ontwerp
    • Er kan snel een werkend product worden opgeleverd (incremental delivery)
    • Sluit aan bij de manier waarop we gewend zijn problemen op te lossen; een oplossing voor een probleem ontstaat meestal in stappen
    Nadelen:
    • De voortgang van het proces is niet zichtbaar en daarom moeilijker te beheersen
    • Door het steeds toevoegen van nieuwe functionaliteit wordt de structuur van het systeem gedegradeerd. Er moet extra geïnvesteerd worden in refactoring.
    • Niet geschikt voor grote systemen waaraan meerdere teams werken, omdat een duidelijk kader voor de ontwikkeling ontbreekt
    [2.1]
  • Noem de voor- en nadelen van formele systeemontwikkeling
    Formele systeemontwikkeling is geschikt voor relatief kleine systemen met strikte eisen aan veiligheid (safety en security)
    Voordelen:
    • Biedt garanties dat het systeem aan de eisen voldoet
    • Levert input voor een safety- of security case
    Nadelen
    • Vereist specilistische kennis
    • Is wegens de hoge kosten meestal niet kosteneffectief
    [2.1]
  • Noem de voor- en nadelen van reuse-oriented ontwikkeling
    Reuse-oriented ontwikkeling is vooral geschikt in situaties waar de systeemeisen licht aangepast kunnen worden aan de beschikbaarheid van bestaande componenten
    Voordelen:
    • Er hoeft minder tijd besteed te worden aan de ontwikkeling van software, zodat de kosten en de risico's beperkt worden
    • Het systeem kan sneller opgeleverd worden
    Nadelen:
    • Om hergebruik mogelijk te maken moeten de eisen bijgesteld worden
    • Geen controle over componenten die door derden geleverd worden
    [2.1]
  • Teken het spiraalmodel van Boehm
    Zie afbeelding.
    [2.3]
  • Wat wordt verstaan onder formele systeemontwikkeling?
    Formele systeemontwikkeling is een variant van het watervalmodel.
    Formele systeemontwikkeling gaat uit van een gedetailleerde formele specificatie die via een reeks correctheidsbehoudende transformaties wordt omgezet in een implementatie
    [2]
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

Welke functies heeft een configuratiedatabase?
De functies van de configuratiedatabase zijn:
  • Inzicht geven in de impact van wijzigingen
  • Genereren managementrapportages
  • De relatie leggen tussen componenten en versies
  • De relatie leggen tussen releases en klanten
  • De relatie leggen tussen componenten en wijzigingsvoorstellen
  • Informatie opslaan over gerapporteerde fouten
[25]
Geef aan welke problemen er kunnen optreden bij system building
  • Het buildscript bevat niet alle componenten
  • Het buildscript bevat verkeerde componentversies
  • Niet alle benodigde datafiles zijn beschikbaar
  • Componenten bevatten niet de juiste verwijzingen naar de datafiles
  • De juiste versies van de compiler en andere tools zijn niet beschikbaar
[25]
Welke technieken worden toegepast om de veiligheid van een systeem te waarborgen?
  • Uitgebreid testen
  • Reviews gericht op de code, de programmastructuur, de gebruikte algoritmes en de testcases.
  • Toepassing van proof by contradiction om aan te tonen dat gevaarlijke situaties niet kunnen optreden.
  • De inrichting van het proces met speciale aandacht voor veiligheid, zoals gevarenregistratie, veiligheidscertificatie en het aanwijzen van verantwoordelijken voor veiligheidsaspecten.
[15.4]
Wat is in relatie tot veiligheid de betekenis van de volgende begrippen: accident, hazard, damage, hazard probability, hazard severity en risk
  • Accident: ongeluk
  • Hazard: gevaarlijke situatie
  • Damage: schade (damage)
  • Hazard probability: kans dat een gevaarlijke situatie optreedt
  • Hazard severity: ernst van het gevaar
  • Risk: risico
[11.3]
Wat is in relatie tot beveiliging het verschil tussen de begrippen aanval, bedreiging en exposure?
Aanval, bedreiging en exposure geven drie degradaties van gevaar aan:
  • Een aanval maakt misbruik van een zwakke plek van het systeem. Een aanval kan leiden tot een bedreiging.
  • Een bedreiging is een omstandigheid die kan leiden tot schade of verlies. Door toepassing van beveiligingsmaatregelen kan voorkomen worden dat een aanval daadwerkelijk een bedreiging vormt.
  • Een bedreiging kan leiden tot daadwerkelijke schade (exposure)
[11.4]
Geef enkele voorbeelden van emergente systeemeigenschappen
Voorbeelden van emergente eigenschappen zijn:
  • Volume
  • Betrouwbaarheid
  • Beveiliging: ongevoeligheid voor aanvallen
  • Repareerbaarheid: het gemak waarmee fouten gerepareerd kunnen worden
  • Gebruiksvriendelijkheid
[10.1]
Waarom kan het onderhouden van een legacy systeem kostbaar zijn?
Mogelijke redenen zijn:
  • De programmastructuur is gedegradeerd
  • De documentatie niet is bijgehouden
  • De mensen die verantwoordelijk zijn voor het onderhoud hebben weining ervaring hebben met de gebruikte technologie
[9.4] facultatief
Wat is het verschil tussen test-first development en test-driven development?
Sommerville gebruikt Test-first development (TFD) en Test-driven development (TDD) door elkaar en bedoelt er hetzelfde mee.
Wanneer er onderscheid wordt gemaakt dan geldt meestal:
TDD = TFD + refactoring.
TDD is dus uitgebreider dan TFD.
[8.2]
Wat wordt verstaan onder testen op robuustheid?
Bij testen op robuustheid wordt het systeem getest met ongeldige invoerwaarden. Hierbij wordt gekeken of het systeem bij abnormale invoer toch een gedrag vertoont dat acceptabel is voor de gebruiker.
[8.1]
Uit welke deelactiviteiten bestaat het proces van requirements engineering?
  • Feasibility study
  • Elicitation and analysis: eisenvergaring
  • Specification: opstellen eisenspecifatie
  • Validation
[4.4]