Examen Software Engineering 2013-2014 20/08/2014 Naam:...



Vergelijkbare documenten
Examen Software Engineering /01/2013

Die inputs worden op een gecontroleerde manier aangeboden door (test) stubs. De test driver zorgt voor de uiteindelijke uitvoering ervan.

Vraag 1... Vraag 2... Vraag 3...

Introductie in flowcharts

Vraag 3. Use Cases [.../2] Waarom zijn use cases goed geschikt voor gebruik in een iteratief/incrementeel ontwikkelingsproces?

RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

Preschool Kindergarten

MyDHL+ Van Non-Corporate naar Corporate

ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

Risk & Requirements Based Testing

It s CMMI Jim, but not as we know it! CMMI toegepast op een Compliance organisatie Door Jasper Doornbos Improvement Focus

Opgave 2 Geef een korte uitleg van elk van de volgende concepten: De Yield-to-Maturity of a coupon bond.

Activant Prophet 21. Prophet 21 Version 12.0 Upgrade Information

ETS 4.1 Beveiliging & ETS app concept

Add the standing fingers to get the tens and multiply the closed fingers to get the units.

SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead

ALGORITMIEK: answers exercise class 7

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 8 februari 2010

General info on using shopping carts with Ingenico epayments

Interaction Design for the Semantic Web

Engels op Niveau A2 Workshops Woordkennis 1

Requirements Traceability. Marcel de Baas, Jan Bank, Edwin Buisman, Frits Jacobs, Kitty Spaas, Erik Venema, Arno Zandman

Naam:... INFO / WIS-INF / ASIB / IAJ. Theorie

Eye Feature Detection Towards Automatic Strabismus Screening

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 22 februari 2013

Concept of Feedback. P.S. Gandhi Mechanical Engineering IIT Bombay

Model Driven Software Development: Geen toekomst maar realiteit. 4 juni 2009, WTC, Amsterdam.

B1 Woordkennis: Spelling

Process Mining and audit support within financial services. KPMG IT Advisory 18 June 2014

Test rapportage Waarom eigenlijk?

2019 SUNEXCHANGE USER GUIDE LAST UPDATED

Graphic Design. Keuzevak GD1. Raul Martinez-Orozco / raul@thecombine.nl)

Function checklist for the ML-350 or XL-350 with a print set. Missing loop.

CTI SUITE TSP DETAILS

Ik kom er soms tijdens de les achter dat ik mijn schoolspullen niet bij mij heb of niet compleet

Issues in PET Drug Manufacturing Steve Zigler PETNET Solutions April 14, 2010

L.Net s88sd16-n aansluitingen en programmering.

OUTDOOR HD BULLET IP CAMERA PRODUCT MANUAL

Installatie van Windows 10 op laptops. Windows 10 installation on laptops

Luister alsjeblieft naar een opname als je de vragen beantwoordt of speel de stukken zelf!

PRIVACYVERKLARING KLANT- EN LEVERANCIERSADMINISTRATIE

Question-Driven Sentence Fusion is a Well-Defined Task. But the Real Issue is: Does it matter?

Appendix A: List of variables with corresponding questionnaire items (in English) used in chapter 2

Bin packing and scheduling

Incidenten in de Cloud. De visie van een Cloud-Provider

Esther Lee-Varisco Matt Zhang

Daylight saving time. Assignment

Travel Survey Questionnaires

Data Handling Ron van Lammeren - Wageningen UR

Firewall van de Speedtouch 789wl volledig uitschakelen?

ARE methodiek Het ontwikkelen van Informatie Elementen

Teststrategie met behulp van heuristieken

Impact en disseminatie. Saskia Verhagen Franka vd Wijdeven

Wat heeft een tester aan ASL en BiSL?

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

Chapter 4 Understanding Families. In this chapter, you will learn

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

Software Processen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1. Het software proces

Continuous Delivery. Sander Aernouts

My Inspiration I got my inspiration from a lamp that I already had made 2 years ago. The lamp is the you can see on the right.

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Examination 2DL04 Friday 16 november 2007, hours.

NSPYRE LEGO MINDSTORMS UITDAGING (JAVA) INLEIDING. DOEL: SIMULATOR:

!!!! Wild!Peacock!Omslagdoek!! Vertaling!door!Eerlijke!Wol.!! Het!garen!voor!dit!patroon!is!te!verkrijgen!op! Benodigdheden:!!

Continuous testing in DevOps met Test Automation

i(i + 1) = xy + y = x + 1, y(1) = 2.

Welke standaard is het beste? 4 december 2008, Bianca Scholten, bianca.scholten@task24.nl, tel

Creatief onderzoekend leren

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

Introduction Henk Schwietert

PLUS & PRO. Addendum installatie aanvullende MID 65A kwh-meter - Addendum installation additional MID 65A kwh-meter SET

Intermax backup exclusion files

Classification of triangles

Ae Table 1: Aircraft data. In horizontal steady flight, the equations of motion are L = W and T = D.

LOAD SECURING PROCEDURE IN 15 FT/20 FT HOT CONTAINER

ISA SP-99 Manufacturing and Control Systems Security

Stephanie van Dijck De integrale aanpak maakt complexiteit hanteerbaar

Registratie- en activeringsproces voor de Factuurstatus Service NL 1 Registration and activation process for the Invoice Status Service EN 10

LONDEN MET 21 GEVARIEERDE STADSWANDELINGEN 480 PAGINAS WAARDEVOLE INFORMATIE RUIM 300 FOTOS KAARTEN EN PLATTEGRONDEN

How to install and use dictionaries on the ICARUS Illumina HD (E652BK)

The Dutch mortgage market at a cross road? The problematic relationship between supply of and demand for residential mortgages

FAAC DRIVER. Driver install procedure for FAAC boards. Installatieprocedure voor driver voor FAAC-kaarten.

L.Net s88sd16-n aansluitingen en programmering.

Zelftest OOAD/UML. Document: N0767Test.fm 30/08/2010. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

AN URBAN PLAYGROUND AFSTUDEERPROJECT

Group work to study a new subject.

Business Rules: het scheiden van kennis en processen 17 september 2014

NFR & Architectuur: Twee handen op één buik. Remco de Boer

ContentSearch. Deep dive

Transcriptie:

Belangrijk: Schrijf je antwoorden kort en bondig in de daartoe voorziene velden. Elke theorie-vraag staat op 2 punten (totaal op 24). De oefening staan in totaal op 16 punten. Het geheel staat op 40 punten. 1. Introduction [./2] Waarom is programmeren slechts een klein deel in de kost voor een echt software project? De echte activiteiten in een software project zijn: Requirements Collection, Analysis, Design, Implementation, Testing, Maintenance, Quality Assurance De enige stappen waar er programmeren aan te pas komt is: Implementation, Testing en bij Maintenance. Er komt dus veel meer bij kijken dan enkel programmeren. 2. Project Management [.../2] Wat kan je doen om een vertraging op het kritische pad terug in te halen? - ADDING MORE PROGRAMMERS = NOT GOOD (-1) - Adding senior staff for well specified tasks (outside critical path to avoid communication overhead) - Prioritize requirements and deliver incrementally (+1) - Deliver most important functionality on time - testing remains a priority (even if customer disagrees) - EXTEND DEADLINE (+1) 3. Use Cases [.../2] Geef twee voordelen en twee nadelen voor het gebruik van Use Cases. Voordelen: [0.5 pnt per voordeel] requirements more understandable (actors provide end users perspective) requirements more precise. (scenarios are sufficiently detailed to test) requirements open. (Actors perspective emphasizes the what (and much less the how) Helps to validate solution against requirements Pagina 1/

Helps to verify the requirements against users needs Nadelen: [0.5 pnt per nadeel] requires close interaction with various stakeholders needs iterations to improve earlier misconceptions a lot of hard work Use cases tend to result in hard to maintain systems Identifying actors and use cases may omit requirements (Completeness not guaranteed) Focus on scenarios restricts evolving requirements. 4. Domain Models [.../2] Leg uit wat Object-georiënteerde en functionele decompositie is en leg uit wanneer je ze zou gebruiken. Functionele decompositie: Decompose according to the functions a system must perform. --> single subfunction-of hierarchy. [0.5 pnt voor de wat] Good with stable requirements or single function. [0.5 pnt voor gebruik] Object-georiënteerde decompositie: Decompose according to the objects a system must manipulate --> several coupled is-a hierarchies. [0.5 pnt voor de wat] Better for complex and evolving systems [0.5 pnt voor gebruik]. 5. Testing [.../2] a) Wat is Testen? programma uitvoeren met de boeling defects te vinden b)wat is een Test Techniek technieken met een hoge kans om nieuwe fouten te vinden c) Wat is een Test Strategie plan dat zegt wanneer je welke techniek moet toepassen 6. Design by Contract [.../2] Wat is het Liskov substitutie principe? Replacing an instance of a superclass by each of its subclasses is allowed.... a class must be replaceable by any of its subclasses Pagina 2/

Waarom speelt dit een belangrijk rol binnen het object georiënteerde paradigma en voor design contracten? It defines the rules for inheritance and therefore subcontracts.... precondition myst be weaker or equal and postcondition stronger 7. Formal Specifications [./2] Wat is het onderscheid tussen een semi-formele specificatietaal en een formele specificatietaal? Semi-Formal [0.5 pnt]: Notation with precise syntax but loose semantics. Formal [0.5 pnt]: Model with precise syntax & semantics Geef voor elk een voorbeeld: semi-formele specificatie taal: [0.5 pnt] UML class &sequence diagrams,... formele specificatie taal: [0.5 pnt] Z, B, VDM, OCL, Petri-nets, StateCharts,... 8. Software Architecture [./2] Geef drie afwegingen bij het gebruik van het Adapter pattern? 1) How much adapting is required? - For one class - For the whole hierarcy 2) How will the separately developed classes evolve? 3) Does the merging work in one direction or in both directions? 4) How much overhead in performance and maintenance can you afford? 9. Quality Control [.../2] Benoem en definieer de vijf niveaus van het Capability Maturity Model. Level 5: Optimizing Improvement is fed back into QA process Level 4: Qualitatively Managed QA Process + quantitative data collection Level 3:Defined QA Process defined and institutionalized Level 2:Managed (Repeatable) Pagina 3/

Formal QA Procedures in place (reactive) Level 1:Initial (Ad Hoc) No effective QA procedures, quality is luck 10. Software Metrics [.../2] Waarom zijn koppeling (coupling) en cohesie (cohesion) metrieken belangrijk? Waarom worden ze dan zelden gebruikt? 11. Refactoring [./2] Geef vier symptomen voor code die kan genezen worden met het toepassen van refactoring. Welke refactoring zou je hier dan voor toepassen? 1) Duplicated code > Extract method, Pull Up Method (extract code to new method) 2) Nested conditionals > Extract method (add extract code in method using inheritance and polymorphism) 3) Large classes/methods > Extract method, Extract Class, Pull Up Method, Move Method,.(split/add class/method) 4) Abusive inheritance > add (sub)class to hierarchy Andere mogelijk. Conclusion [.../2] Als je het No Silver Bullet artikel hebt gelezen: Waarom is program verification geen silver bullet? Programma verificatie levert geen foutloze programma s + programma verificatie zegt enkel dat een programma voldoet aan zn specificatie. De specificatie kan Pagina 4/

fouten bevatten en bovendien nog incompleet zijn. Het moeilijkste aan het bouwen van software is echter het opstellen van een complete en consistente specificatie. Als je het Killer Robot artikel hebt gelezen: Waarom was het ontwerp van de user interface gebrekkig? Enkel toetsenbord / geen muis. Too many menu items (+ no natural ordering of menu items) There were too many colors in too small a space. Error messages could appear in almost any color and could be accompanied by almost any kind of musical effect. Error messages could appear almost anywhere at the screen. No shortcuts of any kind in the entire interface design. No informative feedback / design dialogues to yield closure (. For example, there was a fairly complicated dialogue necessary to remove a widget from the acid bath. However, upon completion of this dialogue, the robot operator was led into a new, unrelated dialogue, without being informed that the widget removal dialogue had been completed.).. see killer robot article for more Pagina 5/

13. Oefening - Planning [.../5] Gegeven de Pert-chart op de volgende pagina: a) Vul voor elke node in de Pert-chart de earliest start date in (uitgedrukt in weeknummers) en leg hieronder kort uit hoe je die berekent. For each task n: compute earliest start-date = Latest of all incoming paths ESD (n) := latest of (ESD (preceding) + estimated time (preceding)) b)vul voor elke node in de Pert-chart de latest end date in (uitgedrukt in weeknummers) en leg hieronder kort uit hoe je die berekent. For each task n: compute latest end-date = Earliest of all outgoing paths LED (n):= earliest of (LED (subsequent) - estimated time (subsequent)) c) Duid op de figuur de critical paths aan. Gegeven het schema op pagina 8, bereken: d) het risky path:... e) de worst case delay van het project (ten opzichte van de estimated time ):... Pagina 6/

Examen Software Engineering 2013-2014 20/08/2014 wk 0 A (5 wk) wk 5 wk 5 B (10 wk) wk 20 wk 5 C ( wk) wk 17 wk 17 D (7 wk) wk 17 E (3 wk) wk 24 wk 32 wk 20 H (13 wk) wk 33 wk 30 G (7 wk) wk 20 F (6 wk) wk 38 wk 45 wk 20 I (5 wk) wk 37 L (5 wk) wk 50 wk 33 J (8 wk) wk 41 wk 41 K (9 wk) wk 33 wk 50 wk 50 M (4 wk) ESD LT wk 54 LED Pagina 7/

OT LT PT ET S_nominator S_denominator S Path SP Worst Case Delay A A B A - B C A - C D A - C - D E A - C - E F A - C - D - F A - C - E - F G A - C - D - F - G A - C - E - F - G H A - B - H A - C - E - H I A - C - E - I J A - B - H - J A - C - E - H - J A - C - E - I - J K A - C - E - I - K A - B - H - J - K A - C - E - H - J - K A - C - E - I - J - K L A - B - H - L A - C - E - H - L A - C - D - F - G - L A - C - E - F - G - L M A - C - E - I - K - M A - B - H - J - K - M A - C - E - H - J - K - M A - C - E - I - J - K - M A - B - H - L - M A - C - E - H - L - M A - C - D - F - G - L - M A - C - E - F - G - L - M Risky path Worst case delay weeks Pagina 8/

14. Oefening -Testing[.../5] Beschouw de volgende functie om de maximum waarde uit een Array van integers te bepalen: int maximum(int numbers[], int array_size) { int i; int max = numbers[0]; for (i = 0; i < array_size-1; i++) { if (numbers[i] > max) max = numbers[i]; } return max; } a) Teken de control flow graph voor bovenstaande functie. b)bereken de cyclomatische complexiteit, en geef kort aan hoe je hiertoe gekomen bent. CC = 3 #e - #n + 2 = Pagina 9/

aantal binaire condities + 1 = 3 aantal grafregios = 4 c) Bepaal een volledige verzameling van onafhankelijke paden. (Nummer ze.) d)geef aan welke input vereist is voor elk van de onafhankelijke paden die je in c) hebt opgesomd. (Gebruik de nummering voor verwijzingen naar elk onafhankelijk pad.) e) Hoe verhoudt het aantal paden in deze verzameling zich tot de cyclomatische complexiteit? Waarom? aantal paden dat nodig is om alle knopen te doorlopen is maximaal de CC. Anderzijds kan je door het kiezen van de input data sommige paden combineren. f) Wordt hiermee deze functie goed getest? Hoe zou je het eventueel nog beter kunnen testen? construction is a heuristic: does not necessarily result in set of independent paths it is possible to get the same coverage with less paths it is sometimes not feasible to exercise all required paths it does not necessarily cover all entry-exit paths --> Uitbreiden met Condition Testing en of Loop Testing Pagina 10/

15. Oefening - Formele Specificaties [./6] In deze oefening ga je het gedrag van een automatisch autoraam (de power window) modelleren aan de hand van een StateChart. De power window wordt bediend met 1 knop die een up of down signaal kan geven. Teken je state chart op de volgende pagina. We kunnen het gedrag van de power window als volgt beschrijven: Indien de knop kort een up signaal geeft, zal het raam kort omhoog bewegen. Indien de knop langer dan 3 seconden een up signaal geeft zal het raam helemaal sluiten. Indien de knop kort een down signaal geeft, zal het raam kort omlaag bewegen. Indien de knop langer dan 3 seconden een down signaal geeft zal het raam helemaal openen. Indien de autosleutels van het contact zijn en de auto wordt afgesloten, zal automatisch het raam volledig sluiten. Indien er bij het omhoog bewegen van het raam een obstakel gedetecteerd wordt, houdt hij onmiddelijk op met bewegen en zal hij gedurende 2 seconden terug omlaag bewegen. Pagina 11 /

Pagina /