Questions d'entretiens chez Software Engineering

Chers lecteurs, ces Software Engineering Interview Questions ont été spécialement conçus pour vous familiariser avec la nature des questions que vous pourriez rencontrer lors de votre entretien sur le sujet de Software Engineering. D'après mon expérience, les bons enquêteurs avaient à peine prévu de poser une question particulière pendant votre entretien, normalement les questions commencent par un concept de base du sujet et plus tard, elles se poursuivent sur la base d'une discussion plus approfondie et de vos réponses:

Q.What is computer software?

A. Le logiciel informatique est un package complet, qui comprend le logiciel, sa documentation et un guide de l'utilisateur sur la façon d'utiliser le logiciel.

Q.Can you differentiate computer software and computer program?

A. Un programme informatique est un morceau de code de programmation qui exécute une tâche bien définie alors que le logiciel comprend le code de programmation, sa documentation et son guide de l'utilisateur.

Q.What is software engineering?

A. Le génie logiciel est une branche d'ingénierie associée au développement de systèmes logiciels.

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

A.Une personne qui sait comment construire un mur peut ne pas être douée pour construire une maison entière. De même, une personne capable d'écrire des programmes peut ne pas avoir de connaissances sur d'autres concepts du génie logiciel. Les concepts de génie logiciel guident les programmeurs sur la façon d'évaluer les exigences de l'utilisateur final, de concevoir les algorithmes avant le début du codage réel, de créer des programmes en codant, de tester le code et sa documentation.

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

A.Le cycle de vie du développement logiciel, ou processus logiciel, est le développement systématique d'un logiciel en suivant chaque étape du processus de développement, à savoir la collecte des exigences, l'analyse du système, la conception, le codage, les tests, la maintenance et la documentation dans cet ordre.

Q.What are SDLC models available?

A. Il existe plusieurs modèles SDLC disponibles tels que le modèle en cascade, le modèle itératif, le modèle en spirale, le modèle en V et le modèle Big-bang, etc.

Q.What are various phases of SDLC?

A.Les phases génériques du SDLC sont: la collecte des exigences, l'analyse et la conception du système, le codage, les tests et la mise en œuvre. Les phases dépendent du modèle que nous choisissons pour développer le logiciel.

Q.Which SDLC model is the best?

A.Les modèles SDLC sont adoptés selon les exigences du processus de développement. Cela peut très bien être de logiciel à logiciel pour s'assurer que le modèle est approprié.

Nous pouvons sélectionner le meilleur modèle SDLC si les réponses suivantes sont satisfaites -

  • Le SDLC est-il adapté à la technologie sélectionnée pour implémenter le logiciel?
  • Le SDLC est-il adapté aux exigences et aux priorités du client?
  • Le modèle SDLC est-il adapté à la taille et à la complexité du logiciel?
  • Le modèle SDLC est-il adapté au type de projets et d'ingénierie que nous réalisons?
  • Le SDLC convient-il aux développeurs géographiquement colocalisés ou dispersés?

Q.What is software project management?

A. La gestion de projet logiciel est un processus de gestion de toutes les activités telles que la gestion du temps, des coûts et de la qualité impliquées dans le développement de logiciels.

Q.Who is software project manager?

A. Un chef de projet logiciel est une personne qui assume la responsabilité de réaliser le projet logiciel.

Q.What does software project manager do?

A. Le chef de projet logiciel est engagé dans les activités de gestion de logiciel. Il est responsable de la planification du projet, du suivi de l'avancement, de la communication entre les parties prenantes, de la gestion des risques et des ressources, de la bonne exécution du développement et de la livraison du projet dans les délais, les coûts et la qualité.

Q.What is software scope?

A. La portée du logiciel est une limite bien définie, qui englobe toutes les activités qui sont effectuées pour développer et livrer le produit logiciel.

La portée du logiciel définit clairement toutes les fonctionnalités et tous les artefacts à fournir dans le cadre du logiciel. Le champ d'application identifie ce que le produit fera et ce qu'il ne fera pas, ce que le produit final contiendra et ce qu'il ne contiendra pas.

Q.What is project estimation?

A.Il s'agit d'un processus d'estimation de divers aspects d'un produit logiciel afin de calculer le coût de développement en termes d'efforts, de temps et de ressources. Cette estimation peut être tirée de l'expérience passée, en consultant des experts ou en utilisant des formules prédéfinies.

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

A. La taille du produit logiciel peut être calculée à l'aide de l'une des deux méthodes suivantes:

  • Compter les lignes de code livré
  • Comptage des points de fonction livrés

Q.What are function points?

A.Les points de fonction sont les différentes fonctionnalités fournies par le produit logiciel. Il est considéré comme une unité de mesure de la taille du logiciel.

Q.What are software project estimation techniques available?

A. Il existe de nombreuses techniques d'estimation disponibles, les plus largement utilisées sont:

  • Technique de décomposition (comptage des lignes de code et des points de fonction)
  • Technique empirique (Putnam et COCOMO).

Q.What is baseline?

A.La ligne de base est une mesure qui définit l'exhaustivité d'une phase. Une fois que toutes les activités associées à une phase particulière sont accomplies, la phase est terminée et sert de base pour la phase suivante.

Q.What is Software configuration management?

A. La gestion de la configuration logicielle est un processus de suivi et de contrôle des modifications logicielles en termes d'exigences, de conception, de fonctions et de développement du produit.

Q.What is change control?

A. Le contrôle des modifications est fonction de la gestion de la configuration, qui garantit que toutes les modifications apportées au système logiciel sont cohérentes et effectuées conformément aux règles et réglementations organisationnelles.

Q.How can you measure project execution?

A. Nous pouvons mesurer l'exécution du projet au moyen du suivi des activités, des rapports d'état et des listes de contrôle des jalons.

Q.Mention some project management tools.

A.Il existe divers outils de gestion de projet utilisés conformément aux exigences des projets logiciels et des politiques d'organisation. Ils incluent le diagramme de Gantt, le diagramme PERT, l'histogramme des ressources, l'analyse du chemin critique, les rapports d'état, les listes de contrôle des jalons, etc.

Q.What are software requirements?

A.Les exigences logicielles sont une description fonctionnelle du système logiciel proposé. Les exigences sont supposées être la description du système cible, ses fonctionnalités et caractéristiques. Les exigences traduisent les attentes des utilisateurs vis-à-vis du système.

Q.What is feasibility study?

A.Il s'agit d'une mesure permettant d'évaluer dans quelle mesure le développement d'un projet logiciel sera pratique et bénéfique pour une organisation. L'analyseur logiciel mène une étude approfondie pour comprendre la faisabilité économique, technique et opérationnelle du projet.

  • Economic - Transport des ressources, coût de la formation, coût des utilités et outils supplémentaires et estimation globale des coûts et avantages du projet.

  • Technical - Est-il possible de développer ce système? Évaluer l'adéquation des machines et des systèmes d'exploitation sur lesquels le logiciel sera exécuté, les connaissances et compétences des développeurs existants, la formation, les utilitaires ou les outils pour le projet.

  • Operational - L'organisation peut-elle s'adapter en douceur aux changements effectués selon la demande du projet? Le problème vaut-il la peine d'être résolu?

Q.How can you gather requirements?

A. Les exigences peuvent être recueillies auprès des utilisateurs via des entretiens, des enquêtes, l'analyse des tâches, le brainstorming, l'analyse de domaine, le prototypage, l'étude de la version utilisable existante du logiciel et par l'observation.

Q.What is SRS?

A.SRS ou Software Requirement Specification est un document produit au moment du processus de collecte des exigences. Il peut également être considéré comme un processus de raffinement des exigences et de leur documentation.

Q.What are functional requirements?

A. Les exigences fonctionnelles sont les caractéristiques fonctionnelles et les spécifications attendues par les utilisateurs du produit logiciel proposé.

Q.What are non-functional requirements?

A. Les exigences non fonctionnelles sont implicites et sont liées à la sécurité, aux performances, à l'aspect et à la convivialité de l'interface utilisateur, à l'interopérabilité, au coût, etc.

Q.What is software measure?

A. Les mesures logicielles peuvent être comprises comme un processus de quantification et de symbolisation de divers attributs et aspects d'un logiciel.

Q.What is software metric?

A.Les métriques logicielles fournissent des mesures pour divers aspects du processus logiciel et du produit logiciel. Ils sont divisés en -

  • Mesures d'exigence: exigences de longueur, exhaustivité
  • Métriques du produit: lignes de code, métriques orientées objet, métriques de conception et de test
  • Métriques de processus: évaluer et suivre le budget, le calendrier, les ressources humaines.

Q.What is modularization?

A. La modularisation est une technique permettant de diviser un système logiciel en plusieurs modules discrets, censés effectuer des tâches de manière indépendante.

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

A.La concurrence est la tendance des événements ou des actions à se produire simultanément. Dans le logiciel, lorsque deux ou plusieurs processus s'exécutent simultanément, ils sont appelés processus simultanés.

Exemple

Lorsque vous lancez la commande d'impression et que l'impression démarre, vous pouvez ouvrir une nouvelle application.

La concurrence est implémentée en divisant le logiciel en plusieurs unités d'exécution indépendantes, à savoir les processus et les threads, et en les exécutant en parallèle.

Q.What is cohesion?

A. La cohésion est une mesure qui définit le degré d'intra-fiabilité parmi les éléments du module.

Q.What is coupling?

A. Le couplage est une mesure qui définit le niveau d'interdépendance entre les modules d'un programme.

Q.Mentions some software analysis & design tools?

A. Il peut s'agir de: DFD (diagrammes de flux de données), diagrammes structurés, anglais structuré, dictionnaire de données, diagrammes HIPO (Hierarchical Input Process Output), diagrammes ER (Entity Relationship) et tableaux de décision.

Q.What is level-0 DFD?

A. Le DFD de niveau d'abstraction le plus élevé est connu sous le nom de DFD de niveau 0, également appelé DFD de niveau de contexte, qui représente l'ensemble du système d'information sous la forme d'un diagramme dissimulant tous les détails sous-jacents.

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

A. L'anglais structuré est la langue anglaise native utilisée pour écrire la structure d'un module de programme en utilisant des mots-clés de langage de programmation, tandis que Pseudo Code est plus proche du langage de programmation et utilise des mots ou des phrases en anglais natif pour écrire des parties de code.

Q.What is data dictionary?

A.Le dictionnaire de données est appelé méta-données. Cela signifie qu'il s'agit d'un référentiel de données sur les données. Le dictionnaire de données est utilisé pour organiser les noms et leurs références utilisés dans le système, tels que les objets et les fichiers, ainsi que leurs conventions de dénomination.

Q.What is structured design?

A.La conception structurée est une conceptualisation du problème en plusieurs éléments de solution bien organisés. Il s'agit de la conception de la solution et de la stratégie de «diviser pour conquérir».

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

A.La conception orientée fonction comprend de nombreux sous-systèmes plus petits appelés fonctions. Chaque fonction est capable d'effectuer une tâche importante dans le système. La conception orientée objet fonctionne autour des objets du monde réel (entités), leurs classes (catégories) et les méthodes opérant sur des objets (fonctions).

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

A. Le modèle descendant commence par une vue généralisée du système et le décompose en un modèle plus spécifique, tandis que le modèle ascendant commence par les composants les plus spécifiques et les plus basiques en premier et continue à composer les composants pour obtenir un niveau d'abstraction plus élevé.

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

A. La mesure de la complexité de Halstead dépend de la mise en œuvre réelle du programme et considère les jetons utilisés dans le programme comme base de mesure.

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

A. La complexité cyclomatique utilise la formule de la théorie des graphes: V (G) = e - n + 2

Q.What is functional programming?

A.La programmation fonctionnelle est un style de langage de programmation, qui utilise les concepts de fonction mathématique. Il fournit des moyens de calcul sous forme de fonctions mathématiques, qui produisent des résultats quel que soit l'état du programme.

Q.Differentiate validation and verification?

A. La validation vérifie si le produit est fabriqué conformément aux exigences de l'utilisateur, tandis que la vérification vérifie si les étapes appropriées sont suivies pour développer le produit.

La validation confirme le bon produit et la vérification confirme si le produit est construit de la bonne manière.

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

A.Le test de la boîte noire vérifie si les sorties souhaitées sont produites lorsque des valeurs d'entrée valides sont données. Il ne vérifie pas la mise en œuvre réelle du programme.

Les tests en boîte blanche vérifient non seulement la sortie souhaitée et valide lorsqu'une entrée valide est fournie, mais également si le code est correctement implémenté.

Critères Test de la boîte noire Test de la boîte blanche
Connaissance du logiciel, de la conception et de la structure essentielles Non Oui
Connaissance de la mise en œuvre logicielle essentielle Non Oui
Qui effectue ce test sur le logiciel Employé de test de logiciels Développeur de logiciels
référence de base pour le testeur Spécifications des exigences Détails de conception et de structure

Q.Quality assurance vs. Quality Control?

A. L'assurance qualité surveille pour vérifier si le processus approprié est suivi pendant le développement du logiciel.

Le contrôle de la qualité concerne le maintien de la qualité du produit logiciel.

Q.What are various types of software maintenance?

A. Les types de maintenance sont: correctif, adaptatif, perfectif et préventif.

  • Corrective

    Suppression des erreurs repérées par les utilisateurs

  • Adaptive

    s'attaquer aux changements de l'environnement matériel et logiciel dans lequel le logiciel fonctionne

  • Perfective maintenance

    mettre en œuvre des changements dans les exigences existantes ou nouvelles de l'utilisateur

  • Preventive maintenance

    prendre des mesures appropriées pour éviter de futurs problèmes

Q.What is software re-engineering?

A.La réingénierie logicielle est un processus permettant de mettre à niveau la technologie sur laquelle le logiciel est construit sans changer la fonctionnalité du logiciel. Ceci est fait afin de garder le logiciel à l'écoute des dernières technologies.

Q.What are CASE tools?

A.CASE signifie génie logiciel assisté par ordinateur. Les outils CASE sont un ensemble de programmes d'application logicielle automatisés, qui sont utilisés pour soutenir, accélérer et fluidifier les activités SDLC.

Quelle est la prochaine?

De plus, vous pouvez passer en revue vos tâches précédentes que vous avez effectuées sur le sujet et vous assurer que vous êtes en mesure de parler en toute confiance. Si vous êtes plus frais, l'intervieweur ne s'attend pas à ce que vous répondiez à des questions très complexes, mais vous devez plutôt rendre vos concepts de base très forts.

Deuxièmement, cela n'a pas vraiment d'importance si vous ne pouviez pas répondre à quelques questions, mais il importe que quoi que vous ayez répondu, vous ayez répondu avec confiance. Alors soyez confiant lors de votre entretien. Chez tutorialspoint, nous vous souhaitons bonne chance d'avoir un bon intervieweur et tout le meilleur pour votre entreprise future. À votre santé :-)