Domande di intervista sull'ingegneria del software

Cari lettori, questi Software Engineering Interview Questions sono stati progettati appositamente per farti conoscere la natura delle domande che potresti incontrare durante il colloquio sull'argomento Software Engineering. Secondo la mia esperienza, i bravi intervistatori difficilmente hanno pianificato di porre domande particolari durante il colloquio, normalmente le domande iniziano con un concetto di base dell'argomento e successivamente continuano sulla base di ulteriori discussioni e su ciò a cui rispondi:

Q.What is computer software?

A. Il software per computer è un pacchetto completo, che include il programma software, la sua documentazione e la guida per l'utente su come utilizzare il software.

Q.Can you differentiate computer software and computer program?

A. Un programma per computer è un pezzo di codice di programmazione che esegue un compito ben definito in cui il software include il codice di programmazione, la sua documentazione e la guida per l'utente.

Q.What is software engineering?

A. L'ingegneria del software è una branca dell'ingegneria associata allo sviluppo di sistemi software.

Q.When you know programming, what is the need to learn software engineering concepts?

A.Una persona che sa come costruire un muro potrebbe non essere brava a costruire un'intera casa. Allo stesso modo, una persona che può scrivere programmi potrebbe non avere conoscenza di altri concetti di ingegneria del software. I concetti di ingegneria del software guidano i programmatori su come valutare i requisiti dell'utente finale, progettare gli algoritmi prima che inizi la codifica effettiva, creare programmi codificando, testare il codice e la sua documentazione.

Q.What is software process or Software Development Life Cycle (SDLC)?

A.Il ciclo di vita dello sviluppo del software, o processo del software, è lo sviluppo sistematico del software seguendo ogni fase del processo di sviluppo, ovvero raccolta dei requisiti, analisi del sistema, progettazione, codifica, test, manutenzione e documentazione in quest'ordine.

Q.What are SDLC models available?

A. Sono disponibili diversi modelli SDLC come il modello a cascata, il modello iterativo, il modello a spirale, il modello a V e il modello Big-bang ecc.

Q.What are various phases of SDLC?

A.Le fasi generiche di SDLC sono: raccolta dei requisiti, analisi e progettazione del sistema, codifica, test e implementazione. Le fasi dipendono dal modello che scegliamo di sviluppare software.

Q.Which SDLC model is the best?

A.I modelli SDLC vengono adottati secondo i requisiti del processo di sviluppo. Può essere molto software-to-software per garantire quale modello è adatto.

Possiamo selezionare il miglior modello SDLC se le seguenti risposte sono soddisfatte -

  • L'SDLC è adatto alla tecnologia selezionata per implementare il software?
  • SDLC è appropriato per i requisiti e le priorità del cliente?
  • Il modello SDLC è adatto alle dimensioni e alla complessità del software?
  • Il modello SDLC è adatto al tipo di progetti e all'ingegneria che facciamo?
  • L'SDLC è appropriato per gli sviluppatori geograficamente co-localizzati o dispersi?

Q.What is software project management?

A. La gestione del progetto software è il processo di gestione di tutte le attività come la gestione di tempi, costi e qualità coinvolti nello sviluppo del software.

Q.Who is software project manager?

A. Un software project manager è una persona che si assume la responsabilità di eseguire il progetto software.

Q.What does software project manager do?

A. Il responsabile del progetto software è impegnato nelle attività di gestione del software. È responsabile della pianificazione del progetto, del monitoraggio dei progressi, della comunicazione tra le parti interessate, della gestione dei rischi e delle risorse, della corretta esecuzione dello sviluppo e della consegna del progetto entro limiti di tempo, costi e qualità.

Q.What is software scope?

A. L'ambito del software è un confine ben definito, che comprende tutte le attività svolte per sviluppare e fornire il prodotto software.

L'ambito del software definisce chiaramente tutte le funzionalità e gli artefatti da fornire come parte del software. Lo scopo identifica cosa farà il prodotto e cosa non farà, cosa conterrà il prodotto finale e cosa non conterrà.

Q.What is project estimation?

A.È un processo per stimare vari aspetti del prodotto software al fine di calcolare il costo di sviluppo in termini di sforzi, tempo e risorse. Questa stima può essere ricavata dall'esperienza passata, consultando esperti o utilizzando formule predefinite.

Q.How can we derive the size of software product?

A. La dimensione del prodotto software può essere calcolata utilizzando uno dei due metodi:

  • Contando le righe del codice fornito
  • Conteggio dei punti funzione forniti

Q.What are function points?

A.I punti funzione sono le varie caratteristiche fornite dal prodotto software. È considerato come un'unità di misura per la dimensione del software.

Q.What are software project estimation techniques available?

A. Sono disponibili molte tecniche di stima, le più utilizzate sono:

  • Tecnica di decomposizione (conteggio linee di codice e punti funzione)
  • Tecnica empirica (Putnam e COCOMO).

Q.What is baseline?

A.La linea di base è una misurazione che definisce la completezza di una fase. Dopo che tutte le attività associate a una particolare fase sono state completate, la fase è completa e funge da base per la fase successiva.

Q.What is Software configuration management?

A. La gestione della configurazione del software è un processo di tracciamento e controllo delle modifiche al software in termini di requisiti, design, funzioni e sviluppo del prodotto.

Q.What is change control?

A. Il controllo delle modifiche è una funzione della gestione della configurazione, che garantisce che tutte le modifiche apportate al sistema software siano coerenti e effettuate secondo le regole e le normative dell'organizzazione.

Q.How can you measure project execution?

A. Possiamo misurare l'esecuzione del progetto mediante monitoraggio delle attività, rapporti sullo stato e liste di controllo delle tappe fondamentali.

Q.Mention some project management tools.

A.Esistono vari strumenti di gestione dei progetti utilizzati secondo i requisiti del progetto software e delle politiche organizzative. Includono diagramma di Gantt, diagramma PERT, istogramma delle risorse, analisi del percorso critico, rapporti di stato, elenchi di controllo delle pietre miliari ecc.

Q.What are software requirements?

A.I requisiti software sono la descrizione funzionale del sistema software proposto. Si presume che i requisiti siano la descrizione del sistema di destinazione, le sue funzionalità e caratteristiche. I requisiti trasmettono le aspettative degli utenti dal sistema.

Q.What is feasibility study?

A.È una misura per valutare quanto pratico e vantaggioso sarà lo sviluppo del progetto software per un'organizzazione. L'analizzatore software conduce uno studio approfondito per comprendere la fattibilità economica, tecnica e operativa del progetto.

  • Economic - Trasporto delle risorse, costo della formazione, costo di utilità e strumenti aggiuntivi e stima complessiva dei costi e dei benefici del progetto.

  • Technical - È possibile sviluppare questo sistema? Valutazione dell'idoneità delle macchine e dei sistemi operativi su cui verrà eseguito il software, conoscenze e competenze degli sviluppatori esistenti, formazione, utilità o strumenti per il progetto.

  • Operational - L'organizzazione può adattarsi senza problemi ai cambiamenti fatti secondo la richiesta del progetto? Vale la pena risolvere il problema?

Q.How can you gather requirements?

A. I requisiti possono essere raccolti dagli utenti tramite interviste, sondaggi, analisi delle attività, brainstorming, analisi del dominio, prototipazione, studio della versione utilizzabile esistente del software e osservazione.

Q.What is SRS?

A.SRS o specifica dei requisiti software è un documento prodotto al momento del processo di raccolta dei requisiti. Può anche essere visto come un processo per perfezionare i requisiti e documentarli.

Q.What are functional requirements?

A. I requisiti funzionali sono caratteristiche funzionali e specifiche attese dagli utenti dal prodotto software proposto.

Q.What are non-functional requirements?

A. I requisiti non funzionali sono impliciti e sono correlati a sicurezza, prestazioni, aspetto dell'interfaccia utente, interoperabilità, costi, ecc.

Q.What is software measure?

A. Le misure software possono essere intese come un processo di quantificazione e simbolizzazione di vari attributi e aspetti del software.

Q.What is software metric?

A.Le metriche software forniscono misure per vari aspetti del processo software e del prodotto software. Sono divisi in -

  • Metriche dei requisiti: requisiti di lunghezza, completezza
  • Metriche del prodotto: linee di codice, metriche orientate agli oggetti, metriche di progettazione e test
  • Metriche di processo: valuta e monitora budget, pianificazione, risorse umane.

Q.What is modularization?

A. La modularizzazione è una tecnica per dividere un sistema software in più moduli discreti, che dovrebbero svolgere attività in modo indipendente.

Q.What is concurrency and how it is achieved in software?

A.La concorrenza è la tendenza di eventi o azioni a verificarsi simultaneamente. Nel software, quando due o più processi vengono eseguiti contemporaneamente, vengono chiamati processi simultanei.

Esempio

Mentre si avvia il comando di stampa e la stampa si avvia, è possibile aprire una nuova applicazione.

La concorrenza viene implementata suddividendo il software in più unità di esecuzione indipendenti, ovvero processi e thread, ed eseguendoli in parallelo.

Q.What is cohesion?

A. La coesione è una misura che definisce il grado di intra-affidabilità tra gli elementi del modulo.

Q.What is coupling?

A. L'accoppiamento è una misura che definisce il livello di interdipendenza tra i moduli di un programma.

Q.Mentions some software analysis & design tools?

A. Questi possono essere: DFD (diagrammi di flusso di dati), grafici strutturati, inglese strutturato, dizionario dei dati, diagrammi HIPO (Hierarchical Input Process Output), diagrammi ER (Entity Relationship) e tabelle decisionali.

Q.What is level-0 DFD?

A. Il DFD con il livello di astrazione più alto è noto come DFD di livello 0, chiamato anche DFD a livello di contesto, che descrive l'intero sistema informativo come un diagramma che nasconde tutti i dettagli sottostanti.

Q.What is the difference between structured English and Pseudo Code?

A. L'inglese strutturato è la lingua inglese nativa utilizzata per scrivere la struttura di un modulo di programma utilizzando parole chiave del linguaggio di programmazione, mentre lo pseudo codice è più vicino al linguaggio di programmazione e utilizza parole o frasi in lingua inglese nativa per scrivere parti di codice.

Q.What is data dictionary?

A.Il dizionario dei dati è indicato come metadati. Significa che è un archivio di dati sui dati. Il dizionario dati viene utilizzato per organizzare i nomi ei relativi riferimenti utilizzati nel sistema come oggetti e file insieme alle loro convenzioni di denominazione.

Q.What is structured design?

A.Il design strutturato è una concettualizzazione del problema in diversi elementi di soluzione ben organizzati. Riguarda la progettazione della soluzione e si basa sulla strategia "divide et impera".

Q.What is the difference between function oriented and object oriented design?

A.Il design orientato alla funzione comprende molti sottosistemi più piccoli noti come funzioni. Ogni funzione è in grado di svolgere compiti significativi nel sistema. La progettazione orientata agli oggetti lavora intorno agli oggetti (entità) del mondo reale, alle loro classi (categorie) e ai metodi che operano sugli oggetti (funzioni).

Q.Briefly define top-down and bottom-up design model.

A. Il modello top-down inizia con una vista generalizzata del sistema e lo scompone in quelli più specifici, mentre il modello bottom-up inizia con i componenti più specifici e di base e continua a comporre i componenti per ottenere un livello più alto di astrazione.

Q.What is the basis of Halstead’s complexity measure?

A. La misura della complessità di Halstead dipende dall'attuazione effettiva del programma e considera i token utilizzati nel programma come base della misura.

Q.Mention the formula to calculate Cyclomatic complexity of a program?

A. La complessità ciclomatica utilizza la formula della teoria dei grafi: V (G) = e - n + 2

Q.What is functional programming?

A.La programmazione funzionale è lo stile del linguaggio di programmazione, che utilizza i concetti di funzione matematica. Fornisce mezzi di calcolo come funzioni matematiche, che producono risultati indipendentemente dallo stato del programma.

Q.Differentiate validation and verification?

A. La convalida controlla se il prodotto è realizzato secondo i requisiti dell'utente, mentre la verifica controlla se vengono seguiti i passaggi appropriati per sviluppare il prodotto.

La convalida conferma il prodotto giusto e la verifica conferma se il prodotto è stato costruito in modo corretto.

Q.What is black-box and white-box testing?

A.Il test della scatola nera controlla se gli output desiderati vengono prodotti quando vengono forniti valori di input validi. Non verifica l'effettiva attuazione del programma.

Il test white box non solo controlla l'output desiderato e valido quando viene fornito un input valido, ma controlla anche se il codice è implementato correttamente.

Criteri Test della scatola nera Test della scatola bianca
Conoscenza del programma software, progettazione e struttura essenziali No
Essenziale conoscenza dell'implementazione del software No
Chi conduce questo test sul software Dipendente di test del software Sviluppatore di software
riferimento di riferimento per il tester Specifiche dei requisiti Dettagli di design e struttura

Q.Quality assurance vs. Quality Control?

A. Monitoraggio della garanzia della qualità per verificare se viene seguito il processo corretto durante lo sviluppo del software.

Il controllo qualità si occupa di mantenere la qualità del prodotto software.

Q.What are various types of software maintenance?

A. I tipi di manutenzione sono: correttiva, adattiva, perfettiva e preventiva.

  • Corrective

    Rimozione degli errori individuati dagli utenti

  • Adaptive

    affrontare i cambiamenti nell'ambiente hardware e software in cui il software funziona

  • Perfective maintenance

    implementare modifiche ai requisiti esistenti o nuovi dell'utente

  • Preventive maintenance

    adottare misure adeguate per evitare problemi futuri

Q.What is software re-engineering?

A.La reingegnerizzazione del software è un processo per aggiornare la tecnologia su cui è costruito il software senza modificare la funzionalità del software. Questo viene fatto per mantenere il software sintonizzato con la tecnologia più recente.

Q.What are CASE tools?

A.CASE sta per Computer Aided Software Engineering. Gli strumenti CASE sono un insieme di programmi applicativi software automatizzati, utilizzati per supportare, accelerare e snellire le attività dell'SDLC.

Cosa c'è dopo?

Inoltre, puoi svolgere i compiti passati che hai svolto con l'argomento e assicurarti di essere in grado di parlarne con sicurezza. Se sei più fresco, l'intervistatore non si aspetta che tu risponda a domande molto complesse, piuttosto devi rendere i tuoi concetti di base molto forti.

Secondo, non importa davvero molto se non puoi rispondere a poche domande, ma importa che qualunque cosa tu abbia risposto, devi aver risposto con sicurezza. Quindi sentiti sicuro durante il tuo colloquio. Noi di tutorialspoint ti auguriamo buona fortuna per avere un buon intervistatore e tutto il meglio per il tuo futuro impegno. Saluti :-)