-
Лекция 1.О предмете изучения
- Что такое программная инженерия?
- Назовите дату зарождения программной инженерии как отдельной науки.
- В чем отличие программной инженерии от информатики?
- В чем отличие программной инженерии от системотехники?
- Приведите примеры дисциплин информатики и программной инженерии (дисциплины не путать с учебными предметами).
- Что такое ПО?
- Перечислите характеристики ПО по Бруксу и кратко характеризуйте каждую.
- C какими иными видами человеческой деятельности соотносится создание ПО в данном разделе?
-
Лекция 2. Процесс разработки программного обеспечения
- Что такое процесс создания ПО?
- Расскажите о причинах отсутствия универсального процесса разработки ПО.
- Почему возможно и целесообразно стандартизировать процесс на уровне компании?
- Что такое стандартный и конкретный процессы и как они соотносятся?
- Чем отличаются между собой текущий и конкретный процессы? Какие методологии разработки ПО поддерживают понятие конкретного процесса и какими средcтвами?
- Дайте определение деятельности по совершенствованию процесса.
- В чем главная трудность совершенствования процессов в компаниях?
- Перечислите основные направления улучшения процесса.
- Расскажите о стратегии organization pull к внедрению инноваций. Приведите примеры.
- Расскажите о стратегии technology push к внедрению инноваций. Приведите примеры.
- Расскажите о достоинствах, недостатках, а также возможных рисках этих стратегий.
- Что такое модель процесса?
- Что такое фаза процесса?
- Что такое вид деятельности?
- Почему нельзя отождествлять фазы и виды деятельности? Когда и по каким причинам это все таки происходит на практике?
- В чем достоинства водопадной модели? В чем ее историческая роль? В чем ее недостатки?
- Как в рамках водопадной модели предполагается работать с рисками?
- Почему водопадная модель до сих пор используется? Объясните, почему эту модель удобно использовать в оффшорных проектах с почасовой оплатой?
- Чем виток спиральной модели отличается от фазы в водопадной модели? Приведите пример последовательности витков спиральной модели. Опишите условия, при которых спираль завершается.
- Расскажите про второе и третье измерение спиральной модели. Опишите различные секторы витка спирали.
- В чем достоинства и недостатки спиральной модели? Каковы ограничения этой модели?
- Как в рамках этой модели предполагается работать с рисками?
-
Лекция 3. Рабочий продукт, дисциплина обязательств, проект
- Дайте определение рабочего продукта. Приведите примеры.
- Чем отличается рабочий продукт от компоненты ПО?
- Расскажите, что такое нематериальный рабочий продукт.
- Опишите, как "работает" дисциплина обязательств.
- Приведите примеры других видов отношений между людьми.
- Расскажите о границах применения дисциплины обязательств.
- Что такое проект и чем он отличается от других форм организации бизнеса и производства?
-
Лекция 4. Архитектура ПО
- Дайте определение архитектуре ПО. Расскажите, какие аспекты разработки задействует это понятие.
- Расскажите о причинах множественности точек зрения при разработке ПО.
- Как по вашему мнению, множественность точек зрения помогает или мешает в разработке?
- Перечислите и кратко прокомментируйте разные виды диаграмм UML.
-
Лекция 5. Управление требованиями
- В чем трудность управления требованиями? При ответе на этот вопрос имейте в виду другие инженерные области и сферы бизнеса. Старайтесь отвечать на вопрос с наружи программной инженерии, а не изнутри.
- Перечислите способы формализации требований. Под формализацией имеется в виду способ не промежуточной, а финальной фиксации.
- Расскажите о способах и техниках "вытягивания" требований.
- Перечислите разные виды документов, формализующих требования.
- Расскажите об отличии функциональных и нефункциональных требований.
- Расскажите о типовом цикле работы с требованиями.
- Перечислите типовые ошибки при работе с требованиями.
-
Лекция 6. Конфигурационное управление
- Приведите примеры проблем в проектах, где нет хорошего конфигурационного управления.
- Неформально объясните, какие задачи выполняет конфигурационное управление в проекте.
- Дайте формальное определение конфигурационному управлению.
- Расскажите об известном противоречии - абсолютной сохранности и удобного доступа.
- Приведите пример артефактов проекта, которые могут "подпадать" под конфигурационное управление.
- Приведите пример артефактов проекта, которые могут не "подпадать" под конфигурационное управление. подпадающих
- Что является главным артефактом конфигурационного управления и почему.
- Перечислите основные функции версионного контроля.
- Что такое управление сборками?
- Что такое непрерывная интеграция. В каких известных вам методологиях она используется и почему (на ваш взгляд).
- Расскажите о понятии baseline.
-
Лекция 7. Тестирование
- Перечислите и кратко охарактеризуйте различные способы контроля качества ПО.
- Дайте определение тестирования и кратко прокомментируйте его.
- Что означает в контексте тестирования ожидаемое поведение программы?
- Что входит в искусственные, специально заданные условия воздействия на систему, которые имеются в виду в определении тестирования?
- В чем важность концепции теста?
- В чем преимущества автоматического тестирования перед "ручным"?
- В чем трудности автоматического тестирования?
- Приведите свои собственные примеры проблем с интерфейсами к тестируемым системам.
- Приведите примеры того, как прогон тестов может влиять на поведение системы.
- В чем смыл факторизации входных значений при тестировании?
- Расскажите о разных вариантах организации команды тестеровщиков.
- Перечислите и кратко охарактеризуете виды тестирования.
-
Лекция 8. Диаграммные техники в работе со знаниями
- Какова роль актеров при построении диаграмм случаев использования?
- Что такое случай использования и чем он отличается от произвольной функции системы.
- Какие бывают виды актеров?
- Расскажите о бизнес-диаграммах случаев использования.
- Расскажите об основном предназначении диаграмм случаев использования. Попробуйте самостоятельно оценить их полезность.
- Расскажите о разных вариантах применения диаграмм случаев использования.
- Расскажите о применении случаев использования в управлении разработкой.
- Расскажите об основной идее цикла автор/рецензент.
- Как этот цикл можно использовать при извлечении знаний из эксперта? Расскажите о дополнительных особенностях этого процесса. Примерьте эту технику для собственного использования и поделитесь возникшими соображениями.
- Расскажите об истории карт памяти, а также о том, что это такое.
- Перечислите и кратко охарактеризуйте основные направления по практическому использованию карт памяти. Как именно вы используйте карты памяти? Собираетесь ли вы их использовать?
- Расскажите о продукте Comapping и его основных возможностях по работе с картами памяти.
-
Лекция 9. MSF
- Расскажите об истории разработки MSF.
- Расскажите об основных принципах MSF.
- В чем главные новшества MSF?
- Чем отличаются версии MSF 3.х от 4.х?
- Что такое IT-решение?
- Что такое управление компромиссами? Приведите примеры.
- Расскажите о модели команды MSF. В чем ее свобода и где она заканчивается?
-
Лекция 10. CMMI
- Что такое CMMI? Постарайтесь не описывать CMMI, а в нескольких предложениях его определить, дать компактное и точное определение.
- Кратко расскажите историю развития стандарта CMMI. Чем CMMI отличается от CMM?
- Перечислите и кратко охарактеризуйте уровни CMMI.
-
Лекция 11. "Гибкие" (agile) методы разработки
- Расскажите о принципах "гибких" методов разработки.
- Какие, по вашему, существуют ограничения в применении гибких методов?
- Перечислите известные вам "гибкие" методологии разработки ПО.
- Расскажите о принципах XP. С чем, на ваш взгляд, могут возникнуть трудности при практическом внедрении XP?
- Расскажите о главных идеях Scrum. При этом не начинайте длинный рассказ про всю методологию в целом, а также не перечисляйте ее сонные артефакты. Дайте качественное описание из вне.
- Расскажите, как устроена самоорганизуемсоть команды в Scrum? Как методология ограждает свободу команды и какие выгоды из этого извлекаются для проекта?
- Расскажите об обязанностях Scum-матера.
- Расскажите об обязанностях Product Owner.
- Расскажите о задачах ежедневных встреч.
-
Лекция 12. Обзор технологии Microsoft Visual Studio Team System (VSTS)
- Расскажите об основных составляющих продукта MS VSTS.
- Расскажите о функциональности TFS.
- Расскажите о различных клиентских приложениях MS VSTS.
- Расскажите о средствах поддержания сборки в MS VSTS.
- Расскажите о различных изданиях Visual Studio и их возможностях относительно MS VSTS.
- Расскажите о самом простом клиенте TFS и тех функциональных возможностях, которые он обеспечивает.
- Расскажите о возможностях пакета Team Foundation Power Tools. Это клиентская или северная компонента?
- Расскажите об инсталляции MS VSTS.
-
Лекция 13. VSTS: управление элементами работ (Work Items)
- Что такое элемент работы? Приведите примеры различных видов элементов работы.
- Какие есть еще артефакты в процессе, развернутом в MS VSTS? Как они взаимосвязаны с элементами работы?
- Что такое тип элемента работы, что в нем определяется?
- Расскажите о реквизитах элемента работы.
- Как и где задается жизненный цикл элемента работы? Какие программные продукты при этом используются?
- Расскажите об импорте/экспорте элементов в MS Excel и Project: зачем это нужно, какие практические выгоды это дает.
- Расскажите о связи элементов работы и отчетов.
-
Лекция 14. VSTS: конфигурационное управление
- Перечислите особенности системы контроля версий TFS, отсутствующие в других подобных средствах.
- Расскажите об Отслеживание изменений отдельных файлов.
- Расскажите о правилах внесения изменений.
- Расскажите об управлении ветками.
- Расскажите о сохранении без внесения.
- Расскажите о связи средств управления сборкой TFS и MS Build.
- Расскажите об описаниях сборок (build definition).
- Расскажите о результатах сборок (build results).
- Расскажите о том, как создается проект в MS Build.
- Расскажите о запуске процесса сборки.
- Расскажите об анализе результатов сборки.
- Расскажите об управлении процессом сборки.
- Расскажите об управлении политикой очистки сборок.
-
Лекция 15. VSTS: тестирование
- Подробно разберите и прокомментируйте жизненный цикл ошибки в шаблоне процесса MSF for Agile.
- Расскажите о том, как создается описание ошибки.
- Опишите связь изменений исходных текстов ПО и ошибок.
- Расскажите о системе автоматических оповещений в TFS.
- Расскажите о целях и задачах модульного тестирования. Как модульные тесты, созданные разработчиками, могут использоваться в дальнейшем?
- Какие альтернативы MS VSTS существуют для автоматической поддержки модульного тестирования для Visual Studio?
- Расскажите о поддержке модульного тестирования в MS VSTS. Какая часть среды реализует эту функциональность?
- Расскажите о поддержке работы с пакетами тестов в MS VSTS.
- Расскажите о подходе тестирования пользовательского интерфейса Capture & Playback. В чем его трудности?
- Расскажите о том, как эти трудности решаются в случае тестирования интерфейсов Web-приложений.
- Расскажите о поддержке Capture & Playback тестирования интерфейсов Web-приложений в MS VSTS.
-
Лекция 16. VSTS: поддержка различных моделей процесса
- Зачем нужны разные шаблоны процессов в MS VSTS?
- Что они определяют, что задают, и как ограничивают разработчиков. И как им помогают?
- Какова на ваш взгляд, трудоемкость создания собственного шаблона процесса "с нуля"?
- С какой темой курса связана шаблоны процессов в MS VSTS? Найдите термин из курса, который в точности может заменить термин "шаблон процесса".
- Перечислите и охарактеризуйте разделы описания шаблона процесса.
- Сделайте краткий обзор известных вам шаблонов процесса MS VSTS.
- Опишите шаблон MSF for Agile Software Development.
- Опишите шаблон Scrum.
- Чем они отличаются?