Учебники

Интервью по программной инженерии

Уважаемые читатели, эти вопросы для интервью по программной инженерии были разработаны специально для того, чтобы познакомить вас с характером вопросов, с которыми вы можете столкнуться во время интервью по предмету программной инженерии . По моему опыту, хорошие интервьюеры вряд ли планировали задавать какой-либо конкретный вопрос во время вашего интервью, обычно вопросы начинаются с некоторой базовой концепции предмета, а затем продолжаются на основе дальнейшего обсуждения и того, что вы ответите:

В. Что такое компьютерное программное обеспечение?

О. Компьютерное программное обеспечение представляет собой полный пакет, который включает в себя программное обеспечение, его документацию и руководство пользователя по использованию программного обеспечения.

В. Можете ли вы различить компьютерное программное обеспечение и компьютерную программу?

О. Компьютерная программа — это фрагмент программного кода, который выполняет четко определенную задачу, в которой программное обеспечение включает программный код, его документацию и руководство пользователя.

Q. Что такое разработка программного обеспечения?

A. Программная инженерия — это инженерная отрасль, связанная с разработкой программных систем.

В. Когда вы знакомы с программированием, зачем изучать концепции разработки программного обеспечения?

О. Человек, который знает, как построить стену, может быть не очень хорош в строительстве целого дома. Аналогично, человек, который может писать программы, может не знать других концепций разработки программного обеспечения. Концепции разработки программного обеспечения помогают программистам оценивать требования конечного пользователя, разрабатывать алгоритмы до начала фактического кодирования, создавать программы путем кодирования, тестирования кода и его документации.

В. Что такое программный процесс или жизненный цикл разработки программного обеспечения (SDLC)?

A. Жизненный цикл разработки программного обеспечения, или процесс разработки программного обеспечения, представляет собой систематическую разработку программного обеспечения, следуя каждому этапу процесса разработки, а именно: сбор требований, системный анализ, проектирование, кодирование, тестирование, обслуживание и документирование в указанном порядке.

В. Какие модели SDLC доступны?

О. Существует несколько доступных моделей SDLC, таких как модель водопада, итерационная модель, спиральная модель, V-модель, модель большого взрыва и т. Д.

В. Каковы различные фазы SDLC?

A. Общими этапами SDLC являются: сбор требований, системный анализ и проектирование, кодирование, тестирование и реализация. Этапы зависят от модели, которую мы выбираем для разработки программного обеспечения.

В. Какая модель SDLC является лучшей?

О. SDLC Модели принимаются в соответствии с требованиями процесса разработки. Это может быть очень программное обеспечение для обеспечения того, какая модель подходит.

Мы можем выбрать лучшую модель SDLC, если удовлетворены следующие ответы —

  • Подходит ли SDLC для выбранной технологии для реализации программного обеспечения?
  • Соответствует ли SDLC требованиям и приоритетам клиента?
  • Подходит ли модель SDLC по размеру и сложности программного обеспечения?
  • Подходит ли модель SDLC для проектов и разработок, которые мы делаем?
  • Подходит ли SDLC для географически расположенных или рассредоточенных разработчиков?

В. Что такое управление проектами программного обеспечения?

A. Управление программным проектом — это процесс управления всеми видами деятельности, такими как управление временем, затратами и качеством, связанными с разработкой программного обеспечения

В. Кто менеджер по программному обеспечению?

О. Менеджер проекта программного обеспечения — это человек, который берет на себя ответственность за реализацию проекта программного обеспечения.

В. Что делает менеджер программных проектов?

A. Менеджер проекта программного обеспечения занимается деятельностью по управлению программным обеспечением. Он отвечает за планирование проекта, мониторинг прогресса, коммуникацию между заинтересованными сторонами, управление рисками и ресурсами, бесперебойное выполнение разработки и реализацию проекта с соблюдением сроков, затрат и качества.

Q. Что такое сфера программного обеспечения?

A. Область действия программного обеспечения — это четко определенная граница, которая охватывает все действия, которые выполняются для разработки и поставки программного продукта.

Объем программного обеспечения четко определяет все функциональные возможности и артефакты, которые должны быть доставлены как часть программного обеспечения. Область действия определяет, что продукт будет делать и что он не будет делать, что будет содержать конечный продукт и что он не будет содержать.

Q. Что такое оценка проекта?

О. Это процесс оценки различных аспектов программного продукта с целью расчета стоимости разработки с точки зрения усилий, времени и ресурсов. Эта оценка может быть получена из прошлого опыта, путем консультации с экспертами или с использованием заранее определенных формул.

В. Как мы можем определить размер программного продукта?

A. Размер программного продукта может быть рассчитан с помощью одного из двух методов —

  • Подсчет строк доставленного кода
  • Подсчет поставленных функциональных точек

Q. Каковы функциональные точки?

A. Функциональные точки — это различные функции, предоставляемые программным продуктом. Это считается единицей измерения размера программного обеспечения.

В. Какие существуют методы оценки проектов программного обеспечения?

О. Есть много доступных методов оценки. Наиболее широко используемые —

  • Техника декомпозиции (подсчет строк кода и функциональных точек)
  • Эмпирическая техника (Putnam и COCOMO).

Q. Что такое базовый уровень?

A. Базовая линия — это измерение, которое определяет полноту фазы. После того, как все действия, связанные с определенной фазой, выполнены, фаза завершена и действует как базовая линия для следующей фазы.

В. Что такое управление конфигурацией программного обеспечения?

A. Управление конфигурацией программного обеспечения — это процесс отслеживания и контроля изменений в программном обеспечении с точки зрения требований, дизайна, функций и развития продукта.

В. Что такое контроль изменений?

A. Контроль изменений — это функция управления конфигурацией, которая гарантирует, что все изменения, внесенные в программную систему, согласованы и выполнены в соответствии с организационными правилами и положениями.

Q. Как вы можете измерить выполнение проекта?

О. Мы можем измерить исполнение проекта с помощью мониторинга активности, отчетов о состоянии и контрольных списков этапов.

Q.Mention некоторые инструменты управления проектами.

О. Существуют различные инструменты управления проектами, используемые в соответствии с требованиями программных проектов и политик организации. Они включают диаграмму Ганта, диаграмму PERT, гистограмму ресурсов, анализ критических путей, отчеты о состоянии, контрольные списки основных этапов и т. Д.

В. Каковы требования к программному обеспечению?

A. Требования к программному обеспечению — это функциональное описание предлагаемой системы программного обеспечения. Предполагается, что к требованиям относится описание целевой системы, ее функциональных возможностей и возможностей. Требования передают ожидания пользователей от системы.

Q. Что такое технико-экономическое обоснование?

О. Это мера для оценки того, насколько практической и полезной будет разработка программного проекта для организации. Анализатор программного обеспечения проводит тщательное исследование, чтобы понять экономическую, техническую и эксплуатационную осуществимость проекта.

  • Экономический — транспортировка ресурсов, затраты на обучение, стоимость дополнительных коммунальных услуг и инструментов и общая оценка затрат и выгод проекта.

  • Технический — возможно ли разработать эту систему? Оценка пригодности машин и операционных систем, на которых будет выполняться программное обеспечение, существующих знаний и навыков разработчиков, обучения, утилит или инструментов для проекта.

  • Оперативный — Может ли организация плавно адаптироваться к изменениям, сделанным в соответствии с требованиями проекта? Стоит ли решать проблему?

Экономический — транспортировка ресурсов, затраты на обучение, стоимость дополнительных коммунальных услуг и инструментов и общая оценка затрат и выгод проекта.

Технический — возможно ли разработать эту систему? Оценка пригодности машин и операционных систем, на которых будет выполняться программное обеспечение, существующих знаний и навыков разработчиков, обучения, утилит или инструментов для проекта.

Оперативный — Может ли организация плавно адаптироваться к изменениям, сделанным в соответствии с требованиями проекта? Стоит ли решать проблему?

Q. Как вы можете собрать требования?

О. Требования могут быть получены от пользователей посредством интервью, опросов, анализа задач, мозгового штурма, анализа предметной области, создания прототипов, изучения существующей используемой версии программного обеспечения и наблюдения.

Q. Что такое SRS?

A. SRS или спецификация требований к программному обеспечению — это документ, который создается во время процесса сбора требований. Это также можно рассматривать как процесс уточнения требований и их документирования.

Q. Каковы функциональные требования?

A. Функциональные требования — это функциональные особенности и спецификации, ожидаемые пользователями от предлагаемого программного продукта.

В. Каковы нефункциональные требования?

О. Нефункциональные требования являются неявными и связаны с безопасностью, производительностью, внешним видом интерфейса пользователя, функциональной совместимостью, стоимостью и т. Д.

В. Что такое программная мера?

О. Программные меры можно понимать как процесс количественного определения и обозначения различных атрибутов и аспектов программного обеспечения.

В. Что такое метрика программного обеспечения?

A. Метрики программного обеспечения обеспечивают меры для различных аспектов процесса программного обеспечения и программного продукта. Они делятся на —

  • Метрики требований: требования к длине, полнота
  • Метрики продукта: строки кода, объектно-ориентированные метрики, метрики проектирования и тестирования
  • Показатели процесса: оценка и отслеживание бюджета, графика, человеческих ресурсов.

В. Что такое модульность?

О. Модуляризация — это метод разделения программной системы на несколько дискретных модулей, которые, как ожидается, будут выполнять задачу (задачи) независимо.

В. Что такое параллелизм и как он достигается в программном обеспечении?

А. Параллелизм — это тенденция событий или действий происходить одновременно. В программном обеспечении, когда два или более процессов выполняются одновременно, они называются параллельными процессами.

пример

Пока вы запускаете команду печати и начинается печать, вы можете открыть новое приложение.

Параллелизм реализуется путем разделения программного обеспечения на несколько независимых единиц выполнения, а именно процессов и потоков, и их параллельного выполнения.

В. Что такое сплоченность?

A. Сплоченность — это мера, определяющая степень внутризависимости между элементами модуля.

Q. Что такое связь?

A. Связь — это мера, которая определяет уровень взаимозависимости между модулями программы.

Q.Mentions некоторые инструменты анализа программного обеспечения и дизайна?

О. Это могут быть: DFD (диаграммы потоков данных), структурированные диаграммы, структурированный английский, словарь данных, диаграммы HIPO (иерархический ввод-вывод), диаграммы ER (отношение сущностей) и таблицы решений.

Q. Что такое DFD уровня 0?

О. DFD самого высокого уровня абстракции известен как DFD уровня 0, также называемый DFD уровня контекста, который изображает всю информационную систему в виде одной диаграммы, скрывающей все базовые детали.

В. В чем разница между структурированным английским и псевдокодом?

A. Структурированный английский — это родной английский язык, используемый для написания структуры программного модуля с использованием ключевых слов языка программирования, тогда как псевдокод более близок к языку программирования и использует слова или предложения на английском языке для написания частей кода.

В. Что такое словарь данных?

A. Словарь данных упоминается как метаданные. Это означает, что это хранилище данных о данных. Словарь данных используется для организации имен и их ссылок, используемых в системе, таких как объекты и файлы, вместе с их соглашениями об именах.

Q. Что такое структурированный дизайн?

А. Структурированный дизайн — это концептуализация проблемы на несколько хорошо организованных элементов решения. Это связано с дизайном решения, основанным на стратегии «разделяй и властвуй».

В. В чем разница между функционально-ориентированным и объектно-ориентированным дизайном?

A. Функционально-ориентированный дизайн состоит из множества небольших подсистем, известных как функции. Каждая функция способна выполнять важные задачи в системе. Объектно-ориентированное проектирование работает с объектами (сущностями) реального мира, их классами (категориями) и методами, работающими с объектами (функциями).

Q. Кратко определите модель дизайна сверху вниз и снизу вверх.

О. Нисходящая модель начинается с обобщенного представления системы и декомпозирует ее на более конкретные, тогда как восходящая модель сначала начинается с большинства конкретных и базовых компонентов и продолжает составлять компоненты, чтобы получить более высокий уровень абстракции.

В. Какова основа меры сложности Холстеда?

A. Мера сложности Холстеда зависит от фактической реализации программы и рассматривает токены, используемые в программе, как основу измерения.

Q.Mention формула для расчета цикломатической сложности программы?

A. Цикломатическая сложность использует формулу теории графов: V (G) = e — n + 2

В. Что такое функциональное программирование?

А. Функциональное программирование — это стиль языка программирования, в котором используются понятия математической функции. Он предоставляет средства вычисления в виде математических функций, которые дают результаты независимо от состояния программы.

Q.Дифференцировать валидацию и верификацию?

A. Валидация проверяет, произведен ли продукт в соответствии с требованиями пользователя, тогда как верификация проверяет, выполнены ли надлежащие шаги для разработки продукта.

Валидация подтверждает правильный продукт, а верификация подтверждает, что продукт построен правильно.

В. Что такое тестирование черного и белого ящиков?

A. Тестирование черного ящика проверяет, производятся ли желаемые результаты, когда заданы действительные входные значения. Он не проверяет фактическую реализацию программы.

Тестирование белого ящика не только проверяет желаемый и действительный вывод при наличии действительного ввода, но также проверяет, правильно ли реализован код.

критерии Тестирование черного ящика Тестирование белого ящика
Знание программного обеспечения, дизайна и структуры необходимы нет да
Знание программной реализации необходимо нет да
Кто проводит этот тест на программное обеспечение Сотрудник по тестированию программного обеспечения Разработчик программного обеспечения
базовая ссылка для тестера Требования к спецификациям Детали конструкции и конструкции

Q. Гарантия качества против контроля качества?

A. Контроль качества проверяет, соблюдается ли надлежащий процесс при разработке программного обеспечения.

Контроль качества занимается поддержанием качества программного продукта.

В. Какие существуют различные виды обслуживания программного обеспечения?

A. Типы обслуживания: корректирующие, адаптивные, совершенствующие и профилактические.

  • корректив

    Удаление ошибок, обнаруженных пользователями

  • адаптивный

    устранение изменений в аппаратной и программной среде, в которой работает программное обеспечение

  • Идеальное обслуживание

    внесение изменений в существующие или новые требования пользователя

  • Профилактическое обслуживание

    принятие соответствующих мер, чтобы избежать будущих проблем

Удаление ошибок, обнаруженных пользователями

устранение изменений в аппаратной и программной среде, в которой работает программное обеспечение

внесение изменений в существующие или новые требования пользователя

принятие соответствующих мер, чтобы избежать будущих проблем

В. Что такое реинжиниринг программного обеспечения?

О. Реинжиниринг программного обеспечения — это процесс обновления технологии, на которой построено программное обеспечение, без изменения функциональности программного обеспечения. Это сделано для того, чтобы программное обеспечение поддерживало новейшие технологии.

В. Что такое инструменты CASE?

A. CASE расшифровывается как Computer Aided Software Engineering. Инструменты CASE представляют собой набор автоматизированных программных прикладных программ, которые используются для поддержки, ускорения и сглаживания действий SDLC.

Что дальше?

Кроме того, вы можете просмотреть свои прошлые задания, которые вы выполнили по предмету, и убедиться, что вы можете говорить с ними уверенно. Если вы свежее, тогда интервьюер не ожидает, что вы ответите на очень сложные вопросы, скорее вы должны сделать свои базовые концепции очень сильными.

Во-вторых, это не имеет большого значения, если вы не можете ответить на несколько вопросов, но важно, чтобы вы ответили с уверенностью. Так что будьте уверены во время интервью. Мы в tutorialspoint желаем вам удачи в выборе хорошего интервьюера и всего самого наилучшего для вашей будущей работы. Ура 🙂