Télécharger le PDF
1) Quelles sont les catégories importantes de logiciels?
- Logiciel système
- Logiciel d'application
- Logiciel embarqué
- Des applications Web
- Logiciel d'intelligence artificielle
- Logiciel scientifique.
2) Quelle est la principale différence entre un programme informatique et un logiciel informatique?
Un programme informatique est un morceau de code de programmation. Il effectue une tâche bien définie. D'autre part, le logiciel comprend le code de programmation, la documentation et le guide de l'utilisateur.
3) Qu'est-ce que la réingénierie logicielle?
C'est un processus de développement logiciel qui vise à améliorer la maintenabilité d'un système logiciel.
4) Décrivez le processus de développement logiciel en bref:
Le développement logiciel est un cycle de vie composé des étapes suivantes:
- Analyse des besoins
- spécification
- Architecture logicielle
- Mise en œuvre
- Essai
- Documentation
- Formation et accompagnement
- Maintenance
5) Quels sont les modèles SDLC disponibles?
Waterfall Model, Spiral Model, Big-bag model, Itterative Model et V-Model sont quelques-uns des modèles SDLC célèbres.
6) Qu'est-ce que la vérification et la validation?
Vérification:
La vérification est un terme qui fait référence à l'ensemble des activités qui garantissent que le logiciel met en œuvre une fonction spécifique.
Validation:
Il se réfère à l'ensemble des activités qui garantissent que le logiciel a été construit en fonction des besoins des clients.
7) Dans le processus de développement logiciel, quelle est la signification du débogage?
Le débogage est le processus qui entraîne la suppression de l'erreur. C'est une partie très importante du succès des tests.
8) Comment pouvez-vous vous assurer que votre code est à la fois sûr et rapide?
Dans le logiciel, la sécurité du développement est toujours la priorité. Donc, si l'exécution du programme est lente, je vais essayer d'identifier la raison de sa complexité temporelle.
9) Nommez deux outils qui sont utilisés pour suivre les exigences logicielles?
Il existe de nombreuses façons de suivre les besoins.
Deux couramment utilisés sont:
- Créez un document de spécifications des exigences pour répertorier toutes les exigences.
- Créez une feuille Excel contenant la liste des exigences, du type, de la dépendance, de la priorité, etc.
10) Quelle est la principale différence entre un talon, un faux?
Un stub est une implémentation minimale d'une interface qui renvoie généralement des données codées en dur tandis que mock vérifie généralement les sorties par rapport aux attentes. Ces attentes sont définies dans le test.
11) Quel langage aimez-vous pour écrire des algorithmes de programmation?
Chaque développeur a son point de vue sur les choix du langage de programmation. Cependant, on devrait préférer les langages de haut niveau car ils sont dynamiques. Comme les langages C et C ++.
12) Qu'est-ce qu'un logiciel informatique?
Un logiciel informatique est un package qui comprend un programme logiciel, sa documentation et un guide de l'utilisateur sur la façon d'utiliser le logiciel.
13) Selon vous, quel modèle SDLC est le meilleur?
Il n'y a pas de tel classement, car les modèles SDLC sont adoptés en fonction des besoins du processus de développement. Cela peut différer d'un logiciel à l'autre.
14) Qui est chef de projet logiciel? Quel est son rôle?
Un chef de projet logiciel est une personne responsable de la gestion du projet de développement logiciel.
Le chef de projet s'occupe de la planification du projet, du suivi de l'avancement, de la communication. Il ou elle gère également les risques et les ressources pour livrer le projet dans les contraintes de temps, de coût et de qualité.
15) Qu'entend-on par champ d'application logiciel?
La portée du logiciel est une frontière bien définie. Il comprend toutes sortes d'activités qui sont effectuées pour développer et livrer le produit logiciel.
La portée du logiciel définit toutes les fonctionnalités et tous les artefacts à fournir dans le cadre du logiciel. La portée identifie également ce que le produit fera? Qu'est-ce qui ne fait pas partie du projet? Qu'est-ce que l'estimation de projet?
Ce processus est utile pour estimer divers aspects du produit logiciel. Cette estimation peut être décidée soit en consultant des experts, soit en utilisant des formules prédéfinies.
16) Comment trouver la taille d'un produit logiciel?
La taille du produit logiciel peut être calculée à l'aide de deux méthodes suivantes
- Compter les lignes de code livré
- Comptage des points de fonction livrés
17) Que sont les points de fonction?
Les points de fonction sont les fonctionnalités fournies par le produit logiciel. Il est considéré comme la mesure la plus importante de la taille du logiciel.
18) Quelles sont les techniques d'estimation de projets logiciels disponibles?
Les techniques d'estimation les plus utilisées sont:
- Technique de décomposition
- Technique empirique
19) Qu'est-ce que la gestion de la configuration logicielle?
La gestion de la configuration logicielle est un processus de suivi et de contrôle des modifications qui se produisent dans le logiciel.
Le contrôle des modifications est une fonction qui garantit que toutes les modifications apportées au système logiciel sont cohérentes et créées à l'aide des règles et réglementations organisationnelles.
20) Comment pouvez-vous mesurer l'exécution du projet?
Nous pouvons mesurer l'exécution du projet à l'aide de la surveillance des activités, des rapports d'état et des listes de contrôle des jalons.
21) Parlez-moi de quelques outils de gestion de projet.
Il existe de nombreux types d'outils de gestion utilisés selon la nécessité d'un projet logiciel. Certains d'entre eux sont le diagramme Pert, le diagramme de Gantt, l'histogramme des ressources, les rapports d'état, etc.
22) Quelles sont les exigences logicielles?
Les exigences logicielles sont une description fonctionnelle d'un système logiciel proposé. On suppose qu'il s'agit de la description du système cible, de ses fonctionnalités et caractéristiques.
23) Qu'est-ce qu'une étude de faisabilité?
Il s'agit d'une mesure visant à déterminer dans quelle mesure le développement de projet logiciel sera pratique et bénéfique pour l'organisation. L'analyseur logiciel mène une étude pour connaître la faisabilité économique, technique et opérationnelle du projet.
-
Économique: il comprend le coût de la formation, le coût des outils et des outils supplémentaires et l'estimation globale des coûts et avantages du projet.
-
Technique: Il évalue l'aspect technique. Est-il possible de développer ce système? Évaluer l'adéquation de la (des) machine (s) et du système d'exploitation sur lequel le logiciel sera exécuté, connaissance du développement logiciel et des outils disponibles pour ce projet.
-
Opérationnel: Ici, l'analyste doit évaluer que l'organisation sera en mesure de s'adapter en douceur aux changements effectués en fonction de la demande du projet. Le problème vaut-il la peine d'être résolu au coût estimé?
Après avoir étudié tout cela, le rapport de faisabilité final est créé.
24) Quelles sont les exigences fonctionnelles et non fonctionnelles?
Les exigences fonctionnelles sont des caractéristiques fonctionnelles attendues par les utilisateurs du produit logiciel proposé.
Les exigences non fonctionnelles sont liées à la sécurité, aux performances, à l'apparence et à la convivialité de l'interface utilisateur.
25) Qu'est-ce que la métrique logicielle?
Software Metrics propose des mesures pour divers aspects du processus logiciel qui sont divisés en:
- Mesures d'exigence: exigences de longueur, exhaustivité
- Métriques du produit: nombre de lignes de codage, métriques orientées objet, métriques de conception et de test.
26) Qu'est-ce que la modularisation?
La modularisation est une technique utilisée pour diviser un système logiciel en différents modules discrets. Cela devrait mener à bien les tâches de manière indépendante.
27) Qu'est-ce que la cohésion?
La cohésion est une mesure qui définit l'intra-fiabilité entre les éléments du module.
28) Mentionne certains outils d'analyse et de conception de logiciels?
Certains des outils d'analyse et de conception de logiciels les plus importants sont:
- Diagrammes de flux de données
- Graphiques structurés
- Anglais structuré
- Dictionnaire de données
- Diagrammes hiérarchiques d'entrée du processus de sortie
- Diagrammes de relations d'entité et tables de décision
29) Qu'entend-on par diagramme de flux de données de niveau 0?
Le niveau d'abstraction le plus élevé est appelé le niveau 0 de DFD. Il est également appelé DFD au niveau du contexte. Il présente l'ensemble du système d'information sous la forme d'un seul diagramme.
30) Quelle est la principale différence entre l'anglais structuré et le pseudo-code?
L'anglais structuré est la langue maternelle anglaise. Il est utilisé pour écrire la structure d'un module de programme. Il utilise des mots-clés de langage de programmation. D'autre part, le pseudo code ressemble plus au langage de programmation sans syntaxe d'aucun langage spécifique.
31) Qu'est-ce que la conception structurée?
La conception structurée est une conceptualisation du problème. Il a également appelé la conception de solution et qui est basé sur la stratégie de «diviser pour conquérir».
32) Qu'est-ce que la programmation fonctionnelle?
C'est une méthode de programmation qui utilise les concepts d'une fonction mathématique. Il fournit des moyens de calcul sous forme de fonctions mathématiques, qui produisent également des résultats quel que soit l'état du programme.
33) Qu'est-ce que l'assurance qualité par rapport au contrôle qualité?
L'assurance qualité vérifie si le processus approprié est suivi lors du développement du logiciel tandis que le contrôle qualité s'occupe de maintenir la qualité du produit logiciel.
34) Que sont les outils CASE?
CASE signifie génie logiciel assisté par ordinateur. Il s'agit d'un ensemble de programmes d'application logicielle automatisés, qui sont utilisés pour soutenir, améliorer et renforcer les activités du SDLC.
35) Quel modèle de processus supprime les défauts avant que le logiciel n'ait des problèmes?
La méthode d'ingénierie logicielle de salle blanche supprime les défauts avant que le logiciel ne soit en difficulté
36) Résolvez ce problème
Il y a vingt chaussettes différentes de deux types dans un tiroir dans une pièce sombre. Quel est le nombre minimum de chaussettes que vous devez emporter pour vous assurer d'avoir une paire correspondante? "
Si vous prenez trois chaussettes, elles peuvent être du même type même si les chances sont de 50%. Les chances ne sont jamais une réalité égale. Par conséquent, le seul moyen de «vous assurer d'avoir une paire correspondante» est de capter au moins 11 chocs.
37) Comment pouvez-vous vous assurer que votre code écrit peut gérer différents types de situation d'erreur?
Je peux écrire des tests qui définissent les situations d'erreur attendues.
38) Expliquer les différences entre un thread et un processus?
Un processus est une instance du programme informatique. Dans un seul programme, il est possible d'avoir un ou plusieurs threads.
39) Dites-moi la différence entre un EXE et une DLL?
Un exe est un programme exécutable tandis qu'une DLL est un fichier qui peut être chargé et exécuté par des programmes de manière dynamique. C'est un référentiel de code externe pour les programmes. Comme les deux sont des programmes différents, réutilisez la même DLL au lieu d'avoir ce code dans leur fichier. Cela réduit également l'espace de stockage requis.
40) Qu'est-ce que le typage fort et le typage faible? Laquelle est préférée? Pourquoi?
Un typage fort vérifie les types de variables au moment de la compilation. D'autre part, une saisie faible vérifie les types de système au moment de l'exécution. Parmi eux, le typage fort est toujours préféré car il minimise les bogues.
41) Décrivez la différence entre la programmation orientée interface, orientée objet et orientée aspect.
- La programmation d'interface est basée sur un contrat.
- Orienté objet est un moyen d'écrire des objets granulaires qui ont un seul but.
- La programmation orientée aspect consiste à séparer le code de telle manière que divers objets portent les tâches principales et que les tâches subsidiaires soient portées par des objets indépendants.
42) Pourquoi utiliser catch (exception) est toujours une mauvaise idée?
C'est une mauvaise idée car:
- Comme il n'y a pas de variable définie, il n'est pas possible de lire l'exception
- Il est bon d'utiliser une exception lorsque vous avez des types d'exception connus.
43) Quel type de données est transmis via les en-têtes HTTP?
Script et métadonnées transmis via les en-têtes HTTP.
44) Comment hiérarchisez-vous les exigences?
Tout d'abord, vous devez concevoir un système en évaluant la structure des données. Ensuite, vous devez passer à la structure de code nécessaire pour le prendre en charge.
45) Donnez-moi les différences entre la conception orientée objet et la conception basée sur les composants?
La conception orientée objet peut facilement être encapsulée dans une certaine mesure dans la conception basée sur des composants.
46) Quand utilisez-vous le polymorphisme?
Le polymorphisme est utilisé lorsqu'il est nécessaire de disposer d'une fonctionnalité de remplacement lors de l'héritage d'une classe. Il s'agit de cours partagés et de contrats partagés.
47) Quelle est la différence entre pile et file d'attente?
- La file d'attente est toujours premier entré, premier sorti
- La pile est toujours le dernier entré, le premier sorti
48) Qu'est-ce qui est essentiel pour tester la qualité du code?
Selon moi, le cadre de test unitaire est essentiel pour tester la qualité du code.
49) Pensez-vous que la maintenance des logiciels coûte cher?
Selon moi, la maintenance des logiciels ne sera jamais coûteuse si nous utilisons un processus de développement approprié.
50) Donnez-moi les différences entre les balises et les branches?
Les balises sont destinées aux versions de versioning qui sont des lieux de rétention temporaires pour faire une telle chose. Cependant, les branches sont supprimées lorsque ces modifications sont fusionnées dans le coffre.
51) Où une variable protégée au niveau de la classe est-elle disponible?
Les variables de niveau classe protégées sont disponibles pour toute sous-classe dérivée de la classe de base.
52) Est-il possible d'exécuter plusieurs blocs catch pour une seule instruction try?
Oui. Plusieurs blocs catch peuvent être exécutés pour une seule instruction try.
53) Quand devez-vous déclarer une classe comme abstraite?
Nous devons déclarer une classe comme abstraite dans les situations suivantes:
- Lorsque la classe est héritée d'une classe abstraite, mais que toutes les méthodes abstraites n'ont pas été remplacées.
- Dans le cas où au moins une des méthodes de la classe est déclarée comme un résumé.
54) Développez un algorithme qui affiche votre emplacement actuel et une liste des emplacements des guichets automatiques dans cette zone. Obtenez les guichets automatiques K les plus proches de votre emplacement.
Créez une méthode getDistance (a, b) qui calcule la distance entre a et b.
Code:
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;}}