Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Управление проектами и рискамии (ответы).docx
Скачиваний:
8
Добавлен:
03.08.2019
Размер:
72.03 Кб
Скачать
  1. Приведите примеры линейно разделимой и линейно неразделимой задач.

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

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

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

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

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

С обменом данными дело обстоит хуже. Если все части задания должны быть

отдельно скоординированы между собой, то затраты возрастают как n(n-2)/2. Для трех работников требуется втрое больше попарного общения, чем для двух, для четырех — вшестеро. Если помимо этого возникает необходимость в совещаниях трех, четырех и т.д. работников для совместного решения вопросов, положение становится еще хуже. Дополнительные затраты на обмен данными могут полностью обесценить результат дробления исходной задачи.

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

  1. Стоит ли давать практикантам серьезные задачи?

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

  1. В чем разница между обычным и системным тестированием?

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

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

  1. Что такое архитектура, и чем она отличается от разработки?

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

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

Архитектура

Проектирование

Реализация

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

В современном программирование границы между 2-м и 3-м уровнем чрезвычайно размыты. Разработка классов так же относится к проектированию, однако её сложно представить в отрыве от реализации, по крайней мере, на нижнем уровне проектирование и программирование могут пересекаться, в то же время начинать проектирование, пока не готова спецификация, по видимому тоже не самая лучшая идея.