Вопросы и задания по курсу "Введение в программную инженерию"

Вопросы и задания по курсу "Введение в программную инженерию"

Задания на основе карт памяти (mind maps ) следует использовать постепенно вот в каком смысле. Учащиеся должны овладеть этой техникой – оказывается, для этого нужно затратить некоторое время. Нет необходимости проводить специальный тренинг – достаточно просто объяснить, что это такое и как этим пользоваться, и сразу же приступить к использованию. По ходу дела целесообразно давать нужные рекомендации. После нескольких карт памяти, составленных самостоятельно, студенты осваивают эту технику. Первые карты памяти целесообразно рисовать "вручную". Впоследствии, особенно при "массовом" процессе использования карт памяти, целесообразно пользоваться инструментами. Мы рекомендуем продукт Comapping (http://www.comapping.com). Дальнейшие детали по использованию карт памяти в преподавании программной инженерии можно найти в работах [1-3].

Рекомендация 2

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

Рекомендация 3

Относительно всех лекций правомочно одно, стандартное задание – нарисовать все содержание лекции в виде одной карты памяти на листе формата А4 (можно А3, но не больше). Такие задания целесообразно давать после каждой лекции или в начале лекции, но про материал предыдущей. Преподавателю полезно учитывать информацию из этих проверочных работ при дальнейшем изложении материала. Полезность такого подхода связан с тем, что такие карты памяти легко рисуются (при наличии навыка) и очень легко проверяются.

Рекомендация 4

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

Литература
  1. Д.В Кознов, Я.А Кириленко. Опыт сочетания теории и практики в обучении программной инженерии . Труды III Международная научно-практическая конференция "Современные информационные технологии и ИТ-образование" 2008 год. http://2008.itedu.ru/pages/Conference-works.
  2. D.V.Koznov, M.Y. Pliskin. Computer - Supported Collaborative Learning with Mind- Maps . T. Margaria and B. Steffen (Eds.): ISoLA 2008, CCIS 17, pp. 478–489, 2008. Springer-Verlag, Berlin Heidelberg, 2008.
  3. Д.В.Кознов. Методика обучения программной инженерии на основе карт памяти. Системное программирование . / Вып. 3, под ред. А.Н.Терехова и Д.Ю.Булычева. СПб.: Изд. СПбГУ, 2008. С. 121-140. http://www.sysprog.info.
Лекция 1. О предмете изучения Вопросы
  1. Что такое программная инженерия ?
  2. Назовите дату зарождения программной инженерии как отдельной науки.
  3. В чем отличие программной инженерии от информатики ?
  4. В чем отличие программной инженерии от системотехники?
  5. Приведите примеры дисциплин информатики и программной инженерии (дисциплины не путать с учебными предметами).
  6. Что такое ПО?
  7. Перечислите характеристики ПО по Бруксу и кратко характеризуйте каждую.
  8. C какими иными видами человеческой деятельности соотносится создание ПО в данном разделе?
Задания
  1. С помощью карт памяти максимально полно ответьте на вопрос – что такое программная инженерия , учитывая все измерения этого термина, мелкие и крупные детали.
  2. С помощью карт памяти нарисуйте взаимосвязи характеристик ПО по Бруксу, пользуясь надписями на дугах .
Лекция 2. Процесс разработки программного обеспечения Вопросы
  1. Что такое процесс создания ПО?
  2. Расскажите о причинах отсутствия универсального процесса разработки ПО.
  3. Почему возможно и целесообразно стандартизировать процесс на уровне компании?
  4. Что такое стандартный и конкретный процессы и как они соотносятся?
  5. Чем отличаются между собой текущий и конкретный процессы? Какие методологии разработки ПО поддерживают понятие конкретного процесса и какими средcтвами?
  6. Дайте определение деятельности по совершенствованию процесса.
  7. В чем главная трудность совершенствования процессов в компаниях?
  8. Перечислите основные направления улучшения процесса.
  9. Расскажите о стратегии organization pull к внедрению инноваций . Приведите примеры.
  10. Расскажите о стратегии technology push к внедрению инноваций . Приведите примеры.
  11. Расскажите о достоинствах, недостатках, а также возможных рисках этих стратегий.
  12. Что такое модель процесса ?
  13. Что такое фаза процесса?
  14. Что такое вид деятельности?
  15. Почему нельзя отождествлять фазы и виды деятельности? Когда и по каким причинам это все таки происходит на практике?
  16. В чем достоинства водопадной модели? В чем ее историческая роль? В чем ее недостатки?
  17. Как в рамках водопадной модели предполагается работать с рисками?
  18. Почему водопадная модель до сих пор используется? Объясните, почему эту модель удобно использовать в оффшорных проектах с почасовой оплатой ?
  19. Чем виток спиральной модели отличается от фазы в водопадной модели? Приведите пример последовательности витков спиральной модели . Опишите условия, при которых спираль завершается.
  20. Расскажите про второе и третье измерение спиральной модели . Опишите различные секторы витка спирали.
  21. В чем достоинства и недостатки спиральной модели ? Каковы ограничения этой модели?
  22. Как в рамках этой модели предполагается работать с рисками?
Задания
  1. Нарисуйте с помощью карт памяти взаимосвязь различных определений процесса .
Лекция 3. Рабочий продукт, дисциплина обязательств, проект Вопросы
  1. Дайте определение рабочего продукта . Приведите примеры.
  2. Чем отличается рабочий продукт от компоненты ПО?
  3. Расскажите, что такое нематериальный рабочий продукт .
  4. Опишите, как "работает" дисциплина обязательств.
  5. Приведите примеры других видов отношений между людьми.
  6. Расскажите о границах применения дисциплины обязательств.
  7. Что такое проект и чем он отличается от других форм организации бизнеса и производства?
Задания
  1. Нарисуйте с помощью карт памяти взаимосвязь рабочего продукта и дисциплины обязательств.
  2. Нарисуйте с помощью карт памяти информацию об использовании рабочего продукта и дисциплины обязательств в разных методологиях разработки ПО.
  3. Нарисуйте с помощью карт памяти информацию об использовании рабочего продукта и дисциплины обязательств в разных а также отдельных практиках.
  4. Соедините в одну карту памяти результаты выполнения заданий 1-3.
Лекция 4. Архитектура ПО Вопросы
  1. Дайте определение архитектуре ПО. Расскажите, какие аспекты разработки задействует это понятие.
  2. Расскажите о причинах множественности точек зрения при разработке ПО.
  3. Как по вашему мнению, множественность точек зрения помогает или мешает в разработке?
  4. Перечислите и кратко прокомментируйте разные виды диаграмм UML .
Лекция 5. Управление требованиями Вопросы
  1. В чем трудность управления требованиями ? При ответе на этот вопрос имейте в виду другие инженерные области и сферы бизнеса. Старайтесь отвечать на вопрос с наружи программной инженерии , а не изнутри.
  2. Перечислите способы формализации требований. Под формализацией имеется в виду способ не промежуточной, а финальной фиксации.
  3. Расскажите о способах и техниках "вытягивания" требований.
  4. Перечислите разные виды документов, формализующих требования.
  5. Расскажите об отличии функциональных и нефункциональных требований.
  6. Расскажите о типовом цикле работы с требованиями.
  7. Перечислите типовые ошибки при работе с требованиями.
Задания
  1. Нарисуйте на одной карте памяти ответы на вопросы 2-5.
  2. Добавьте к это карте памяти ответ на вопрос 6.
  3. Построить модель случаев использования, нарисовать главные сценарии, сформулировать список вопросов для обсуждения и написать техническое задание для следующей задачи. В качестве структуры технического задания используйте модель случаев использования.

Необходимо реализовать программную систему для call -центра крупного банка, обслуживающего частных лиц. Банк хочет начать предоставлять новый вид услуг – по телефону. Кроме того, система должна уметь учитывать рабочее время операторов центра ( дифференцированно , собирая информацию о том, какой вид работ, а также простои сколько занимают времени). Система также должна быть интегрирована с различными электронными справочниками и базами данных, содержать информацию о постоянных клиентах, маршрутизировала бы их к "своим" операторам (которые с ними общались и их помнят). Часть функций система должны быть доступны через Интернет , так как менеджеры call -центра должны иметь доступ к текущей статистики , находясь в любой точке мира, а также в дороге (банк – сильно распределен, его call -менеджеры участвуют в большом количестве международных деловых встреч, конференций и пр.) Система должна также обеспечивать максимальную защищенность данных от несанкционированного доступа – ее данные являются жизненно важными, критичными для банка, так как содержат информацию о финансах его клиентов, среди которых есть самые богатые люди мира.

📎📎📎📎📎📎📎📎📎📎