Вопросы на собеседовании по разработке программного обеспечения

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

Q.What is computer software?

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

Q.Can you differentiate computer software and computer program?

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

Q.What is software engineering?

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

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

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

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

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

Q.What are SDLC models available?

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

Q.What are various phases of SDLC?

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

Q.Which SDLC model is the best?

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

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

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

Q.What is software project management?

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

Q.Who is software project manager?

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

Q.What does software project manager do?

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

Q.What is software scope?

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

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

Q.What is project estimation?

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

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

A. Размер программного продукта можно рассчитать одним из двух методов:

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

Q.What are function points?

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

Q.What are software project estimation techniques available?

A. Доступно множество методов оценки, из которых наиболее широко используются:

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

Q.What is baseline?

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

Q.What is Software configuration management?

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

Q.What is change control?

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

Q.How can you measure project execution?

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

Q.Mention some project management tools.

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

Q.What are software requirements?

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

Q.What is feasibility study?

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

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

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

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

Q.How can you gather requirements?

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

Q.What is SRS?

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

Q.What are functional requirements?

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

Q.What are non-functional requirements?

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

Q.What is software measure?

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

Q.What is software metric?

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

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

Q.What is modularization?

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

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

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

пример

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

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

Q.What is cohesion?

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

Q.What is coupling?

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

Q.Mentions some software analysis & design tools?

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

Q.What is level-0 DFD?

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

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

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

Q.What is data dictionary?

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

Q.What is structured design?

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

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

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

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

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

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

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

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

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

Q.What is functional programming?

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

Q.Differentiate validation and verification?

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

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

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

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

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

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

Q.Quality assurance vs. Quality Control?

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

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

Q.What are various types of software maintenance?

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

  • Corrective

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

  • Adaptive

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

  • Perfective maintenance

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

  • Preventive maintenance

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

Q.What is software re-engineering?

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

Q.What are CASE tools?

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

Что следующее?

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

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