Deze samenvatting
+380.000 andere samenvattingen
Een unieke studietool
Een oefentool voor deze samenvatting
Studiecoaching met filmpjes
Onthoud sneller, leer beter. Wetenschappelijk bewezen.

Samenvatting - Software engineering werkboek
-
1 Introduction
-
Leg uit wat het vak software engineering globaal inhoudtSoftware 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 zijnEen 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 bestaatEen 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
-
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
- Reusability
- Distributability
- Portability
- Interoperability
-
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
-
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
-
Wat zijn de vier belangrijkste activiteiten in ieder softwareproces?
- Specificatie
- Ontwikkeling
- Validatie
- Evolutie
-
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
- Public: handel in het algemeen belang
-
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
-
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
-
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
[2] -
Leg uit wat incrementele ontwikkeling isBij 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.
-
Beschrijf het spiraalmodel van softwareontwikkeling van BoehmHet 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
[2.3] -
Leg uit wat het verschil is tussen verificatie en validatieVerificatie 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
-
Geef aan hoe het Rational Unified Process verlooptBinnen 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 isHet 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 raamwerkenDeze 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 processZie 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.
-
Noem de voor- en nadelen van het watervalmodelDit 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
- Niet flexibel waar het gaat om veranderende eisen, met het risico dat het systeem niet goed aansluit bij de werkelijke behoefte
-
Noem de voor- en nadelen van incrementele ontwikkelingIncrementele 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
- 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
- Kan makkelijker (goedkoper) inspelen op veranderende eisen
-
Noem de voor- en nadelen van formele systeemontwikkelingFormele 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
- Vereist specilistische kennis
- Is wegens de hoge kosten meestal niet kosteneffectief
- Biedt garanties dat het systeem aan de eisen voldoet
-
Noem de voor- en nadelen van reuse-oriented ontwikkelingReuse-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
- Om hergebruik mogelijk te maken moeten de eisen bijgesteld worden
- Geen controle over componenten die door derden geleverd worden
- Er hoeft minder tijd besteed te worden aan de ontwikkeling van software, zodat de kosten en de risico's beperkt worden
-
Teken het spiraalmodel van BoehmZie 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]
Lees volledige samenvatting
Deze samenvatting. +380.000 andere samenvattingen. Een unieke studietool. Een oefentool voor deze samenvatting. Studiecoaching met filmpjes.
Laatst toegevoegde 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
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
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.
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
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)
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
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
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]
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]
[8.1]
Uit welke deelactiviteiten bestaat het proces van requirements engineering?
- Feasibility study
- Elicitation and analysis: eisenvergaring
- Specification: opstellen eisenspecifatie
- Validation