50 sollicitatievragen en antwoorden over software-engineering

Hier zijn Software Engineering sollicitatievragen en antwoorden voor zowel nieuwere als ervaren kandidaten om hun droombaan te krijgen.

 

Sollicitatievragen en antwoorden voor softwareontwikkelaars voor eerstejaarsstudenten

1) Wat zijn de belangrijke softwarecategorieën?

  • Systeem software
  • Applicatiesoftware
  • Ingebedde software
  • Web applicaties
  • Kunstmatige intelligentiesoftware
  • Wetenschappelijke software.

👉 Gratis pdf-download: vragen en antwoorden over sollicitatiegesprekken over software-engineering


2) Wat is het belangrijkste verschil tussen een computerprogramma en computersoftware?

Een computerprogramma is een stukje programmeercode. Het voert een goed gedefinieerde taak uit. Aan de andere kant bevat de software programmeercode, documentatie en gebruikershandleiding.


3) Wat is softwarere-engineering?

Het is een proces van softwareontwikkeling dat wordt uitgevoerd om de onderhoudbaarheid van een softwaresysteem te verbeteren.

Vragen over software-engineering


4) Beschrijf het softwareontwikkelingsproces in het kort:

De levenscyclus van softwareontwikkeling bestaat uit de volgende fasen:

  • Vereiste analyse
  • Specificaties
  • Software architectuur
  • Implementatie
  • Testen
  • Documentatie
  • Training en ondersteuning
  • Onderhoud

5) Welke SDLC-modellen zijn er beschikbaar?

Watervalmodel, spiraalmodel, big-bagmodel, iteratief model en V-model zijn enkele van de bekendste SDLC-modellen.


6) Wat is verificatie en validatie?

Verificatie:

Verificatie is een term die verwijst naar de reeks activiteiten die ervoor zorgen dat software een specifieke functie implementeert.

validatie:

Het verwijst naar de reeks activiteiten die ervoor zorgen dat software wordt gebouwd volgens de behoeften van klanten.


7) Wat is de betekenis van debuggen in het softwareontwikkelingsproces?

Debuggen is het proces dat resulteert in het verwijderen van fouten. Het is een zeer belangrijk onderdeel van het succesvol testen.


8) Hoe kunt u ervoor zorgen dat uw code zowel veilig als snel is?

In de software staat de ontwikkeling van veiligheid altijd voorop. Dus als de uitvoering van het programma traag is, dan zal ik proberen de reden te achterhalen voor de tijdscomplexiteit.


9) Noem twee tools die worden gebruikt voor het bijhouden van softwarevereisten?

Er zijn veel manieren om de vereisten bij te houden.

Twee veelgebruikte zijn:

  • Maak een document met eisenspecificaties waarin u alle eisen vermeldt.
  • Maak een Excel-blad met de lijst met vereisten, type, afhankelijkheid, prioriteit, enz.

10) Wat is het belangrijkste verschil tussen een stomp en een nep?

Een stub is een minimale implementatie van een interface die over het algemeen hardgecodeerde gegevens retourneert, terwijl nep meestal de output verifieert op basis van de verwachtingen. Die verwachtingen worden in de test gesteld.


11) In welke taal schrijf je graag programmeeralgoritmen?

Elke ontwikkelaar heeft zijn mening als het gaat om de programmeertaalkeuzes. Je zou echter de voorkeur moeten geven aan talen op hoog niveau, omdat ze dynamisch zijn. Zoals C en C++ talen.


12) Wat is computersoftware?

Computersoftware is een pakket dat een softwareprogramma, de bijbehorende documentatie en een gebruikershandleiding voor het gebruik van de software bevat.


13) Welk SDLC-model is volgens u het beste?

Een dergelijke rangschikking bestaat niet, omdat SDLC-modellen worden aangenomen afhankelijk van de behoefte aan het ontwikkelingsproces. Het kan software-tot-software verschillen.


14) Wie is de softwareprojectmanager? Wat is zijn rol?

Een softwareprojectmanager is een persoon die verantwoordelijk is voor het beheer van het softwareontwikkelingsproject.

De projectmanager doet de projectplanning, bewaakt de voortgang, communiceert. Hij of zij beheert ook de risico's en middelen om het project binnen de beperkingen van tijd, kosten en kwaliteit op te leveren.


15) Wat wordt bedoeld met softwarescope?

Het softwarebereik is een goed gedefinieerde grens. Het omvat allerlei activiteiten die worden gedaan om het softwareproduct te ontwikkelen en op te leveren.

De softwarescope definieert alle functionaliteiten en artefacten die als onderdeel van de software moeten worden geleverd. De scope geeft ook aan wat het product zal doen? Wat is geen onderdeel van het project? Wat is projectschatting?

Dit proces is nuttig om verschillende aspecten van het softwareproduct in te schatten. Deze schatting kan worden bepaald door deskundigen te raadplegen of door vooraf gedefinieerde formules te gebruiken.


16) Hoe vind ik de grootte van een softwareproduct?

De omvang van een softwareproduct kan worden berekend met behulp van de volgende twee methoden

  • Het tellen van de regels geleverde code
  • Het tellen van geleverde functiepunten

17) Wat zijn functiepunten?

Functiepunten zijn de functies die door het softwareproduct worden geleverd. Het wordt beschouwd als een van de belangrijkste maatstaven voor de softwaregrootte.


18) Welke technieken voor het schatten van softwareprojecten zijn beschikbaar?

De meest gebruikte schattingstechnieken zijn:

  • Ontledingstechniek
  • Empirische techniek

19) Wat is softwareconfiguratiebeheer?

Softwareconfiguratiebeheer is een proces waarbij wijzigingen in de software worden gevolgd en gecontroleerd.

Wijzigingsbeheer is een functie die ervoor zorgt dat alle wijzigingen in het softwaresysteem consistent zijn en worden gemaakt met behulp van organisatorische regels en voorschriften.


20) Hoe kunt u de projectuitvoering meten?

We kunnen de projectuitvoering meten met behulp van activiteitenmonitoring, statusrapporten en mijlpaalchecklists.


21) Vertel me iets over enkele projectmanagementtools.

Er worden veel soorten beheertools gebruikt, afhankelijk van de behoefte aan een softwareproject. Sommigen daarvan zijn Pert-diagram, Gantt-diagram, resourcehistogram, statusrapporten, enz.


22) Wat zijn softwarevereisten?

Softwarevereisten zijn een functionele beschrijving van een voorgesteld softwaresysteem. Er wordt aangenomen dat dit de beschrijving is van het doelsysteem, de functionaliteiten en kenmerken ervan.


23) Wat is een haalbaarheidsstudie?

Het is een maatregel om erachter te komen hoe praktisch en voordelig de softwareprojectontwikkeling voor de organisatie zal blijken te zijn. De software-analysator voert een studie uit om de economische, technische en operationele haalbaarheid van het project te kennen.

  1. economisch: Het omvat de kosten van training, de kosten van aanvullende hulpmiddelen en hulpmiddelen en een algemene schatting van de kosten en baten van het project.
  2. Technische: Het evalueert het technische aspect. Is het mogelijk om dit systeem te ontwikkelen? Het beoordelen van de geschiktheid van de machine(s) en het besturingssysteem waarop de software zal worden uitgevoerd, kennis van de softwareontwikkeling en de tools die beschikbaar zijn voor dit project.
  3. Operationeel: Hier moet de analist beoordelen of de organisatie zich soepel kan aanpassen aan de veranderingen die zijn doorgevoerd op basis van de vraag naar het project. Is het probleem de moeite waard om op te lossen tegen de geschatte kosten?

Nadat dit alles is bestudeerd, wordt het definitieve haalbaarheidsrapport opgesteld.


24) Wat zijn functionele en niet-functionele eisen?

Functionele eisen zijn functionele kenmerken die gebruikers verwachten van het voorgestelde softwareproduct.

Niet-functionele vereisten hebben betrekking op beveiliging, prestaties, uiterlijk en gevoel van de gebruikersinterface.


25) Wat is softwaremetriek?

Software Metrics biedt maatregelen voor verschillende aspecten van softwareprocessen, onderverdeeld in:

  1. Vereistestatistieken: lengtevereisten, volledigheid
  2. Productstatistieken: aantal coderegels, objectgeoriënteerde statistieken, ontwerp- en teststatistieken.

26) Wat is modularisatie?

Modularisatie is een techniek die wordt gebruikt om een ​​softwaresysteem in verschillende discrete modules te verdelen. Van hem wordt verwacht dat hij de taken zelfstandig uitvoert.


27) Wat is cohesie?

Cohesie is een maatstaf die de onderlinge afhankelijkheid tussen de elementen van de module definieert.


28) Noemt u enkele tools voor softwareanalyse en ontwerp?

Enkele van de belangrijkste softwareanalyse- en ontwerptools zijn:

  • Gegevensstroomdiagrammen
  • Gestructureerde grafieken
  • Gestructureerd Engels
  • Data woordenboek
  • Hiërarchische invoerproces-uitvoerdiagrammen
  • Entiteitsrelatiediagrammen en beslissingstabellen

29) Wat wordt bedoeld met een gegevensstroomdiagram op niveau 0?

Het hoogste abstractieniveau wordt niveau 0 van DFD genoemd. Het wordt ook DFD op contextniveau genoemd. Het beeldt het gehele informatiesysteem af als één diagram.


30) Wat is het grootste verschil tussen gestructureerd Engels en pseudocode?

Gestructureerd Engels is de moedertaal van het Engels. Het wordt gebruikt om de structuur van een programmamodule te schrijven. Het maakt gebruik van trefwoorden in de programmeertaal. Aan de andere kant lijkt Pseudo-code meer op de programmeertaal zonder syntaxis van een specifieke taal.


Software Engineering viva Vragen en antwoorden voor ervaren

31) Wat is gestructureerd ontwerp?

Gestructureerd ontwerp is een conceptualisering van een probleem. Het wordt ook wel oplossingsontwerp genoemd en is gebaseerd op de 'verdeel en heers'-strategie.


32) Wat is functioneel programmeren?

Het is een programmeermethode die de concepten van een wiskundige functie gebruikt. Het biedt middelen voor berekening als wiskundige functies, die ook resultaten produceren, ongeacht de programmastatus.


33) Wat is kwaliteitsborging versus kwaliteitscontrole?

Kwaliteitsborging controleert of het juiste proces wordt gevolgd tijdens het ontwikkelen van de software, terwijl Kwaliteitscontrole zich bezighoudt met het handhaven van de kwaliteit van het softwareproduct.


34) Wat zijn CASE-tools?

CASE betekent Computerondersteund Software Engineering. Het zijn een reeks geautomatiseerde softwareapplicatieprogramma's die worden gebruikt om de SDLC-activiteiten te ondersteunen, verbeteren en versterken.


35) Welk procesmodel verwijdert defecten voordat software in de problemen komt?

Cleanroom-software-engineeringmethode verwijdert defecten voordat de software in de problemen komt.


36) Los dit probleem op

Er liggen twintig verschillende sokken van twee soorten in een la in één donkere kamer. Wat is het minimum aantal sokken dat je moet meenemen om er zeker van te zijn dat je een bijpassend paar hebt?”

Als je drie sokken oppakt, kunnen ze van hetzelfde type zijn, ook al is de kans 50%. Kansen zijn nooit een gelijke realiteit. Daarom is de enige manier om 'ervoor te zorgen dat je een bijpassend paar hebt', het oppikken van minimaal 11 schokken.


37) Hoe kunt u ervoor zorgen dat uw geschreven code verschillende soorten foutsituaties aankan?

Ik kan tests schrijven die de verwachte foutsituaties definiëren.


38) Leg de verschillen uit tussen een thread en een proces?

Een proces is een exemplaar van het computerprogramma. In een enkel programma is het mogelijk een of meer threads te hebben.


39) Vertel me het verschil tussen een EXE en een DLL?

Een exe is een uitvoerbaar programma, terwijl een DLL een bestand is dat dynamisch door programma's kan worden geladen en uitgevoerd. Het is een externe codeopslagplaats voor programma's. Omdat beide verschillende programma's zijn, kunt u dezelfde DLL gebruiken in plaats van die code in hun bestand te hebben. Het vermindert ook de benodigde opslagruimte.


40) Wat is strong-typing en weak-typing? Welke heeft de voorkeur? Waarom?

Strong typing controleert de typen van variabelen tijdens compile-time. Aan de andere kant controleert weak typing de typen van het systeem tijdens run-time. Strong typing heeft altijd de voorkeur omdat het de bugs minimaliseert.


41) Beschrijf het verschil tussen Interface-georiënteerd, Object-georiënteerd en Aspect-georiënteerd programmeren.

  • Interfaceprogrammering is contractgebaseerd.
  • Objectgeoriënteerd is een manier om gedetailleerde objecten te schrijven die maar één doel hebben.
  • Aspectgeoriënteerd programmeren is het scheiden van de code op een zodanige manier dat verschillende objecten de hoofdtaken uitvoeren, en de secundaire taken worden uitgevoerd door onafhankelijke objecten.

42) Waarom is het gebruik van catch (exception) altijd een slecht idee?

Het is een slecht idee omdat:

  • Omdat er geen variabele is gedefinieerd, is het niet mogelijk om de uitzondering te lezen
  • Het is goed om een ​​uitzondering te gebruiken als u uitzonderingstypen kent.

43) Welk type gegevens worden doorgegeven via HTTP-headers?

Script en metadata doorgegeven via HTTP-headers.


44) Hoe prioriteert u vereisten?

Eerst moet u een systeem ontwerpen door de datastructuur te evalueren. Vervolgens moet u verder gaan met de codestructuur die nodig is om dit te ondersteunen.


45) Geef mij de verschillen tussen objectgeoriënteerd en componentgebaseerd ontwerp?

Objectgeoriënteerd ontwerp kan tot op zekere hoogte gemakkelijk worden ingekapseld in componentgebaseerd ontwerp.


46) Wanneer gebruik je polymorfisme?

Polymorfisme wordt gebruikt wanneer er behoefte is aan override-functionaliteit bij het erven van een klasse. Het gaat om gedeelde klassen en gedeelde contracten.


47) Wat is het verschil tussen stapel en wachtrij?

  • De wachtrij is altijd First In, First Out
  • Stapel is altijd Last In, First Out

48) Wat is essentieel voor het testen van de kwaliteit van de code?

Volgens mij is het unit-testframework essentieel voor het testen van de kwaliteit van de code.


49) Denkt u dat het onderhoud van software duur is?

Volgens mij zal het onderhoud van software nooit duur zijn als we het juiste ontwikkelingsproces gebruiken.


50) Geef mij de verschillen tussen tags en branches?

Tags zijn voor versiebeheerreleases die tijdelijke opslagplaatsen zijn om zoiets te doen. Vertakkingen worden echter verwijderd wanneer deze wijzigingen in de stam worden samengevoegd.


51) Waar is een beschermde variabele op klasseniveau beschikbaar?

Beschermde variabelen op klasseniveau zijn beschikbaar voor elke subklasse die is afgeleid van de basisklasse.


52) Is het mogelijk om meerdere catch-blokken uit te voeren voor een enkele try-instructie?

Ja. Er kunnen meerdere catch-blokken worden uitgevoerd voor een enkele try-instructie.


53) Wanneer moet je een klasse als abstract declareren?

In de volgende situaties moeten we een klasse als abstract declareren:

  1. Wanneer de klasse wordt geërfd van een abstracte klasse, maar niet alle abstracte methoden zijn overschreven.
  2. In het geval dat minimaal één van de methoden in de klasse als abstract wordt gedeclareerd.

54) Ontwikkel een algoritme dat uw huidige locatie en een lijst met geldautomaten in dat gebied weergeeft. Zorg ervoor dat u de dichtstbijzijnde K-geldautomaten bij uw locatie vindt.

Maak een methode getDistance(a, b) die de afstand tussen a en b berekent.

Code:

import java.util.HashMap;

import java.util.Map;

import java.util.PriorityQueue;

public class PrioRQueueExample {

public static void main(String[] args){

PriorityQueue<Double> pq = new PriorityQueue<Double>((x,y)-> {Double z = y-x;return z.intValue(); });

PrioRQueueExample pqe = new PrioRQueueExample();

//Number of ATMs to return i.e. K

int num_ATMs = 3;

double curr_loc = 0.00;

Map<String,Double> nallATMLocs = new HashMap<String,Double>();

//Map of ATM names and their distance co-ordinates

nallATMLocs.put("atm1",45.0);

nallATMLocs.put("atm2",78.0);

nallATMLocs.put("atm3",54.0);

nallATMLocs.put("atm4",64.0);

nallATMLocs.put("atm5",35.0);

nallATMLocs.put("atm6",42.0);

nallATMLocs.put("atm7",57.0);

nallATMLocs.put("atm7",1.00);

nallATMLocs.forEach((atm,dist) ->{if(pq.size() < num_ATMs){

pq.add(pqe.getLocation(curr_loc,dist));}

else{

if(        pq.peek() > pqe.getLocation(curr_loc,dist)){

pq.poll();

pq.add(pqe.getLocation(curr_loc,dist));

}

}

});

pq.forEach(atmLoc -> System.out.println(atmLoc));

}

private double getLocation(double curr,double atm){

return atm - curr;

}

}

Deze interviewvragen zullen ook helpen bij je viva (oralen)