Scarica il pdf
1) Quali sono le categorie importanti di software?
- Software di sistema
- Software applicativo
- Software incorporato
- Applicazioni web
- Software di intelligenza artificiale
- Software scientifico.
2) Qual è la principale differenza tra un programma per computer e un software per computer?
Un programma per computer è un pezzo di codice di programmazione. Svolge un'attività ben definita. D'altra parte, il software include codice di programmazione, documentazione e guida per l'utente.
3) Cos'è la reingegnerizzazione del software?
È un processo di sviluppo del software che viene eseguito per migliorare la manutenibilità di un sistema software.
4) Descrivi brevemente il processo di sviluppo del software:
Lo sviluppo del software è un ciclo di vita composto dalle seguenti fasi:
- Analisi dei requisiti
- Specifica
- Architettura software
- Implementazione
- Test
- Documentazione
- Formazione e supporto
- Manutenzione
5) Quali sono i modelli SDLC disponibili?
Waterfall Model, Spiral Model, Big-bag model, Iterative Model e V-Model sono alcuni dei famosi modelli SDLC.
6) Che cos'è la verifica e la convalida?
Verifica:
La verifica è un termine che si riferisce all'insieme di attività che garantiscono che il software implementa una funzione specifica.
Validazione:
Si riferisce all'insieme di attività che assicurano che il software sia stato costruito secondo le necessità dei clienti.
7) Nel processo di sviluppo del software qual è il significato del debug?
Il debug è il processo che si traduce nella rimozione dell'errore. È una parte molto importante del test di successo.
8) Come puoi assicurarti che il tuo codice sia sicuro e veloce?
Nel software, la sicurezza dello sviluppo è sempre al primo posto. Quindi, se l'esecuzione del programma è lenta, cercherò di identificare la ragione per la sua complessità temporale.
9) Nominare due strumenti che vengono utilizzati per tenere traccia dei requisiti software?
Esistono molti modi per tenere traccia dei requisiti.
Due comunemente usati sono:
- Creare un documento con le specifiche dei requisiti per elencare tutti i requisiti.
- Crea un foglio Excel nell'elenco sotto il requisito, il tipo, la dipendenza, la priorità, ecc.
10) Qual è la differenza principale tra uno stub, un mock?
Uno stub è un'implementazione minima di un'interfaccia che generalmente restituisce dati hardcoded mentre il mock solitamente verifica gli output rispetto alle aspettative. Quelle aspettative sono stabilite nel test.
11) In che linguaggio ti piace scrivere algoritmi di programmazione?
Ogni sviluppatore ha le sue opinioni quando si tratta delle scelte del linguaggio di programmazione. Tuttavia, si dovrebbero preferire i linguaggi di alto livello perché sono dinamici. Come i linguaggi C e C ++.
12) Cos'è il software per computer?
Il software per computer è un pacchetto che include un programma software, la relativa documentazione e una guida per l'utente su come utilizzare il software.
13) Secondo te quale modello SDLC è il migliore?
Non esiste una classificazione del genere, poiché i modelli SDLC vengono adottati in base alle necessità del processo di sviluppo. Può differire da software a software.
14) Chi è il software project manager? Qual è il suo ruolo?
Un software project manager è una persona responsabile della gestione del progetto di sviluppo del software.
Il project manager sta facendo la pianificazione del progetto, monitorando lo stato di avanzamento, la comunicazione. Gestisce anche i rischi e le risorse per consegnare il progetto entro limiti di tempo, costi e qualità.
15) Cosa si intende per ambito software?
L'ambito del software è un confine ben definito. Comprende tutti i tipi di attività che vengono svolte per sviluppare e fornire il prodotto software.
L'ambito del software definisce tutte le funzionalità e gli artefatti da fornire come parte del software. Lo scopo identifica anche cosa farà il prodotto? Qual è la parte del progetto? Cos'è la stima del progetto?
Questo processo è utile per stimare vari aspetti del prodotto software. Questa stima può essere decisa consultando esperti o utilizzando formule predefinite.
16) Come trovare la dimensione di un prodotto software?
La dimensione del prodotto software può essere calcolata utilizzando i due metodi seguenti
- Contando le righe del codice fornito
- Conteggio dei punti funzione forniti
17) Cosa sono i punti funzione?
I punti funzione sono le caratteristiche fornite dal prodotto software. È considerata una misura più importante per la dimensione del software.
18) Quali sono le tecniche di stima del progetto software disponibili?
Le tecniche di stima più utilizzate sono:
- Tecnica di decomposizione
- Tecnica empirica
19) Cos'è la gestione della configurazione software?
La gestione della configurazione del software è un processo di tracciamento e controllo delle modifiche che avvengono nel software.
Il controllo delle modifiche è una funzione che garantisce che tutte le modifiche apportate al sistema software siano coerenti e create utilizzando regole e regolamenti organizzativi.
20) Come misurare l'esecuzione del progetto?
Possiamo misurare l'esecuzione del progetto utilizzando il monitoraggio delle attività, i rapporti sullo stato e le liste di controllo delle pietre miliari.
21) Parlami di alcuni strumenti di gestione del progetto.
Esistono molti tipi di strumenti di gestione utilizzati in base alla necessità di un progetto software. Alcuni di loro sono Diagramma Pert, Diagramma di Gantt, Istogramma delle risorse, Rapporti di stato, ecc.
22) Quali sono i requisiti software?
I requisiti software sono una descrizione funzionale di un sistema software proposto. Si presume che sia la descrizione del sistema di destinazione, delle sue funzionalità e caratteristiche.
23) Cos'è lo studio di fattibilità?
È una misura per scoprire quanto pratico e vantaggioso lo sviluppo del progetto software si rivelerà all'organizzazione. Il software analyzer conduce uno studio per conoscere la fattibilità economica, tecnica e operativa del progetto.
-
Economico: include il costo della formazione, il costo aggiuntivo e degli strumenti e la stima complessiva dei costi e dei benefici del progetto.
-
Tecnico: valuta l'aspetto tecnico. È possibile sviluppare questo sistema? Valutazione dell'idoneità delle macchine e del sistema operativo su cui verrà eseguito il software, conoscenza dello sviluppo del software e degli strumenti disponibili per questo progetto.
-
Operativo: qui l'analista deve valutare che l'organizzazione sarà in grado di adattarsi senza problemi ai cambiamenti fatti secondo la richiesta del progetto. Vale la pena risolvere il problema al costo stimato?
Dopo, studiando tutto questo, viene creato il report finale di fattibilità.
24) Quali sono i requisiti funzionali e non funzionali?
I requisiti funzionali sono caratteristiche funzionali che sono attese dagli utenti dal prodotto software proposto.
I requisiti non funzionali sono correlati a sicurezza, prestazioni, aspetto e funzionalità dell'interfaccia utente.
25) Cos'è la metrica del software?
Software Metrics offre misure per vari aspetti del processo software che sono suddivisi in:
- Metriche dei requisiti: requisiti di lunghezza, completezza
- Metriche del prodotto: numero di linee di codifica, metriche orientate agli oggetti, metriche di progettazione e test.
26) Cos'è la modularizzazione?
La modularizzazione è una tecnica che viene utilizzata per dividere un sistema software in vari moduli discreti. Questo dovrebbe svolgere i compiti in modo indipendente.
27) Cos'è la coesione?
La coesione è una misura che definisce l'intra-affidabilità tra gli elementi del modulo.
28) Menziona alcuni strumenti di analisi e progettazione del software?
Alcuni dei più importanti strumenti di analisi e progettazione del software sono:
- Diagrammi di flusso di dati
- Grafici strutturati
- Inglese strutturato
- Dizionario dei dati
- Diagrammi gerarchici di input del processo di output
- Diagrammi di relazione tra entità e tabelle decisionali
29) Cosa si intende per diagramma di flusso dei dati di livello 0?
Il livello di astrazione più alto è chiamato Livello 0 di DFD. È anche chiamato DFD a livello di contesto. Rappresenta l'intero sistema informativo come un unico diagramma.
30) Qual è la principale differenza tra l'inglese strutturato e lo pseudo codice?
L'inglese strutturato è la lingua madre inglese. Viene utilizzato per scrivere la struttura di un modulo di programma. Utilizza parole chiave del linguaggio di programmazione. D'altra parte, lo pseudo codice è più simile al linguaggio di programmazione senza la sintassi di alcun linguaggio specifico.
31) Cos'è il design strutturato?
Il design strutturato è una concettualizzazione del problema. Ha anche chiamato il design della soluzione e si basa sulla strategia "divide et impera".
32) Cos'è la programmazione funzionale?
È un metodo di programmazione, che utilizza i concetti di una funzione matematica. Fornisce mezzi di calcolo come funzioni matematiche, che producono anche risultati indipendentemente dallo stato del programma.
33) Che cos'è la garanzia di qualità e il controllo di qualità?
La garanzia della qualità controlla se viene seguito il processo corretto durante lo sviluppo del software, mentre il controllo della qualità si occupa di mantenere la qualità del prodotto software.
34) Cosa sono gli strumenti CASE?
CASE significa Computer Aided Software Engineering. Sono un insieme di programmi applicativi software automatizzati, che vengono utilizzati per supportare, migliorare e rafforzare le attività dell'SDLC.
35) Quale modello di processo rimuove i difetti prima che il software si metta in difficoltà?
Il metodo di ingegneria del software per camere bianche rimuove i difetti prima che il software si metta in difficoltà.
36) Risolvi questo problema
Ci sono venti calzini diversi di due tipi in un cassetto in una stanza buia. Qual è il numero minimo di calzini che devi portare per assicurarti di averne un paio abbinato? "
Se raccogli tre calzini, potrebbero essere dello stesso tipo anche se le probabilità sono del 50%. Le probabilità non sono mai una realtà uguale. Pertanto, l'unico modo per "assicurarti di avere una coppia corrispondente" è raccogliere almeno 11 shock.
37) Come puoi assicurarti che il tuo codice scritto sia in grado di gestire vari tipi di situazioni di errore?
Posso scrivere test che definiscono le situazioni di errore previste.
38) Spiegare le differenze tra un thread e un processo?
Un processo è istanza del programma per computer. In un singolo programma è possibile avere uno o più thread.
39) Dimmi la differenza tra un EXE e una DLL?
Un exe è un programma eseguibile mentre una DLL è un file che può essere caricato ed eseguito dai programmi in modo dinamico. È un repository di codice esterno per i programmi. Poiché entrambi sono programmi diversi, riutilizzare la stessa DLL invece di avere quel codice nel loro file. Riduce anche lo spazio di archiviazione richiesto.
40) Che cosa sono la digitazione forte e la digitazione debole? Quale è preferito? Perché?
La tipizzazione forte controlla i tipi di variabili in fase di compilazione. D'altra parte, una digitazione debole controlla i tipi di sistema in fase di esecuzione. Tra questi, la digitazione forte è sempre preferita perché riduce al minimo i bug.
41) Descrivere la differenza tra programmazione orientata all'interfaccia, orientata agli oggetti e orientata agli aspetti.
- La programmazione dell'interfaccia è basata sul contratto.
- Object-oriented è un modo per scrivere oggetti granulari che hanno un unico scopo.
- La programmazione orientata agli aspetti consiste nel separare il codice in modo tale che vari oggetti svolgano le attività principali e le attività sussidiarie siano svolte da oggetti indipendenti.
42) Perché usare catch (eccezione) è sempre una cattiva idea?
È una cattiva idea perché:
- Poiché non esiste una variabile definita, non è possibile leggere l'eccezione
- È utile utilizzare un'eccezione quando si hanno tipi di eccezione noti.
43) Che tipo di dati vengono passati tramite gli header HTTP?
Script e metadati passati tramite intestazioni HTTP.
44) Come si assegnano le priorità ai requisiti?
Innanzitutto, è necessario progettare un sistema valutando la struttura dei dati. Quindi dovresti passare alla struttura del codice necessaria per supportarlo.
45) Mi dai differenze tra il design orientato agli oggetti e quello basato sui componenti?
La progettazione orientata agli oggetti può essere facilmente incapsulata in una certa misura nella progettazione basata sui componenti.
46) Quando usi il polimorfismo?
Il polimorfismo viene utilizzato quando è necessario eseguire l'override della funzionalità quando si eredita la classe. Si tratta di classi condivise e contratti condivisi.
47) Qual è la differenza tra stack e queue?
- La coda è sempre First In, First Out
- Stack è sempre Last In, First Out
48) Cosa è essenziale per testare la qualità del codice?
Secondo me, il framework di unit test è essenziale per testare la qualità del codice.
49) Pensi che la manutenzione del software sia costosa?
Secondo me, la manutenzione del software non sarà mai costosa se utilizziamo un processo di sviluppo adeguato.
50) Mi dai differenze tra tag e branch?
I tag sono per le versioni di controllo delle versioni che sono luoghi di conservazione temporanei per fare tale cosa. Tuttavia, i rami vengono eliminati quando tali modifiche vengono unite nel tronco.
51) Dove è disponibile una variabile a livello di classe protetta?
Le variabili protette a livello di classe sono disponibili per qualsiasi sottoclasse derivata dalla classe base.
52) È possibile eseguire più blocchi catch per una singola istruzione try?
Sì. È possibile eseguire più blocchi catch per una singola istruzione try.
53) Quando è necessario dichiarare una classe come astratta?
Dovremmo dichiarare una classe come astratta nelle seguenti situazioni:
- Quando la classe viene ereditata da una classe astratta, ma non tutti i metodi astratti sono stati sovrascritti.
- Nel caso in cui almeno uno dei metodi nella classe sia dichiarato come abstract.
54) Sviluppa un algoritmo che restituisca la tua posizione corrente e un elenco di posizioni degli sportelli automatici in quella zona. Ottieni gli sportelli automatici K più vicini alla tua posizione.
Creare un metodo getDistance (a, b) che calcola la distanza tra a e b.
Codice:
import java.util.HashMap;import java.util.Map;import java.util.PriorityQueue;public class PrioRQueueExample {public static void main(String[] args){PriorityQueuepq = new PriorityQueue ((x,y)-> {Double z = y-x;return z.intValue(); });PrioRQueueExample pqe = new PrioRQueueExample();//Number of ATMs to return i.e. Kint num_ATMs = 3;double curr_loc = 0.00;Map nallATMLocs = new HashMap ();//Map of ATM names and their distance co-ordinatesnallATMLocs.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;}}