Hoofdstuk 7 Software Engineering

Redacteuren: Groep 7

Wat is belangrijk?

  • 7.1 The Software Engineering discipline; geeft aan waarom software engineering belangrijk is en wat globaal de vormen ervan zijn. Dus eigenlijk wat belangrijk is voor ons vakgebied.
  • 7.2 The Software Life Cycle; beschrijft hoe een programma gemaakt en onderhouden kan worden. Wat later bij het ontwerpen van een programma bijvoorbeeld van pas kan komen.
  • 7.3 Software Engineering Methodologies; beschrijft de methodes van softwaren engineering.
  • 7.4 Modularity; geeft aan waarom het handig is een programma goed in te delen en hoe je dit kunt doen.
  • 7.6 Testing; beschrijft verschillende testmanieren. Dit is handig om een keer doorgelezen te hebben.
  • 7.7 Documentation; gaat over de verschillende soorten documentatie. Dit is nuttig om te weten, zodat je weet welke soort documentatie je bij wat voor een soort programma/programmaonderdeel moet gebruiken.
  • 7.8 The Human-Machine Interface; gaat over waarop je moet letten voor de gebruiksvriendelijkheid van een programma.
  • 7.9 Software Ownership and Liability; gaat over de wetten rondom programma's. Handig voor als je later een programma echt op de markt wilt brengen - daarom ook doorlezen. Voor nu is het niet het allerbelangrijkste.

Wat is onbelangrijk?

  • 7.5 Tools Of The Trade; gaat vooral over relatiediagrammen die we al bij databases hebben gehad. Goed om nog een keer door te lezen

om alles op te frissen.

Tien beste tentamenvragen (inclusief antwoorden)

  1. Wat is het voordeel van object georienteerd programmeren wanneer men gebruik maakt van een modulaire aanpak van software ontwikkeling? Antwoord: Doordat er steeds meer classes (bouwstenen) worden geprogrammeerd die bepaalde taken binnen de nieuw te ontwerpen software kunnen vervullen wordt het steeds makkelijker software te ontwikkelen met kant en klare bouwstenen. (Martijn Baas)
  2. Leg uit was coupling en cohesion is (bij object georiënteerd programmeren), en waarom het belangrijk is dat er zo min mogelijk coupling bij het programmeren voor moet komen. Antwoord: coupling is de mate waarin classes afhankelijk van elkaar zijn en cohesion is mate waarin onderdelen van een class met het concept van de class te maken hebben (of zelfs: er aan bijdragen). Een zo min mogelijke coupling vereenvoudigt testen, onderhoud en hergebruik. (Rens van Honschooten)
  3. Waaruit bestaat de software life cycle (welke stappen/delen?) en leg (kort) uit wat de stappen/delen inhouden. (Desnoods teken je de cycle en leg je de stappen/delen uit.) Antwoord: Er zijn drie stappen/delen: Development, Use enMaintenance. Development bestaat uit de productie van de software. Use is gewoon het gebruik van de software. Maintenance houdt in dat het de software wordt onderhouden door updates uit te brengen om fouten uit de software te halen. Het doel van de life cycle is om de software te verbeteren. [N.B.: Use en Maintenance zitten in een 'cirkel'/loop en je kan van Development één keer naar Use, daarna kom je in de cylce nooit meer in Development.] (Thom Scheeve)
  4. Wat is black-box testing en benoem twee methoden die hieronder vallen? Antwoord: Black-box testing is een manier van het testen van software zonder dat men weet hoe de software er van binnen uitziet. Deze manier van testen is gericht op de gebruiker. Boundary value analysis en beta testing zijn voorbeelden van black-box testing. (Vincent Stangenberger)
  5. Noem twee vormen van intermodule koppelingen. Antwoord: control coupling en data coupling. (Rosalie Schipper)
  6. Waar staat UML voor? Antwoord: Unified Modeling Language. (Frank Horenberg)
  7. Welke drie componenten bevat een dataflow diagram en welke rol vervullen deze componenten? Atwoord: een dataflow diagram bestaat uit pijlen,ovalen en rechthoeken. pijlen geven de richting van informatiestroom weer. Ovalen kunnen informatie manipuleren.Rechthoeken representeren de bronnen waar informatie wordt opgeslagen.(Dick Saes)
  8. Noem 4 voordelen van Open Source. Antwoord: 1. De kwaliteit is gemiddeld hoog omdat iedereen fouten kan verbeteren en wijzigingen kan controleren. 2. Hoge innovatiesnelheid. Doordat iedereen oplossingen kan aandragen innoveert de software snel en nieuwe technologie kan snel ingepast worden. 3. De prijs/kwalitiet verhouding is goed doordat er geen licentiekosten zijn. 4. Flexibiliteit is hoog. (5. Onafhankelijkheid, je bent niet afhankelijk van een leverancier. 6. Duurzaam, het werkt ook op oude modellen computers 7. Veiligheid is gemiddeld hoog omdat problemen snel door de gemeenschap worden opgelost.) (Milja Mondt)
  9. Waar dienen SQA groups voor in een bedrijf? En wat heeft een organisatie zoals ISO met hun te maken? Antwoord:SQA groups hebben als taak om te controleren of de software die een bedrijf ontwikkelt van goede kwaliteit is. ISO is een organisatie die standaarden heeft vastgesteld voor software van goede kwaliteit. De SQA groups controleren of de software van een bedrijf aan deze standaarden voldoen. (Margie Liauw)
  10. Leg kort de vier verschillende fasen (requirement analyse, design, implementatie, testen) van de ontwikkelingsfase van de software life cycle uit. Antwoord: In de requirement analyse wordt bepaald wat het systeem moet kunnen. In de design fase wordt bepaald hoe het systeem zijn doelen kan bereiken. Bij de implementatie wordt gekeken naar de constructie van het systeem.Bij het testen word gekeken of het programma wel doet wat hij moet doen. (Macy Sharoubim)

Nieuwe tien beste vragen

  1. Wat is het voordeel van object georienteerd programmeren wanneer men gebruik maakt van een modulaire aanpak van software ontwikkeling? Antwoord: Doordat er steeds meer classes (bouwstenen) worden geprogrammeerd die bepaalde taken binnen de nieuw te ontwerpen software kunnen vervullen wordt het steeds makkelijker software te ontwikkelen met kant en klare bouwstenen. (Martijn Baas)
  2. Leg uit was coupling en cohesion is (bij object georiënteerd programmeren), en waarom het belangrijk is dat er zo min mogelijk coupling bij het programmeren voor moet komen. Antwoord: coupling is de mate waarin classes afhankelijk van elkaar zijn en cohesion is mate waarin onderdelen van een class met het concept van de class te maken hebben (of zelfs: er aan bijdragen). Een zo min mogelijke coupling vereenvoudigt testen, onderhoud en hergebruik. (Rens van Honschooten)
  3. Wat is black-box testing en benoem twee methoden die hieronder vallen? Antwoord: Black-box testing is een manier van het testen van software zonder dat men weet hoe de software er van binnen uitziet. Deze manier van testen is gericht op de gebruiker. Boundary value analysis en beta testing zijn voorbeelden van black-box testing. (Vincent Stangenberger)
  4. Noem 4 voordelen van Open Source. Antwoord: 1. De kwaliteit is gemiddeld hoog omdat iedereen fouten kan verbeteren en wijzigingen kan controleren. 2. Hoge innovatiesnelheid. Doordat iedereen oplossingen kan aandragen innoveert de software snel en nieuwe technologie kan snel ingepast worden. 3. De prijs/kwalitiet verhouding is goed doordat er geen licentiekosten zijn. 4. Flexibiliteit is hoog. (5. Onafhankelijkheid, je bent niet afhankelijk van een leverancier. 6. Duurzaam, het werkt ook op oude modellen computers 7. Veiligheid is gemiddeld hoog omdat problemen snel door de gemeenschap worden opgelost.) (Milja Mondt)
  5. Waar dienen SQA groups voor in een bedrijf? En wat heeft een organisatie zoals ISO met hun te maken? Antwoord:SQA groups hebben als taak om te controleren of de software die een bedrijf ontwikkelt van goede kwaliteit is. ISO is een organisatie die standaarden heeft vastgesteld voor software van goede kwaliteit. De SQA groups controleren of de software van een bedrijf aan deze standaarden voldoen. (Margie Liauw)
  6. Leg kort de vier verschillende fasen (requirement analyse, design, implementatie, testen) van de ontwikkelingsfase van de software life cycle uit. Antwoord: In de requirement analyse wordt bepaald wat het systeem moet kunnen. In de design fase wordt bepaald hoe het systeem zijn doelen kan bereiken. Bij de implementatie wordt gekeken naar de constructie van het systeem.Bij het testen word gekeken of het programma wel doet wat hij moet doen. (Macy Sharoubim)
  7. Noem 2 van de 3 soorten van ‘prototyping’ en leg deze uit. Antwoord: 2 van de 3: evolutionary prototyping: prototypes evolueren tot het uiteindelijke systeem. Throwaway prototyping: kijken of het prototype beter is dan het ontworpen systeem en als dat zo is het oorspronkelijke systeem vervangen door het prototype. Rapid prototyping: een klein, vaak niet werkend voorbeeld van een systeem maken om functies/uiterlijk te kunnen demonstreren. (Carly Hill)
  8. Waarvoor staat de afkorting CASE omtrent software engineering en wat zijn CASE Tools? Antwoord: CASE staat voor Computer-Aided software engineering. CASE Tools zijn systemen die software engineers ondersteunen, zoals simulatieprogrammas of planning systemen. (Rutger de Graaf)
  9. Leg uit waar een Design Pattern voor is bedoelt. Antwoord: Een design pattern is een (vaak al bestaand) model om een veelvoorkomend probleem op te lossen in de software design. (Rutger de Graaf)
  10. Wat is het doel van user documentation en system documentation? Antwoord: Het doel van user documentation is om de mogelijkheden van het programma uit te leggen en hoe het eventueel moet worden gebruikt. Door system documentation kan het programma na verloop van tijd beter worden onderhouden.(Sicco Chanier)

Voorgestelde tentamenvragen (inclusief antwoorden)

Niet-redacteuren mogen hier tentamenvragen voorstellen.

  1. Wat is het doel van user documentation? Antwoord: Om de mogelijkheden van het programma uit te leggen en hoe het eventueel moet worden gebruikt. (Sicco Chanier)
  2. Wat is het doel van system documentation? Antwoord: Door system documentation kan het programma na verloop van tijd beter worden onderhouden. (Sicco Chanier)
  3. Wat is het verschil tussen een software-analist en een programmeur? Antwoord: De software-analist is bezig met het de hele fase van het ontwikkelen van software en de programmeur alleen met de implementatie. (Carly Hill)
  4. 3. Noem 2 van de 3 soorten van ‘prototyping’ en leg deze uit. Antwoord: 2 van de 3: evolutionary prototyping: prototypes evolueren tot het uiteindelijke systeem. Throwaway prototyping: kijken of het prototype beter is dan het ontworpen systeem en als dat zo is het oorspronkelijke systeem vervangen door het prototype. Rapid prototyping: een klein, vaak niet werkend voorbeeld van een systeem maken om functies/uiterlijk te kunnen demonstreren. (Carly Hill)
  5. Waarvoor staat de afkorting CASE omtrent software engineering en wat zijn CASE Tools? Antwoord: CASE staat voor Computer-Aided software engineering. CASE Tools zijn systemen die software engineers ondersteunen, zoals simulatieprogrammas of planning systemen. (Rutger de Graaf)
  6. Leg uit waar een Design Pattern voor is bedoelt. Antwoord: Een design pattern is een (vaak al bestaand) model om een veelvoorkomend probleem op te lossen in de software design. (Rutger de Graaf)
  7. Wat wordt er bedoeld met open-source development? Antwoord: Dit is software die wordt gemaakt en vrijgegeven zonder dat er voor moet worden betaald. (Martin van Kuik)
  8. Over wat voor soort relaties kan een class-diagram beschikken (deze representeert de structuur en relaties tussen classes)? Geef er drie. Antwoord:1. Een één op één relatie (one-to-one), 2. Een één op veel relatie (one-to-many), 3. Een veel op veel relatie (many-to-many). (Martin van Kuik)
  9. De ontwikkelingsfase van de levenscyclus van software begint met een analyse. Wat is het doel van een analyse? En welke stap volgt na de analyse? Antwoord: Het doel van een analyse is om te bepalen wat het te bouwen systeem zou moeten kunnen. Na de analyse volgt een ontwerp maken. (Safira Wortel)
  10. Noem 2 redenen waarom documentatie van een softwarepakket gemaakt wordt. Antwoord: 1. Om uit te leggen wat de software doet en hoe die daarvoor bediend moet worden (gebruikersdocumentatie) en 2. Om de interne samenstelling van de software te beschrijven, zodat het systeem later aangepast kan worden (systeemdocumentatie). (Safira Wortel)
  11. Wat is het voordeel van een immutable method? // Antwoord: Verwijzingen naar objecten van een immutable class kunnen veilig worden gedeeld. (Pierrette Bernadina)
  12. Om welke twee redenen worden voor-condities toegewezen? // Antwoord: Om de parameters van een object te beperken en om ervoor te zorgen dat een method alleen wordt gebruikt wanneer nodig. (Pierrette Bernadina //
  13. Benoem de 4 stappen die men moet doorlopen bij de ontwikkeling van software volgens het "waterfall model" en leg elke stap kort uit antwoord: 1 analyse: je stelt jezelf vragen zoals: wat wil de gebruiker met de software kunnen? Wat zijn de technische eisen? 2.ontwerp:SE methodologieen en tools, human interface 3. Implementatie: een systeem creeeren op basis van het ontwerp bijv: programma's schrijven, databestanden maken. 4.testfase: validatie: bevestigen dat het systeem aan de specificaties voldoet. Ook bugs vinden en repareren (Rodayna Aaliouli)//
  14. Benoem de verschillende relatietypen. //antwoord: een-op-een relatie, een-op-veel relatie, veel-op-veel relatie en veel-op-een relatie (Rodayna Aaliouli)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License