РФЭТ: Прикладная информатика. ПМ 2. Итоговый экзамен
Задание 1
Вы — менеджер IT проекта, который планирует ресурсы, графики и обязательства по проекту на основании разрабатываемых в настоящий момент требований к программному продукту, который планируется реализовать. Как вы знаете, способы управления проектом разработки ПО тесно связаны с работой над требованиями к нему.
Ситуация 1.
Для работы над проектом вы собираете команду разработчиков. У вас уже есть некоторые наработки, которые вы выполнили с частью команды и созданы базовые объекты для последующей работы. К вашей команде присоединяется еще 4 человека. Вы используете репозиторий git. Как вы поступите?
Отметьте верные утверждения.
Создадите новый репозиторий и скопируете файлы и код для всех разработчиков
Произведете клонирование существующего репозитория
Выполните локальное клонирование для каждого нового разработчика
Ситуация 2.
На начальных стадиях проекта требования могут меняться, дописываться и, скорее всего, изменения в некоторые части проекта придется вносить часто. Какие правила вы дадите разработчикам, для того чтобы проект был в порядке, а команда знала на каком этапе сейчас находится работа, для чего были сделаны изменения.
Всегда давать ревизиям осмысленные сообщения
Ревизии должны создаваться только для важных и глобальных изменений
Каждую ревизию должно сопровождать сообщение, кратко описывающее характер произведенных в ней работ
Ревизии должны создаваться регулярно, ориентируясь на характер выполняемых работ
Мелким изменениям можно не давать пояснительных сообщений, это упрощает поиск важных изменений в истории
Задание 2
В процессе работы нескольких человек над пользовательскими требованиями к разрабатываемому программному продукту в вашем репозитории git появились разные версии одного и того же файла. Каким образом вы можете сравнивать эти файлы между собой и найти изменения?
С помощью команды git log
Используя инструмент git diff
С помощью поиска ревизий по их автору
Используя инструмент git show
Задание 3
Команда разработчиков получила предварительные бизнес-требования, собранные из многих источников. Но некоторые из них оказались противоречивыми. Какие действия следует предпринять в этом случае Вам, как менеджеру проекта?
Лица, ответственные за принятие решений, должны разрешить эти конфликты
Уточнить базовые требования, отменить и убрать из проекта конфликтующие
Предоставить команде разработчиков ПО разрешить конфликт между разными требованиями, для того чтобы корректно реализовать работу системы
Нанять бизнес-аналитика, который выявит области возможных конфликтов и различий в предположениях, отметит противоречивые бизнес-цели
Задание 4
Можно менять границы будущей итерации или целого проекта, если это делается осознанно, «правильными» людьми, по правильными бизнес-основаниям и с пониманием и принятием всех последствий. Обычный результат изменения границ заключается в том, что завершенные действия приходится переделывать. Если при добавлении новой функциональности не увеличиваются выделенные на проект время или ресурсы, часто страдает качество. Как узнать, когда можно завершить реализацию функциональности?
Обращение к бизнес требованиям при определении границ каждой последующей итерации анализ и пересмотр их, помогут добавить новые требования безболезненно для проекта
Если работа над проектом начинается с четкой концепции и если границы каждого выпуска или итерации включают лишь часть общей функциональности, тогда работу можно считать выполненной по завершении запланированных итераций. В результате завершения всех итераций должен получиться полностью реализованный продукт, удовлетворяющий бизнес-целям.
Если требование явно выходит за границы проекта, но оно может быть интересным, его следует попробовать вписать в ближайшие к выполнению требования
Каждый раз, когда кто-то выдвигает новое требование, следует ответить на вопрос: «Попадает ли оно в рамки проекта?»
Задание 5
Как вы знаете, разработка требований состоит из выявления, анализа, документирования и проверки. На практике эти действия выполняются попеременно, поэтапно и повторяются И далеко не всегда все действия удастся выполнить последовательно и за один проход. Многие первоначальные требования нуждаются в дополнительном анализе и последующем уточнении.
Вам необходимо задавать клиентам вопросы, слушать их ответы и наблюдать, что они делают (этап выявления требований). Вы обработаете эту информацию и разберетесь в ней, классифицируете ее на разные категории и свяжете потребности клиента с возможными программными требованиями (этап анализа).
Ниже приведено несколько требований и варианты уточняющих вопросов. Выберите те вопросы, которые действительно помогут сформировать понимание предложенного требования.
Опционально должен поддерживаться экспорт документов в формат PDF.
В PDF какой версии должен производиться экспорт?
Любых документов?
Зачем?
Насколько возможность экспорта в PDF важна? Как часто, кем и с какой целью она будет использоваться?
Допускается ли использование внешних утилит (например, виртуальных PDF- принтеров) для экспорта документов в PDF?»
Является ли PDF единственным допустимым форматом для этих целей или есть альтернативы?
Если дата события не указана, она выбирается автоматически.
А если указана?
А если у события нет даты?
Возможно, имелось в виду, что дата генерируется автоматически, а не выбирается? Если да, то по какому алгоритму она генерируется?
А если дату невозможно выбрать автоматически?
Из какого набора выбирается дата и как генерируется этот набор? Возможно, стоит использовать текущую дату?
Приложение должно быстро запускаться
Что является критерием того, что приложение закончило запуск?»
Всегда?
Каково максимально допустимое время запуска приложения, на каком оборудовании и при какой загруженности этого оборудования операционной системой и другими приложениями?
А если не получится быстро?
На достижение каких целей влияет скорость запуска приложения? Допускается ли фоновая загрузка отдельных компонентов приложения?
Насколько быстро?
Задание 6
Дан код, в котором описаны некоторые функции, касающиеся действий пользователей. Укажите верную последовательность сообщений в консоли.
function userOne() {
console.log('Пользователь 1 набирает сообщение');
userTwo();
console.log('Пользователь 1 отправил сообщение');
}
function userTwo() {
console.log('Пользователь 2 набирает сообщение');
userThree();
console.log('Пользователь 2 отправил сообщение');
}
function userThree() {
console.log('Пользователь 3 набирает сообщение');
console.log('Пользователь 3 отправил сообщение');
}
userOne();
Задание 7
Как обойти все перечислимые свойства объекта project, включая унаследованные от прототипов?
project.forEach(function(key) { ... })
Object.keys(project).forEach(function(key) { ... })
for (var key in project) { ... }
Задание 8
var user = {
name: 'Alex',
regdate: new Date(2016, 1, 7)
};
Как задать динамическое (вычисляемое) свойство regdate для объекта user, при обращении к которому будет возвращаться время, со дня регистрации пользователя в вашей системе?
user.regdate = { ... }
user.defineProperty('regdate', { get: function() { ... } })
Object.defineProperty(user, 'regdate', { get: function() { ... } })
user.regdate = { get: function() { ... } }